Changeset 174

Show
Ignore:
Timestamp:
01/30/08 23:43:48 (1 year ago)
Author:
vud1
Message:

"gpx lib optimization"

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pytrainer/trunk/pytrainer/gui/windowrecord.py

    r173 r174  
    186186                weight = float("0%s"%self.parent.configuration.getValue("pytraining","prf_weight")) 
    187187                met = self.parent.getSportMet(sport) 
     188                extraweight = self.parent.getSportWeight(sport) 
    188189                if met: 
    189                         calories = met*weight*hour 
     190                        calories = met*(weight+extraweight)*hour 
    190191                        self.rcd_calories.set_text(str(calories)) 
    191192 
  • pytrainer/trunk/pytrainer/lib/gpx.py

    r173 r174  
    3939                self.maxhr = 0 
    4040                self.date = "" 
     41                self.tracks = [] 
     42                if not os.path.isfile(self.filename): 
     43                        return None 
     44                self.dom = xml.dom.minidom.parse(self.filename) 
    4145                self.Values = self._getValues() 
    4246 
     
    4852 
    4953        def getTrackRoutes(self):        
    50                 newfilename = self.conf.tmpdir+"/newgpx.gpx" 
    51                 dom = xml.dom.minidom.parse(newfilename) 
     54                return self.tracks 
     55                 
     56        def getUnevenness(self): 
     57                return self.upositive,self.unegative  
     58         
     59        def getTrackList(self): 
     60                return self.Values 
     61 
     62        def getHeartRateAverage(self): 
     63                return self.hr_average 
     64                 
     65        def _getValues(self): 
     66                dom = self.dom 
     67                content = dom.toxml() 
     68 
    5269                trks = dom.getElementsByTagName("trk") 
    5370                retorno = [] 
     
    6380                        else: 
    6481                                time_ = _("No Data")     
    65                         retorno.append((name,time_)) 
    66                 return retorno 
    67                  
    68         def getUnevenness(self): 
    69                 return self.upositive,self.unegative  
    70          
    71         def getTrackList(self): 
    72                 return self.Values 
    73  
    74         def getHeartRateAverage(self): 
    75                 return self.hr_average 
    76                  
    77         def _getValues(self): 
    78                 if not os.path.isfile(self.filename): 
    79                         return None 
    80                 dom = xml.dom.minidom.parse(self.filename) 
    81                 content = dom.toxml() 
    82                  
    83                 if self.trkname != None: 
    84                         trks = dom.getElementsByTagName("trk") 
    85                         retorno = [] 
    86                         for trk in trks: 
    87                                 name = trk.getElementsByTagName("name")[0].firstChild.data 
    88                                 if name == self.trkname: 
    89                                         dom = trk 
    90                                         content = """<?xml version="1.0" encoding="UTF-8"?> 
     82                        self.tracks.append((name,time_)) 
     83                         
     84                        name = trk.getElementsByTagName("name")[0].firstChild.data 
     85                        if name == self.trkname: 
     86                                dom = trk 
     87                                content = """<?xml version="1.0" encoding="UTF-8"?> 
    9188 
    9289<gpx  
     
    10198 
    10299""" 
    103                                        content += dom.toxml() 
    104                                        content += "</gpx>" 
    105                                         break 
    106                                        
     100                                content += dom.toxml() 
     101                                content += "</gpx>" 
     102 
     103                #Guardamos el xml en un fichero (por si hay que guardar solo un track)                                 
    107104                newfilename = self.conf.tmpdir+"/newgpx.gpx" 
    108105                if os.path.isfile(newfilename): 
  • pytrainer/trunk/pytrainer/record.py

    r173 r174  
    163163                return self.ddbb.select("sports","met","name=\"%s\"" %(sport))[0][0] 
    164164         
     165        def getSportWeight(self,sport): 
     166                return self.ddbb.select("sports","weight","name=\"%s\"" %(sport))[0][0] 
     167         
    165168        def getAllrecord(self): 
    166169                return self.ddbb.select("records", "date,distance,time,beats,comments,average,calories") 
     
    186189                 
    187190        def actualize_fromgpx(self,gpxfile): 
    188                 print "uno" 
    189191                gpx = Gpx(self.data_path,gpxfile) 
    190                 print "uno1" 
    191192                tracks = gpx.getTrackRoutes() 
    192                 print "dos" 
    193193 
    194194                if len(tracks) == 1: 
    195                         self._actualize_fromgpx(gpxfile
     195                        self._actualize_fromgpx(gpx
    196196                elif len(tracks) > 1: 
    197197                        self._select_trkfromgpx(gpxfile,tracks) 
     
    202202                        warning.set_text(msg) 
    203203                        warning.run() 
    204                 print "tres" 
    205  
    206         def _actualize_fromgpx(self, gpxfile, trkname = None): 
    207                 gpx = Gpx(self.data_path,gpxfile,trkname) 
     204 
     205        def _actualize_fromgpx(self, gpx): 
    208206                distance, time, maxspeed, maxheartrate = gpx.getMaxValues() 
    209207                upositive,unegative = gpx.getUnevenness() 
     
    221219                self.recordwindow.on_calcaverage_clicked(None) 
    222220                self.recordwindow.on_calcpace_clicked(None) 
     221                self.recordwindow.on_calccalories_clicked(None) 
     222         
     223        def __actualize_fromgpx(self, gpxfile, name=None): 
     224                gpx = Gpx(self.data_path,gpxfile,name) 
     225                self._actualize_fromgpx(gpx) 
    223226 
    224227        def _select_trkfromgpx(self,gpxfile,tracks): 
    225228                print "seleccionamos el trk" 
    226                 selectrckdialog = DialogSelectTrack(self.data_path, tracks,self._actualize_fromgpx, gpxfile) 
     229                selectrckdialog = DialogSelectTrack(self.data_path, tracks,self.__actualize_fromgpx, gpxfile) 
    227230                selectrckdialog.run() 
    228231