Beispiel #1
0
 def _get_on_change_args(self, args):
     res = {}
     values = common.EvalEnvironment(self, 'on_change')
     for arg in args:
         scope = values
         for i in arg.split('.'):
             if i not in scope:
                 break
             scope = scope[i]
         else:
             res[arg] = scope
     return res
Beispiel #2
0
 def expr_eval(self, expr):
     if not isinstance(expr, str):
         return expr
     ctx = self.get_eval()
     ctx['context'] = self.get_context()
     ctx['active_model'] = self.model_name
     ctx['active_id'] = self.id
     if self.parent and self.parent_name:
         ctx['_parent_' + self.parent_name] = \
             common.EvalEnvironment(self.parent)
     val = PYSONDecoder(ctx).decode(expr)
     return val
Beispiel #3
0
 def _get_active(self):
     if self.screen and self.screen.current_record:
         return common.EvalEnvironment(self.screen.current_record)