Browse Source

[FIX] partner_multi_relation_tab. Prevent key errors.

There are situations where tabs are added by fields_view_get, but not yet visible for other functions,
presumably in other workers. Handle the errors caused by this. So far only seen in mapped function.
pull/498/head
Ronald Portier 6 years ago
parent
commit
74170e6138
  1. 12
      partner_multi_relation_tabs/models/res_partner.py

12
partner_multi_relation_tabs/models/res_partner.py

@ -33,6 +33,18 @@ class ResPartner(models.Model):
result['fields'][fieldname] = original_fields[fieldname] result['fields'][fieldname] = original_fields[fieldname]
return result return result
def mapped(self, func):
"""Handle situation where mapped refers to not yet added tab field."""
try:
return super(ResPartner, self).mapped(func)
except KeyError:
# Retry if error caused by tab field
if isinstance(func, basestring) and 'tab' in func:
for tab in self._get_tabs(): # get all tabs
self.add_field(tab)
return super(ResPartner, self).mapped(func)
raise
def _add_tab_pages(self, view): def _add_tab_pages(self, view):
"""Adds the relevant tabs to the partner's formview.""" """Adds the relevant tabs to the partner's formview."""
# pylint: disable=no-member # pylint: disable=no-member

Loading…
Cancel
Save