Пример #1
0
 def check_context(self):
     if not self.model_context:
         return
     try:
         value = PYSONDecoder().decode(self.model_context)
     except Exception:
         raise UserError(
             gettext('shine.invalid_context',
                     context=self.model_context,
                     dataset=self.rec_name))
     if isinstance(value, PYSON):
         if not value.types() == set([dict]):
             raise UserError(
                 gettext('shine.invalid_context',
                         context=self.model_context,
                         dataset=self.rec_name))
     elif not isinstance(value, dict):
         raise UserError(
             gettext('shine.invalid_context',
                     context=self.model_context,
                     dataset=self.rec_name))
     else:
         try:
             fields.context_validate(value)
         except Exception:
             raise UserError(
                 gettext('shine.invalid_context',
                         context=self.model_context,
                         dataset=self.rec_name))
Пример #2
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))
Пример #3
0
 def check_context(cls, actions):
     "Check context"
     for action in actions:
         if action.context:
             try:
                 value = PYSONDecoder().decode(action.context)
             except Exception:
                 raise ContextError(
                     gettext('ir.msg_action_invalid_context',
                             context=action.context,
                             action=action.rec_name))
             if isinstance(value, PYSON):
                 if not value.types() == set([dict]):
                     raise ContextError(
                         gettext('ir.msg_action_invalid_context',
                                 context=action.context,
                                 action=action.rec_name))
             elif not isinstance(value, dict):
                 raise ContextError(
                     gettext('ir.msg_action_invalid_context',
                             context=action.context,
                             action=action.rec_name))
             else:
                 try:
                     fields.context_validate(value)
                 except Exception:
                     raise ContextError(
                         gettext('ir.msg_action_invalid_context',
                                 context=action.context,
                                 action=action.rec_name))
Пример #4
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))
Пример #5
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
Пример #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))