From b412a9cee38587896494f42e9acfacaec7a56cf9 Mon Sep 17 00:00:00 2001 From: shmyga Date: Fri, 14 Aug 2026 20:58:33 +0300 Subject: [PATCH] fix(static): add autoprefixer --- .../easel/route/view/common/utils/template.py | 2 +- .../view/schedule/templates/channel.html | 1 + .../route/view/weather/templates/weather.html | 1 + gallery/painting/openweather/api.py | 2 +- gallery/version.py | 2 +- static/package-lock.json | 109 ++++++++++++++---- static/package.json | 1 + .../sass/_weather-icons-svg.scss | 16 +++ static/webpack.config.ts | 10 +- 9 files changed, 115 insertions(+), 29 deletions(-) diff --git a/gallery/easel/route/view/common/utils/template.py b/gallery/easel/route/view/common/utils/template.py index df85b6a..290966d 100644 --- a/gallery/easel/route/view/common/utils/template.py +++ b/gallery/easel/route/view/common/utils/template.py @@ -24,7 +24,7 @@ def is_widget(request: Request) -> bool: def base_context_processor(request: Request) -> dict: return { "is_widget": is_widget(request), - "provider": request.query_params.get("provider"), + "provider": request.query_params.get("provider") or request.path_params.get("provider"), } diff --git a/gallery/easel/route/view/schedule/templates/channel.html b/gallery/easel/route/view/schedule/templates/channel.html index 76aaaf5..7ffec18 100644 --- a/gallery/easel/route/view/schedule/templates/channel.html +++ b/gallery/easel/route/view/schedule/templates/channel.html @@ -19,6 +19,7 @@ locale=request.state.language)}} href="../../.."> + {{provider}} {{response.channel.name}} | {{format_date(response.date, DATE_FORMAT, locale=request.state.language)}} diff --git a/gallery/easel/route/view/weather/templates/weather.html b/gallery/easel/route/view/weather/templates/weather.html index ae0f607..f64615f 100644 --- a/gallery/easel/route/view/weather/templates/weather.html +++ b/gallery/easel/route/view/weather/templates/weather.html @@ -17,6 +17,7 @@ href="../tag/days-10"> + {{provider}} {{response.location}} | {{format_date(response.date, DATE_FORMAT, locale=request.state.language)}} diff --git a/gallery/painting/openweather/api.py b/gallery/painting/openweather/api.py index be62ddf..2ba4e98 100644 --- a/gallery/painting/openweather/api.py +++ b/gallery/painting/openweather/api.py @@ -37,7 +37,7 @@ class OpenWeatherApi(WeatherApi): @cached( key_builder=lambda fun, self, location_id: f"api.weather.{self.provider}.source.{location_id}.forecast", alias="redis", - ttl=TimeUnit.DAY, + ttl=TimeUnit.HOUR, ) async def _get_location_forecast(self, location_id: str) -> Forecast: return await self.SOURCE.get_forecast(*self._parse_location(location_id)) diff --git a/gallery/version.py b/gallery/version.py index 59f2c53..f764a64 100644 --- a/gallery/version.py +++ b/gallery/version.py @@ -1,4 +1,4 @@ import tomllib from pathlib import Path -__version__ = tomllib.loads((Path(__file__).parent.parent / "pyproject.toml").read_text())["tool"]["poetry"]["version"] +__version__ = tomllib.loads((Path(__file__).parent.parent / "pyproject.toml").read_text())["project"]["version"] diff --git a/static/package-lock.json b/static/package-lock.json index c938c7f..e56139a 100644 --- a/static/package-lock.json +++ b/static/package-lock.json @@ -19,6 +19,7 @@ "@babel/preset-env": "^8.0.2", "@types/bootstrap": "^5.2.11", "@types/node": "^26.1.0", + "autoprefixer": "^10.5.4", "babel-loader": "^10.1.1", "copy-webpack-plugin": "^14.0.0", "core-js": "^3.49.0", @@ -2217,6 +2218,43 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/autoprefixer": { + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.4.tgz", + "integrity": "sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.6", + "caniuse-lite": "^1.0.30001806", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/babel-loader": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.1.1.tgz", @@ -2326,10 +2364,11 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.10.42", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz", - "integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==", + "version": "2.11.13", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.13.tgz", + "integrity": "sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==", "dev": true, + "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" }, @@ -2381,9 +2420,9 @@ "license": "MIT" }, "node_modules/browserslist": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", - "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==", + "version": "4.28.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", + "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", "dev": true, "funding": [ { @@ -2399,12 +2438,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.38", - "caniuse-lite": "^1.0.30001799", - "electron-to-chromium": "^1.5.376", - "node-releases": "^2.0.48", - "update-browserslist-db": "^1.2.3" + "baseline-browser-mapping": "^2.11.12", + "caniuse-lite": "^1.0.30001809", + "electron-to-chromium": "^1.5.402", + "node-releases": "^2.0.53", + "update-browserslist-db": "^1.3.0" }, "bin": { "browserslist": "cli.js" @@ -2430,9 +2470,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001800", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz", - "integrity": "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==", + "version": "1.0.30001809", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", + "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==", "dev": true, "funding": [ { @@ -2447,7 +2487,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", @@ -2709,10 +2750,11 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.387", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.387.tgz", - "integrity": "sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==", - "dev": true + "version": "1.5.405", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.405.tgz", + "integrity": "sha512-bNglH7lPH5l+yHOes7Zr4VqxhOy4BQ9ZBUX4VdoFgxMpzJk7W1ZoO3Vgd9Pxa9PyjQ76sfm2aKH/nzEcCNRlew==", + "dev": true, + "license": "ISC" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -2798,6 +2840,7 @@ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3006,6 +3049,20 @@ "flat": "cli.js" } }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -3516,10 +3573,11 @@ "optional": true }, "node_modules/node-releases": { - "version": "2.0.50", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", - "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", + "version": "2.0.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz", + "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -4367,9 +4425,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz", + "integrity": "sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==", "dev": true, "funding": [ { @@ -4385,6 +4443,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" diff --git a/static/package.json b/static/package.json index 069230d..c16ed77 100644 --- a/static/package.json +++ b/static/package.json @@ -20,6 +20,7 @@ "@babel/preset-env": "^8.0.2", "@types/bootstrap": "^5.2.11", "@types/node": "^26.1.0", + "autoprefixer": "^10.5.4", "babel-loader": "^10.1.1", "copy-webpack-plugin": "^14.0.0", "core-js": "^3.49.0", diff --git a/static/src/lib/weather-icons/sass/_weather-icons-svg.scss b/static/src/lib/weather-icons/sass/_weather-icons-svg.scss index 225c87f..c99d737 100644 --- a/static/src/lib/weather-icons/sass/_weather-icons-svg.scss +++ b/static/src/lib/weather-icons/sass/_weather-icons-svg.scss @@ -4,8 +4,12 @@ weather-icon, .wi-svg { display: flex; width: 3rem; + height: 3rem; > svg { + width: 3rem; + height: 3rem; + path { fill: gray; } @@ -29,8 +33,20 @@ weather-icon, &.wi-s { width: 2.5rem; + height: 2.5rem; + + > svg { + width: 2.5rem; + height: 2.5rem; + } } &.wi-l { width: 3.5rem; + height: 3.5rem; + + > svg { + width: 3.5rem; + height: 3.5rem; + } } } diff --git a/static/webpack.config.ts b/static/webpack.config.ts index cc07d2c..dfb9802 100644 --- a/static/webpack.config.ts +++ b/static/webpack.config.ts @@ -24,7 +24,15 @@ const config: webpack.Configuration = { use: [ MiniCssExtractPlugin.loader, { loader: "css-loader", options: { sourceMap: false, url: false } }, - { loader: "postcss-loader", options: { sourceMap: false } }, + { + loader: "postcss-loader", + options: { + sourceMap: false, + postcssOptions: { + plugins: [["autoprefixer", { grid: "autoplace" }]], + }, + }, + }, { loader: "sass-loader", options: {