Reviewers: ,
Please review this at http://codereview.tryton.org/165003/ Affected files: M tryton/gui/window/view_form/model/record.py Index: tryton/gui/window/view_form/model/record.py =================================================================== --- a/tryton/gui/window/view_form/model/record.py +++ b/tryton/gui/window/view_form/model/record.py @@ -36,6 +36,7 @@ self.next = {} # Used in Group list self.value = {} self.autocompletion = {} + self.exception = False def __getitem__(self, name, raise_exception=False): if name not in self._loaded and self.id >= 0: @@ -79,6 +80,7 @@ for fname, field in self.group.fields.iteritems() if field.attrs['type'] == 'binary')) args = ('model', self.model_name, 'read', ids, fields, ctx) + exception = None try: values = rpc.execute(*args) except TrytonServerError, exception: @@ -87,10 +89,16 @@ values = common.process_exception(exception, *args) if not values: values = [{'id': x} for x in ids] + default_values = dict((f, False) for f in fields) + for value in values: + value.update(default_values) + self.exception = True id2value = dict((value['id'], value) for value in values) if ids != [self.id]: for id in ids: record = self.group.get(id) + if not record.exception: + record.exception = bool(exception) value = id2value.get(id) if record and value: record.set(value, signal=False) @@ -164,7 +172,7 @@ deleted = property(get_deleted) def get_readonly(self): - return self.deleted or self.removed + return self.deleted or self.removed or self.exception readonly = property(get_readonly) -- [email protected] mailing list
