def default_value(self, request_user=None): from corehq.apps.userreports.expressions.getters import transform_from_datatype if self.pre_value is None: return { 'operator': self.pre_operator or 'is', 'operand': None, } elif isinstance(self.pre_value, list) and self.datatype != 'array': # We are assuming that `auto_value` is a list of items of type `datatype`. See # `transform_from_datatype()` for list of recognised data types. # # If `auto_value` is a list, and `datatype` == "array", we assume that the user meant the data type to # refer to `auto_value` itself (handled by the `else` clause below) and not the data type of the items # inside it. (i.e. We assume that `auto_value` is not an array of arrays.) return { 'operator': self.pre_operator or 'in', 'operand': [ transform_from_datatype(self.datatype)(v) for v in self.pre_value ], } else: return { 'operator': self.pre_operator or '=', 'operand': transform_from_datatype(self.datatype)(self.pre_value), }
def value(self, **kwargs): selection = unicode(kwargs.get(self.name, "")) if selection: choices = selection.split(CHOICE_DELIMITER) typed_choices = [transform_from_datatype(self.datatype)(c) for c in choices] return [Choice(tc, c) for (tc, c) in zip(typed_choices, choices)] return self.default_value()
def __call__(self, item, context=None): var_dict = self.get_variables(item, context) try: untransformed_value = eval_statements(self.statement, var_dict) return transform_from_datatype(self.datatype)(untransformed_value) except (InvalidExpression, SyntaxError, TypeError, ZeroDivisionError): return None
def value(self, **kwargs): selection = unicode(kwargs.get(self.name, "")) if selection: choices = selection.split(CHOICE_DELIMITER) typed_choices = [transform_from_datatype(self.datatype)(c) for c in choices] return self.choice_provider.get_sorted_choices_for_values(typed_choices) return self.default_value()
def value(self, **kwargs): selection = six.text_type(kwargs.get(self.name, "")) user = kwargs.get(REQUEST_USER_KEY, None) if selection: choices = selection.split(CHOICE_DELIMITER) typed_choices = [transform_from_datatype(self.datatype)(c) for c in choices] return self.choice_provider.get_sorted_choices_for_values(typed_choices, user) return self.default_value(user)
def value(self, **kwargs): selection = unicode(kwargs.get(self.name, "")) if selection: choices = selection.split(CHOICE_DELIMITER) typed_choices = [ transform_from_datatype(self.datatype)(c) for c in choices ] return [Choice(tc, c) for (tc, c) in zip(typed_choices, choices)] return self.default_value()
def value(self, **kwargs): raw_value = kwargs[self.name] choice = transform_from_datatype(self.datatype)(raw_value) if raw_value != SHOW_ALL_CHOICE else raw_value choice_values = map(lambda c: c.value, self.choices) if choice not in choice_values: raise FilterValueException( _(u'Choice "{choice}" not found in choices: {choices}').format(choice=choice, choices=choice_values) ) return next(choice_obj for choice_obj in self.choices if choice_obj.value == choice)
def value(self, **kwargs): from corehq.apps.userreports.expressions.getters import transform_from_datatype selection = kwargs.get(self.name, "") user = kwargs.get(REQUEST_USER_KEY, None) if selection: choices = selection if isinstance(selection, list) else [selection] typed_choices = [transform_from_datatype(self.datatype)(c) for c in choices] return self.choice_provider.get_sorted_choices_for_values(typed_choices, user) return self.default_value(user)
def value(self, **kwargs): raw_value = kwargs[self.name] choice = transform_from_datatype(self.datatype)(raw_value) if raw_value != SHOW_ALL_CHOICE else raw_value choice_values = [c.value for c in self.choices] if choice not in choice_values: raise FilterValueException(_(u'Choice "{choice}" not found in choices: {choices}') .format(choice=choice, choices=choice_values)) return next(choice_obj for choice_obj in self.choices if choice_obj.value == choice)
def parsed_expression(self, context): from corehq.apps.userreports.expressions.factory import ExpressionFactory expression = ExpressionFactory.from_spec(self.expression, context) datatype_transform = transform_from_datatype(self.datatype) if self.transform: generic_transform = TransformFactory.get_transform(self.transform).get_transform_function() inner_getter = TransformedGetter(expression, generic_transform) else: inner_getter = expression return TransformedGetter(inner_getter, datatype_transform)
def value(self, **kwargs): selection = unicode(kwargs.get(self.name, "")) if selection: choices = selection.split(CHOICE_DELIMITER) typed_choices = [ transform_from_datatype(self.datatype)(c) for c in choices ] return self.choice_provider.get_sorted_choices_for_values( typed_choices) return self.default_value(kwargs.get("request_user", None))
def value(self, **kwargs): from corehq.apps.userreports.reports.filters.values import CHOICE_DELIMITER from corehq.apps.userreports.expressions.getters import transform_from_datatype selection = six.text_type(kwargs.get(self.name, "")) user = kwargs.get(REQUEST_USER_KEY, None) if selection: choices = selection.split(CHOICE_DELIMITER) typed_choices = [transform_from_datatype(self.datatype)(c) for c in choices] return self.choice_provider.get_sorted_choices_for_values(typed_choices, user) return self.default_value(user)
def value(self, **kwargs): from corehq.apps.userreports.expressions.getters import transform_from_datatype from corehq.apps.userreports.reports.filters.values import SHOW_ALL_CHOICE raw_value = kwargs[self.name] choice = transform_from_datatype(self.datatype)(raw_value) if raw_value != SHOW_ALL_CHOICE else raw_value choice_values = [c.value for c in self.choices] if choice not in choice_values: raise FilterValueException(_(u'Choice "{choice}" not found in choices: {choices}') .format(choice=choice, choices=choice_values)) return next(choice_obj for choice_obj in self.choices if choice_obj.value == choice)
def value(self, **kwargs): from corehq.apps.userreports.expressions.getters import transform_from_datatype from corehq.apps.userreports.reports.filters.values import SHOW_ALL_CHOICE raw_value = kwargs[self.name] choice = transform_from_datatype(self.datatype)(raw_value) if raw_value != SHOW_ALL_CHOICE else raw_value choice_values = [c.value for c in self.choices] if choice not in choice_values: raise FilterValueException(_('Choice "{choice}" not found in choices: {choices}') .format(choice=choice, choices=choice_values)) return next(choice_obj for choice_obj in self.choices if choice_obj.value == choice)
def default_value(self, request_user=None): if self.pre_value is None: return { 'operator': self.pre_operator or 'is', 'operand': None, } elif isinstance(self.pre_value, list) and self.datatype != 'array': # We are assuming that `auto_value` is a list of items of type `datatype`. See # `transform_from_datatype()` for list of recognised data types. # # If `auto_value` is a list, and `datatype` == "array", we assume that the user meant the data type to # refer to `auto_value` itself (handled by the `else` clause below) and not the data type of the items # inside it. (i.e. We assume that `auto_value` is not an array of arrays.) return { 'operator': self.pre_operator or 'in', 'operand': [transform_from_datatype(self.datatype)(v) for v in self.pre_value], } else: return { 'operator': self.pre_operator or '=', 'operand': transform_from_datatype(self.datatype)(self.pre_value), }
def getter(self): transform = transform_from_datatype(self.datatype) getter = getter_from_property_reference(self) return TransformedGetter(getter, transform)
def __call__(self, item, context=None): transform = transform_from_datatype(self.datatype) return transform(safe_recursive_lookup(item, self.property_path))
def __call__(self, item, context=None): raw_value = item.get(self._property_name_expression(item, context)) if isinstance(item, dict) else None return transform_from_datatype(self.datatype)(raw_value)
def __call__(self, item, context=None): raw_value = item.get(self._property_name_expression( item, context)) if isinstance(item, dict) else None return transform_from_datatype(self.datatype)(raw_value)
def value(self, **kwargs): choice = kwargs[self.name] if choice: typed_choice = transform_from_datatype(self.datatype)(choice) return Choice(typed_choice, choice) return Choice(SHOW_ALL_CHOICE, '')
def expression(self): transform = transform_from_datatype(self.datatype) getter = NestedDictGetter(self.property_path) return TransformedGetter(getter, transform)