aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-25add an initial DockerfileDaniel Schadt
2023-03-25fix eslint CI jobDaniel Schadt
Turns out you need to supply an actual empty array. While we're playing with the CI configuration, we also move the deprecated global image/cache/before_script sections into the "default" section.
2023-03-25run eslint on the CIDaniel Schadt
2023-03-25ignore compiled js and css files in linguistDaniel Schadt
2023-03-24move (most of the) JavaScript code to TypeScriptDaniel Schadt
Yay, types! (And a lot of escape hatches)
2023-03-23rewrite fietsctl to use clickDaniel Schadt
This makes it consistent with the other scripts (fietsupdate, fietscron), and makes the argument parsing setup a bit nicer to read.
2023-03-22add documentation about SASS and JSDaniel Schadt
2023-03-22use sass for the CSS filesDaniel Schadt
2023-03-22use npm to manage Javascript librariesDaniel Schadt
I'm not the biggest fan of combining many package managers, but the JavaScript libraries (Bootstrap, Bootstrap-Icons, later the @types modules and Leaflet) are easy to get via npm, so maybe we can use that to our advantage and have npm at least download them.
2023-03-08bump version to 0.6.0v0.6.0Daniel Schadt
2023-03-08update dependenciesDaniel Schadt
2023-03-08update changelogDaniel Schadt
2023-03-08adjust release checklist for Python 3.9Daniel Schadt
2023-03-07wait until accordion is expandedDaniel Schadt
Currently, the test seems flaky on CI due to playwright._impl._api_types.Error: Clicking the checkbox did not change its state Maybe this is the change that will fix it?
2023-03-07tests: use .check() instead of .click()Daniel Schadt
This gets the intent across clearer
2023-03-07disable cache for transformer testsDaniel Schadt
2023-03-07fix duplicated importDaniel Schadt
2023-03-07update changelogDaniel Schadt
2023-03-07Merge branch 'transformers'Daniel Schadt
2023-03-07switch order of expect & assertDaniel Schadt
While it shouldn't change the outcome of the test, it might make the test less flaky, as the expect call will wait until the page is loaded - which also indicates that the data is updated. Without this, the test depends on the backend being "fast enough" with applying the transformation.
2023-03-07fix typo in log messageDaniel Schadt
2023-03-07add some documentation about transformersDaniel Schadt
2023-03-07also test transformers when editing a trackDaniel Schadt
2023-03-06implement rollbacks on the data directoryDaniel Schadt
This helps if the upload/editing process fails, so that we don't end up with orphan data directories (probably the most important change!), or superfluous image files.
2023-03-04fix deprecated SQLAlchemy functionsDaniel Schadt
Getting ready for SQLAlchemy 2.0!
2023-03-04add tests for the new transformerDaniel Schadt
2023-03-04transformers: de-duplicate fixup codeDaniel Schadt
2023-03-02FixNullElevation: also take into account slopeDaniel Schadt
For some reason, I have GPX tracks that have the first two points be ~100 meters apart in elevation, but only ~20 meters apart in distance. This is quite unrealistic and produces pretty bad height plots (almost as bad as the zero elevation). Since the issue is very related, and the fix is pretty much the same, I thought it would be a good idea to adapt the FixNullElevation transformer to handle this case as well. For reference, "the internet" says that the maximum slope for a MTB is ~15% to ~35%, depending on the conditions - with 35% being pretty steep. I think it's fair to throw away elevations that exceed 100% (basically a 45° angle upwards), especially since we only discard them at the start and end.
2023-03-02fix lintDaniel Schadt
2023-02-21rework transformer parameter UI logicDaniel Schadt
I don't like interweaving the HTML code into the business logic, so now we can have that in the Jinja template. Ideally, the list of definitions would be generated automatically from the model attributes.
2023-02-15try to avoid parsing the GPX more than onceDaniel Schadt
2023-02-15properly rebuild cache after changing transformersDaniel Schadt
2023-02-15implement null-elevation-fix transformerDaniel Schadt
2023-02-15actually save transformed GPX after uploadDaniel Schadt
2023-02-15Merge branch 'max-tile-connections'Daniel Schadt
2023-02-14remove {abc} tile server prefixDaniel Schadt
Those prefixes mainly exist to help browsers with their per-domain connection limit [1]: > Subdomains are used to help with browser parallel requests per domain limitation For us, we don't care about that limit, because we do not implement it (server side at least). It's even better to not have those domains, as otherwise our new connection limitation will get confused. We might think about adding them back if the tile proxy is disabled, but for now they seem to serve no purpose for us. [1]: https://wiki.openstreetmap.org/wiki/Raster_tile_providers
2023-02-14use requests Session for tile requestsDaniel Schadt
This allows us to 1. Get better performance by re-using Keep-Alive connections instead of re-opening one for each single tile and 2. Better honor the usage policies of the tile servers by not hammering them with many concurrent connections
2023-02-08fix transformer handling when uploading a fileDaniel Schadt
2023-02-08add a short description to transformersDaniel Schadt
2023-02-06update changelogDaniel Schadt
2023-02-06add tracks per time period on home pageDaniel Schadt
2023-02-05fix lintDaniel Schadt
2023-02-05hide track name ("legende") in GPX ViewerDaniel Schadt
2023-02-03initial work on transformersDaniel Schadt
So far it doesn't really do much yet, but it does have the machinery to list the available transformers and run them. It also memorizes if the transformers even need to be run at all, to save time if the current configuration already matches. The parameter UI still needs some work. This is fine because the first transformer will not have any parameters (it's just the elevation fix). We probably don't want to have a method that returns Markup, as that makes it hard to implement localization in there, and the method would need to be aware of bootstrap. Another point to think about is documentation. I'd like some information for the user what the "transformers" are, so we'll probably add a small tagline and later extend the documentation with some more information (I want a user chapter in there at some point anyway).
2023-02-03fix permissions for GM_UtilsDaniel Schadt
We don't need (and probably shouldn't have) all those executable bits set.
2023-01-25update lockfileDaniel Schadt
2023-01-25add Python version badge to READMEDaniel Schadt
2023-01-25install right playwright version in pypy3 envDaniel Schadt
If we install playwright without specifying a version, we'll get the latest one, which might not be what the virtual env expects.
2023-01-25bump minimum Python version up to 3.9Daniel Schadt
3.7 will reach EOL in June of 2023, so it doesn't really make too much sense to forcefully stick with it for much longer - especially since upgrading gives us a few nice things (walrus, type subscription on builtins). 3.9 is shipped by Debian 11 (stable), so everything should be good.
2023-01-25make encoding in read_text/write_text explicitDaniel Schadt
We always use UTF-8, and this way we won't run into funky OS-dependent encoding magic. See also https://peps.python.org/pep-0686/