Reviewers: ,


Please review this at http://codereview.tryton.org/559002/

Affected files:
  M tryton/gui/window/form.py
  M tryton/gui/window/view_form/screen/screen.py
  M tryton/gui/window/view_form/view/form.py


Index: tryton/gui/window/form.py
===================================================================

--- a/tryton/gui/window/form.py
+++ b/tryton/gui/window/form.py
@@ -297,6 +297,11 @@
                     value = common.datetime_strftime(date, display_format)
                 message_str += val + ' ' + value + '\n'
         message_str += _('Model:') + ' ' + self.model
+        if self.screen.history and self.screen.history_dates:
+            history_dates = [common.datetime_strftime(dt, display_format)
+                for dt in self.screen.history_dates]
+            history_dates = ', '.join(history_dates)
+            message_str += '\n' + _('History Dates:') + ' ' + history_dates
         message(message_str)
         return True


Index: tryton/gui/window/view_form/screen/screen.py
===================================================================

--- a/tryton/gui/window/view_form/screen/screen.py
+++ b/tryton/gui/window/view_form/screen/screen.py
@@ -82,6 +82,8 @@
             lambda: collections.defaultdict(lambda: None))
         self.domain_parser = None
         self.pre_validate = False
+        self.history = False
+        self.history_dates = []

         if mode:
             self.view_to_load = mode[1:]
@@ -368,6 +370,7 @@
     def add_view(self, view, display=False, context=None):
         arch = view['arch']
         fields = view['fields']
+        self.history = view.get('history')

         xml_dom = xml.dom.minidom.parseString(arch)
         for node in xml_dom.childNodes:

Index: tryton/gui/window/view_form/view/form.py
===================================================================

--- a/tryton/gui/window/view_form/view/form.py
+++ b/tryton/gui/window/view_form/view/form.py
@@ -6,6 +6,7 @@
 import gettext
 import gobject
 from interface import ParserView
+from .timeline_widget import TimelineWidget

 _ = gettext.gettext

@@ -22,6 +23,8 @@
             if isinstance(widget, gtk.Button):
                 widget.connect('clicked', self.button_clicked)
                 widget.set_focus_on_click(False)
+        if screen.history:
+            self.timeline_widget = TimelineWidget(screen)

         # Force to display the first time it switches on a page
         # This avoids glitch in position of widgets
@@ -52,7 +55,8 @@
         viewport.set_shadow_type(gtk.SHADOW_ETCHED_IN)
         viewport.add(scroll)
         vbox.pack_start(viewport, expand=True, fill=True)
-
+        if screen.history:
+            vbox.pack_start(self.timeline_widget.widget, False, False)
         self.widget = vbox

     def __getitem__(self, name):
@@ -137,6 +141,8 @@
                 widget.display(record, field)
         for widget in self.state_widgets:
             widget.state_set(record)
+        if self.screen.history:
+            self.timeline_widget.display(record)
         return True

     def set_cursor(self, new=False, reset_view=True):



--
[email protected] mailing list

Reply via email to