aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-08fix transformer handling when uploading a fileDaniel Schadt
2023-02-08add a short description to transformersDaniel 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/
2023-01-19add a small test for maintenance modeDaniel Schadt
2023-01-19implement maintenance modeDaniel Schadt
2023-01-19replace some more :type ...: with type hintsDaniel Schadt
2023-01-12update website URL in pyprojectDaniel Schadt
2023-01-12bump version to v0.5.0v0.5.0Daniel Schadt
2023-01-12update dependenciesDaniel Schadt
2023-01-12update bootstrap icons to 1.10.3Daniel Schadt
2023-01-12update bootstrap to 5.3.0-alpha1Daniel Schadt
2023-01-12update to GPXViewer 6.17Daniel Schadt
2023-01-12adjust zoom levels for stamen mapsDaniel Schadt
Note that those are not documented, but based on trial-and-error. Terrain and Watercolor return 404 at the next zoom level, indicating that this is the max that they support. Toner does serve some tiles at level 18, but a lot of them return a 503.
2023-01-12fix layer types not being recognizedDaniel Schadt
Since we aliased the field layer_type to layer, we would need to use type=... to set it. However, it is a bit confusing if we access it as TileLayerConfig.layer_type, but set it with type=..., therefore let's just turn on allow_population_by_field_name. This option lets us use layer_type=... to set the field when initializing the object.
2023-01-12fix maximum map zoom level not being honoredDaniel Schadt
2023-01-10use GPX track description if availableDaniel Schadt
2023-01-04Add fietscron script for maintenanceDaniel Schadt
2023-01-03add update script that embeds metadataDaniel Schadt
2023-01-03add tests for adding/removing friendsDaniel Schadt
2023-01-03update dependenciesDaniel Schadt
2023-01-03fix help message of "fietsctl passwd"Daniel Schadt
2023-01-03update changelogDaniel Schadt
2023-01-03add isort to tox envlistDaniel Schadt
2023-01-03add type hints to fietsboek.pagesDaniel Schadt
2022-12-29fix readthedocsDaniel Schadt
2022-12-29fix lintDaniel Schadt
2022-12-29add type hints to fietsboek.emailDaniel Schadt
2022-12-29generate & build API docs for the Python packageDaniel Schadt
We have so many nice docstrings, but they aren't really rendered anywhere (expect locally in your IDE), as we did not include the API docs anywhere. This change uses sphinx-apidoc to generate autodoc stubs for Sphinx, so that the docstrings are actually rendered to HTML. This is not perfect yet (I'm not too happy about the default modules.rst simply listing one package), but it is good enough for the start and makes it possible to actually browse the docstrings in a browser.
2022-12-29update READMEDaniel Schadt
2022-12-29add & run isortDaniel Schadt
2022-12-29start to move out high-level actionsDaniel Schadt
This is code that needs to be repeated in possibly several places (website, API, tests), so it makes sense to have those "high level actions" a bit abstracted. edit.edit_images was already doing that to a certain degree, but the code shouldn't have stayed in the view.
2022-12-29add playwright tests for the sharing functionalityDaniel Schadt
2022-12-28embed metadata (title, description) in the fileDaniel Schadt
2022-12-28lock track directory when editingDaniel Schadt
This is important if concurrent requests to edit the same track are made, both for images and later for metadata embedding.
2022-12-23exclude vendored files from statsDaniel Schadt
2022-12-23fix .gitlab-ci YAML syntaxDaniel Schadt