示例#1
0
    def value(self, **kwargs):
        try:
            year = int(kwargs[self.year_param_name])
            quarter = int(kwargs[self.quarter_param_name])
        except ValueError:
            raise FilterValueException()

        if not (1 <= quarter <= 4):
            raise FilterValueException()

        return self.get_quarter(year, quarter)
示例#2
0
    def value(self, **kwargs):
        selected_year = kwargs[self.year_param_name]
        if selected_year == SHOW_ALL_CHOICE:
            # no filter translates to not filtering the dates at all
            return DateSpan.max()
        try:
            year = int(kwargs[self.year_param_name])
            quarter = int(kwargs[self.quarter_param_name])
        except ValueError:
            raise FilterValueException()

        if not (1 <= quarter <= 4):
            raise FilterValueException()

        return self.get_quarter(year, quarter)
示例#3
0
    def value(self, **kwargs):
        if self.startdate_param_name not in kwargs or self.enddate_param_name not in kwargs:
            return None

        startdate = kwargs[self.startdate_param_name]
        enddate = kwargs[self.enddate_param_name]
        date_range_inclusive = kwargs.get('date_range_inclusive', True)

        def date_or_nothing(param):
            if param:
                if self.compare_as_string:
                    return iso_string_to_date(param)
                else:
                    return datetime.combine(iso_string_to_date(param), time())
            else:
                return None

        try:
            startdate = date_or_nothing(startdate)
            enddate = date_or_nothing(enddate)
        except (ValueError, TypeError) as e:
            raise FilterValueException(
                'Error parsing date parameters: {}'.format(str(e)))

        if startdate or enddate:
            return DateSpan(startdate, enddate, inclusive=date_range_inclusive)
示例#4
0
 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)
示例#5
0
 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)
示例#6
0
    def value(self, **kwargs):
        operator = kwargs[self.operator_param_name]
        operand = kwargs[self.operand_param_name]
        if operand == "":
            return None
        try:
            assert operator in ["=", "!=", "<", "<=", ">", ">="]
            assert isinstance(operand, float) or isinstance(operand, int)
        except AssertionError as e:
            raise FilterValueException('Error parsing numeric filter parameters: {}'.format(e.message))

        return {"operator": operator, "operand": operand}
示例#7
0
    def value(self, **kwargs):
        startdate = kwargs[self.startdate_param_name]
        enddate = kwargs[self.enddate_param_name]
        date_range_inclusive = kwargs.get('date_range_inclusive', True)

        def date_or_nothing(param):
            if param:
                return iso_string_to_date(param)
            else:
                return None

        try:
            startdate = date_or_nothing(startdate)
            enddate = date_or_nothing(enddate)
        except (ValueError, TypeError) as e:
            raise FilterValueException(
                'Error parsing date parameters: {}'.format(e.message))

        if startdate or enddate:
            return DateSpan(startdate, enddate, inclusive=date_range_inclusive)