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))
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))
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
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
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))
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))