Exemplo n.º 1
0
 def check_domain(self):
     if not self.model_domain:
         return
     try:
         value = PYSONDecoder().decode(self.model_domain)
     except Exception:
         raise UserError(
             gettext('shine.invalid_domain',
                     domain=self.model_domain,
                     dataset=self.rec_name))
     if isinstance(value, PYSON):
         if not value.types() == set([list]):
             raise UserError(
                 gettext('shine.invalid_domain',
                         domain=self.model_domain,
                         dataset=self.rec_name))
     elif not isinstance(value, list):
         raise UserError(
             gettext('shine.invalid_domain',
                     domain=self.model_domain,
                     dataset=self.rec_name))
     else:
         try:
             fields.domain_validate(value)
         except Exception:
             raise UserError(
                 gettext('shine.invalid_domain',
                         domain=self.model_domain,
                         dataset=self.rec_name))
Exemplo n.º 2
0
 def check_domain(cls, actions):
     "Check domain and search_value"
     for action in actions:
         for domain in (action.domain, action.search_value):
             if not domain:
                 continue
             try:
                 value = PYSONDecoder().decode(domain)
             except Exception:
                 raise DomainError(
                     gettext('ir.msg_action_invalid_domain',
                             domain=domain,
                             action=action.rec_name))
             if isinstance(value, PYSON):
                 if not value.types() == set([list]):
                     raise DomainError(
                         gettext('ir.msg_action_invalid_domain',
                                 domain=domain,
                                 action=action.rec_name))
             elif not isinstance(value, list):
                 raise DomainError(
                     gettext('ir.msg_action_invalid_domain',
                             domain=domain,
                             action=action.rec_name))
             else:
                 try:
                     fields.domain_validate(value)
                 except Exception:
                     raise DomainError(
                         gettext('ir.msg_action_invalid_domain',
                                 domain=domain,
                                 action=action.rec_name))
Exemplo n.º 3
0
 def check_domain(cls, actions, field_names=None):
     if field_names and 'domain' not in field_names:
         return
     for action in actions:
         if not action.domain:
             continue
         try:
             value = PYSONDecoder().decode(action.domain)
         except Exception as exception:
             raise DomainError(gettext(
                     'ir.msg_action_invalid_domain',
                     domain=action.domain,
                     action=action.rec_name)) from exception
         if isinstance(value, PYSON):
             if not value.types() == set([list]):
                 raise DomainError(gettext(
                         'ir.msg_action_invalid_domain',
                         domain=action.domain,
                         action=action.rec_name))
         elif not isinstance(value, list):
             raise DomainError(gettext(
                     'ir.msg_action_invalid_domain',
                     domain=action.domain,
                     action=action.rec_name))
         else:
             try:
                 fields.domain_validate(value)
             except Exception as exception:
                 raise DomainError(gettext(
                         'ir.msg_action_invalid_domain',
                         domain=action.domain,
                         action=action.rec_name)) from exception
Exemplo n.º 4
0
 def check_domain(cls, searches, field_names):
     decoder = PYSONDecoder()
     if field_names and 'domain' not in field_names:
         return
     for search in searches:
         try:
             value = decoder.decode(search.domain)
         except Exception as exception:
             raise DomainError(
                 gettext('ir.msg_view_search_invalid_domain',
                         domain=search.domain,
                         search=search.rec_name)) from exception
         if isinstance(value, PYSON):
             if not value.types() == set([list]):
                 raise DomainError(
                     gettext('ir.msg_view_search_invalid_domain',
                             domain=search.domain,
                             search=search.rec_name))
         elif not isinstance(value, list):
             raise DomainError(
                 gettext('ir.msg_view_search_invalid_domain',
                         domain=search.domain,
                         search=search.rec_name))
         else:
             try:
                 fields.domain_validate(value)
             except Exception as exception:
                 raise DomainError(
                     gettext('ir.msg_view_search_invalid_domain',
                             domain=search.domain,
                             search=search.rec_name)) from exception
Exemplo n.º 5
0
 def check_domain(cls, rules):
     ctx = cls._get_context()
     for rule in rules:
         try:
             value = PYSONDecoder(ctx).decode(rule.domain)
         except Exception:
             raise DomainError(gettext(
                     'ir.msg_rule_invalid_domain', name=rule.rec_name))
         if not isinstance(value, list):
             raise DomainError(gettext(
                     'ir.msg_rule_invalid_domain', name=rule.rec_name))
         else:
             try:
                 fields.domain_validate(value)
             except Exception:
                 raise DomainError(gettext(
                         'ir.msg_rule_invalid_domain', name=rule.rec_name))
Exemplo n.º 6
0
 def check_domain(cls, actions):
     for action in actions:
         if not action.domain:
             continue
         try:
             value = PYSONDecoder().decode(action.domain)
         except Exception:
             value = None
         if isinstance(value, PYSON):
             if not value.types() == set([list]):
                 value = None
         elif not isinstance(value, list):
             value = None
         else:
             try:
                 fields.domain_validate(value)
             except Exception:
                 value = None
         if value is None:
             raise DomainError(
                 gettext('ir.msg_action_invalid_domain',
                         domain=action.domain,
                         action=action.rec_name))