From: <jb...@us...> - 2010-10-28 22:12:02
|
Revision: 667 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=667&view=rev Author: jblance Date: 2010-10-28 22:11:55 +0000 (Thu, 28 Oct 2010) Log Message: ----------- Correction to date handling to work for mysql and sqlite Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/ddbb.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/monthgraph.py pytrainer/trunk/pytrainer/yeargraph.py Modified: pytrainer/trunk/pytrainer/lib/ddbb.py =================================================================== --- pytrainer/trunk/pytrainer/lib/ddbb.py 2010-10-28 21:47:17 UTC (rev 666) +++ pytrainer/trunk/pytrainer/lib/ddbb.py 2010-10-28 22:11:55 UTC (rev 667) @@ -44,8 +44,8 @@ "maxpace":"float", "pace":"float", "maxbeats":"float", - "date_time_local":"varchar(20)", - "date_time_utc":"varchar(20)", + "date_time_local":"varchar(40)", + "date_time_utc":"varchar(40)", }, "sports":{ "id_sports":"integer primary key autoincrement", "name":"varchar(100)", Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-10-28 21:47:17 UTC (rev 666) +++ pytrainer/trunk/pytrainer/main.py 2010-10-28 22:11:55 UTC (rev 667) @@ -50,7 +50,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#666" + self.version ="1.7.2_svn#667" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() Modified: pytrainer/trunk/pytrainer/monthgraph.py =================================================================== --- pytrainer/trunk/pytrainer/monthgraph.py 2010-10-28 21:47:17 UTC (rev 666) +++ pytrainer/trunk/pytrainer/monthgraph.py 2010-10-28 22:11:55 UTC (rev 667) @@ -17,118 +17,123 @@ #Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. from gui.drawArea import DrawArea +import dateutil class MonthGraph: - def __init__(self, vbox = None, window = None, combovalue = None, combovalue2 = None): - self.drawarea = DrawArea(vbox, window) - self.combovalue = combovalue - self.combovalue2 = combovalue2 + def __init__(self, vbox = None, window = None, combovalue = None, combovalue2 = None): + self.drawarea = DrawArea(vbox, window) + self.combovalue = combovalue + self.combovalue2 = combovalue2 - def drawgraph(self,values, daysInMonth): - xval = [] - yval = [] - xlab = [] - ylab = [] - tit = [] - col = [] - value_selected = self.combovalue.get_active() - value_selected2 = self.combovalue2.get_active() - if value_selected < 0: - self.combovalue.set_active(0) - value_selected = 0 - xlabel,ylabel,title,color = self.get_value_params(value_selected) - xvalues,yvalues = self.get_values(values,value_selected,daysInMonth) + def drawgraph(self,values, daysInMonth): + xval = [] + yval = [] + xlab = [] + ylab = [] + tit = [] + col = [] + value_selected = self.combovalue.get_active() + value_selected2 = self.combovalue2.get_active() + if value_selected < 0: + self.combovalue.set_active(0) + value_selected = 0 + xlabel,ylabel,title,color = self.get_value_params(value_selected) + xvalues,yvalues = self.get_values(values,value_selected,daysInMonth) - xval.append(xvalues) - yval.append(yvalues) - if value_selected2 < 0: - xlab.append("") - else: - xlab.append(xlabel) - ylab.append(ylabel) - tit.append(title) - col.append(color) - - if value_selected2 < 0: - self.combovalue2.set_active(0) - value_selected2 = 0 - if value_selected2 > 0: - value_selected2 = value_selected2-1 - xlabel,ylabel,title,color = self.get_value_params(value_selected2) - xvalues,yvalues = self.get_values(values,value_selected2,daysInMonth) - xval.append(xvalues) - yval.append(yvalues) - xlab.append(xlabel) - ylab.append(ylabel) - tit.append(title) - col.append(color) - self.drawarea.stadistics("bars",xval,yval,xlab,ylab,tit,col) + xval.append(xvalues) + yval.append(yvalues) + if value_selected2 < 0: + xlab.append("") + else: + xlab.append(xlabel) + ylab.append(ylabel) + tit.append(title) + col.append(color) + + if value_selected2 < 0: + self.combovalue2.set_active(0) + value_selected2 = 0 + if value_selected2 > 0: + value_selected2 = value_selected2-1 + xlabel,ylabel,title,color = self.get_value_params(value_selected2) + xvalues,yvalues = self.get_values(values,value_selected2,daysInMonth) + xval.append(xvalues) + yval.append(yvalues) + xlab.append(xlabel) + ylab.append(ylabel) + tit.append(title) + col.append(color) + self.drawarea.stadistics("bars",xval,yval,xlab,ylab,tit,col) - def get_value_params(self,value): - if value == 0: - return _("day"),_("Distance (km)"),_("Daily Distance"),"y" - elif value == 1: - return _("day"),_("Time (hours)"), _("Daily Time"),"b" - elif value == 2: - return _("day"),_("Average Heart Rate (bpm)"), _("Daily Average Heart Rate"),"r" - elif value == 3: - return _("day"),_("Average Speed (km/h)"), _("Daily Average Speed"),"g" - elif value == 4: - return _("day"),_("Calories"), _("Daily Calories"),"b" + def get_value_params(self,value): + if value == 0: + return _("day"),_("Distance (km)"),_("Daily Distance"),"y" + elif value == 1: + return _("day"),_("Time (hours)"), _("Daily Time"),"b" + elif value == 2: + return _("day"),_("Average Heart Rate (bpm)"), _("Daily Average Heart Rate"),"r" + elif value == 3: + return _("day"),_("Average Speed (km/h)"), _("Daily Average Speed"),"g" + elif value == 4: + return _("day"),_("Calories"), _("Daily Calories"),"b" - def get_values(self,values,value_selected,daysInMonth): - #hacemos una relacion entre el value_selected y los values / we make a relation between value_selected and the values - conv = { - 0: 1, #value 0 es kilometros (1) - 1: 2, #value 1 es tiempo (2) - 2: 3, #value 2 es pulsaciones(3) - 3: 5, #value 3 es media(5) - 4: 6 #value 4 es calorias(6) - } - list_values = {} - list_average = {} - for i in range(1,daysInMonth+1): - list_values[i]=0 - list_average[i]=0 + def get_values(self,values,value_selected,daysInMonth): + #hacemos una relacion entre el value_selected y los values / we make a relation between value_selected and the values + conv = { + 0: 1, #value 0 es kilometros (1) + 1: 2, #value 1 es tiempo (2) + 2: 3, #value 2 es pulsaciones(3) + 3: 5, #value 3 es media(5) + 4: 6 #value 4 es calorias(6) + } + list_values = {} + list_average = {} + for i in range(1,daysInMonth+1): + list_values[i]=0 + list_average[i]=0 - value_sel = conv[value_selected] - for value in values: - #si la opcion es tiempo lo pasamos a horas / if the option is time we passed it to hours - if (value_sel == 2): - graph_value = self.getFloatValue(value[value_sel])/3600 - else: - graph_value = self.getFloatValue(value[value_sel]) - - date = value[0] - year,month,day = date.split("-") + value_sel = conv[value_selected] + for value in values: + #si la opcion es tiempo lo pasamos a horas / if the option is time we passed it to hours + if (value_sel == 2): + graph_value = self.getFloatValue(value[value_sel])/3600 + else: + graph_value = self.getFloatValue(value[value_sel]) + + #TODO Sort date handling... + date = value[0] + try: + year,month,day = date.year, date.month, date.day + except AttributeError: + year,month,day = date.split("-") - #si es una opcion de suma de absolutos / if it is an option of sum of absolute - if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): - list_values[int(day)] += graph_value - #si se trata de calcular medias / if one is to calculate averages: - else: - if graph_value is not None and graph_value != 0: - list_values[int(day)] += graph_value - list_average[int(day)] += 1 + #si es una opcion de suma de absolutos / if it is an option of sum of absolute + if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): + list_values[int(day)] += graph_value + #si se trata de calcular medias / if one is to calculate averages: + else: + if graph_value is not None and graph_value != 0: + list_values[int(day)] += graph_value + list_average[int(day)] += 1 - xunits = [] - yunits = [] - for i in range (1,daysInMonth+1): - xunits.append(i) - yunits.append(float(0)) - - for value in list_values: - if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): - yunits[value-1] = list_values[value] - else: - if list_average[value]>0: - yunits[value-1] = list_values[value]/list_average[value] + xunits = [] + yunits = [] + for i in range (1,daysInMonth+1): + xunits.append(i) + yunits.append(float(0)) + + for value in list_values: + if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): + yunits[value-1] = list_values[value] + else: + if list_average[value]>0: + yunits[value-1] = list_values[value]/list_average[value] - return xunits,yunits - - def getFloatValue(self, value): - try: - return float(value) - except: - return float(0) + return xunits,yunits + + def getFloatValue(self, value): + try: + return float(value) + except: + return float(0) Modified: pytrainer/trunk/pytrainer/yeargraph.py =================================================================== --- pytrainer/trunk/pytrainer/yeargraph.py 2010-10-28 21:47:17 UTC (rev 666) +++ pytrainer/trunk/pytrainer/yeargraph.py 2010-10-28 22:11:55 UTC (rev 667) @@ -20,116 +20,119 @@ import calendar class YearGraph: - def __init__(self, vbox = None, window = None, combovalue = None, combovalue2 = None): - self.drawarea = DrawArea(vbox, window) - self.combovalue = combovalue - self.combovalue2 = combovalue2 + def __init__(self, vbox = None, window = None, combovalue = None, combovalue2 = None): + self.drawarea = DrawArea(vbox, window) + self.combovalue = combovalue + self.combovalue2 = combovalue2 - def drawgraph(self,values): - xval = [] - yval = [] - xlab = [] - ylab = [] - tit = [] - col = [] - value_selected = self.combovalue.get_active() - value_selected2 = self.combovalue2.get_active() - if value_selected < 0: - self.combovalue.set_active(0) - value_selected = 0 - monthsnumber,xlabel,ylabel,title,color = self.get_value_params(value_selected) - xvalues,yvalues = self.get_values(values,value_selected,monthsnumber) + def drawgraph(self,values): + xval = [] + yval = [] + xlab = [] + ylab = [] + tit = [] + col = [] + value_selected = self.combovalue.get_active() + value_selected2 = self.combovalue2.get_active() + if value_selected < 0: + self.combovalue.set_active(0) + value_selected = 0 + monthsnumber,xlabel,ylabel,title,color = self.get_value_params(value_selected) + xvalues,yvalues = self.get_values(values,value_selected,monthsnumber) - xval.append(xvalues) - yval.append(yvalues) - if value_selected2 < 0: - xlab.append("") - else: - xlab.append(xlabel) - ylab.append(ylabel) - tit.append(title) - col.append(color) + xval.append(xvalues) + yval.append(yvalues) + if value_selected2 < 0: + xlab.append("") + else: + xlab.append(xlabel) + ylab.append(ylabel) + tit.append(title) + col.append(color) - if value_selected2 < 0: - self.combovalue2.set_active(0) - value_selected2 = 0 - if value_selected2 > 0: - value_selected2 = value_selected2-1 - daysmonth,xlabel,ylabel,title,color = self.get_value_params(value_selected2) - xvalues,yvalues = self.get_values(values,value_selected2,daysmonth) - xval.append(xvalues) - yval.append(yvalues) - xlab.append(xlabel) - ylab.append(ylabel) - tit.append(title) - col.append(color) - self.drawarea.stadistics("bars",xval,yval,xlab,ylab,tit,col) + if value_selected2 < 0: + self.combovalue2.set_active(0) + value_selected2 = 0 + if value_selected2 > 0: + value_selected2 = value_selected2-1 + daysmonth,xlabel,ylabel,title,color = self.get_value_params(value_selected2) + xvalues,yvalues = self.get_values(values,value_selected2,daysmonth) + xval.append(xvalues) + yval.append(yvalues) + xlab.append(xlabel) + ylab.append(ylabel) + tit.append(title) + col.append(color) + self.drawarea.stadistics("bars",xval,yval,xlab,ylab,tit,col) - def get_value_params(self,value): - if value == 0: - return 12,_("month"),_("Distance (km)"),_("Monthly Distance"),"y" - elif value == 1: - return 12,_("month"),_("Time (hours)"), _("Monthly Time"),"b" - elif value == 2: - return 12,_("month"),_("Average Heart Rate (bpm)"), _("Monthly Average Heart Rate"),"r" - elif value == 3: - return 12,_("month"),_("Average Speed (km/h)"), _("Monthly Average Speed"),"g" - elif value == 4: - return 12,_("month"),_("Calories"), _("Monthly Calories"),"b" + def get_value_params(self,value): + if value == 0: + return 12,_("month"),_("Distance (km)"),_("Monthly Distance"),"y" + elif value == 1: + return 12,_("month"),_("Time (hours)"), _("Monthly Time"),"b" + elif value == 2: + return 12,_("month"),_("Average Heart Rate (bpm)"), _("Monthly Average Heart Rate"),"r" + elif value == 3: + return 12,_("month"),_("Average Speed (km/h)"), _("Monthly Average Speed"),"g" + elif value == 4: + return 12,_("month"),_("Calories"), _("Monthly Calories"),"b" - def get_values(self,values,value_selected,monthsnumber): - #hacemos una relacion entre el value_selected y los values - conv = { - 0: 1, #value 0 es kilometros (1) - 1: 2, #value 1 es tiempo (2) - 2: 3, #value 2 es pulsaciones(3) - 3: 5, #value 3 es media(5) - 4: 6 #value 4 es calorias(6) - } - list_values = {} - list_average = {} - tm_total = {} - for i in range(1,monthsnumber+1): - list_values[i]=0 - list_average[i]=0 - tm_total[i] = 0 - - value_sel = conv[value_selected] + def get_values(self,values,value_selected,monthsnumber): + #hacemos una relacion entre el value_selected y los values + conv = { + 0: 1, #value 0 es kilometros (1) + 1: 2, #value 1 es tiempo (2) + 2: 3, #value 2 es pulsaciones(3) + 3: 5, #value 3 es media(5) + 4: 6 #value 4 es calorias(6) + } + list_values = {} + list_average = {} + tm_total = {} + for i in range(1,monthsnumber+1): + list_values[i]=0 + list_average[i]=0 + tm_total[i] = 0 + + value_sel = conv[value_selected] - for value in values: - date = value[0] - year,month,day = date.split("-") - month = int(month) - #si la opcion es tiempo lo pasamos a horas / if the option is time we passed it to hours - if (value_sel == 2): - graph_value = self.getFloatValue(value[value_sel])/3600 - else: - graph_value = self.getFloatValue(value[value_sel]) + for value in values: + date = value[0] + try: + year,month,day = date.year, date.month, date.day + except AttributeError: + year,month,day = date.split("-") + month = int(month) + #si la opcion es tiempo lo pasamos a horas / if the option is time we passed it to hours + if (value_sel == 2): + graph_value = self.getFloatValue(value[value_sel])/3600 + else: + graph_value = self.getFloatValue(value[value_sel]) - #si es una opcion de suma de absolutos / if it is an option of sum of absolute - if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): - list_values[int(month)] += graph_value - #si se trata de calcular medias / if one is to calculate averages: - else: - if graph_value is not None and graph_value != 0: - list_values[int(month)] += graph_value - list_average[int(month)] += 1 + #si es una opcion de suma de absolutos / if it is an option of sum of absolute + if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): + list_values[int(month)] += graph_value + #si se trata de calcular medias / if one is to calculate averages: + else: + if graph_value is not None and graph_value != 0: + list_values[int(month)] += graph_value + list_average[int(month)] += 1 - xunits = [] - yunits = [] - for i in range (0,monthsnumber): - xunits.append(unicode(calendar.month_abbr[i+1])) - yunits.append(float(0)) - for value in list_values: - if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): - yunits[value-1] = list_values[value] - else: - if list_average[value]>0: - yunits[value-1] = list_values[value]/list_average[value] - return xunits,yunits - - def getFloatValue(self, value): - try: - return float(value) - except: - return float(0) + xunits = [] + yunits = [] + for i in range (0,monthsnumber): + xunits.append(unicode(calendar.month_abbr[i+1])) + yunits.append(float(0)) + for value in list_values: + if ((value_selected == 0) or (value_selected==1) or (value_selected==4)): + yunits[value-1] = list_values[value] + else: + if list_average[value]>0: + yunits[value-1] = list_values[value]/list_average[value] + return xunits,yunits + + def getFloatValue(self, value): + try: + return float(value) + except: + return float(0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |