aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-01fix round_to_multiple for second-level accuracyDaniel Schadt
It was ovious that this is broken when you try to round "0s" to second-level granularity, and you end up with "1s". The problem comes from the fact that we use the integer divison when checking whether we should round up or down, but then also use strict inequality. To fix this, we now also round down if the second_offset is equal to the halfway point (which in the case of second-level granularity is 0).
2023-04-01actually check permission for user profilesDaniel Schadt
Otherwise everyone can just access any profile.
2023-04-01fix copy/paste errorDaniel Schadt
We copied the factory method from Track, but forgot to change some of the words. Now the code fits better with what the function is doing. As a bonus, pylint no longer complains about a duplicate method.
2023-03-31hide ugliness of tile url functionDaniel Schadt
We basically do the same hacky trick in two different places, so maybe we should put it into a separate function, test it, and if a better implementation arises, swap it.
2023-03-31add a link to the profile to the user menuDaniel Schadt
2023-03-31suppress hittekaart standard outputDaniel Schadt
Otherwise it'll show progress bars.
2023-03-31insert user into hittekaart queue on track uploadsDaniel Schadt
2023-03-31make fietscron call hittekaartDaniel Schadt
2023-03-31stop sqlite3 DB creation if it doesnt existDaniel Schadt
This would otherwise happen if e.g. the user has the page open, the SQLite file is deleted, the user then activates the overlay layer, and the sqlite3.connect() creates the database.
2023-03-29fix lintDaniel Schadt
2023-03-29profile: show longest duration & duration tracksDaniel Schadt
2023-03-29fix longest/shortest confusionDaniel Schadt
2023-03-27profile: add longest and shortest trackDaniel Schadt
2023-03-27profile: move cumulative stats to helper classDaniel Schadt
The reason for that is that we want to add "longest track"/"shortest track" soon, and the profile() function is getting a bit long
2023-03-25first integration of hittekaart into fietsboekDaniel Schadt
This makes it a bit easier to generate heatmaps, but at the moment, it only works manually. The "long-term" goal is to have fietscron generate heatmaps on a regular basis.
2023-03-25profile: take into account all tracksDaniel Schadt
With the previous logic, we only counted those that the user themselves uploaded.
2023-03-25use own i18n strings for profile pageDaniel Schadt
2023-03-25add number of tracks to profileDaniel Schadt
2023-03-25profile: show first base layer per defaultDaniel Schadt
Otherwise it does look very empty when you open the page.
2023-03-25add docstringsDaniel Schadt
2023-03-25show heatmap on profileDaniel Schadt
So far, fietsboek does not generate them, but if you happen (by accident) to have hittekaart output a heatmap to the right location, the profile page will now show it.
2023-03-25first scaffolding for profilesDaniel Schadt
2023-03-25rename profile to user-dataDaniel Schadt
This is not really a profile page, but rather a page to change your personal data, so it should be named accordingly (in preparation for real profiles). Additionally, we use POST requests to deal with the data change.
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.