Code Duplication    Length = 21-26 lines in 2 locations

bika/lims/validators.py 2 locations

@@ 1002-1027 (lines=26) @@
999
validation.register(ReferenceValuesValidator())
1000
1001
1002
class PercentValidator:
1003
    """ Floatable, >=0, <=100. """
1004
1005
    implements(IValidator)
1006
    name = "percentvalidator"
1007
1008
    def __call__(self, value, *args, **kwargs):
1009
        instance = kwargs['instance']
1010
        # fieldname = kwargs['field'].getName()
1011
        # request = kwargs.get('REQUEST', {})
1012
        # form = request.get('form', {})
1013
1014
        translate = getToolByName(instance, 'translation_service').translate
1015
1016
        try:
1017
            value = float(value)
1018
        except:
1019
            msg = _("Validation failed: percent values must be numbers")
1020
            return to_utf8(translate(msg))
1021
1022
        if value < 0 or value > 100:
1023
            msg = _(
1024
                "Validation failed: percent values must be between 0 and 100")
1025
            return to_utf8(translate(msg))
1026
1027
        return True
1028
1029
1030
validation.register(PercentValidator())
@@ 1232-1252 (lines=21) @@
1229
}
1230
1231
1232
class SortKeyValidator:
1233
    """ Check for out of range values.
1234
    """
1235
1236
    implements(IValidator)
1237
    name = "SortKeyValidator"
1238
1239
    def __call__(self, value, *args, **kwargs):
1240
        instance = kwargs['instance']
1241
        translate = getToolByName(instance, 'translation_service').translate
1242
        try:
1243
            value = float(value)
1244
        except:
1245
            msg = _("Validation failed: value must be float")
1246
            return to_utf8(translate(msg))
1247
1248
        if value < 0 or value > 1000:
1249
            msg = _("Validation failed: value must be between 0 and 1000")
1250
            return to_utf8(translate(msg))
1251
1252
        return True
1253
1254
1255
validation.register(SortKeyValidator())