Code Duplication    Length = 24-24 lines in 2 locations

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

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