diff options
-rw-r--r-- | fietsboek/locale/de/LC_MESSAGES/messages.mo | bin | 15377 -> 15508 bytes | |||
-rw-r--r-- | fietsboek/locale/de/LC_MESSAGES/messages.po | 152 | ||||
-rw-r--r-- | fietsboek/locale/en/LC_MESSAGES/messages.mo | bin | 14369 -> 14483 bytes | |||
-rw-r--r-- | fietsboek/locale/en/LC_MESSAGES/messages.po | 152 | ||||
-rw-r--r-- | fietsboek/locale/fietslog.pot | 156 | ||||
-rw-r--r-- | fietsboek/templates/profile.jinja2 | 8 | ||||
-rw-r--r-- | fietsboek/views/profile.py | 17 |
7 files changed, 267 insertions, 218 deletions
diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.mo b/fietsboek/locale/de/LC_MESSAGES/messages.mo Binary files differindex 3c020df..aeb978d 100644 --- a/fietsboek/locale/de/LC_MESSAGES/messages.mo +++ b/fietsboek/locale/de/LC_MESSAGES/messages.mo diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.po b/fietsboek/locale/de/LC_MESSAGES/messages.po index 24e1cb5..934ac94 100644 --- a/fietsboek/locale/de/LC_MESSAGES/messages.po +++ b/fietsboek/locale/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-11-10 22:23+0100\n" +"POT-Creation-Date: 2024-02-02 23:44+0100\n" "PO-Revision-Date: 2022-07-02 17:35+0200\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language: de\n" @@ -18,54 +18,54 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.12.1\n" -#: fietsboek/actions.py:257 +#: fietsboek/actions.py:267 msgid "email.verify_mail.subject" msgstr "Fietsboek Konto Bestätigung" -#: fietsboek/actions.py:260 +#: fietsboek/actions.py:270 msgid "email.verify.text" msgstr "" "Um Dein Fietsboek-Konto zu bestätigen, nutze diesen Link: {}\n" "\n" "Falls Du kein Konto angelegt hast, ignoriere diese E-Mail." -#: fietsboek/util.py:306 +#: fietsboek/util.py:307 msgid "password_constraint.mismatch" msgstr "Passwörter stimmen nicht überein" -#: fietsboek/util.py:308 +#: fietsboek/util.py:309 msgid "password_constraint.length" msgstr "Passwort zu kurz" -#: fietsboek/models/track.py:602 +#: fietsboek/models/track.py:603 msgid "tooltip.table.length" msgstr "Länge" -#: fietsboek/models/track.py:603 +#: fietsboek/models/track.py:604 msgid "tooltip.table.people" msgstr "# Personen" -#: fietsboek/models/track.py:604 +#: fietsboek/models/track.py:605 msgid "tooltip.table.uphill" msgstr "Bergauf" -#: fietsboek/models/track.py:605 +#: fietsboek/models/track.py:606 msgid "tooltip.table.downhill" msgstr "Bergab" -#: fietsboek/models/track.py:606 +#: fietsboek/models/track.py:607 msgid "tooltip.table.moving_time" msgstr "Fahrzeit" -#: fietsboek/models/track.py:607 +#: fietsboek/models/track.py:608 msgid "tooltip.table.stopped_time" msgstr "Haltezeit" -#: fietsboek/models/track.py:609 +#: fietsboek/models/track.py:610 msgid "tooltip.table.max_speed" msgstr "Maximalgeschwindigkeit" -#: fietsboek/models/track.py:613 +#: fietsboek/models/track.py:614 msgid "tooltip.table.avg_speed" msgstr "Durchschnittsgeschwindigkeit" @@ -462,36 +462,36 @@ msgstr "Markierte Personen" msgid "page.track.form.add_friend" msgstr "Freund suchen" -#: fietsboek/templates/edit_form.jinja2:90 +#: fietsboek/templates/edit_form.jinja2:92 msgid "page.track.form.badges" msgstr "Wappen" -#: fietsboek/templates/edit_form.jinja2:101 +#: fietsboek/templates/edit_form.jinja2:103 msgid "page.track.form.description" msgstr "Beschreibung" -#: fietsboek/templates/edit_form.jinja2:108 -#: fietsboek/templates/edit_form.jinja2:129 +#: fietsboek/templates/edit_form.jinja2:110 +#: fietsboek/templates/edit_form.jinja2:131 msgid "page.track.form.remove_image" msgstr "Bild entfernen" -#: fietsboek/templates/edit_form.jinja2:118 +#: fietsboek/templates/edit_form.jinja2:120 msgid "page.track.form.select_images" msgstr "Bilder auswählen" -#: fietsboek/templates/edit_form.jinja2:122 +#: fietsboek/templates/edit_form.jinja2:124 msgid "page.track.form.image_uploads_disabled" msgstr "Das Hochladen von Bildern ist auf diesem Fietsboek deaktiviert" -#: fietsboek/templates/edit_form.jinja2:140 +#: fietsboek/templates/edit_form.jinja2:142 msgid "page.track.form.image_description_modal" msgstr "Bildbeschreibung" -#: fietsboek/templates/edit_form.jinja2:147 +#: fietsboek/templates/edit_form.jinja2:149 msgid "page.track.form.image_description_modal.save" msgstr "Übernehmen" -#: fietsboek/templates/edit_form.jinja2:173 +#: fietsboek/templates/edit_form.jinja2:175 msgid "page.track.form.transformer.enable" msgstr "Transformation anwenden" @@ -630,59 +630,67 @@ msgstr "Passwörter stimmen nicht überein" msgid "page.password_reset.reset" msgstr "Zurücksetzen" -#: fietsboek/templates/profile.jinja2:66 +#: fietsboek/templates/profile.jinja2:67 msgid "page.profile.length" msgstr "Länge" -#: fietsboek/templates/profile.jinja2:70 +#: fietsboek/templates/profile.jinja2:71 +msgid "page.profile.avg_length" +msgstr "durchschnittliche Länge" + +#: fietsboek/templates/profile.jinja2:75 msgid "page.profile.uphill" msgstr "Bergauf" -#: fietsboek/templates/profile.jinja2:74 +#: fietsboek/templates/profile.jinja2:79 msgid "page.profile.downhill" msgstr "Bergab" -#: fietsboek/templates/profile.jinja2:78 +#: fietsboek/templates/profile.jinja2:83 msgid "page.profile.moving_time" msgstr "Fahrzeit" -#: fietsboek/templates/profile.jinja2:82 +#: fietsboek/templates/profile.jinja2:87 msgid "page.profile.stopped_time" msgstr "Haltezeit" -#: fietsboek/templates/profile.jinja2:86 +#: fietsboek/templates/profile.jinja2:91 +msgid "page.profile.avg_duration" +msgstr "durchschnittliche Dauer" + +#: fietsboek/templates/profile.jinja2:95 msgid "page.profile.max_speed" msgstr "maximale Geschwindigkeit" -#: fietsboek/templates/profile.jinja2:90 +#: fietsboek/templates/profile.jinja2:99 msgid "page.profile.avg_speed" msgstr "durchschnittliche Geschwindigkeit" -#: fietsboek/templates/profile.jinja2:94 +#: fietsboek/templates/profile.jinja2:103 msgid "page.profile.number_of_tracks" msgstr "Anzahl der Strecken" -#: fietsboek/templates/profile.jinja2:100 +#: fietsboek/templates/profile.jinja2:109 msgid "page.profile.longest_distance_track" msgstr "Weiteste Strecke" -#: fietsboek/templates/profile.jinja2:105 +#: fietsboek/templates/profile.jinja2:114 msgid "page.profile.shortest_distance_track" msgstr "Kürzeste Strecke" -#: fietsboek/templates/profile.jinja2:110 +#: fietsboek/templates/profile.jinja2:119 msgid "page.profile.longest_duration_track" msgstr "Am Längsten Dauernde Strecke" -#: fietsboek/templates/profile.jinja2:115 +#: fietsboek/templates/profile.jinja2:124 msgid "page.profile.shortest_duration_track" msgstr "Am Kürzesten Dauernde Strecke" -#: fietsboek/templates/profile.jinja2:135 +#: fietsboek/templates/profile.jinja2:144 msgid "page.profile.heatmap" msgstr "Heatmap" -#: fietsboek/templates/profile.jinja2:140 +#: fietsboek/templates/profile.jinja2:149 msgid "page.profile.tilehunt" msgstr "Kacheljäger" @@ -792,87 +800,87 @@ msgstr "E-Mail-Adresse des Freundes" msgid "page.my_profile.send_friend_request" msgstr "Freundschaftsanfrage senden" -#: fietsboek/transformers/breaks.py:31 +#: fietsboek/transformers/breaks.py:32 msgid "transformers.remove-breaks.title" msgstr "Pausen entfernen" -#: fietsboek/transformers/breaks.py:35 +#: fietsboek/transformers/breaks.py:36 msgid "transformers.remove-breaks.description" msgstr "Diese Transformation entfernt längere Pausen aus der Aufnahme." -#: fietsboek/transformers/elevation.py:42 +#: fietsboek/transformers/elevation.py:43 msgid "transformers.fix-null-elevation.title" msgstr "Nullhöhen beheben" -#: fietsboek/transformers/elevation.py:46 +#: fietsboek/transformers/elevation.py:47 msgid "transformers.fix-null-elevation.description" msgstr "" "Diese Transformation passt die Höhenangabe für Punkte an, bei denen die " "Höhenangabe fehlt." -#: fietsboek/transformers/elevation.py:115 +#: fietsboek/transformers/elevation.py:116 msgid "transformers.fix-elevation-jumps" msgstr "Höhensprünge beheben" -#: fietsboek/transformers/elevation.py:119 +#: fietsboek/transformers/elevation.py:120 msgid "transformers.fix-elevation-jumps.description" msgstr "" "Diese Transformation passt die Höhenangabe für Punkte an, bei denen die " "Höhe sprunghaft steigt oder fällt." -#: fietsboek/views/account.py:53 +#: fietsboek/views/account.py:54 msgid "flash.invalid_name" msgstr "Ungültiger Name" -#: fietsboek/views/account.py:58 +#: fietsboek/views/account.py:59 msgid "flash.invalid_email" msgstr "Ungültige E-Mail-Adresse" -#: fietsboek/views/account.py:68 +#: fietsboek/views/account.py:69 msgid "flash.a_confirmation_link_has_been_sent" msgstr "Ein Bestätigungslink wurde versandt" -#: fietsboek/views/admin.py:48 +#: fietsboek/views/admin.py:49 msgid "flash.badge_added" msgstr "Wappen hinzugefügt" -#: fietsboek/views/admin.py:72 +#: fietsboek/views/admin.py:73 msgid "flash.badge_modified" msgstr "Wappen bearbeitet" -#: fietsboek/views/admin.py:92 +#: fietsboek/views/admin.py:93 msgid "flash.badge_deleted" msgstr "Wappen gelöscht" -#: fietsboek/views/default.py:115 +#: fietsboek/views/default.py:116 msgid "flash.invalid_credentials" msgstr "Ungültige Nutzerdaten" -#: fietsboek/views/default.py:119 +#: fietsboek/views/default.py:120 msgid "flash.account_not_verified" msgstr "Konto noch nicht bestätigt" -#: fietsboek/views/default.py:122 +#: fietsboek/views/default.py:123 msgid "flash.logged_in" msgstr "Du bist nun angemeldet" -#: fietsboek/views/default.py:143 +#: fietsboek/views/default.py:144 msgid "flash.logged_out" msgstr "Du bist nun abgemeldet" -#: fietsboek/views/default.py:173 +#: fietsboek/views/default.py:174 msgid "flash.reset_invalid_email" msgstr "Ungültige E-Mail-Adresse angegeben" -#: fietsboek/views/default.py:178 +#: fietsboek/views/default.py:179 msgid "flash.password_token_generated" msgstr "Ein Link zum Zurücksetzen des Passworts wurde versandt" -#: fietsboek/views/default.py:183 +#: fietsboek/views/default.py:184 msgid "page.password_reset.email.subject" msgstr "Fietsboek Passwortzurücksetzung" -#: fietsboek/views/default.py:186 +#: fietsboek/views/default.py:187 msgid "page.password_reset.email.body" msgstr "" "Du kannst Dein Fietsboek-Passwort hier zurücksetzen: {}\n" @@ -880,67 +888,67 @@ msgstr "" "Falls Du keine Passwortzurücksetzung beantragt hast, dann ignoriere diese" " E-Mail." -#: fietsboek/views/default.py:225 +#: fietsboek/views/default.py:226 msgid "flash.resend_verification_email_fail" msgstr "Ungültige E-Mail-Adresse angegeben" -#: fietsboek/views/default.py:230 +#: fietsboek/views/default.py:231 msgid "flash.verification_token_generated" msgstr "Ein Link zur Bestätigung Deines Kontos wurde versandt" -#: fietsboek/views/default.py:250 +#: fietsboek/views/default.py:251 msgid "flash.token_expired" msgstr "Der Link ist nicht mehr gültig" -#: fietsboek/views/default.py:256 +#: fietsboek/views/default.py:257 msgid "flash.email_verified" msgstr "E-Mail-Adresse bestätigt" -#: fietsboek/views/default.py:270 +#: fietsboek/views/default.py:271 msgid "flash.password_updated" msgstr "Passwort aktualisiert" -#: fietsboek/views/detail.py:161 +#: fietsboek/views/detail.py:162 msgid "flash.track_deleted" msgstr "Strecke gelöscht" -#: fietsboek/views/upload.py:52 +#: fietsboek/views/upload.py:53 msgid "flash.no_file_selected" msgstr "Keine Datei ausgewählt" -#: fietsboek/views/upload.py:65 +#: fietsboek/views/upload.py:66 msgid "flash.invalid_file" msgstr "Ungültige GPX-Datei gesendet" -#: fietsboek/views/upload.py:191 +#: fietsboek/views/upload.py:192 msgid "flash.upload_success" msgstr "Hochladen erfolgreich" -#: fietsboek/views/upload.py:210 +#: fietsboek/views/upload.py:211 msgid "flash.upload_cancelled" msgstr "Hochladen abgebrochen" -#: fietsboek/views/user_data.py:66 +#: fietsboek/views/user_data.py:67 msgid "flash.personal_data_updated" msgstr "Persönliche Daten wurden gespeichert" -#: fietsboek/views/user_data.py:85 +#: fietsboek/views/user_data.py:86 msgid "flash.friend_not_found" msgstr "Das angegebene Konto wurde nicht gefunden" -#: fietsboek/views/user_data.py:91 +#: fietsboek/views/user_data.py:92 msgid "flash.friend_already_exists" msgstr "Dieser Freund existiert bereits" -#: fietsboek/views/user_data.py:99 +#: fietsboek/views/user_data.py:100 msgid "flash.friend_added" msgstr "Freund hinzugefügt" -#: fietsboek/views/user_data.py:109 +#: fietsboek/views/user_data.py:110 msgid "flash.friend_request_sent" msgstr "Freundschaftsanfrage gesendet" -#: fietsboek/views/user_data.py:195 +#: fietsboek/views/user_data.py:196 msgid "flash.sessions_logged_out" msgstr "Die Sitzungen wurden beendet. Melde Dich bitte erneut an, um fortzufahren." diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.mo b/fietsboek/locale/en/LC_MESSAGES/messages.mo Binary files differindex c03929b..9f7170c 100644 --- a/fietsboek/locale/en/LC_MESSAGES/messages.mo +++ b/fietsboek/locale/en/LC_MESSAGES/messages.mo diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.po b/fietsboek/locale/en/LC_MESSAGES/messages.po index f5a7874..645d059 100644 --- a/fietsboek/locale/en/LC_MESSAGES/messages.po +++ b/fietsboek/locale/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-11-10 22:23+0100\n" +"POT-Creation-Date: 2024-02-02 23:44+0100\n" "PO-Revision-Date: 2023-04-03 20:42+0200\n" "Last-Translator: \n" "Language: en\n" @@ -18,54 +18,54 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.12.1\n" -#: fietsboek/actions.py:257 +#: fietsboek/actions.py:267 msgid "email.verify_mail.subject" msgstr "Fietsboek Account Verification" -#: fietsboek/actions.py:260 +#: fietsboek/actions.py:270 msgid "email.verify.text" msgstr "" "To verify your Fietsboek account, please use this link: {}\n" "\n" "If you did not create an account, ignore this email." -#: fietsboek/util.py:306 +#: fietsboek/util.py:307 msgid "password_constraint.mismatch" msgstr "Passwords don't match" -#: fietsboek/util.py:308 +#: fietsboek/util.py:309 msgid "password_constraint.length" msgstr "Password not long enough" -#: fietsboek/models/track.py:602 +#: fietsboek/models/track.py:603 msgid "tooltip.table.length" msgstr "Length" -#: fietsboek/models/track.py:603 +#: fietsboek/models/track.py:604 msgid "tooltip.table.people" msgstr "# People" -#: fietsboek/models/track.py:604 +#: fietsboek/models/track.py:605 msgid "tooltip.table.uphill" msgstr "Uphill" -#: fietsboek/models/track.py:605 +#: fietsboek/models/track.py:606 msgid "tooltip.table.downhill" msgstr "Downhill" -#: fietsboek/models/track.py:606 +#: fietsboek/models/track.py:607 msgid "tooltip.table.moving_time" msgstr "Moving Time" -#: fietsboek/models/track.py:607 +#: fietsboek/models/track.py:608 msgid "tooltip.table.stopped_time" msgstr "Stopped Time" -#: fietsboek/models/track.py:609 +#: fietsboek/models/track.py:610 msgid "tooltip.table.max_speed" msgstr "Max Speed" -#: fietsboek/models/track.py:613 +#: fietsboek/models/track.py:614 msgid "tooltip.table.avg_speed" msgstr "Average Speed" @@ -458,36 +458,36 @@ msgstr "Tagged People" msgid "page.track.form.add_friend" msgstr "Search friends" -#: fietsboek/templates/edit_form.jinja2:90 +#: fietsboek/templates/edit_form.jinja2:92 msgid "page.track.form.badges" msgstr "Badges" -#: fietsboek/templates/edit_form.jinja2:101 +#: fietsboek/templates/edit_form.jinja2:103 msgid "page.track.form.description" msgstr "Description" -#: fietsboek/templates/edit_form.jinja2:108 -#: fietsboek/templates/edit_form.jinja2:129 +#: fietsboek/templates/edit_form.jinja2:110 +#: fietsboek/templates/edit_form.jinja2:131 msgid "page.track.form.remove_image" msgstr "Remove image" -#: fietsboek/templates/edit_form.jinja2:118 +#: fietsboek/templates/edit_form.jinja2:120 msgid "page.track.form.select_images" msgstr "Select images" -#: fietsboek/templates/edit_form.jinja2:122 +#: fietsboek/templates/edit_form.jinja2:124 msgid "page.track.form.image_uploads_disabled" msgstr "Image uploads are disabled on this Fietsboek" -#: fietsboek/templates/edit_form.jinja2:140 +#: fietsboek/templates/edit_form.jinja2:142 msgid "page.track.form.image_description_modal" msgstr "Image description" -#: fietsboek/templates/edit_form.jinja2:147 +#: fietsboek/templates/edit_form.jinja2:149 msgid "page.track.form.image_description_modal.save" msgstr "Apply" -#: fietsboek/templates/edit_form.jinja2:173 +#: fietsboek/templates/edit_form.jinja2:175 msgid "page.track.form.transformer.enable" msgstr "Apply transformation" @@ -624,59 +624,67 @@ msgstr "Passwords must match" msgid "page.password_reset.reset" msgstr "Reset" -#: fietsboek/templates/profile.jinja2:66 +#: fietsboek/templates/profile.jinja2:67 msgid "page.profile.length" msgstr "Length" -#: fietsboek/templates/profile.jinja2:70 +#: fietsboek/templates/profile.jinja2:71 +msgid "page.profile.avg_length" +msgstr "Average Length" + +#: fietsboek/templates/profile.jinja2:75 msgid "page.profile.uphill" msgstr "Uphill" -#: fietsboek/templates/profile.jinja2:74 +#: fietsboek/templates/profile.jinja2:79 msgid "page.profile.downhill" msgstr "Downhill" -#: fietsboek/templates/profile.jinja2:78 +#: fietsboek/templates/profile.jinja2:83 msgid "page.profile.moving_time" msgstr "Moving Time" -#: fietsboek/templates/profile.jinja2:82 +#: fietsboek/templates/profile.jinja2:87 msgid "page.profile.stopped_time" msgstr "Stopped Time" -#: fietsboek/templates/profile.jinja2:86 +#: fietsboek/templates/profile.jinja2:91 +msgid "page.profile.avg_duration" +msgstr "Average Duration" + +#: fietsboek/templates/profile.jinja2:95 msgid "page.profile.max_speed" msgstr "Max Speed" -#: fietsboek/templates/profile.jinja2:90 +#: fietsboek/templates/profile.jinja2:99 msgid "page.profile.avg_speed" msgstr "Average Speed" -#: fietsboek/templates/profile.jinja2:94 +#: fietsboek/templates/profile.jinja2:103 msgid "page.profile.number_of_tracks" msgstr "Number of tracks" -#: fietsboek/templates/profile.jinja2:100 +#: fietsboek/templates/profile.jinja2:109 msgid "page.profile.longest_distance_track" msgstr "Longest Track" -#: fietsboek/templates/profile.jinja2:105 +#: fietsboek/templates/profile.jinja2:114 msgid "page.profile.shortest_distance_track" msgstr "Shortest Track" -#: fietsboek/templates/profile.jinja2:110 +#: fietsboek/templates/profile.jinja2:119 msgid "page.profile.longest_duration_track" msgstr "Most Time-Consuming Track" -#: fietsboek/templates/profile.jinja2:115 +#: fietsboek/templates/profile.jinja2:124 msgid "page.profile.shortest_duration_track" msgstr "Quickest Track" -#: fietsboek/templates/profile.jinja2:135 +#: fietsboek/templates/profile.jinja2:144 msgid "page.profile.heatmap" msgstr "Heat Map" -#: fietsboek/templates/profile.jinja2:140 +#: fietsboek/templates/profile.jinja2:149 msgid "page.profile.tilehunt" msgstr "Tilehunt" @@ -786,150 +794,150 @@ msgstr "Email of the friend" msgid "page.my_profile.send_friend_request" msgstr "Send friend request" -#: fietsboek/transformers/breaks.py:31 +#: fietsboek/transformers/breaks.py:32 msgid "transformers.remove-breaks.title" msgstr "Remove breaks" -#: fietsboek/transformers/breaks.py:35 +#: fietsboek/transformers/breaks.py:36 msgid "transformers.remove-breaks.description" msgstr "This transformer removes long breaks from the recording" -#: fietsboek/transformers/elevation.py:42 +#: fietsboek/transformers/elevation.py:43 msgid "transformers.fix-null-elevation.title" msgstr "Fix null elevation" -#: fietsboek/transformers/elevation.py:46 +#: fietsboek/transformers/elevation.py:47 msgid "transformers.fix-null-elevation.description" msgstr "This transformer fixes the elevation of points whose elevation is unset." -#: fietsboek/transformers/elevation.py:115 +#: fietsboek/transformers/elevation.py:116 msgid "transformers.fix-elevation-jumps" msgstr "Fix elevation jumps" -#: fietsboek/transformers/elevation.py:119 +#: fietsboek/transformers/elevation.py:120 msgid "transformers.fix-elevation-jumps.description" msgstr "This transformer fixes abrupt jumps in the elevation value." -#: fietsboek/views/account.py:53 +#: fietsboek/views/account.py:54 msgid "flash.invalid_name" msgstr "Invalid name" -#: fietsboek/views/account.py:58 +#: fietsboek/views/account.py:59 msgid "flash.invalid_email" msgstr "Invalid email" -#: fietsboek/views/account.py:68 +#: fietsboek/views/account.py:69 msgid "flash.a_confirmation_link_has_been_sent" msgstr "A confirmation link has been sent" -#: fietsboek/views/admin.py:48 +#: fietsboek/views/admin.py:49 msgid "flash.badge_added" msgstr "Badge has been added" -#: fietsboek/views/admin.py:72 +#: fietsboek/views/admin.py:73 msgid "flash.badge_modified" msgstr "Badge has been modified" -#: fietsboek/views/admin.py:92 +#: fietsboek/views/admin.py:93 msgid "flash.badge_deleted" msgstr "Badge has been deleted" -#: fietsboek/views/default.py:115 +#: fietsboek/views/default.py:116 msgid "flash.invalid_credentials" msgstr "Invalid login credentials" -#: fietsboek/views/default.py:119 +#: fietsboek/views/default.py:120 msgid "flash.account_not_verified" msgstr "Your account is not verified yet" -#: fietsboek/views/default.py:122 +#: fietsboek/views/default.py:123 msgid "flash.logged_in" msgstr "You are now logged in" -#: fietsboek/views/default.py:143 +#: fietsboek/views/default.py:144 msgid "flash.logged_out" msgstr "You have been logged out" -#: fietsboek/views/default.py:173 +#: fietsboek/views/default.py:174 msgid "flash.reset_invalid_email" msgstr "Invalid email address provided" -#: fietsboek/views/default.py:178 +#: fietsboek/views/default.py:179 msgid "flash.password_token_generated" msgstr "A password reset email has been sent" -#: fietsboek/views/default.py:183 +#: fietsboek/views/default.py:184 msgid "page.password_reset.email.subject" msgstr "Fietsboek Password Reset" -#: fietsboek/views/default.py:186 +#: fietsboek/views/default.py:187 msgid "page.password_reset.email.body" msgstr "" "You can reset your Fietsboek password here: {}\n" "\n" "If you did not request a password reset, ignore this email." -#: fietsboek/views/default.py:225 +#: fietsboek/views/default.py:226 msgid "flash.resend_verification_email_fail" msgstr "Invalid email address provided" -#: fietsboek/views/default.py:230 +#: fietsboek/views/default.py:231 msgid "flash.verification_token_generated" msgstr "A verification email has been sent" -#: fietsboek/views/default.py:250 +#: fietsboek/views/default.py:251 msgid "flash.token_expired" msgstr "The link has expired" -#: fietsboek/views/default.py:256 +#: fietsboek/views/default.py:257 msgid "flash.email_verified" msgstr "Your email address has been verified" -#: fietsboek/views/default.py:270 +#: fietsboek/views/default.py:271 msgid "flash.password_updated" msgstr "Password has been updated" -#: fietsboek/views/detail.py:161 +#: fietsboek/views/detail.py:162 msgid "flash.track_deleted" msgstr "Track has been deleted" -#: fietsboek/views/upload.py:52 +#: fietsboek/views/upload.py:53 msgid "flash.no_file_selected" msgstr "No file selected" -#: fietsboek/views/upload.py:65 +#: fietsboek/views/upload.py:66 msgid "flash.invalid_file" msgstr "Invalid GPX file selected" -#: fietsboek/views/upload.py:191 +#: fietsboek/views/upload.py:192 msgid "flash.upload_success" msgstr "Upload successful" -#: fietsboek/views/upload.py:210 +#: fietsboek/views/upload.py:211 msgid "flash.upload_cancelled" msgstr "Upload cancelled" -#: fietsboek/views/user_data.py:66 +#: fietsboek/views/user_data.py:67 msgid "flash.personal_data_updated" msgstr "Personal data has been updated" -#: fietsboek/views/user_data.py:85 +#: fietsboek/views/user_data.py:86 msgid "flash.friend_not_found" msgstr "The friend was not found" -#: fietsboek/views/user_data.py:91 +#: fietsboek/views/user_data.py:92 msgid "flash.friend_already_exists" msgstr "Friend already exists" -#: fietsboek/views/user_data.py:99 +#: fietsboek/views/user_data.py:100 msgid "flash.friend_added" msgstr "Friend has been added" -#: fietsboek/views/user_data.py:109 +#: fietsboek/views/user_data.py:110 msgid "flash.friend_request_sent" msgstr "Friend request sent" -#: fietsboek/views/user_data.py:195 +#: fietsboek/views/user_data.py:196 msgid "flash.sessions_logged_out" msgstr "All sessions have been logged out. Please log in again to continue." diff --git a/fietsboek/locale/fietslog.pot b/fietsboek/locale/fietslog.pot index e5a0b40..4fd3812 100644 --- a/fietsboek/locale/fietslog.pot +++ b/fietsboek/locale/fietslog.pot @@ -1,14 +1,14 @@ # Translations template for PROJECT. -# Copyright (C) 2023 ORGANIZATION +# Copyright (C) 2024 ORGANIZATION # This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2023. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2024. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-11-10 22:23+0100\n" +"POT-Creation-Date: 2024-02-02 23:44+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,51 +17,51 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.12.1\n" -#: fietsboek/actions.py:257 +#: fietsboek/actions.py:267 msgid "email.verify_mail.subject" msgstr "" -#: fietsboek/actions.py:260 +#: fietsboek/actions.py:270 msgid "email.verify.text" msgstr "" -#: fietsboek/util.py:306 +#: fietsboek/util.py:307 msgid "password_constraint.mismatch" msgstr "" -#: fietsboek/util.py:308 +#: fietsboek/util.py:309 msgid "password_constraint.length" msgstr "" -#: fietsboek/models/track.py:602 +#: fietsboek/models/track.py:603 msgid "tooltip.table.length" msgstr "" -#: fietsboek/models/track.py:603 +#: fietsboek/models/track.py:604 msgid "tooltip.table.people" msgstr "" -#: fietsboek/models/track.py:604 +#: fietsboek/models/track.py:605 msgid "tooltip.table.uphill" msgstr "" -#: fietsboek/models/track.py:605 +#: fietsboek/models/track.py:606 msgid "tooltip.table.downhill" msgstr "" -#: fietsboek/models/track.py:606 +#: fietsboek/models/track.py:607 msgid "tooltip.table.moving_time" msgstr "" -#: fietsboek/models/track.py:607 +#: fietsboek/models/track.py:608 msgid "tooltip.table.stopped_time" msgstr "" -#: fietsboek/models/track.py:609 +#: fietsboek/models/track.py:610 msgid "tooltip.table.max_speed" msgstr "" -#: fietsboek/models/track.py:613 +#: fietsboek/models/track.py:614 msgid "tooltip.table.avg_speed" msgstr "" @@ -452,36 +452,36 @@ msgstr "" msgid "page.track.form.add_friend" msgstr "" -#: fietsboek/templates/edit_form.jinja2:90 +#: fietsboek/templates/edit_form.jinja2:92 msgid "page.track.form.badges" msgstr "" -#: fietsboek/templates/edit_form.jinja2:101 +#: fietsboek/templates/edit_form.jinja2:103 msgid "page.track.form.description" msgstr "" -#: fietsboek/templates/edit_form.jinja2:108 -#: fietsboek/templates/edit_form.jinja2:129 +#: fietsboek/templates/edit_form.jinja2:110 +#: fietsboek/templates/edit_form.jinja2:131 msgid "page.track.form.remove_image" msgstr "" -#: fietsboek/templates/edit_form.jinja2:118 +#: fietsboek/templates/edit_form.jinja2:120 msgid "page.track.form.select_images" msgstr "" -#: fietsboek/templates/edit_form.jinja2:122 +#: fietsboek/templates/edit_form.jinja2:124 msgid "page.track.form.image_uploads_disabled" msgstr "" -#: fietsboek/templates/edit_form.jinja2:140 +#: fietsboek/templates/edit_form.jinja2:142 msgid "page.track.form.image_description_modal" msgstr "" -#: fietsboek/templates/edit_form.jinja2:147 +#: fietsboek/templates/edit_form.jinja2:149 msgid "page.track.form.image_description_modal.save" msgstr "" -#: fietsboek/templates/edit_form.jinja2:173 +#: fietsboek/templates/edit_form.jinja2:175 msgid "page.track.form.transformer.enable" msgstr "" @@ -618,59 +618,67 @@ msgstr "" msgid "page.password_reset.reset" msgstr "" -#: fietsboek/templates/profile.jinja2:66 +#: fietsboek/templates/profile.jinja2:67 msgid "page.profile.length" msgstr "" -#: fietsboek/templates/profile.jinja2:70 +#: fietsboek/templates/profile.jinja2:71 +msgid "page.profile.avg_length" +msgstr "" + +#: fietsboek/templates/profile.jinja2:75 msgid "page.profile.uphill" msgstr "" -#: fietsboek/templates/profile.jinja2:74 +#: fietsboek/templates/profile.jinja2:79 msgid "page.profile.downhill" msgstr "" -#: fietsboek/templates/profile.jinja2:78 +#: fietsboek/templates/profile.jinja2:83 msgid "page.profile.moving_time" msgstr "" -#: fietsboek/templates/profile.jinja2:82 +#: fietsboek/templates/profile.jinja2:87 msgid "page.profile.stopped_time" msgstr "" -#: fietsboek/templates/profile.jinja2:86 +#: fietsboek/templates/profile.jinja2:91 +msgid "page.profile.avg_duration" +msgstr "" + +#: fietsboek/templates/profile.jinja2:95 msgid "page.profile.max_speed" msgstr "" -#: fietsboek/templates/profile.jinja2:90 +#: fietsboek/templates/profile.jinja2:99 msgid "page.profile.avg_speed" msgstr "" -#: fietsboek/templates/profile.jinja2:94 +#: fietsboek/templates/profile.jinja2:103 msgid "page.profile.number_of_tracks" msgstr "" -#: fietsboek/templates/profile.jinja2:100 +#: fietsboek/templates/profile.jinja2:109 msgid "page.profile.longest_distance_track" msgstr "" -#: fietsboek/templates/profile.jinja2:105 +#: fietsboek/templates/profile.jinja2:114 msgid "page.profile.shortest_distance_track" msgstr "" -#: fietsboek/templates/profile.jinja2:110 +#: fietsboek/templates/profile.jinja2:119 msgid "page.profile.longest_duration_track" msgstr "" -#: fietsboek/templates/profile.jinja2:115 +#: fietsboek/templates/profile.jinja2:124 msgid "page.profile.shortest_duration_track" msgstr "" -#: fietsboek/templates/profile.jinja2:135 +#: fietsboek/templates/profile.jinja2:144 msgid "page.profile.heatmap" msgstr "" -#: fietsboek/templates/profile.jinja2:140 +#: fietsboek/templates/profile.jinja2:149 msgid "page.profile.tilehunt" msgstr "" @@ -774,147 +782,147 @@ msgstr "" msgid "page.my_profile.send_friend_request" msgstr "" -#: fietsboek/transformers/breaks.py:31 +#: fietsboek/transformers/breaks.py:32 msgid "transformers.remove-breaks.title" msgstr "" -#: fietsboek/transformers/breaks.py:35 +#: fietsboek/transformers/breaks.py:36 msgid "transformers.remove-breaks.description" msgstr "" -#: fietsboek/transformers/elevation.py:42 +#: fietsboek/transformers/elevation.py:43 msgid "transformers.fix-null-elevation.title" msgstr "" -#: fietsboek/transformers/elevation.py:46 +#: fietsboek/transformers/elevation.py:47 msgid "transformers.fix-null-elevation.description" msgstr "" -#: fietsboek/transformers/elevation.py:115 +#: fietsboek/transformers/elevation.py:116 msgid "transformers.fix-elevation-jumps" msgstr "" -#: fietsboek/transformers/elevation.py:119 +#: fietsboek/transformers/elevation.py:120 msgid "transformers.fix-elevation-jumps.description" msgstr "" -#: fietsboek/views/account.py:53 +#: fietsboek/views/account.py:54 msgid "flash.invalid_name" msgstr "" -#: fietsboek/views/account.py:58 +#: fietsboek/views/account.py:59 msgid "flash.invalid_email" msgstr "" -#: fietsboek/views/account.py:68 +#: fietsboek/views/account.py:69 msgid "flash.a_confirmation_link_has_been_sent" msgstr "" -#: fietsboek/views/admin.py:48 +#: fietsboek/views/admin.py:49 msgid "flash.badge_added" msgstr "" -#: fietsboek/views/admin.py:72 +#: fietsboek/views/admin.py:73 msgid "flash.badge_modified" msgstr "" -#: fietsboek/views/admin.py:92 +#: fietsboek/views/admin.py:93 msgid "flash.badge_deleted" msgstr "" -#: fietsboek/views/default.py:115 +#: fietsboek/views/default.py:116 msgid "flash.invalid_credentials" msgstr "" -#: fietsboek/views/default.py:119 +#: fietsboek/views/default.py:120 msgid "flash.account_not_verified" msgstr "" -#: fietsboek/views/default.py:122 +#: fietsboek/views/default.py:123 msgid "flash.logged_in" msgstr "" -#: fietsboek/views/default.py:143 +#: fietsboek/views/default.py:144 msgid "flash.logged_out" msgstr "" -#: fietsboek/views/default.py:173 +#: fietsboek/views/default.py:174 msgid "flash.reset_invalid_email" msgstr "" -#: fietsboek/views/default.py:178 +#: fietsboek/views/default.py:179 msgid "flash.password_token_generated" msgstr "" -#: fietsboek/views/default.py:183 +#: fietsboek/views/default.py:184 msgid "page.password_reset.email.subject" msgstr "" -#: fietsboek/views/default.py:186 +#: fietsboek/views/default.py:187 msgid "page.password_reset.email.body" msgstr "" -#: fietsboek/views/default.py:225 +#: fietsboek/views/default.py:226 msgid "flash.resend_verification_email_fail" msgstr "" -#: fietsboek/views/default.py:230 +#: fietsboek/views/default.py:231 msgid "flash.verification_token_generated" msgstr "" -#: fietsboek/views/default.py:250 +#: fietsboek/views/default.py:251 msgid "flash.token_expired" msgstr "" -#: fietsboek/views/default.py:256 +#: fietsboek/views/default.py:257 msgid "flash.email_verified" msgstr "" -#: fietsboek/views/default.py:270 +#: fietsboek/views/default.py:271 msgid "flash.password_updated" msgstr "" -#: fietsboek/views/detail.py:161 +#: fietsboek/views/detail.py:162 msgid "flash.track_deleted" msgstr "" -#: fietsboek/views/upload.py:52 +#: fietsboek/views/upload.py:53 msgid "flash.no_file_selected" msgstr "" -#: fietsboek/views/upload.py:65 +#: fietsboek/views/upload.py:66 msgid "flash.invalid_file" msgstr "" -#: fietsboek/views/upload.py:191 +#: fietsboek/views/upload.py:192 msgid "flash.upload_success" msgstr "" -#: fietsboek/views/upload.py:210 +#: fietsboek/views/upload.py:211 msgid "flash.upload_cancelled" msgstr "" -#: fietsboek/views/user_data.py:66 +#: fietsboek/views/user_data.py:67 msgid "flash.personal_data_updated" msgstr "" -#: fietsboek/views/user_data.py:85 +#: fietsboek/views/user_data.py:86 msgid "flash.friend_not_found" msgstr "" -#: fietsboek/views/user_data.py:91 +#: fietsboek/views/user_data.py:92 msgid "flash.friend_already_exists" msgstr "" -#: fietsboek/views/user_data.py:99 +#: fietsboek/views/user_data.py:100 msgid "flash.friend_added" msgstr "" -#: fietsboek/views/user_data.py:109 +#: fietsboek/views/user_data.py:110 msgid "flash.friend_request_sent" msgstr "" -#: fietsboek/views/user_data.py:195 +#: fietsboek/views/user_data.py:196 msgid "flash.sessions_logged_out" msgstr "" diff --git a/fietsboek/templates/profile.jinja2 b/fietsboek/templates/profile.jinja2 index 69c37e2..bab6d49 100644 --- a/fietsboek/templates/profile.jinja2 +++ b/fietsboek/templates/profile.jinja2 @@ -68,6 +68,10 @@ <td id="profileLength">{{ (total.length / 1000) | round(2) | format_decimal }} km</td> </tr> <tr> + <th scope="row">{{ _("page.profile.avg_length") }}</th> + <td id="profileAvgLength">{{ (total.avg_length / 1000) | round(2) | format_decimal }} km</td> + </tr> + <tr> <th scope="row">{{ _("page.profile.uphill") }}</th> <td id="profileUphill">{{ total.uphill | round(2) | format_decimal }} m</td> </tr> @@ -84,6 +88,10 @@ <td id="profileStoppedTime">{{ total.stopped_time }}</td> </tr> <tr> + <th scope="row">{{ _("page.profile.avg_duration") }}</th> + <td id="profileAvgDuration">{{ total.avg_duration }}</td> + </tr> + <tr> <th scope="row">{{ _("page.profile.max_speed") }}</th> <td id="profileMaxSpeed">{{ mps_to_kph(total.max_speed) | round(2) | format_decimal }} km/h</td> </tr> diff --git a/fietsboek/views/profile.py b/fietsboek/views/profile.py index dc2fcd9..b353abd 100644 --- a/fietsboek/views/profile.py +++ b/fietsboek/views/profile.py @@ -127,6 +127,23 @@ class CumulativeStats: return 0.0 return self.length / self.moving_time.total_seconds() + @property + def avg_length(self) -> float: + """Average length, in m.""" + if not self.count: + return 0 + return self.length / self.count + + @property + def avg_duration(self) -> datetime.timedelta: + """Average duration of a track. + + Note that this property is automatically rounded to seconds. + """ + if not self.count: + return datetime.timedelta() + return round_to_seconds((self.moving_time + self.stopped_time) / self.count) + def round_to_seconds(value: datetime.timedelta) -> datetime.timedelta: """Round a timedelta to full seconds. |