Code Duplication    Length = 24-24 lines in 2 locations

src/senaite/core/browser/fields/datetime.py 2 locations

@@ 102-125 (lines=24) @@
99
        errors[field_name] = translate(error, context=api.get_request())
100
        return errors[field_name]
101
102
    def validate_max_date(self, value, instance, errors=None):
103
        """Validates the passed-in value against the field's maximum date
104
        """
105
        if errors is None:
106
            errors = {}
107
108
        # self.max always returns an offset-naive datetime, but the value
109
        # is offset-aware. We need to add the TZ, otherwise we get a:
110
        #   TypeError: can't compare offset-naive and offset-aware datetimes
111
        if dtime.to_ansi(value) <= dtime.to_ansi(self.max):
112
            return None
113
114
        error = _(
115
            u"error_datetime_after_max",
116
            default=u"${name} is after ${max_date}, please correct.",
117
            mapping={
118
                "name": self.get_label(instance),
119
                "max_date": self.localize(self.max, instance)
120
            }
121
        )
122
123
        field_name = self.getName()
124
        errors[field_name] = translate(error, context=api.get_request())
125
        return errors[field_name]
126
127
    def is_true(self, val):
128
        """Returns whether val evaluates to True
@@ 77-100 (lines=24) @@
74
        if error:
75
            return error
76
77
    def validate_min_date(self, value, instance, errors=None):
78
        """Validates the passed-in value against the field's minimum date
79
        """
80
        if errors is None:
81
            errors = {}
82
83
        # self.min always returns an offset-naive datetime, but the value
84
        # is offset-aware. We need to add the TZ, otherwise we get a:
85
        #   TypeError: can't compare offset-naive and offset-aware datetimes
86
        if dtime.to_ansi(value) >= dtime.to_ansi(self.min):
87
            return None
88
89
        error = _(
90
            u"error_datetime_before_min",
91
            default=u"${name} is before ${min_date}, please correct.",
92
            mapping={
93
                "name": self.get_label(instance),
94
                "min_date": self.localize(self.min, instance)
95
            }
96
        )
97
98
        field_name = self.getName()
99
        errors[field_name] = translate(error, context=api.get_request())
100
        return errors[field_name]
101
102
    def validate_max_date(self, value, instance, errors=None):
103
        """Validates the passed-in value against the field's maximum date