aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2 daysMerge branch 'pdf'HEADmasterDaniel Schadt
10 daysspeed up track adding in test_browseDaniel Schadt
10 daysadd smoke test for pdf generationDaniel Schadt
This doesn't check any content of the PDF, but ensures that running typst does not produce an error.
10 daysignore matploblib debug logs in testsDaniel Schadt
matplotlib procudes a lot of lines for the font manager, which really clutter the log output for everything else.
10 daysfix TrackWithMetadata attribute accessDaniel Schadt
10 daysadjust image size in pdfDaniel Schadt
2025-11-25add unit tests for typst escapingDaniel Schadt
2025-11-25add button to download PDFDaniel Schadt
2025-11-22remove unneeded importDaniel Schadt
2025-11-22add test for xml_escapeDaniel Schadt
2025-11-22remove uneeded functionDaniel Schadt
2025-11-22remove unneeded importDaniel Schadt
2025-11-22don't offer brotli content encodingDaniel Schadt
That was good while we still had files saved brotli-compressed, but now it adds more overhead.
2025-11-22speed up track xml serializationDaniel Schadt
The comment explains it.
2025-11-20fix typesDaniel Schadt
2025-11-20add height profile to PDFDaniel Schadt
2025-11-20add docstrings & fix lintDaniel Schadt
2025-11-20add translation strings for PDFDaniel Schadt
2025-11-20initial PDF generationDaniel Schadt
This adds initial functionality to render PDF overviews of tracks. I was pondering to use reportlab and do it completely in Python, but the effort of doing proper layouting seemed to much. Add to that the fact that Typst has much nicer typesetting, it seems like a no-brainer to use it.
2025-11-16fix lintDaniel Schadt
2025-11-16enable foreign key checks in SQLiteDaniel Schadt
2025-11-16properly clean up track cache in testDaniel Schadt
2025-11-16further speed up testsDaniel Schadt
A lot of time in test_browse was spent retrieving path points and computing metadata. Why not save it while we still have the path ready?
2025-11-16fix lintDaniel Schadt
2025-11-16speed up track insertionDaniel Schadt
It turns out that adding multiple thousands of track points via the ORM is quite slow, which is especially noticable in the browse_paged test (as 50 tracks are added there). This provides the fast_set_path method, which goes directly to the database, utilizing the executemany() capability. On the CI, the gpx-influx decreased test runtime from ~4min to ~18min. This change should make it much faster again.
2025-11-15refine woodpecker configDaniel Schadt
2025-11-14enable woodpecker CIDaniel Schadt
2025-11-14make lon/lat non-nullableDaniel Schadt
I want to have more columns non-nullable, but it's a pain to change in SQLite. We can still try to be careful with new columns, though, and use nullable=False more often when appropriate. While this changes the schema without a new migration, I think for this case it is fine.
2025-11-14fix SQLAlchemy typesDaniel Schadt
See https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html#whatsnew-20-orm-declarative-typing The Mapped[] annotations help mypy to find the right types for the instance attributes. Some of the mapped_column() definitions are superfluous, but I think it's nice to have them explicit.
2025-11-14be graceful if users/tracks dirs not foundDaniel Schadt
This may happen on a fresh instance, when you navigate to the admin view.
2025-11-14Merge branch 'gpx-influx'Daniel Schadt
2025-11-14add missing return statementDaniel Schadt
2025-11-13check DB connectivity before updatingDaniel Schadt
2025-11-12respect track date when downgradingDaniel Schadt
2025-11-11fix lintDaniel Schadt
2025-11-11fix update script for empty data directoriesDaniel Schadt
2025-11-09add update script for reading GPX to databaseDaniel Schadt
2025-11-09change backup path to not contain .gpxDaniel Schadt
Since this file could now also be a .fit file, let's just drop the extension.
2025-11-09better error handling for convert.smart_convertDaniel Schadt
Returning None is pretty nondescript, so let's make it official that we raise an exception there.
2025-11-09fix SQLA warning about object not in sessionDaniel Schadt
2025-11-09fix fietscronDaniel Schadt
2025-11-01fix lintDaniel Schadt
2025-11-01include database size in total sizeDaniel Schadt
2025-11-01split track data and backups in storage breakdownDaniel Schadt
2025-11-01fix size breakdownDaniel Schadt
2025-11-01fix testsDaniel Schadt
With the values being computed ourselves, they differ a bit from the previous gpxpy values. Therefore, we adjust the expected values in the tests.
2025-11-01don't choke if no timestamp or elevation is givenDaniel Schadt
This is a continuation of the previous commit, useful for synthetic tracks. We don't really care about the value, it shouldn't be shown anyway.
2025-11-01don't choke if no GPX timestamps are setDaniel Schadt
This usually happens in synthetic tracks, which we still want to load correctly.
2025-11-01fix archive downloadDaniel Schadt
2025-10-28have hittekaart use the tracks from the databaseDaniel Schadt