Code Duplication    Length = 25-25 lines in 2 locations

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

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