[Pkg-running-devel] [SCM] Debian package for pytrainer branch, upstream, updated. upstream/1.9.0-1-g4d4685d
Christian PERRIER
bubulle at debian.org
Sat Nov 26 18:47:32 UTC 2011
The following commit has been merged in the upstream branch:
commit 4d4685df4a63c1cd00d3894db9181d887074d26d
Author: Christian PERRIER <bubulle at debian.org>
Date: Sat Nov 26 19:46:15 2011 +0100
Merge upstream 1.9.1
diff --git a/CHANGES b/CHANGES
index b10fbad..402b8df 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,19 @@
See the pytrainer roadmap for more information http://sourceforge.net/apps/trac/pytrainer/roadmap
+- pytrainer changes for 1.9.1:
+
+* Known issues
+
+ - Can't maximize main window. Issue related to graph subtab in register tab - tickets #113 #124
+
+* Fixes
+
+ - Corrected german localization (thanks to Andreas) - [938]
+ - Amended typo in translator credits - [937]
+ - Coloring graph not working when selecting speed as reference - #154 [936]
+ - Added support for sqlalchemy-migrate 0.5.4 - #153 [935]
+
+
- pytrainer changes for 1.9.0:
* Known issues
diff --git a/INSTALL b/INSTALL
index 92a3508..b7b5d8a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -24,7 +24,7 @@ libxslt >= 1.1.26
libxslt-python >= 1.1.26
sqlite >= 3.2.0 (sqlite is preferred to mysql as database, MySQL-python has been reported to be installed if so)
sqlalchemy >= 0.6.4
-sqlalchemy-migrate >= 0.6.0
+sqlalchemy-migrate >= 0.5.4
zenity >= 2.30
- Only needed if correspondent plugin or extension is enabled:
diff --git a/locale/de/LC_MESSAGES/pytrainer_de.po b/locale/de/LC_MESSAGES/pytrainer_de.po
index cf7b95e..1dc4c06 100644
--- a/locale/de/LC_MESSAGES/pytrainer_de.po
+++ b/locale/de/LC_MESSAGES/pytrainer_de.po
@@ -6,10 +6,10 @@
# Andreas Mair <amair.sob at googlemail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: pytrainer 1.9.0\n"
+"Project-Id-Version: pytrainer 1.9.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-12 16:59+0100\n"
-"PO-Revision-Date: 2011-11-12 10:41+0100\n"
+"POT-Creation-Date: 2011-11-25 18:53+0100\n"
+"PO-Revision-Date: 2011-11-25 18:55+0100\n"
"Last-Translator: Andreas Mair <amair.sob at googlemail.com>\n"
"Language-Team: debian-l10n-german at lists.debian.org\n"
"Language: de\n"
@@ -27,25 +27,30 @@ msgstr "Kalender"
msgid "<b>Equipment List</b>"
msgstr "<b>Liste der Ausrüstungsgegenstände</b>"
-#: glade/equipment.glade:149 glade/equipment.glade:406
+#: glade/equipment.glade:149
+#: glade/equipment.glade:406
#: pytrainer/gui/equipment.py:98
msgid "Description"
msgstr "Beschreibung"
-#: glade/equipment.glade:174 glade/equipment.glade:431
+#: glade/equipment.glade:174
+#: glade/equipment.glade:431
msgid "Life Expectancy"
msgstr "Lebenserwartung"
-#: glade/equipment.glade:211 glade/equipment.glade:467
+#: glade/equipment.glade:211
+#: glade/equipment.glade:467
msgid "Prior Usage"
msgstr "Vorherige Nutzung"
-#: glade/equipment.glade:243 glade/equipment.glade:499
+#: glade/equipment.glade:243
+#: glade/equipment.glade:499
#: pytrainer/gui/equipment.py:102
msgid "Active"
msgstr "Aktiv"
-#: glade/equipment.glade:277 glade/equipment.glade:533
+#: glade/equipment.glade:277
+#: glade/equipment.glade:533
#: pytrainer/gui/windowimportdata.py:353
msgid "Notes"
msgstr "Notizen"
@@ -66,7 +71,8 @@ msgstr "Diesen Ausrüstungsgegenstand wirklich löschen?"
msgid "<b>Delete Equipment</b>"
msgstr "<b>Ausrüstung löschen</b>"
-#: glade/extensions.glade:9 glade/pytrainer.glade:163
+#: glade/extensions.glade:9
+#: glade/pytrainer.glade:163
msgid "Extensions"
msgstr "Erweiterungen"
@@ -78,21 +84,26 @@ msgstr "<b>Erweiterungsdetails</b>"
msgid "name-entry"
msgstr "name-entry"
-#: glade/extensions.glade:82 glade/plugins.glade:144 glade/profile.glade:728
+#: glade/extensions.glade:82
+#: glade/plugins.glade:144
+#: glade/profile.glade:728
#: glade/pytrainer.glade:5703
msgid "Name:"
msgstr "Name:"
-#: glade/extensions.glade:96 glade/plugins.glade:115
+#: glade/extensions.glade:96
+#: glade/plugins.glade:115
msgid "Status:"
msgstr "Status:"
-#: glade/extensions.glade:110 glade/plugins.glade:86
+#: glade/extensions.glade:110
+#: glade/plugins.glade:86
#: glade/pytrainer.glade:6548
msgid "Description:"
msgstr "Beschreibung:"
-#: glade/extensions.glade:124 glade/plugins.glade:100
+#: glade/extensions.glade:124
+#: glade/plugins.glade:100
msgid "status-entry"
msgstr "status-entry"
@@ -100,7 +111,8 @@ msgstr "status-entry"
msgid "description-entry"
msgstr "description-entry"
-#: glade/importdata.glade:7 glade/importdata.glade:325
+#: glade/importdata.glade:7
+#: glade/importdata.glade:325
msgid "Import"
msgstr "Importieren"
@@ -184,7 +196,8 @@ msgstr "Beim Starten »Dateiauswahl« öffnen"
msgid "Automatically start the file selection dialog"
msgstr "Dateiauswahl-Dialog automatisch starten"
-#: glade/importdata.glade:546 glade/plugins.glade:9
+#: glade/importdata.glade:546
+#: glade/plugins.glade:9
msgid "Plugins"
msgstr "Erweiterungen"
@@ -196,7 +209,8 @@ msgstr "<b>Seite, die beim Öffnen angezeigt wird</b>"
msgid "Reset"
msgstr "Zurücksetzen"
-#: glade/importdata.glade:611 pytrainer/gui/filechooser.py:41
+#: glade/importdata.glade:611
+#: pytrainer/gui/filechooser.py:41
msgid "Save"
msgstr "Sichern"
@@ -228,30 +242,48 @@ msgstr "Datei lesen"
msgid "<b>File delimiter</b>"
msgstr "<b>Trennzeichen</b>"
-#: glade/importdata.glade:864 pytrainer/gui/windowmain.py:116
-#: pytrainer/gui/windowmain.py:131 pytrainer/gui/windowmain.py:184
-#: pytrainer/gui/windowmain.py:1498 pytrainer/gui/dialogselecttrack.py:40
+#: glade/importdata.glade:864
+#: pytrainer/gui/windowmain.py:116
+#: pytrainer/gui/windowmain.py:131
+#: pytrainer/gui/windowmain.py:184
+#: pytrainer/gui/windowmain.py:1498
+#: pytrainer/gui/dialogselecttrack.py:40
msgid "Date"
msgstr "Datum"
-#: glade/importdata.glade:877 glade/importdata.glade:918
-#: glade/importdata.glade:933 glade/importdata.glade:1128
-#: glade/importdata.glade:1143 glade/importdata.glade:1158
-#: glade/importdata.glade:1173 glade/importdata.glade:1188
-#: glade/importdata.glade:1203 glade/importdata.glade:1218
-#: glade/importdata.glade:1233 glade/importdata.glade:1248
-#: glade/importdata.glade:1263 glade/importdata.glade:1278
+#: glade/importdata.glade:877
+#: glade/importdata.glade:918
+#: glade/importdata.glade:933
+#: glade/importdata.glade:1128
+#: glade/importdata.glade:1143
+#: glade/importdata.glade:1158
+#: glade/importdata.glade:1173
+#: glade/importdata.glade:1188
+#: glade/importdata.glade:1203
+#: glade/importdata.glade:1218
+#: glade/importdata.glade:1233
+#: glade/importdata.glade:1248
+#: glade/importdata.glade:1263
+#: glade/importdata.glade:1278
#: glade/importdata.glade:1293
msgid "Exclude"
msgstr "Ausschließen"
-#: glade/importdata.glade:892 pytrainer/recordgraph.py:134
-#: pytrainer/recordgraph.py:136 pytrainer/recordgraph.py:138
-#: pytrainer/recordgraph.py:140 pytrainer/recordgraph.py:142
-#: pytrainer/recordgraph.py:144 pytrainer/recordgraph.py:146
-#: pytrainer/monthgraph.py:26 pytrainer/heartrategraph.py:36
-#: pytrainer/totalgraph.py:24 pytrainer/yeargraph.py:26
-#: pytrainer/daygraph.py:52 pytrainer/daygraph.py:54 pytrainer/daygraph.py:56
+#: glade/importdata.glade:892
+#: pytrainer/recordgraph.py:134
+#: pytrainer/recordgraph.py:136
+#: pytrainer/recordgraph.py:138
+#: pytrainer/recordgraph.py:140
+#: pytrainer/recordgraph.py:142
+#: pytrainer/recordgraph.py:144
+#: pytrainer/recordgraph.py:146
+#: pytrainer/monthgraph.py:26
+#: pytrainer/heartrategraph.py:36
+#: pytrainer/totalgraph.py:24
+#: pytrainer/yeargraph.py:26
+#: pytrainer/daygraph.py:52
+#: pytrainer/daygraph.py:54
+#: pytrainer/daygraph.py:56
#: pytrainer/weekgraph.py:28
msgid "Distance (km)"
msgstr "Strecke (km)"
@@ -268,7 +300,8 @@ msgstr "<b>PyTrainer-Feld</b>"
msgid "<b>File Column</b>"
msgstr "<b>Spalte in Datei</b>"
-#: glade/importdata.glade:972 pytrainer/gui/windowmain.py:115
+#: glade/importdata.glade:972
+#: pytrainer/gui/windowmain.py:115
#: pytrainer/gui/windowmain.py:1497
msgid "Title"
msgstr "Titel"
@@ -289,16 +322,22 @@ msgstr "Kalorien (kcal)"
msgid "Max Speed (km/h)"
msgstr "Höchstgeschwindigkeit (km/h)"
-#: glade/importdata.glade:1037 pytrainer/monthgraph.py:29
-#: pytrainer/totalgraph.py:27 pytrainer/yeargraph.py:29
+#: glade/importdata.glade:1037
+#: pytrainer/monthgraph.py:29
+#: pytrainer/totalgraph.py:27
+#: pytrainer/yeargraph.py:29
#: pytrainer/weekgraph.py:31
msgid "Average Speed (km/h)"
msgstr "Durchschnittsgeschwindigkeit (km/h)"
-#: glade/importdata.glade:1050 glade/pytrainer.glade:277
-#: pytrainer/gui/windowmain.py:110 pytrainer/gui/windowmain.py:118
-#: pytrainer/gui/windowmain.py:140 pytrainer/gui/windowmain.py:1500
-#: pytrainer/gui/windowimportdata.py:353 pytrainer/gui/windowrecord.py:211
+#: glade/importdata.glade:1050
+#: glade/pytrainer.glade:277
+#: pytrainer/gui/windowmain.py:110
+#: pytrainer/gui/windowmain.py:118
+#: pytrainer/gui/windowmain.py:140
+#: pytrainer/gui/windowmain.py:1500
+#: pytrainer/gui/windowimportdata.py:353
+#: pytrainer/gui/windowrecord.py:211
#: pytrainer/gui/windowprofile.py:65
msgid "Sport"
msgstr "Sportart"
@@ -311,7 +350,8 @@ msgstr "Durchschnitts-Herzfrequenz (bpm)"
msgid "Max Heartrate (bpm)"
msgstr "Höchste Herzfrequenz (bpm)"
-#: glade/importdata.glade:1089 pytrainer/recordgraph.py:138
+#: glade/importdata.glade:1089
+#: pytrainer/recordgraph.py:138
msgid "Pace (min/km)"
msgstr "Tempo (min/km)"
@@ -319,7 +359,8 @@ msgstr "Tempo (min/km)"
msgid "Max Pace (min/km)"
msgstr "Höchsttempo (min/km)"
-#: glade/importdata.glade:1115 glade/newrecord.glade:1092
+#: glade/importdata.glade:1115
+#: glade/newrecord.glade:1092
#: pytrainer/gui/windowmain.py:167
msgid "Comments"
msgstr "Kommentare"
@@ -328,7 +369,8 @@ msgstr "Kommentare"
msgid "Force sport to:"
msgstr "erzwinge Sportart:"
-#: glade/importdata.glade:1323 glade/newrecord.glade:404
+#: glade/importdata.glade:1323
+#: glade/newrecord.glade:404
msgid " "
msgstr " "
@@ -347,8 +389,7 @@ msgstr ""
"<small>Experimenteller Import für strukturierte Dateien\n"
"1) Eine Datei auswählen\n"
"2) »Datei lesen« anklicken, um die Datei zu analysieren\n"
-"3) Die Spalten in der Datei den PyTrainer Feldern zuordnen (Datum ist "
-"zwingend)\n"
+"3) Die Spalten in der Datei den PyTrainer Feldern zuordnen (Datum ist zwingend)\n"
"4) »Daten importieren« anklicken</small>"
#: glade/importdata.glade:1427
@@ -359,7 +400,8 @@ msgstr "Daten importieren"
msgid "<b>Import from CSV</b>"
msgstr "<b>CSV-Datei importieren</b>"
-#: glade/newrecord.glade:7 pytrainer/gui/windowmain.py:2164
+#: glade/newrecord.glade:7
+#: pytrainer/gui/windowmain.py:2164
msgid "New Entry"
msgstr "Neuer Eintrag"
@@ -387,9 +429,12 @@ msgstr "<b>Hauptsächlich</b>"
msgid "Distance (Km):"
msgstr "Strecke (km):"
-#: glade/newrecord.glade:230 glade/newrecord.glade:355
-#: glade/newrecord.glade:558 glade/newrecord.glade:695
-#: glade/newrecord.glade:956 glade/profile.glade:1548
+#: glade/newrecord.glade:230
+#: glade/newrecord.glade:355
+#: glade/newrecord.glade:558
+#: glade/newrecord.glade:695
+#: glade/newrecord.glade:956
+#: glade/profile.glade:1548
msgid "Calculate"
msgstr "Berechnen"
@@ -397,7 +442,8 @@ msgstr "Berechnen"
msgid "Duration:"
msgstr "Dauer:"
-#: glade/newrecord.glade:279 glade/newrecord.glade:306
+#: glade/newrecord.glade:279
+#: glade/newrecord.glade:306
msgid ":"
msgstr ":"
@@ -413,7 +459,8 @@ msgstr "Startzeit:"
msgid "12:00:00"
msgstr "12:00:00"
-#: glade/newrecord.glade:486 glade/profile.glade:1586
+#: glade/newrecord.glade:486
+#: glade/profile.glade:1586
msgid "<b>General</b>"
msgstr "<b>Allgemein</b>"
@@ -465,20 +512,20 @@ msgstr "Maximal (bpm):"
msgid "Heart rate:"
msgstr "Herzfrequenz:"
-#: glade/newrecord.glade:900 pytrainer/gui/windowmain.py:122
-#: pytrainer/gui/windowmain.py:165 pytrainer/gui/windowmain.py:1504
-#: pytrainer/monthgraph.py:30 pytrainer/totalgraph.py:28
-#: pytrainer/yeargraph.py:30 pytrainer/weekgraph.py:32
+#: glade/newrecord.glade:900
+#: pytrainer/gui/windowmain.py:122
+#: pytrainer/gui/windowmain.py:165
+#: pytrainer/gui/windowmain.py:1504
+#: pytrainer/monthgraph.py:30
+#: pytrainer/totalgraph.py:28
+#: pytrainer/yeargraph.py:30
+#: pytrainer/weekgraph.py:32
msgid "Calories"
msgstr "Kalorien"
#: glade/newrecord.glade:929
-msgid ""
-"<small><b>Note:</b> In order to calculate the calories you must set the "
-"sport MET (in Preferences->Sport) </small>"
-msgstr ""
-"<small><b>Achtung:</b> Um die Kalorien zu berechnen, müssen Sie als Sportart "
-"»M.E.T.« angeben (in Einstellungen->Sportart)</small>"
+msgid "<small><b>Note:</b> In order to calculate the calories you must set the sport MET (in Preferences->Sport) </small>"
+msgstr "<small><b>Achtung:</b> Um die Kalorien zu berechnen, müssen Sie als Sportart »M.E.T.« angeben (in Einstellungen->Sportart)</small>"
#: glade/newrecord.glade:1003
msgid "<b>Heart Rate</b>"
@@ -500,7 +547,8 @@ msgstr "<i>Es gibt keine aktiven Ausrüstungsgegenstände.</i>"
msgid "<b>Associated Equipment</b>"
msgstr "<b>Zugehörige Ausrüstung</b>"
-#: glade/newrecord.glade:1201 glade/profile.glade:1446
+#: glade/newrecord.glade:1201
+#: glade/profile.glade:1446
msgid "Equipment"
msgstr "Ausrüstung"
@@ -532,11 +580,13 @@ msgstr "In den USA gebräuchliche Einheiten"
msgid "<b>System of Measurement</b>"
msgstr "<b>Maßsystem</b>"
-#: glade/profile.glade:103 glade/pytrainer.glade:2111
+#: glade/profile.glade:103
+#: glade/pytrainer.glade:2111
msgid "Google"
msgstr "Google"
-#: glade/profile.glade:118 glade/pytrainer.glade:2094
+#: glade/profile.glade:118
+#: glade/pytrainer.glade:2094
msgid "Open Street Map"
msgstr "OpenStreetMap"
@@ -580,11 +630,13 @@ msgstr "Benutzername:"
msgid "Gender:"
msgstr "Geschlecht:"
-#: glade/profile.glade:407 glade/pytrainer.glade:5728
+#: glade/profile.glade:407
+#: glade/pytrainer.glade:5728
msgid "Height:"
msgstr "Größe:"
-#: glade/profile.glade:447 glade/pytrainer.glade:5715
+#: glade/profile.glade:447
+#: glade/pytrainer.glade:5715
msgid "Date of birth:"
msgstr "Geburtsdatum:"
@@ -592,11 +644,13 @@ msgstr "Geburtsdatum:"
msgid "Weight:"
msgstr "Gewicht:"
-#: glade/profile.glade:542 glade/pytrainer.glade:5790
+#: glade/profile.glade:542
+#: glade/pytrainer.glade:5790
msgid "<b>Athlete Details</b>"
msgstr "<b>Athleten-Details</b>"
-#: glade/profile.glade:557 glade/pytrainer.glade:5893
+#: glade/profile.glade:557
+#: glade/pytrainer.glade:5893
msgid "Athlete"
msgstr "Athlet"
@@ -616,12 +670,10 @@ msgstr "M.E.T.:"
msgid "Extra Weight:"
msgstr "Zusätzliches Gewicht:"
-#: glade/profile.glade:802 glade/profile.glade:1218
-msgid ""
-"More information on determining yor M.E.T sport coefficient on Wikipedia"
-msgstr ""
-"Weitere Informationen zur Berechnung Ihres M.E.T.-Sportkoeffizienten finden "
-"Sie in der Wikipedia"
+#: glade/profile.glade:802
+#: glade/profile.glade:1218
+msgid "More information on determining yor M.E.T sport coefficient on Wikipedia"
+msgstr "Weitere Informationen zur Berechnung Ihres M.E.T.-Sportkoeffizienten finden Sie in der Wikipedia"
#: glade/profile.glade:822
msgid "Maximum Pace:"
@@ -640,8 +692,7 @@ msgid ""
"Deleting a sport removes associated records.\n"
"Continue?"
msgstr ""
-"Beim Löschen einer Sportart werden auch die zugehörigen Aktivitäten "
-"entfernt.\n"
+"Beim Löschen einer Sportart werden auch die zugehörigen Aktivitäten entfernt.\n"
"Fortfahren?"
#: glade/profile.glade:1078
@@ -660,15 +711,18 @@ msgstr "Name"
msgid "M.E.T."
msgstr "M.E.T.:"
-#: glade/profile.glade:1193 pytrainer/gui/windowprofile.py:65
+#: glade/profile.glade:1193
+#: pytrainer/gui/windowprofile.py:65
msgid "Extra Weight"
msgstr "Zusätzliches Gewicht:"
-#: glade/profile.glade:1238 pytrainer/gui/windowprofile.py:65
+#: glade/profile.glade:1238
+#: pytrainer/gui/windowprofile.py:65
msgid "Maximum Pace"
msgstr "Höchsttempo:"
-#: glade/profile.glade:1265 pytrainer/gui/windowmain.py:188
+#: glade/profile.glade:1265
+#: pytrainer/gui/windowmain.py:188
#: pytrainer/gui/windowprofile.py:65
msgid "Color"
msgstr "Farbe"
@@ -698,26 +752,19 @@ msgid "Resting heart rate:"
msgstr "Ruhe-Herzfrequenz:"
#: glade/profile.glade:1535
-msgid ""
-"<small><b>Note:</b> Maximum heart rate is calculated by subtracting the "
-"number 220 minus your age. </small>"
-msgstr ""
-"<small><b>Achtung:</b> Die maximale Herzfrequenz wird durch Abziehen Ihres "
-"Alters von der Zahl 220 berechnet.</small>"
+msgid "<small><b>Note:</b> Maximum heart rate is calculated by subtracting the number 220 minus your age. </small>"
+msgstr "<small><b>Achtung:</b> Die maximale Herzfrequenz wird durch Abziehen Ihres Alters von der Zahl 220 berechnet.</small>"
#: glade/profile.glade:1622
-msgid ""
-"<small><b>NOTE:</b> in order to use the Karvonen method you must cover the "
-"Resting hr field.</small>"
-msgstr ""
-"<small><b>Achtung:</b> Um die Karvonen-Methode anzuwenden, müssen Sie das "
-"Ruhe-Herzfrequenz-Feld ausfüllen.</small>"
+msgid "<small><b>NOTE:</b> in order to use the Karvonen method you must cover the Resting hr field.</small>"
+msgstr "<small><b>Achtung:</b> Um die Karvonen-Methode anzuwenden, müssen Sie das Ruhe-Herzfrequenz-Feld ausfüllen.</small>"
#: glade/profile.glade:1635
msgid "Percentages based method"
msgstr "Prozentbasierte Methode"
-#: glade/profile.glade:1651 pytrainer/gui/windowmain.py:794
+#: glade/profile.glade:1651
+#: pytrainer/gui/windowmain.py:794
msgid "Karvonen method"
msgstr "Karvonen-Methode"
@@ -729,10 +776,14 @@ msgstr "Wählen Sie, wie Ihre Herzfrequenzzonen ermittelt werden sollen."
msgid "<b>Heart Rate Zones</b>"
msgstr "<b>Herzfrequenzzonen</b>"
-#: glade/profile.glade:1733 pytrainer/recordgraph.py:140
-#: pytrainer/lib/activity.py:443 pytrainer/lib/activity.py:445
-#: pytrainer/lib/activity.py:455 pytrainer/lib/activity.py:525
-#: pytrainer/heartrategraph.py:36 pytrainer/daygraph.py:56
+#: glade/profile.glade:1733
+#: pytrainer/recordgraph.py:140
+#: pytrainer/lib/activity.py:443
+#: pytrainer/lib/activity.py:445
+#: pytrainer/lib/activity.py:455
+#: pytrainer/lib/activity.py:525
+#: pytrainer/heartrategraph.py:36
+#: pytrainer/daygraph.py:56
msgid "Heart Rate"
msgstr "Herzfrequenz"
@@ -761,12 +812,8 @@ msgid "Validate"
msgstr "Überprüfen"
#: glade/profile.glade:1829
-msgid ""
-"<small>Do the plugins attempt to validate the input file before processing?</"
-"small>"
-msgstr ""
-"<small>Versuchen die Erweiterungen, die Eingabedatei vor der Verarbeitung zu "
-"überprüfen?</small>"
+msgid "<small>Do the plugins attempt to validate the input file before processing?</small>"
+msgstr "<small>Versuchen die Erweiterungen, die Eingabedatei vor der Verarbeitung zu überprüfen?</small>"
#: glade/profile.glade:1845
msgid "New Graph"
@@ -774,20 +821,11 @@ msgstr "Neuer Graph"
#: glade/profile.glade:1874
msgid "<small>Want to use experimental new approach to graphing?</small>"
-msgstr ""
-"<small>Wollen Sie eine experimentelle neue Herangehensweise zur "
-"Graphenzeichnung verwenden?</small>"
+msgstr "<small>Wollen Sie eine experimentelle neue Herangehensweise zur Graphenzeichnung verwenden?</small>"
#: glade/profile.glade:1917
-msgid ""
-"<small>This screen shows the state of command line configurable options for "
-"pytrainer. These options can be changed here which will affect the current "
-"instance of pytrainer, they will not be remembered next time though</small>"
-msgstr ""
-"<small>Dieser Bildschirm zeigt den Status der über Kommandozeile "
-"einstellbaren Optionen für PyTrainer. Diese Optionen können hier geändert "
-"werden und betreffen die derzeit laufende PyTrainer-Instanz, werden aber bis "
-"zum nächsten Starten vergessen.</small>"
+msgid "<small>This screen shows the state of command line configurable options for pytrainer. These options can be changed here which will affect the current instance of pytrainer, they will not be remembered next time though</small>"
+msgstr "<small>Dieser Bildschirm zeigt den Status der über Kommandozeile einstellbaren Optionen für PyTrainer. Diese Optionen können hier geändert werden und betreffen die derzeit laufende PyTrainer-Instanz, werden aber bis zum nächsten Starten vergessen.</small>"
#: glade/profile.glade:1938
msgid "Startup Parameters"
@@ -837,7 +875,8 @@ msgstr "GPS-Geräteerweiterungen"
msgid "_Help"
msgstr "_Hilfe"
-#: glade/pytrainer.glade:290 glade/pytrainer.glade:6324
+#: glade/pytrainer.glade:290
+#: glade/pytrainer.glade:6324
msgid "All Sports"
msgstr "Alle Sportarten"
@@ -845,20 +884,26 @@ msgstr "Alle Sportarten"
msgid "<b>Sport:</b>"
msgstr "<b>Sportart:</b>"
-#: glade/pytrainer.glade:408 glade/pytrainer.glade:3144
-#: glade/pytrainer.glade:3786 glade/pytrainer.glade:4440
+#: glade/pytrainer.glade:408
+#: glade/pytrainer.glade:3144
+#: glade/pytrainer.glade:3786
+#: glade/pytrainer.glade:4440
#: glade/pytrainer.glade:5170
msgid "<b>Duration:</b>"
msgstr "<b>Dauer:</b>"
-#: glade/pytrainer.glade:423 glade/pytrainer.glade:3234
-#: glade/pytrainer.glade:3865 glade/pytrainer.glade:4519
+#: glade/pytrainer.glade:423
+#: glade/pytrainer.glade:3234
+#: glade/pytrainer.glade:3865
+#: glade/pytrainer.glade:4519
#: glade/pytrainer.glade:5272
msgid "<b>Speed:</b>"
msgstr "<b>Geschwindigkeit:</b>"
-#: glade/pytrainer.glade:437 glade/pytrainer.glade:3402
-#: glade/pytrainer.glade:4060 glade/pytrainer.glade:4714
+#: glade/pytrainer.glade:437
+#: glade/pytrainer.glade:3402
+#: glade/pytrainer.glade:4060
+#: glade/pytrainer.glade:4714
#: glade/pytrainer.glade:5367
msgid "<b>Pace:</b>"
msgstr "<b>Tempo:</b>"
@@ -879,8 +924,10 @@ msgstr "<b>Kommentare:</b>"
msgid "<b>Date:</b>"
msgstr "<b>Datum:</b>"
-#: glade/pytrainer.glade:628 glade/pytrainer.glade:3130
-#: glade/pytrainer.glade:3772 glade/pytrainer.glade:4426
+#: glade/pytrainer.glade:628
+#: glade/pytrainer.glade:3130
+#: glade/pytrainer.glade:3772
+#: glade/pytrainer.glade:4426
#: glade/pytrainer.glade:5156
msgid "<b>Distance:</b>"
msgstr "<b>Strecke:</b>"
@@ -889,8 +936,10 @@ msgstr "<b>Strecke:</b>"
msgid "<b>Max Speed</b>"
msgstr "<b>Höchstgeschwindigkeit:</b>"
-#: glade/pytrainer.glade:661 glade/pytrainer.glade:3432
-#: glade/pytrainer.glade:4074 glade/pytrainer.glade:4728
+#: glade/pytrainer.glade:661
+#: glade/pytrainer.glade:3432
+#: glade/pytrainer.glade:4074
+#: glade/pytrainer.glade:4728
#: glade/pytrainer.glade:5382
msgid "<b>Max Pace:</b>"
msgstr "<b>Höchsttempo:</b>"
@@ -899,26 +948,39 @@ msgstr "<b>Höchsttempo:</b>"
msgid "<b>Descent:</b>"
msgstr "<b>Abstieg:</b>"
-#: glade/pytrainer.glade:769 glade/pytrainer.glade:3342
-#: glade/pytrainer.glade:3940 glade/pytrainer.glade:4594
+#: glade/pytrainer.glade:769
+#: glade/pytrainer.glade:3342
+#: glade/pytrainer.glade:3940
+#: glade/pytrainer.glade:4594
#: glade/pytrainer.glade:5082
msgid "Cal"
msgstr "cal"
-#: glade/pytrainer.glade:809 glade/pytrainer.glade:3104
-#: glade/pytrainer.glade:3746 glade/pytrainer.glade:4400
-#: glade/pytrainer.glade:5259 pytrainer/gui/windowmain.py:109
+#: glade/pytrainer.glade:809
+#: glade/pytrainer.glade:3104
+#: glade/pytrainer.glade:3746
+#: glade/pytrainer.glade:4400
+#: glade/pytrainer.glade:5259
+#: pytrainer/gui/windowmain.py:109
msgid "Km"
msgstr "km"
-#: glade/pytrainer.glade:824 glade/pytrainer.glade:3264
-#: glade/pytrainer.glade:3297 glade/pytrainer.glade:3895
-#: glade/pytrainer.glade:3988 glade/pytrainer.glade:4549
-#: glade/pytrainer.glade:4642 glade/pytrainer.glade:5302
-#: glade/pytrainer.glade:5318 pytrainer/gui/windowmain.py:920
-#: pytrainer/gui/windowmain.py:921 pytrainer/gui/windowmain.py:1049
-#: pytrainer/gui/windowmain.py:1050 pytrainer/gui/windowmain.py:1131
-#: pytrainer/gui/windowmain.py:1132 pytrainer/lib/activity.py:203
+#: glade/pytrainer.glade:824
+#: glade/pytrainer.glade:3264
+#: glade/pytrainer.glade:3297
+#: glade/pytrainer.glade:3895
+#: glade/pytrainer.glade:3988
+#: glade/pytrainer.glade:4549
+#: glade/pytrainer.glade:4642
+#: glade/pytrainer.glade:5302
+#: glade/pytrainer.glade:5318
+#: pytrainer/gui/windowmain.py:920
+#: pytrainer/gui/windowmain.py:921
+#: pytrainer/gui/windowmain.py:1049
+#: pytrainer/gui/windowmain.py:1050
+#: pytrainer/gui/windowmain.py:1131
+#: pytrainer/gui/windowmain.py:1132
+#: pytrainer/lib/activity.py:203
msgid "km/h"
msgstr "km/h"
@@ -942,7 +1004,8 @@ msgstr "<b>Runden</b>"
msgid " <b>Title:</b>"
msgstr "<b>Titel:</b>"
-#: glade/pytrainer.glade:1128 pytrainer/gui/windowmain.py:1726
+#: glade/pytrainer.glade:1128
+#: pytrainer/gui/windowmain.py:1726
msgid "Show graph display options"
msgstr "Optionen zur Graphendarstellung anzeigen"
@@ -964,8 +1027,10 @@ msgstr ""
"Prozente\n"
"Zone"
-#: glade/pytrainer.glade:1163 glade/pytrainer.glade:4311
-#: glade/pytrainer.glade:4965 glade/pytrainer.glade:5618
+#: glade/pytrainer.glade:1163
+#: glade/pytrainer.glade:4311
+#: glade/pytrainer.glade:4965
+#: glade/pytrainer.glade:5618
#: glade/pytrainer.glade:5984
msgid "Versus"
msgstr "Gegen"
@@ -990,26 +1055,31 @@ msgstr ""
msgid "<small>Graph Display Options</small>"
msgstr "<small>Graphendarstellungs-Optionen</small>"
-#: glade/pytrainer.glade:1345 glade/pytrainer.glade:1560
+#: glade/pytrainer.glade:1345
+#: glade/pytrainer.glade:1560
#: glade/pytrainer.glade:1780
msgid "<small>Limits</small>"
msgstr "<small>Grenzen</small>"
-#: glade/pytrainer.glade:1357 glade/pytrainer.glade:1572
+#: glade/pytrainer.glade:1357
+#: glade/pytrainer.glade:1572
#: glade/pytrainer.glade:1826
msgid "<small>Min</small>"
msgstr "<small>Min</small>"
-#: glade/pytrainer.glade:1369 glade/pytrainer.glade:1584
+#: glade/pytrainer.glade:1369
+#: glade/pytrainer.glade:1584
#: glade/pytrainer.glade:1838
msgid "<small>Max</small>"
msgstr "<small>Max</small>"
-#: glade/pytrainer.glade:1418 glade/pytrainer.glade:1640
+#: glade/pytrainer.glade:1418
+#: glade/pytrainer.glade:1640
msgid "<small>Color</small>"
msgstr "<small>Farbe</small>"
-#: glade/pytrainer.glade:1449 glade/pytrainer.glade:1653
+#: glade/pytrainer.glade:1449
+#: glade/pytrainer.glade:1653
msgid "<small>Weight</small>"
msgstr "<small>Gewicht</small>"
@@ -1017,7 +1087,8 @@ msgstr "<small>Gewicht</small>"
msgid "Y1"
msgstr "Y1"
-#: glade/pytrainer.glade:1490 glade/pytrainer.glade:1701
+#: glade/pytrainer.glade:1490
+#: glade/pytrainer.glade:1701
msgid "<small>Smoothing</small>"
msgstr "<small>Glättung</small>"
@@ -1073,14 +1144,18 @@ msgstr "<small>Zum Anzeigen der Karte verwenden:</small>"
msgid "<b>Beats:</b>"
msgstr "<b>Schläge:</b>"
-#: glade/pytrainer.glade:2197 glade/pytrainer.glade:3312
-#: glade/pytrainer.glade:3910 glade/pytrainer.glade:4564
+#: glade/pytrainer.glade:2197
+#: glade/pytrainer.glade:3312
+#: glade/pytrainer.glade:3910
+#: glade/pytrainer.glade:4564
#: glade/pytrainer.glade:5052
msgid "<b>Calories: </b>"
msgstr "<b>Kalorien: </b>"
-#: glade/pytrainer.glade:2211 glade/pytrainer.glade:3464
-#: glade/pytrainer.glade:4138 glade/pytrainer.glade:4792
+#: glade/pytrainer.glade:2211
+#: glade/pytrainer.glade:3464
+#: glade/pytrainer.glade:4138
+#: glade/pytrainer.glade:4792
#: glade/pytrainer.glade:5430
msgid "<b>Max Beats:</b>"
msgstr "<b>Höchste Schlaganzahl:</b>"
@@ -1093,7 +1168,8 @@ msgstr "<b>HF-Zonen-Methode:</b>"
msgid "<b>HR Zone5:</b>"
msgstr "<b>HF-Zone5:</b>"
-#: glade/pytrainer.glade:2255 glade/pytrainer.glade:2454
+#: glade/pytrainer.glade:2255
+#: glade/pytrainer.glade:2454
msgid " bpm"
msgstr " bpm"
@@ -1117,13 +1193,20 @@ msgstr "<b>HF-Zone2:</b>"
msgid "<b>HR Zone1:</b>"
msgstr "<b>HF-Zone1:</b>"
-#: glade/pytrainer.glade:2479 glade/pytrainer.glade:2491
-#: glade/pytrainer.glade:2506 glade/pytrainer.glade:2521
-#: glade/pytrainer.glade:2536 glade/pytrainer.glade:3387
-#: glade/pytrainer.glade:3481 glade/pytrainer.glade:4045
-#: glade/pytrainer.glade:4123 glade/pytrainer.glade:4699
-#: glade/pytrainer.glade:4777 glade/pytrainer.glade:5127
-#: glade/pytrainer.glade:5334 pytrainer/lib/activity.py:445
+#: glade/pytrainer.glade:2479
+#: glade/pytrainer.glade:2491
+#: glade/pytrainer.glade:2506
+#: glade/pytrainer.glade:2521
+#: glade/pytrainer.glade:2536
+#: glade/pytrainer.glade:3387
+#: glade/pytrainer.glade:3481
+#: glade/pytrainer.glade:4045
+#: glade/pytrainer.glade:4123
+#: glade/pytrainer.glade:4699
+#: glade/pytrainer.glade:4777
+#: glade/pytrainer.glade:5127
+#: glade/pytrainer.glade:5334
+#: pytrainer/lib/activity.py:445
#: pytrainer/lib/activity.py:525
msgid "bpm"
msgstr "bpm"
@@ -1138,8 +1221,7 @@ msgstr "<b>Geplante Zeiten</b>"
#: glade/pytrainer.glade:2799
msgid "<i>Rank relative to same-sport activities for distances ± x%:</i>"
-msgstr ""
-"<i>Relativ zu sportgleichen Aktivitäten für Distanzen ± x% anordnen:</i>"
+msgstr "<i>Relativ zu sportgleichen Aktivitäten für Distanzen ± x% anordnen:</i>"
#: glade/pytrainer.glade:2832
msgid "<b>Range:</b>"
@@ -1177,35 +1259,51 @@ msgstr "<b>Analysen:</b>"
msgid "Record"
msgstr "Eintrag"
-#: glade/pytrainer.glade:3280 glade/pytrainer.glade:3956
-#: glade/pytrainer.glade:4610 glade/pytrainer.glade:5350
+#: glade/pytrainer.glade:3280
+#: glade/pytrainer.glade:3956
+#: glade/pytrainer.glade:4610
+#: glade/pytrainer.glade:5350
msgid "<b>Max Speed:</b>"
msgstr "<b>Höchstgeschwindigkeit:</b>"
-#: glade/pytrainer.glade:3357 glade/pytrainer.glade:4015
-#: glade/pytrainer.glade:4669 glade/pytrainer.glade:5097
+#: glade/pytrainer.glade:3357
+#: glade/pytrainer.glade:4015
+#: glade/pytrainer.glade:4669
+#: glade/pytrainer.glade:5097
msgid "<b>Beats avg:</b>"
msgstr "<b>Durchschn. Schläge:</b>"
-#: glade/pytrainer.glade:3417 glade/pytrainer.glade:3449
-#: glade/pytrainer.glade:4091 glade/pytrainer.glade:4107
-#: glade/pytrainer.glade:4745 glade/pytrainer.glade:4761
-#: glade/pytrainer.glade:5399 glade/pytrainer.glade:5415
-#: pytrainer/gui/windowmain.py:922 pytrainer/gui/windowmain.py:923
-#: pytrainer/gui/windowmain.py:1051 pytrainer/gui/windowmain.py:1052
-#: pytrainer/gui/windowmain.py:1133 pytrainer/gui/windowmain.py:1134
+#: glade/pytrainer.glade:3417
+#: glade/pytrainer.glade:3449
+#: glade/pytrainer.glade:4091
+#: glade/pytrainer.glade:4107
+#: glade/pytrainer.glade:4745
+#: glade/pytrainer.glade:4761
+#: glade/pytrainer.glade:5399
+#: glade/pytrainer.glade:5415
+#: pytrainer/gui/windowmain.py:922
+#: pytrainer/gui/windowmain.py:923
+#: pytrainer/gui/windowmain.py:1051
+#: pytrainer/gui/windowmain.py:1052
+#: pytrainer/gui/windowmain.py:1133
+#: pytrainer/gui/windowmain.py:1134
#: pytrainer/lib/activity.py:204
msgid "min/km"
msgstr "min/km"
-#: glade/pytrainer.glade:3556 glade/pytrainer.glade:4199
-#: glade/pytrainer.glade:4853 glade/pytrainer.glade:5506
+#: glade/pytrainer.glade:3556
+#: glade/pytrainer.glade:4199
+#: glade/pytrainer.glade:4853
+#: glade/pytrainer.glade:5506
msgid "<b>Total Asc/Desc:</b>"
msgstr "<b>Gesamter An-/Abstieg:</b>"
-#: glade/pytrainer.glade:3583 glade/pytrainer.glade:4226
-#: glade/pytrainer.glade:4880 glade/pytrainer.glade:5533
-#: pytrainer/gui/windowmain.py:2070 pytrainer/gui/windowmain.py:2072
+#: glade/pytrainer.glade:3583
+#: glade/pytrainer.glade:4226
+#: glade/pytrainer.glade:4880
+#: glade/pytrainer.glade:5533
+#: pytrainer/gui/windowmain.py:2070
+#: pytrainer/gui/windowmain.py:2072
#: pytrainer/lib/activity.py:205
msgid "m"
msgstr "m"
@@ -1236,8 +1334,10 @@ msgstr "Tag"
msgid " <b>Week:</b>"
msgstr "<b>Woche:</b>"
-#: glade/pytrainer.glade:4296 glade/pytrainer.glade:4950
-#: glade/pytrainer.glade:5603 glade/pytrainer.glade:5969
+#: glade/pytrainer.glade:4296
+#: glade/pytrainer.glade:4950
+#: glade/pytrainer.glade:5603
+#: glade/pytrainer.glade:5969
msgid ""
"Distance\n"
"Time\n"
@@ -1251,8 +1351,10 @@ msgstr ""
"Durchschnittsgeschwindigkeit\n"
"Kalorien"
-#: glade/pytrainer.glade:4322 glade/pytrainer.glade:4976
-#: glade/pytrainer.glade:5629 glade/pytrainer.glade:5995
+#: glade/pytrainer.glade:4322
+#: glade/pytrainer.glade:4976
+#: glade/pytrainer.glade:5629
+#: glade/pytrainer.glade:5995
msgid ""
"None\n"
"Distance\n"
@@ -1332,12 +1434,14 @@ msgstr "<b>Titel:</b>"
msgid "Search"
msgstr "Suche"
-#: glade/pytrainer.glade:6293 pytrainer/lib/listview.py:3
+#: glade/pytrainer.glade:6293
+#: pytrainer/lib/listview.py:3
#: pytrainer/lib/listview.py:10
msgid "All Distances"
msgstr "Alle Strecken"
-#: glade/pytrainer.glade:6302 pytrainer/lib/listview.py:35
+#: glade/pytrainer.glade:6302
+#: pytrainer/lib/listview.py:35
msgid "All Durations"
msgstr "Alle Laufzeiten"
@@ -1405,7 +1509,8 @@ msgstr "Strecken zusammenführen"
msgid "Select track record"
msgstr "Streckeneintrag bearbeiten"
-#: glade/warning.glade:7 glade/warning.glade:38
+#: glade/warning.glade:7
+#: glade/warning.glade:38
msgid "Warning"
msgstr "Warnung"
@@ -1413,9 +1518,12 @@ msgstr "Warnung"
msgid "Miles"
msgstr "Meilen"
-#: pytrainer/gui/windowmain.py:110 pytrainer/gui/windowmain.py:114
-#: pytrainer/gui/windowmain.py:127 pytrainer/gui/windowmain.py:130
-#: pytrainer/gui/windowmain.py:139 pytrainer/gui/windowmain.py:173
+#: pytrainer/gui/windowmain.py:110
+#: pytrainer/gui/windowmain.py:114
+#: pytrainer/gui/windowmain.py:127
+#: pytrainer/gui/windowmain.py:130
+#: pytrainer/gui/windowmain.py:139
+#: pytrainer/gui/windowmain.py:173
#: pytrainer/gui/windowmain.py:182
msgid "id"
msgstr "ID"
@@ -1424,23 +1532,37 @@ msgstr "ID"
msgid "Start"
msgstr "Start"
-#: pytrainer/gui/windowmain.py:117 pytrainer/gui/windowmain.py:157
-#: pytrainer/gui/windowmain.py:175 pytrainer/gui/windowmain.py:185
-#: pytrainer/gui/windowmain.py:573 pytrainer/gui/windowmain.py:1499
-#: pytrainer/gui/windowimportdata.py:353 pytrainer/gui/windowrecord.py:211
-#: pytrainer/lib/activity.py:323 pytrainer/lib/activity.py:334
-#: pytrainer/lib/activity.py:406 pytrainer/lib/activity.py:417
-#: pytrainer/lib/activity.py:426 pytrainer/lib/activity.py:435
-#: pytrainer/lib/activity.py:444 pytrainer/lib/activity.py:454
-#: pytrainer/lib/activity.py:463 pytrainer/lib/activity.py:524
-#: pytrainer/extensions/googlemaps.py:129 pytrainer/extensions/osm.py:105
+#: pytrainer/gui/windowmain.py:117
+#: pytrainer/gui/windowmain.py:157
+#: pytrainer/gui/windowmain.py:175
+#: pytrainer/gui/windowmain.py:185
+#: pytrainer/gui/windowmain.py:573
+#: pytrainer/gui/windowmain.py:1499
+#: pytrainer/gui/windowimportdata.py:353
+#: pytrainer/gui/windowrecord.py:211
+#: pytrainer/lib/activity.py:323
+#: pytrainer/lib/activity.py:334
+#: pytrainer/lib/activity.py:406
+#: pytrainer/lib/activity.py:417
+#: pytrainer/lib/activity.py:426
+#: pytrainer/lib/activity.py:435
+#: pytrainer/lib/activity.py:444
+#: pytrainer/lib/activity.py:454
+#: pytrainer/lib/activity.py:463
+#: pytrainer/lib/activity.py:524
+#: pytrainer/extensions/googlemaps.py:132
+#: pytrainer/extensions/osm.py:105
msgid "Distance"
msgstr "Strecke"
-#: pytrainer/gui/windowmain.py:119 pytrainer/gui/windowmain.py:158
-#: pytrainer/gui/windowmain.py:176 pytrainer/gui/windowmain.py:186
-#: pytrainer/gui/windowmain.py:574 pytrainer/gui/windowmain.py:1501
-#: pytrainer/extensions/googlemaps.py:129 pytrainer/extensions/osm.py:104
+#: pytrainer/gui/windowmain.py:119
+#: pytrainer/gui/windowmain.py:158
+#: pytrainer/gui/windowmain.py:176
+#: pytrainer/gui/windowmain.py:186
+#: pytrainer/gui/windowmain.py:574
+#: pytrainer/gui/windowmain.py:1501
+#: pytrainer/extensions/googlemaps.py:132
+#: pytrainer/extensions/osm.py:104
msgid "Time"
msgstr "Zeit"
@@ -1468,7 +1590,8 @@ msgstr "Körperfett %"
msgid "Resting HR"
msgstr "Ruhe-Herzfrequenz"
-#: pytrainer/gui/windowmain.py:135 pytrainer/gui/windowmain.py:147
+#: pytrainer/gui/windowmain.py:135
+#: pytrainer/gui/windowmain.py:147
#: pytrainer/gui/windowmain.py:164
msgid "Max HR"
msgstr "Höchste Herzfrequenz"
@@ -1485,15 +1608,18 @@ msgstr "Gesamtdauer"
msgid "Total distance"
msgstr "Gesamtstrecke"
-#: pytrainer/gui/windowmain.py:144 pytrainer/gui/windowmain.py:159
+#: pytrainer/gui/windowmain.py:144
+#: pytrainer/gui/windowmain.py:159
msgid "Avg speed"
msgstr "Durchschnittsgeschwindigkeit"
-#: pytrainer/gui/windowmain.py:145 pytrainer/gui/windowmain.py:160
+#: pytrainer/gui/windowmain.py:145
+#: pytrainer/gui/windowmain.py:160
msgid "Max speed"
msgstr "Höchste Geschwindigkeit"
-#: pytrainer/gui/windowmain.py:146 pytrainer/gui/windowmain.py:163
+#: pytrainer/gui/windowmain.py:146
+#: pytrainer/gui/windowmain.py:163
msgid "Avg HR"
msgstr "Durchschnittliche Herzfrequenz"
@@ -1533,8 +1659,10 @@ msgstr "Rennen"
msgid "Rank"
msgstr "Rang"
-#: pytrainer/gui/windowmain.py:187 pytrainer/recordgraph.py:136
-#: pytrainer/lib/activity.py:335 pytrainer/lib/activity.py:425
+#: pytrainer/gui/windowmain.py:187
+#: pytrainer/recordgraph.py:136
+#: pytrainer/lib/activity.py:335
+#: pytrainer/lib/activity.py:425
#: pytrainer/lib/activity.py:427
msgid "Speed"
msgstr "Geschwindigkeit"
@@ -1619,31 +1747,42 @@ msgstr "Marathon"
msgid "100K"
msgstr "100 km"
-#: pytrainer/gui/windowmain.py:913 pytrainer/gui/windowmain.py:1042
-#: pytrainer/gui/windowmain.py:1124 pytrainer/lib/activity.py:197
+#: pytrainer/gui/windowmain.py:913
+#: pytrainer/gui/windowmain.py:1042
+#: pytrainer/gui/windowmain.py:1124
+#: pytrainer/lib/activity.py:197
msgid "miles"
msgstr "Meilen"
-#: pytrainer/gui/windowmain.py:914 pytrainer/gui/windowmain.py:915
-#: pytrainer/gui/windowmain.py:1043 pytrainer/gui/windowmain.py:1044
-#: pytrainer/gui/windowmain.py:1125 pytrainer/gui/windowmain.py:1126
+#: pytrainer/gui/windowmain.py:914
+#: pytrainer/gui/windowmain.py:915
+#: pytrainer/gui/windowmain.py:1043
+#: pytrainer/gui/windowmain.py:1044
+#: pytrainer/gui/windowmain.py:1125
+#: pytrainer/gui/windowmain.py:1126
#: pytrainer/lib/activity.py:198
msgid "miles/h"
msgstr "Meilen/h"
-#: pytrainer/gui/windowmain.py:916 pytrainer/gui/windowmain.py:917
-#: pytrainer/gui/windowmain.py:1045 pytrainer/gui/windowmain.py:1046
-#: pytrainer/gui/windowmain.py:1127 pytrainer/gui/windowmain.py:1128
+#: pytrainer/gui/windowmain.py:916
+#: pytrainer/gui/windowmain.py:917
+#: pytrainer/gui/windowmain.py:1045
+#: pytrainer/gui/windowmain.py:1046
+#: pytrainer/gui/windowmain.py:1127
+#: pytrainer/gui/windowmain.py:1128
#: pytrainer/lib/activity.py:199
msgid "min/mile"
msgstr "min/Meile"
-#: pytrainer/gui/windowmain.py:919 pytrainer/gui/windowmain.py:1048
-#: pytrainer/gui/windowmain.py:1130 pytrainer/lib/activity.py:202
+#: pytrainer/gui/windowmain.py:919
+#: pytrainer/gui/windowmain.py:1048
+#: pytrainer/gui/windowmain.py:1130
+#: pytrainer/lib/activity.py:202
msgid "km"
msgstr "km"
-#: pytrainer/gui/windowmain.py:1502 pytrainer/recordgraph.py:144
+#: pytrainer/gui/windowmain.py:1502
+#: pytrainer/recordgraph.py:144
msgid "Beats"
msgstr "Schläge"
@@ -1659,18 +1798,22 @@ msgstr "Graphenanzeige-Optionen verstecken"
msgid "lap"
msgstr "Runde"
-#: pytrainer/gui/windowmain.py:2070 pytrainer/gui/drawArea.py:165
-#: pytrainer/extensions/googlemaps.py:127 pytrainer/extensions/osm.py:102
+#: pytrainer/gui/windowmain.py:2070
+#: pytrainer/gui/drawArea.py:165
+#: pytrainer/extensions/googlemaps.py:130
+#: pytrainer/extensions/osm.py:102
msgid "h"
msgstr "h"
-#: pytrainer/gui/windowmain.py:2070 pytrainer/gui/windowmain.py:2072
+#: pytrainer/gui/windowmain.py:2070
+#: pytrainer/gui/windowmain.py:2072
msgid "s"
msgstr "s"
-#: pytrainer/gui/windowmain.py:2160 pytrainer/record.py:67
+#: pytrainer/gui/windowmain.py:2160
+#: pytrainer/record.py:67
msgid "Edit Entry"
-msgstr "Neuer Eintrag"
+msgstr "Eintrag bearbeiten"
#: pytrainer/gui/windowmain.py:2171
msgid "Delete Entry"
@@ -1704,7 +1847,8 @@ msgstr "<b>Ruhe-Herzfrequenz</b>"
msgid "<b>Max Heart Rate</b>"
msgstr "<b>Höchste Herzfrequenz:</b>"
-#: pytrainer/gui/windowmain.py:2280 pytrainer/main.py:447
+#: pytrainer/gui/windowmain.py:2280
+#: pytrainer/main.py:447
msgid "Delete this database entry?"
msgstr "Diesen Datenbankeintrag löschen?"
@@ -1760,11 +1904,13 @@ msgstr "Typ"
msgid "Activities"
msgstr "Aktivitäten"
-#: pytrainer/gui/windowimportdata.py:353 pytrainer/gui/windowrecord.py:211
+#: pytrainer/gui/windowimportdata.py:353
+#: pytrainer/gui/windowrecord.py:211
msgid "Start Time"
msgstr "Startzeit"
-#: pytrainer/gui/windowimportdata.py:353 pytrainer/gui/windowrecord.py:211
+#: pytrainer/gui/windowimportdata.py:353
+#: pytrainer/gui/windowrecord.py:211
msgid "Duration"
msgstr "Dauer"
@@ -1772,23 +1918,29 @@ msgstr "Dauer"
msgid "Imported into database"
msgstr "In Datenbank importiert"
-#: pytrainer/gui/windowimportdata.py:543 pytrainer/gui/windowextensions.py:81
+#: pytrainer/gui/windowimportdata.py:543
+#: pytrainer/gui/windowextensions.py:81
#: pytrainer/gui/windowplugins.py:80
#, python-format
msgid "%s settings"
msgstr "%s Einstellungen"
-#: pytrainer/gui/windowimportdata.py:558 pytrainer/gui/windowextensions.py:70
-#: pytrainer/gui/windowplugins.py:71 pytrainer/gui/windowplugins.py:95
+#: pytrainer/gui/windowimportdata.py:558
+#: pytrainer/gui/windowextensions.py:70
+#: pytrainer/gui/windowplugins.py:71
+#: pytrainer/gui/windowplugins.py:95
msgid "Disable"
msgstr "ausschalten"
-#: pytrainer/gui/windowimportdata.py:559 pytrainer/gui/windowextensions.py:72
-#: pytrainer/gui/windowplugins.py:69 pytrainer/gui/windowplugins.py:96
+#: pytrainer/gui/windowimportdata.py:559
+#: pytrainer/gui/windowextensions.py:72
+#: pytrainer/gui/windowplugins.py:69
+#: pytrainer/gui/windowplugins.py:96
msgid "Enable"
msgstr "einschalten"
-#: pytrainer/gui/windowimportdata.py:566 pytrainer/gui/windowplugins.py:103
+#: pytrainer/gui/windowimportdata.py:566
+#: pytrainer/gui/windowplugins.py:103
msgid "Ok"
msgstr "OK"
@@ -1820,11 +1972,10 @@ msgstr "%d Aktivitäten importiert"
#: pytrainer/gui/windowimportdata.py:676
msgid "Choose a file (or files) to import activities from"
-msgstr ""
-"Wählen Sie eine (oder mehrere) Datei(en), um daraus Aktivitäten zu "
-"importieren"
+msgstr "Wählen Sie eine (oder mehrere) Datei(en), um daraus Aktivitäten zu importieren"
-#: pytrainer/gui/windowimportdata.py:691 pytrainer/gui/windowimportdata.py:692
+#: pytrainer/gui/windowimportdata.py:691
+#: pytrainer/gui/windowimportdata.py:692
#, python-format
msgid "Found file of type: %s"
msgstr "Datei des Typs %s gefunden"
@@ -1833,7 +1984,8 @@ msgstr "Datei des Typs %s gefunden"
msgid "Found in database"
msgstr "In Datenbank gefunden"
-#: pytrainer/gui/windowimportdata.py:731 pytrainer/gui/windowimportdata.py:732
+#: pytrainer/gui/windowimportdata.py:731
+#: pytrainer/gui/windowimportdata.py:732
#, python-format
msgid "File %s is of unknown or unsupported file type"
msgstr "Datei %s hat einen unbekannten oder nicht unterstützten Dateityp"
@@ -1843,7 +1995,8 @@ msgstr "Datei %s hat einen unbekannten oder nicht unterstützten Dateityp"
msgid "Column %d"
msgstr "Spalte %d"
-#: pytrainer/gui/drawArea.py:166 pytrainer/extensions/googlemaps.py:127
+#: pytrainer/gui/drawArea.py:166
+#: pytrainer/extensions/googlemaps.py:130
#: pytrainer/extensions/osm.py:102
msgid "min"
msgstr "min"
@@ -1884,15 +2037,18 @@ msgstr "Name der Strecke"
msgid "Athlete Data"
msgstr "Athletendaten"
-#: pytrainer/gui/windowextensions.py:112 pytrainer/gui/windowextensions.py:125
+#: pytrainer/gui/windowextensions.py:112
+#: pytrainer/gui/windowextensions.py:125
msgid "OK"
msgstr "OK"
-#: pytrainer/recordgraph.py:134 pytrainer/daygraph.py:52
+#: pytrainer/recordgraph.py:134
+#: pytrainer/daygraph.py:52
msgid "Height (m)"
msgstr "Größe (m)"
-#: pytrainer/recordgraph.py:134 pytrainer/daygraph.py:52
+#: pytrainer/recordgraph.py:134
+#: pytrainer/daygraph.py:52
msgid "Stage Profile"
msgstr "Abschnittsprofil"
@@ -1900,12 +2056,15 @@ msgstr "Abschnittsprofil"
msgid "Speed (Km/h)"
msgstr "Geschwindigkeit (km/h)"
-#: pytrainer/recordgraph.py:138 pytrainer/lib/activity.py:324
-#: pytrainer/lib/activity.py:434 pytrainer/lib/activity.py:436
+#: pytrainer/recordgraph.py:138
+#: pytrainer/lib/activity.py:324
+#: pytrainer/lib/activity.py:434
+#: pytrainer/lib/activity.py:436
msgid "Pace"
msgstr "Tempo"
-#: pytrainer/recordgraph.py:140 pytrainer/heartrategraph.py:36
+#: pytrainer/recordgraph.py:140
+#: pytrainer/heartrategraph.py:36
#: pytrainer/daygraph.py:56
msgid "Beats (bpm)"
msgstr "Schläge (bpm)"
@@ -1914,7 +2073,8 @@ msgstr "Schläge (bpm)"
msgid "Cadence (rpm)"
msgstr "Rhythmus (rpm)"
-#: pytrainer/recordgraph.py:142 pytrainer/lib/activity.py:462
+#: pytrainer/recordgraph.py:142
+#: pytrainer/lib/activity.py:462
#: pytrainer/lib/activity.py:464
msgid "Cadence"
msgstr "Rhythmus"
@@ -1991,11 +2151,16 @@ msgstr "Fuß"
msgid "Pace by Lap"
msgstr "Tempo pro Runde"
-#: pytrainer/lib/activity.py:328 pytrainer/lib/activity.py:339
-#: pytrainer/lib/activity.py:411 pytrainer/lib/activity.py:421
-#: pytrainer/lib/activity.py:430 pytrainer/lib/activity.py:439
-#: pytrainer/lib/activity.py:448 pytrainer/lib/activity.py:458
-#: pytrainer/lib/activity.py:467 pytrainer/lib/activity.py:529
+#: pytrainer/lib/activity.py:328
+#: pytrainer/lib/activity.py:339
+#: pytrainer/lib/activity.py:411
+#: pytrainer/lib/activity.py:421
+#: pytrainer/lib/activity.py:430
+#: pytrainer/lib/activity.py:439
+#: pytrainer/lib/activity.py:448
+#: pytrainer/lib/activity.py:458
+#: pytrainer/lib/activity.py:467
+#: pytrainer/lib/activity.py:529
msgid "Time (seconds)"
msgstr "Zeit (Sekunden)"
@@ -2003,11 +2168,13 @@ msgstr "Zeit (Sekunden)"
msgid "Speed by Lap"
msgstr "Geschwindigkeit pro Runde"
-#: pytrainer/lib/activity.py:405 pytrainer/lib/activity.py:407
+#: pytrainer/lib/activity.py:405
+#: pytrainer/lib/activity.py:407
msgid "Elevation"
msgstr "Höhenlage"
-#: pytrainer/lib/activity.py:416 pytrainer/lib/activity.py:418
+#: pytrainer/lib/activity.py:416
+#: pytrainer/lib/activity.py:418
msgid "Corrected Elevation"
msgstr "Berichtigte Höhenlage"
@@ -2028,44 +2195,57 @@ msgstr "rpm"
msgid "Heart Rate zone"
msgstr "Herzfrequenz-Zone"
-#: pytrainer/monthgraph.py:26 pytrainer/monthgraph.py:27
-#: pytrainer/monthgraph.py:28 pytrainer/monthgraph.py:29
+#: pytrainer/monthgraph.py:26
+#: pytrainer/monthgraph.py:27
+#: pytrainer/monthgraph.py:28
+#: pytrainer/monthgraph.py:29
#: pytrainer/monthgraph.py:30
msgid "day"
msgstr "Tag"
-#: pytrainer/monthgraph.py:26 pytrainer/weekgraph.py:28
+#: pytrainer/monthgraph.py:26
+#: pytrainer/weekgraph.py:28
msgid "Daily Distance"
msgstr "Tägliche Entfernung"
-#: pytrainer/monthgraph.py:27 pytrainer/totalgraph.py:25
-#: pytrainer/yeargraph.py:27 pytrainer/weekgraph.py:29
+#: pytrainer/monthgraph.py:27
+#: pytrainer/totalgraph.py:25
+#: pytrainer/yeargraph.py:27
+#: pytrainer/weekgraph.py:29
msgid "Time (hours)"
msgstr "Zeit (Stunden)"
-#: pytrainer/monthgraph.py:27 pytrainer/weekgraph.py:29
+#: pytrainer/monthgraph.py:27
+#: pytrainer/weekgraph.py:29
msgid "Daily Time"
msgstr "Tägliche Zeit"
-#: pytrainer/monthgraph.py:28 pytrainer/totalgraph.py:26
-#: pytrainer/yeargraph.py:28 pytrainer/weekgraph.py:30
+#: pytrainer/monthgraph.py:28
+#: pytrainer/totalgraph.py:26
+#: pytrainer/yeargraph.py:28
+#: pytrainer/weekgraph.py:30
msgid "Average Heart Rate (bpm)"
msgstr "Durchschnittliche Herzfrequenz (bpm)"
-#: pytrainer/monthgraph.py:28 pytrainer/weekgraph.py:30
+#: pytrainer/monthgraph.py:28
+#: pytrainer/weekgraph.py:30
msgid "Daily Average Heart Rate"
msgstr "Tägliche Durchschnitts-Herzfrequenz"
-#: pytrainer/monthgraph.py:29 pytrainer/weekgraph.py:31
+#: pytrainer/monthgraph.py:29
+#: pytrainer/weekgraph.py:31
msgid "Daily Average Speed"
msgstr "Tägliche Durchschnittsgeschwindigkeit"
-#: pytrainer/monthgraph.py:30 pytrainer/weekgraph.py:32
+#: pytrainer/monthgraph.py:30
+#: pytrainer/weekgraph.py:32
msgid "Daily Calories"
msgstr "Tägliche Kalorien"
-#: pytrainer/totalgraph.py:24 pytrainer/totalgraph.py:25
-#: pytrainer/totalgraph.py:26 pytrainer/totalgraph.py:27
+#: pytrainer/totalgraph.py:24
+#: pytrainer/totalgraph.py:25
+#: pytrainer/totalgraph.py:26
+#: pytrainer/totalgraph.py:27
#: pytrainer/totalgraph.py:28
msgid "year"
msgstr "Jahr"
@@ -2102,12 +2282,14 @@ msgstr "kg"
msgid "Modify details before importing"
msgstr "Dateien vor dem Import bearbeiten"
-#: pytrainer/record.py:474
-msgid "pyTrainer can't import data from your gpx file"
-msgstr "PyTrainer kann keine Daten aus Ihrer GPX-Datei importieren"
+#: pytrainer/record.py:477
+msgid "pytrainer can't import data from your gpx file"
+msgstr "pytrainer kann keine Daten aus Ihrer GPX-Datei importieren"
-#: pytrainer/yeargraph.py:26 pytrainer/yeargraph.py:27
-#: pytrainer/yeargraph.py:28 pytrainer/yeargraph.py:29
+#: pytrainer/yeargraph.py:26
+#: pytrainer/yeargraph.py:27
+#: pytrainer/yeargraph.py:28
+#: pytrainer/yeargraph.py:29
#: pytrainer/yeargraph.py:30
msgid "month"
msgstr "Monat"
@@ -2133,12 +2315,8 @@ msgid "Monthly Calories"
msgstr "Monatliche Kalorien"
#: pytrainer/waypoint.py:87
-msgid ""
-"The gpx file seems to be a several days records. Perhaps you will need to "
-"edit your gpx file"
-msgstr ""
-"Diese GPX-Datei scheint ein Eintrag über mehrere Tage zu sein. Vielleicht "
-"werden Sie Ihre GPX-Datei bearbeiten müssen."
+msgid "The gpx file seems to be a several days records. Perhaps you will need to edit your gpx file"
+msgstr "Diese GPX-Datei scheint ein Eintrag über mehrere Tage zu sein. Vielleicht werden Sie Ihre GPX-Datei bearbeiten müssen."
#: pytrainer/daygraph.py:54
msgid "Velocity (Km/h)"
@@ -2241,3 +2419,4 @@ msgstr "Worpress-Erweiterung arbeitet"
#: extensions/wordpress/wordpress.py:144
msgid "Wordpress Extension Upload Complete"
msgstr "Wordpress-Erweiterung Hochladen abgeschlossen"
+
diff --git a/pytrainer/extensions/googlemaps.py b/pytrainer/extensions/googlemaps.py
index 31ef0ab..fbdfc41 100644
--- a/pytrainer/extensions/googlemaps.py
+++ b/pytrainer/extensions/googlemaps.py
@@ -21,6 +21,7 @@ import re
import logging
import colorsys
import math
+import traceback
import pytrainer.lib.points as Points
from pytrainer.lib.fileUtils import fileUtils
@@ -73,26 +74,29 @@ class Googlemaps:
pointlist = []
polyline = []
- list_values = activity.tracks
+ list_values = activity.tracks
+ # (accum distance, elevation, total duration, speed, lat, lon, bpm, cadence, corrected elevation)
+ # (19.963867183986643, 7.34716797, 6488, 13.791899119294959, 43.53392358, -5.634736, 146, None, None)
if list_values is not None and list_values != [] and len(list_values) > 0:
minlat, minlon = float(list_values[0][4]),float(list_values[0][5])
maxlat=minlat
maxlon=minlon
- pre = 0
av_sum = 0
variance_sum = 0
n = 0
+ #logging.debug("\n, ".join(map(str, list_values)))
for i in list_values:
if linetype==1:
- if pre:
- val = (i[0]-pre[0])/((i[2]-pre[2])/3600)
+ if i[3] is not None:
+ val = i[3]
else:
- val = (list_values[1][0]-list_values[0][0])/((list_values[1][2]-list_values[0][2])/3600)
+ val = 0
+ logging.error("No valid speed value for trackpoint: distance: %s | lat: %s | lon: %s" %(i[0],i[4],i[5]))
elif linetype==2:
val = i[6] if i[6] else 0
elif linetype==3:
- val =i[7] if i[7]!=None else 1
+ val = i[7] if i[7]!=None else 1
else:
val = 1
@@ -107,7 +111,6 @@ class Googlemaps:
maxlon = max(maxlon, lon)
pointlist.append((lat,lon))
polyline.append(["new google.maps.LatLng(%s, %s)" % (lat, lon), val, ""])
- pre = i
av_speed = av_sum / float(n)
variance = (variance_sum / float(n)) - av_speed**2
diff --git a/pytrainer/gui/aboutdialog.py b/pytrainer/gui/aboutdialog.py
index 770ec63..79811d5 100644
--- a/pytrainer/gui/aboutdialog.py
+++ b/pytrainer/gui/aboutdialog.py
@@ -33,7 +33,7 @@ class About:
def run(self):
authors = ["Fiz Vázquez <vud1 at sindominio.net>\nDavid García Granda <dgranda at gmail.com>\nJohn Blance <john.blance at gmail.com>\nArnd Zapletal <a.zapletal at gmail.com>\nNathan Jones <nathan at ncjones.com>\n\n-Package maintainers:\n\nRedHat/Fedora: Douglas E. Warner <silfreed at silfreed.net>\nDebian: Noèl Köthe <noel at debian.org>, Christian Perrier <bubulle at debian.org>\nUbuntu: Kevin Dwyer <kevin at pheared.net>, Alessio Treglia <quadrispro at ubuntu.com>"]
- translator_credits = "Euskara: Jabier Santamaria <mendikote at gmail.com>\nCatalà: Eloi Crespillo Itchart <eloi at ikuszen.com>\nČesky: Lobus Pokorny <sp.pok at seznam.cz>\nFrançais: Dj <dj at djremixtheblog.be>, Pierre Gaigé <pgaige at free.fr>, Christian Perrier <bubulle at debian.org>\nNorsk: Havard Davidsen <havard.davidsen at gmail.com>\nPolski: Seweryn Kokot <skokot at po.opole.pl>\nDeutsch: Aleks <aleks at schnecklecker.de>, Noèl Köthe <noel at debian.org>, Erik Pfannenstein <debianignatz at gmx.de>, Andreas Mair <amair.sob at googlemail.com>\nEspañol: Fiz Vázquez <vud1 at sindominio.net>, David García Granda <dgranda at gmail.com>\nSvenska: Per Medin <per.medin at gmail.com>\nGalego: Kaptan <khanyux at gmail.com>\nPortuguês: Pedro Ribeiro <p.m42.ribeiro at gmail.com>"
+ translator_credits = "Euskara: Jabier Santamaria <mendikote at gmail.com>\nCatalà: Eloi Crespillo Itchart <eloi at ikuszen.com>\nČesky: Luboš Pokorny <sp.pok at seznam.cz>\nFrançais: Dj <dj at djremixtheblog.be>, Pierre Gaigé <pgaige at free.fr>, Christian Perrier <bubulle at debian.org>\nNorsk: Havard Davidsen <havard.davidsen at gmail.com>\nPolski: Seweryn Kokot <skokot at po.opole.pl>\nDeutsch: Aleks <aleks at schnecklecker.de>, Noèl Köthe <noel at debian.org>, Erik Pfannenstein <debianignatz at gmx.de>, Andreas Mair <amair.sob at googlemail.com>\nEspañol: Fiz Vázquez <vud1 at sindominio.net>, David García Granda <dgranda at gmail.com>\nSvenska: Per Medin <per.medin at gmail.com>\nGalego: Kaptan <khanyux at gmail.com>\nPortuguês: Pedro Ribeiro <p.m42.ribeiro at gmail.com>"
license = "pytrainer - The free sport tracking center\nCopyright (C) 2005-09 Fiz Vázquez\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA"
about_dialog = gtk.AboutDialog()
about_dialog.set_destroy_with_parent(True)
diff --git a/pytrainer/main.py b/pytrainer/main.py
index 0486aab..f17836a 100644
--- a/pytrainer/main.py
+++ b/pytrainer/main.py
@@ -55,7 +55,7 @@ from lib.uc import UC
class pyTrainer:
def __init__(self,filename = None, data_path = None):
#Version constants
- self.version ="1.9.0"
+ self.version ="1.9.2-dev"
#Process command line options
self.startup_options = self.get_options()
#Setup logging
diff --git a/pytrainer/upgrade/context.py b/pytrainer/upgrade/context.py
index 206908d..30bd1db 100644
--- a/pytrainer/upgrade/context.py
+++ b/pytrainer/upgrade/context.py
@@ -22,8 +22,9 @@ class UpgradeContext(object):
Provides access to the application base dir."""
- def __init__(self, conf_dir):
+ def __init__(self, conf_dir, db_url):
self.conf_dir = conf_dir
+ self.db_url = db_url
# sqlalchemy-migrate does not provide any means to inject the context object in
# to upgrade scripts so instead we provide access via this global which must be
diff --git a/pytrainer/upgrade/data.py b/pytrainer/upgrade/data.py
index b16b291..888b3dc 100644
--- a/pytrainer/upgrade/data.py
+++ b/pytrainer/upgrade/data.py
@@ -28,7 +28,7 @@ def initialize_data(ddbb, conf_dir):
"""Initializes the installation's data."""
db_url = ddbb.get_connection_url()
migratable_db = MigratableDb(MIGRATE_REPOSITORY_PATH, db_url)
- InstalledData(migratable_db, ddbb, LegacyVersionProvider(conf_dir), UpgradeContext(conf_dir)).update_to_current()
+ InstalledData(migratable_db, ddbb, LegacyVersionProvider(conf_dir), UpgradeContext(conf_dir, db_url)).update_to_current()
class InstalledData(object):
diff --git a/pytrainer/upgrade/migratedb.py b/pytrainer/upgrade/migratedb.py
index 55a3815..af59df9 100644
--- a/pytrainer/upgrade/migratedb.py
+++ b/pytrainer/upgrade/migratedb.py
@@ -17,6 +17,7 @@
#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
from migrate.versioning.api import db_version, upgrade, version, version_control
+from sqlalchemy.exc import NoSuchTableError
# sqlalchemy-migrate 0.6.1 broke backwards compatibility
# so we need to try importing exceptions from one of two packages
try:
@@ -59,6 +60,10 @@ class MigratableDb(object):
self.get_version()
except DatabaseNotControlledError:
return False
+ except NoSuchTableError:
+ # prior to 0.6.0, sqlalchemy-migrate did not handle querying
+ # against unversioned databases.
+ return False
return True
def get_version(self):
diff --git a/pytrainer/upgrade/versions/007_populate_record_duration.py b/pytrainer/upgrade/versions/007_populate_record_duration.py
index 9b301ef..fdce7aa 100644
--- a/pytrainer/upgrade/versions/007_populate_record_duration.py
+++ b/pytrainer/upgrade/versions/007_populate_record_duration.py
@@ -1,9 +1,14 @@
+from pytrainer.upgrade.context import UPGRADE_CONTEXT
from sqlalchemy.sql.expression import text
import logging
+import sqlalchemy
# record duration added in version 1.8.0
-def upgrade(migrate_engine):
+def upgrade(migrate_engine=None):
+ if migrate_engine is None:
+ # sqlalchemy-migrate 0.5.4 does not provide migrate engine to upgrade scripts
+ migrate_engine = sqlalchemy.create_engine(UPGRADE_CONTEXT.db_url)
logging.info("Populating records.duration column")
records = migrate_engine.execute("select id_record, time from records where duration is null")
for record in records:
@@ -23,5 +28,5 @@ try:
import migrate.versioning.exceptions as ex1
import migrate.changeset.exceptions as ex2
ex1.MigrateDeprecationWarning = ex2.MigrateDeprecationWarning
-except ImportError:
+except:
pass
diff --git a/pytrainer/upgrade/versions/011_populate_lap_details.py b/pytrainer/upgrade/versions/011_populate_lap_details.py
index f9e2e13..69000f7 100644
--- a/pytrainer/upgrade/versions/011_populate_lap_details.py
+++ b/pytrainer/upgrade/versions/011_populate_lap_details.py
@@ -1,11 +1,15 @@
-from pytrainer.upgrade.context import UPGRADE_CONTEXT
from pytrainer.lib import gpx
+from pytrainer.upgrade.context import UPGRADE_CONTEXT
from sqlalchemy.sql.expression import text
import logging
import os.path
+import sqlalchemy
# lap info added in version 1.9.0
-def upgrade(migrate_engine):
+def upgrade(migrate_engine=None):
+ if migrate_engine is None:
+ # sqlalchemy-migrate 0.5.4 does not provide migrate engine to upgrade scripts
+ migrate_engine = sqlalchemy.create_engine(UPGRADE_CONTEXT.db_url)
logging.info("Populating laps details columns")
resultset = migrate_engine.execute(text("select distinct record from laps where intensity is null"))
record_ids = []
@@ -50,5 +54,5 @@ try:
import migrate.versioning.exceptions as ex1
import migrate.changeset.exceptions as ex2
ex1.MigrateDeprecationWarning = ex2.MigrateDeprecationWarning
-except ImportError:
+except:
pass
diff --git a/pytrainer/upgrade/versions/013_remove_db_version.py b/pytrainer/upgrade/versions/013_remove_db_version.py
index 96c5e85..fda2f52 100644
--- a/pytrainer/upgrade/versions/013_remove_db_version.py
+++ b/pytrainer/upgrade/versions/013_remove_db_version.py
@@ -1,7 +1,7 @@
from lxml import etree
from pytrainer.upgrade.context import UPGRADE_CONTEXT
-def upgrade(migrate_engine):
+def upgrade(migrate_engine=None):
config_file = UPGRADE_CONTEXT.conf_dir + "/conf.xml"
parser = etree.XMLParser(encoding="UTF8", recover=True)
xml_tree = etree.parse(config_file, parser=parser)
diff --git a/pytrainer/upgrade/versions/014_clean_sport_data.py b/pytrainer/upgrade/versions/014_clean_sport_data.py
index a657f63..ad57df4 100644
--- a/pytrainer/upgrade/versions/014_clean_sport_data.py
+++ b/pytrainer/upgrade/versions/014_clean_sport_data.py
@@ -1,4 +1,9 @@
+from pytrainer.upgrade.context import UPGRADE_CONTEXT
import pytrainer.upgrade.versions.version014 as version14
+import sqlalchemy
-def upgrade(migrate_engine):
+def upgrade(migrate_engine=None):
+ if migrate_engine is None:
+ # sqlalchemy-migrate 0.5.4 does not provide migrate engine to upgrade scripts
+ migrate_engine = sqlalchemy.create_engine(UPGRADE_CONTEXT.db_url)
version14.upgrade(migrate_engine)
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 1c2fc3e..dbdc1b8 100755
--- a/setup.py
+++ b/setup.py
@@ -15,7 +15,7 @@ def install_extension(extension_name):
return "share/pytrainer/extensions/%s"%extension_name, glob("extensions/%s/*"%extension_name)
setup( name="pytrainer",
- version="1.9.0",
+ version="1.9.2-dev",
description="The free sport tracking center",
long_description="Pytrainer is a tool to log all your sport excursion coming from GPS devices (with a focus on ForeRunner 205, 305 and 405) or GPX (http://www.topografix.com) files. Pytrainer supports GPS track files and displays it in graphs, maps... ",
author="Fiz Vazquez, John Blance, David Garcia Granda, Arnd Zapletal, Nathan Jones",
--
Debian package for pytrainer
More information about the Pkg-running-devel
mailing list