Reviewers: ,
Please review this at http://codereview.tryton.org/560002/ 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
