Code Duplication    Length = 21-26 lines in 2 locations

bika/lims/validators.py 2 locations

@@ 1015-1040 (lines=26) @@
1012
validation.register(ReferenceValuesValidator())
1013
1014
1015
class PercentValidator:
1016
    """ Floatable, >=0, <=100. """
1017
1018
    implements(IValidator)
1019
    name = "percentvalidator"
1020
1021
    def __call__(self, value, *args, **kwargs):
1022
        instance = kwargs['instance']
1023
        # fieldname = kwargs['field'].getName()
1024
        # request = kwargs.get('REQUEST', {})
1025
        # form = request.get('form', {})
1026
1027
        translate = getToolByName(instance, 'translation_service').translate
1028
1029
        try:
1030
            value = float(value)
1031
        except:
1032
            msg = _("Validation failed: percent values must be numbers")
1033
            return to_utf8(translate(msg))
1034
1035
        if value < 0 or value > 100:
1036
            msg = _(
1037
                "Validation failed: percent values must be between 0 and 100")
1038
            return to_utf8(translate(msg))
1039
1040
        return True
1041
1042
1043
validation.register(PercentValidator())
@@ 1245-1265 (lines=21) @@
1242
}
1243
1244
1245
class SortKeyValidator:
1246
    """ Check for out of range values.
1247
    """
1248
1249
    implements(IValidator)
1250
    name = "SortKeyValidator"
1251
1252
    def __call__(self, value, *args, **kwargs):
1253
        instance = kwargs['instance']
1254
        translate = getToolByName(instance, 'translation_service').translate
1255
        try:
1256
            value = float(value)
1257
        except:
1258
            msg = _("Validation failed: value must be float")
1259
            return to_utf8(translate(msg))
1260
1261
        if value < 0 or value > 1000:
1262
            msg = _("Validation failed: value must be between 0 and 1000")
1263
            return to_utf8(translate(msg))
1264
1265
        return True
1266
1267
1268
validation.register(SortKeyValidator())