Code Duplication    Length = 21-26 lines in 2 locations

src/bika/lims/validators.py 2 locations

@@ 1085-1110 (lines=26) @@
1082
validation.register(ReferenceValuesValidator())
1083
1084
1085
class PercentValidator:
1086
    """ Floatable, >=0, <=100. """
1087
1088
    implements(IValidator)
1089
    name = "percentvalidator"
1090
1091
    def __call__(self, value, *args, **kwargs):
1092
        instance = kwargs['instance']
1093
        # fieldname = kwargs['field'].getName()
1094
        # request = kwargs.get('REQUEST', {})
1095
        # form = request.get('form', {})
1096
1097
        translate = getToolByName(instance, 'translation_service').translate
1098
1099
        try:
1100
            value = float(value)
1101
        except:
1102
            msg = _("Validation failed: percent values must be numbers")
1103
            return to_utf8(translate(msg))
1104
1105
        if value < 0 or value > 100:
1106
            msg = _(
1107
                "Validation failed: percent values must be between 0 and 100")
1108
            return to_utf8(translate(msg))
1109
1110
        return True
1111
1112
1113
validation.register(PercentValidator())
@@ 1315-1335 (lines=21) @@
1312
}
1313
1314
1315
class SortKeyValidator:
1316
    """ Check for out of range values.
1317
    """
1318
1319
    implements(IValidator)
1320
    name = "SortKeyValidator"
1321
1322
    def __call__(self, value, *args, **kwargs):
1323
        instance = kwargs['instance']
1324
        translate = getToolByName(instance, 'translation_service').translate
1325
        try:
1326
            value = float(value)
1327
        except:
1328
            msg = _("Validation failed: value must be float")
1329
            return to_utf8(translate(msg))
1330
1331
        if value < 0 or value > 1000:
1332
            msg = _("Validation failed: value must be between 0 and 1000")
1333
            return to_utf8(translate(msg))
1334
1335
        return True
1336
1337
1338
validation.register(SortKeyValidator())