changeset b553daa13fce in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset;node=b553daa13fce
description:
        Add day view on calendar

        issue7774
        review66441002
diffstat:

 CHANGELOG                                                  |   1 +
 tryton/gui/window/view_form/view/calendar_gtk/calendar_.py |   3 +
 tryton/gui/window/view_form/view/calendar_gtk/toolbar.py   |  25 +++++++++++--
 3 files changed, 24 insertions(+), 5 deletions(-)

diffs (83 lines):

diff -r a947e71b9a4c -r b553daa13fce CHANGELOG
--- a/CHANGELOG Wed Mar 27 23:24:09 2019 +0100
+++ b/CHANGELOG Thu Mar 28 12:25:23 2019 +0100
@@ -1,3 +1,4 @@
+* Add day view on calendar
 * Add CSV exports into print toolbar
 * Display unread and total of notes
 * Support badge on icon
diff -r a947e71b9a4c -r b553daa13fce 
tryton/gui/window/view_form/view/calendar_gtk/calendar_.py
--- a/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py        Wed Mar 
27 23:24:09 2019 +0100
+++ b/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py        Thu Mar 
28 12:25:23 2019 +0100
@@ -27,6 +27,9 @@
 
     def get_displayed_period(self):
         cal = calendar.Calendar(self.firstweekday)
+        if self.view == 'day':
+            first_date = self.selected_date
+            last_date = self.selected_date + datetime.timedelta(1)
         if self.view == 'week':
             week = goocalendar.util.my_weekdatescalendar(cal,
                 self.selected_date)
diff -r a947e71b9a4c -r b553daa13fce 
tryton/gui/window/view_form/view/calendar_gtk/toolbar.py
--- a/tryton/gui/window/view_form/view/calendar_gtk/toolbar.py  Wed Mar 27 
23:24:09 2019 +0100
+++ b/tryton/gui/window/view_form/view/calendar_gtk/toolbar.py  Thu Mar 28 
12:25:23 2019 +0100
@@ -107,7 +107,15 @@
         blank_widget.set_expand(True)
         self.insert(blank_widget, -1)
 
-        week_button = Gtk.RadioToolButton()
+        day_button = Gtk.RadioToolButton()
+        day_button.set_label(_('Day View'))
+        day_button.connect("clicked", self.on_day_button_clicked)
+        day_button.add_accelerator(
+            "clicked", self.accel_group, Gdk.KEY_d,
+            Gdk.ModifierType.MODIFIER_MASK, Gtk.AccelFlags.VISIBLE)
+        self.insert(day_button, -1)
+
+        week_button = Gtk.RadioToolButton.new_from_widget(day_button)
         week_button.set_label(_('Week View'))
         week_button.connect("clicked", self.on_week_button_clicked)
         week_button.add_accelerator(
@@ -124,7 +132,8 @@
         self.insert(month_button, -1)
         buttons = {
             'month': month_button,
-            'week': week_button
+            'week': week_button,
+            'day': day_button,
             }
         buttons[self.goocalendar.view].set_active(True)
         self.update_displayed_date()
@@ -135,15 +144,18 @@
         year = date.timetuple()[0]
         month = date.timetuple()[1]
         day = date.timetuple()[2]
+        month_label = calendar.month_name[month]
         self.current_year_label.set_text(str(year))
 
         if self.goocalendar.view == "month":
-            new_label = calendar.month_name[month]
-            self.current_page_label.set_text(new_label)
+            self.current_page_label.set_text(month_label)
         elif self.goocalendar.view == "week":
             week_number = datetime.date(year, month, day).isocalendar()[1]
             new_label = _('Week') + ' ' + str(week_number)
-            new_label += ' (' + calendar.month_name[month] + ')'
+            new_label += ' (' + month_label + ')'
+            self.current_page_label.set_text(new_label)
+        elif self.goocalendar.view == "day":
+            new_label = date.strftime('%x')
             self.current_page_label.set_text(new_label)
 
     def on_today_button_clicked(self, widget):
@@ -224,6 +236,9 @@
             day = max(next_month_days)
         self.goocalendar.select(datetime.datetime(year, month, day))
 
+    def on_day_button_clicked(self, widget):
+        self.goocalendar.set_view("day")
+
     def on_week_button_clicked(self, widget):
         self.goocalendar.set_view("week")
 

Reply via email to