From: <jb...@us...> - 2010-09-10 01:55:19
|
Revision: 610 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=610&view=rev Author: jblance Date: 2010-09-10 01:55:13 +0000 (Fri, 10 Sep 2010) Log Message: ----------- Minor fixes to stop errors when an activity does not have any GPX data associated with it Modified Paths: -------------- pytrainer/trunk/pytrainer/extensions/googlemaps.py pytrainer/trunk/pytrainer/extensions/osm.py pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/lib/activity.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/extensions/googlemaps.py =================================================================== --- pytrainer/trunk/pytrainer/extensions/googlemaps.py 2010-08-26 03:46:42 UTC (rev 609) +++ pytrainer/trunk/pytrainer/extensions/googlemaps.py 2010-09-10 01:55:13 UTC (rev 610) @@ -49,39 +49,36 @@ polyline = [] list_values = activity.tracks - if list_values != []: - if len(list_values) > 0: - minlat, minlon = float(list_values[0][4]),float(list_values[0][5]) - maxlat=minlat - maxlon=minlon - for i in list_values: - lat, lon = float(i[4]), float(i[5]) - minlat = min(minlat, lat) - maxlat = max(maxlat, lat) - minlon = min(minlon, lon) - maxlon = max(maxlon, lon) - pointlist.append((lat,lon)) - polyline.append("new google.maps.LatLng(%s, %s)" % (lat, lon)) - logging.debug("minlat: %s, maxlat: %s" % (minlat, maxlat)) - logging.debug("minlon: %s, maxlon: %s" % (minlon, maxlon)) - points,levels = Points.encodePoints(pointlist) - points = points.replace("\\","\\\\") - if self.pytrainer_main.startup_options.gm3: - logging.debug("Using Google Maps version 3 API") - laps = activity.laps - timeHours = int(activity.time) / 3600 - timeMin = (float(activity.time) / 3600.0 - timeHours) * 60 - time = "%d%s %02d%s" % (timeHours, _("h"), timeMin, _("min")) - startinfo = "<div class='info_content'>%s: %s</div>" % (activity.sport_name, activity.title) - finishinfo = "<div class='info_content'>%s: %s<br>%s: %s%s</div>" % (_("Time"), time, _("Distance"), activity.distance, activity.distance_unit) - startinfo = startinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html - finishinfo = finishinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html - self.createHtml_api3(polyline, minlat, minlon, maxlat, maxlon, startinfo, finishinfo, laps) - else: - logging.debug("Using Google Maps version 2 API") - self.createHtml(points,levels,pointlist[0]) + 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 + for i in list_values: + lat, lon = float(i[4]), float(i[5]) + minlat = min(minlat, lat) + maxlat = max(maxlat, lat) + minlon = min(minlon, lon) + maxlon = max(maxlon, lon) + pointlist.append((lat,lon)) + polyline.append("new google.maps.LatLng(%s, %s)" % (lat, lon)) + logging.debug("minlat: %s, maxlat: %s" % (minlat, maxlat)) + logging.debug("minlon: %s, maxlon: %s" % (minlon, maxlon)) + points,levels = Points.encodePoints(pointlist) + points = points.replace("\\","\\\\") + if self.pytrainer_main.startup_options.gm3: + logging.debug("Using Google Maps version 3 API") + laps = activity.laps + timeHours = int(activity.time) / 3600 + timeMin = (float(activity.time) / 3600.0 - timeHours) * 60 + time = "%d%s %02d%s" % (timeHours, _("h"), timeMin, _("min")) + startinfo = "<div class='info_content'>%s: %s</div>" % (activity.sport_name, activity.title) + finishinfo = "<div class='info_content'>%s: %s<br>%s: %s%s</div>" % (_("Time"), time, _("Distance"), activity.distance, activity.distance_unit) + startinfo = startinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html + finishinfo = finishinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html + self.createHtml_api3(polyline, minlat, minlon, maxlat, maxlon, startinfo, finishinfo, laps) else: - self.createErrorHtml() + logging.debug("Using Google Maps version 2 API") + self.createHtml(points,levels,pointlist[0]) else: self.createErrorHtml() return self.htmlfile Modified: pytrainer/trunk/pytrainer/extensions/osm.py =================================================================== --- pytrainer/trunk/pytrainer/extensions/osm.py 2010-08-26 03:46:42 UTC (rev 609) +++ pytrainer/trunk/pytrainer/extensions/osm.py 2010-09-10 01:55:13 UTC (rev 610) @@ -35,26 +35,23 @@ polyline = [] list_values = activity.tracks - if list_values != []: - if len(list_values) > 0: - for i in list_values: - lat, lon = float(i[4]), float(i[5]) - pointlist.append((lat,lon)) - polyline.append("[%s, %s]" % (lon, lat)) - points,levels = Points.encodePoints(pointlist) - points = points.replace("\\","\\\\") - laps = activity.laps - timeHours = int(activity.time) / 3600 - timeMin = (float(activity.time) / 3600.0 - timeHours) * 60 - time = "%d%s %02d%s" % (timeHours, _("h"), timeMin, _("min")) - startinfo = "<div class='info_content'>%s: %s</div>" % (activity.sport_name, activity.title) - finishinfo = "<div class='info_content'>%s: %s<br>%s: %s%s</div>" % (_("Time"), time, _("Distance"), activity.distance, activity.distance_unit) - startinfo = startinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html - finishinfo = finishinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html + if list_values is not None and list_values != [] and len(list_values) > 0: + for i in list_values: + lat, lon = float(i[4]), float(i[5]) + pointlist.append((lat,lon)) + polyline.append("[%s, %s]" % (lon, lat)) + points,levels = Points.encodePoints(pointlist) + points = points.replace("\\","\\\\") + laps = activity.laps + timeHours = int(activity.time) / 3600 + timeMin = (float(activity.time) / 3600.0 - timeHours) * 60 + time = "%d%s %02d%s" % (timeHours, _("h"), timeMin, _("min")) + startinfo = "<div class='info_content'>%s: %s</div>" % (activity.sport_name, activity.title) + finishinfo = "<div class='info_content'>%s: %s<br>%s: %s%s</div>" % (_("Time"), time, _("Distance"), activity.distance, activity.distance_unit) + startinfo = startinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html + finishinfo = finishinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html - self.createHtml_osm(polyline, startinfo, finishinfo, laps) - else: - self.createErrorHtml() + self.createHtml_osm(polyline, startinfo, finishinfo, laps) else: self.createErrorHtml() return self.htmlfile Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2010-08-26 03:46:42 UTC (rev 609) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2010-09-10 01:55:13 UTC (rev 610) @@ -270,7 +270,7 @@ logging.debug(">>") self.record_list = activity.tracks self.laps = activity.laps - if len(self.record_list)>0: + if self.record_list is not None and len(self.record_list)>0: self.record_vbox.set_sensitive(1) self.drawarearecord.drawgraph(self.record_list,self.laps) else: @@ -288,7 +288,11 @@ def actualize_heartrategraph(self,activity): logging.debug(">>") - self.drawareaheartrate.drawgraph(activity.tracks) + if activity.tracks is not None and len(activity.tracks)>0: + self.heartrate_vbox_.set_sensitive(1) + self.drawareaheartrate.drawgraph(activity.tracks) + else: + self.heartrate_vbox_.set_sensitive(0) logging.debug("<<") def actualize_hrview(self,activity): @@ -296,7 +300,7 @@ zones = self.pytrainer_main.profile.getZones() record_list = activity.tracks is_karvonen_method = self.pytrainer_main.profile.getValue("pytraining","prf_hrzones_karvonen") - if len(record_list)>0: + if record_list is not None and len(record_list)>0: record_list=record_list[0] self.record_zone1.set_text("%s-%s" %(zones[4][0],zones[4][1])) self.record_zone2.set_text("%s-%s" %(zones[3][0],zones[3][1])) @@ -312,8 +316,8 @@ self.record_zonesmethod.set_text(_("Karvonen method")) else: self.record_zonesmethod.set_text(_("Percentages method")) - else: - self.recordview.set_sensitive(0) + #else: + # self.recordview.set_sensitive(0) logging.debug("<<") def actualize_dayview(self,record_list): @@ -471,7 +475,10 @@ tbeats = tbeats/time_in_min else: tbeats = 0 - average = (km/(time/3600)) + if km > 0: + average = (km/(time/3600)) + else: + average = 0 if maxspeed > 0: #maxpace = 60/maxspeed @@ -546,7 +553,10 @@ tbeats = tbeats/time_in_min else: tbeats = 0 - average = (km/(time/3600)) + if km > 0: + average = (km/(time/3600)) + else: + average = 0 if maxspeed > 0: #maxpace = 60/maxspeed @@ -606,7 +616,10 @@ tbeats = tbeats/time_in_min else: tbeats = 0 - average = (km/(time/3600)) + if km > 0: + average = (km/(time/3600)) + else: + average = 0 if maxspeed > 0: #maxpace = 60/maxspeed Modified: pytrainer/trunk/pytrainer/lib/activity.py =================================================================== --- pytrainer/trunk/pytrainer/lib/activity.py 2010-08-26 03:46:42 UTC (rev 609) +++ pytrainer/trunk/pytrainer/lib/activity.py 2010-09-10 01:55:13 UTC (rev 610) @@ -77,6 +77,7 @@ return self.pytrainer_main = pytrainer_main self.tracks = None + self.tracklist = None self.laps = None self.tree = None self.has_data = False @@ -214,6 +215,10 @@ logging.debug(">>") self.distance_data = {} self.time_data = {} + if self.tracklist is None: + logging.debug("No tracklist in activity") + logging.debug("<<") + return #Profile title=_("Elevation v Distance") xlabel="%s (%s)" % (_('Distance'), self.distance_unit) Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-08-26 03:46:42 UTC (rev 609) +++ pytrainer/trunk/pytrainer/main.py 2010-09-10 01:55:13 UTC (rev 610) @@ -49,7 +49,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#609" + self.version ="1.7.2_svn#610" self.DB_version = 3 #Process command line options self.startup_options = self.get_options() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |