hamster-applet r510 - trunk/hamster
- From: tbaugis svn gnome org
- To: svn-commits-list gnome org
- Subject: hamster-applet r510 - trunk/hamster
- Date: Mon, 15 Sep 2008 12:35:54 +0000 (UTC)
Author: tbaugis
Date: Mon Sep 15 12:35:54 2008
New Revision: 510
URL: http://svn.gnome.org/viewvc/hamster-applet?rev=510&view=rev
Log:
ok, full fix to avoid amiguity in strings involving dates.
fixes bug 552156
Modified:
trunk/hamster/reports.py
trunk/hamster/stats.py
trunk/hamster/stuff.py
Modified: trunk/hamster/reports.py
==============================================================================
--- trunk/hamster/reports.py (original)
+++ trunk/hamster/reports.py Mon Sep 15 12:35:54 2008
@@ -21,20 +21,20 @@
import datetime as dt
def simple(facts, start_date, end_date):
+ dates_dict = stuff.dateDict(start_date, "start_")
+ dates_dict.update(stuff.dateDict(end_date, "end_"))
+
+
if start_date.year != end_date.year:
- start_str = start_date.strftime(_('%B %d. %Y'))
- end_str = end_date.strftime(_('%B %d. %Y'))
+ title = _("Overview for %(start_B)s %(start_d)s. %(start_Y)s - %(end_B)s %(end_d)s. %(end_Y)s") % dates_dict
elif start_date.month != end_date.month:
- start_str = start_date.strftime(_('%B %d'))
- end_str = end_date.strftime(_('%B %d'))
+ title = _("Overview for %(start_B)s %(start_d)s. - %(end_B)s %(end_d)s. %(end_Y)s") % dates_dict
else:
- start_str = start_date.strftime(_('%B %d'))
- end_str = end_date.strftime(_('%d, %Y'))
+ title = _("Overview for %(start_B)s %(start_d)s - %(end_d)s. %(end_Y)s") % dates_dict
if start_date == end_date:
- title = _("Overview for %s") % (start_date.strftime(_('%B %d. %Y')))
- else:
- title = _("Overview for %s - %s") % (start_str, end_str)
+ title = _("Overview for %(start_B)s %(start_d)s. %(start_Y)s") % dates_dict
+
report_path = os.path.join(os.path.expanduser("~"), "%s.html" % title)
report = open(report_path, "w")
@@ -108,7 +108,7 @@
<td>%s</td>
<td>%s</td>
<td>%s</td>
-</tr>""" % (fact["start_time"].strftime(_("%d.%m.%y")),
+</tr>""" % (_("%(report_d)s.%(report_m)s.%(report_Y)s") % stuff.dateDict(fact["start_time"], "report_"),
fact["name"],
category,
fact["start_time"].strftime('%H:%M'),
Modified: trunk/hamster/stats.py
==============================================================================
--- trunk/hamster/stats.py (original)
+++ trunk/hamster/stats.py Mon Sep 15 12:35:54 2008
@@ -168,7 +168,10 @@
for i in range((self.end_date - self.start_date).days + 1):
current_date = self.start_date + dt.timedelta(i)
# date format in overview window fact listing
- fact_date = current_date.strftime(_('%A, %b %d.'))
+ # prefix is "o_",letter after prefix is regular python format. you can use all of them
+ fact_date = _("%(o_A)s, %(o_b)s %(o_d)s.") % stuff.dateDict(current_date, "o_")
+
+
day_row = self.fact_store.append(None, [-1,
fact_date,
"",
@@ -216,7 +219,9 @@
totals["by_day"].append([strday, by_day[day]["duration"] / 60.0, None, None, day])
else:
# date format in month chart in overview window (click on "month" to see it)
- strday = day.strftime(_('%d. %b'))
+ # prefix is "m_", letter after prefix is regular python format. you can use all of them
+ strday = _("%(m_d)s., %(m_b)s") % stuff.dateDict(day, "m_")
+
background = None
if day.weekday() in [5, 6]:
background = 7
@@ -259,37 +264,40 @@
def do_graph(self):
+ dates_dict = stuff.dateDict(self.start_date, "start_")
+ dates_dict.update(stuff.dateDict(self.end_date, "end_"))
+
+
if self.start_date.year != self.end_date.year:
- # start date format for overview label if start and end years don't match
- start_str = self.start_date.strftime(_('%B %d. %Y'))
- # end date format for overview label if start and end years don't match
- end_str = self.end_date.strftime(_('%B %d. %Y'))
+ # overview label if start and end years don't match
+ # letter after prefixes (start_, end_) is the one of
+ # standard python date formatting ones- you can use all of them
+ overview_label = _("Overview for %(start_B)s %(start_d)s. %(start_Y)s - %(end_B)s %(end_d)s. %(end_Y)s") % dates_dict
elif self.start_date.month != self.end_date.month:
- # start date format for overview label if start and end month do not match
- start_str = self.start_date.strftime(_('%B %d.'))
- # end date format for overview label if start and end month do not match
- end_str = self.end_date.strftime(_('%B %d.'))
+ #overview label if start and end month do not match
+ # letter after prefixes (start_, end_) is the one of
+ # standard python date formatting ones- you can use all of them
+ overview_label = _("Overview for %(start_B)s %(start_d)s. - %(end_B)s %(end_d)s. %(end_Y)s") % dates_dict
else:
- # start date format for overview label for interval in same month
- start_str = self.start_date.strftime(_('%B %d'))
- # end date format for overview label for interval in same month
- end_str = self.end_date.strftime(_('%d, %Y'))
+ #overview label for interval in same month
+ # letter after prefixes (start_, end_) is the one of
+ # standard python date formatting ones- you can use all of them
+ overview_label = _("Overview for %(start_B)s %(start_d)s - %(end_d)s. %(end_Y)s") % dates_dict
if self.day_view.get_active():
- # date format for single day
- date_str = self.start_date.strftime(_('%B %d. %Y'))
# overview label for single day
- label_text = _("Overview for %s") % (date_str)
+ # letter after prefixes (start_, end_) is the one of
+ # standard python date formatting ones- you can use all of them
+ overview_label = _("Overview for %(start_B)s %(start_d)s. %(start_Y)s") % dates_dict
dayview_caption = _("Day")
elif self.week_view.get_active():
- label_text = _("Overview for %s - %s") % (start_str, end_str)
dayview_caption = _("Week")
else:
- label_text = _("Overview for %s - %s") % (start_str, end_str)
dayview_caption = _("Month")
+
label = self.get_widget("overview_label")
- label.set_text(label_text)
+ label.set_text(overview_label)
label2 = self.get_widget("dayview_caption")
label2.set_markup("<b>%s</b>" % (dayview_caption))
Modified: trunk/hamster/stuff.py
==============================================================================
--- trunk/hamster/stuff.py (original)
+++ trunk/hamster/stuff.py Mon Sep 15 12:35:54 2008
@@ -54,6 +54,34 @@
return formatted_duration
+def dateDict(date, prefix):
+ """converts date into dictionary, having prefix for all the keys"""
+ res = {}
+
+ res[prefix+"a"] = date.strftime("%a")
+ res[prefix+"A"] = date.strftime("%A")
+ res[prefix+"b"] = date.strftime("%b")
+ res[prefix+"B"] = date.strftime("%B")
+ res[prefix+"c"] = date.strftime("%c")
+ res[prefix+"d"] = date.strftime("%d")
+ res[prefix+"H"] = date.strftime("%H")
+ res[prefix+"I"] = date.strftime("%I")
+ res[prefix+"j"] = date.strftime("%j")
+ res[prefix+"m"] = date.strftime("%m")
+ res[prefix+"M"] = date.strftime("%M")
+ res[prefix+"p"] = date.strftime("%p")
+ res[prefix+"S"] = date.strftime("%S")
+ res[prefix+"U"] = date.strftime("%U")
+ res[prefix+"w"] = date.strftime("%w")
+ res[prefix+"W"] = date.strftime("%W")
+ res[prefix+"x"] = date.strftime("%x")
+ res[prefix+"X"] = date.strftime("%X")
+ res[prefix+"y"] = date.strftime("%y")
+ res[prefix+"Y"] = date.strftime("%Y")
+ res[prefix+"Z"] = date.strftime("%Z")
+
+ return res
+
class DayStore(object):
"""A day view contains a treeview for facts of the day and another
one for totals. It creates those widgets on init, use
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]