Reviewers: ,


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

Affected files:
  M tryton/gui/window/view_form/screen/screen.py
  M tryton/gui/window/view_form/view/form_gtk/one2many.py
  M tryton/gui/window/view_form/view/list_gtk/editabletree.py


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
@@ -57,6 +57,7 @@
         else:
             self.row_activate = row_activate
         self.domain = domain
+        self.size_limit = None
         self.views_preload = views_preload
         self.model_name = model_name
         self.context = context

Index: tryton/gui/window/view_form/view/form_gtk/one2many.py
===================================================================

--- a/tryton/gui/window/view_form/view/form_gtk/one2many.py
+++ b/tryton/gui/window/view_form/view/form_gtk/one2many.py
@@ -439,10 +439,13 @@
             if record:
readonly = field.get_state_attrs(record).get('readonly', False)
                 domain = field.domain_get(record)
+                size_limit = record.expr_eval(self.attrs.get('size'))
             if self.screen.domain != domain:
                 self.screen.domain = domain
             if not self.screen.group.readonly and readonly:
                 self.screen.group.readonly = readonly
+            if self.screen.size_limit != size_limit:
+                self.screen.size_limit = size_limit
         self.screen.display()
         return True


Index: tryton/gui/window/view_form/view/list_gtk/editabletree.py
===================================================================

--- a/tryton/gui/window/view_form/view/list_gtk/editabletree.py
+++ b/tryton/gui/window/view_form/view/list_gtk/editabletree.py
@@ -86,9 +86,9 @@

     def on_create_line(self):
         access = MODELACCESS[self.screen.model_name]
-        if not access['create']:
+        model = self.get_model()
+        if not access['create'] or len(model) >= self.screen.size_limit:
             return
-        model = self.get_model()
         if self.editable == 'top':
             method = model.prepend
         else:



--
--
[email protected] mailing list



Reply via email to