Esempio n. 1
0
                if isinstance(value, str):
                    string = '<a>' + value + '</a>'
                else:
                    string = u'<a>' + value + u'</a>'
                try:
                    doc = parseString(string)
                    doc.unlink() # Destroy the document object so the garbage
                    # collector can delete it
                    return 1
                except:
                    return """Please use XHTML conformant markup."""
        # The format was not 'text/html' or something went wrong
        return True

# Register this validator in Zope
registerValidatorLogged(XMLValidator, 'isXML')


class PositiveIntegerValidator:
    """A validator for positive integers."""
    
    implements(IValidator)
    
    def __init__(self, name):
        self.name = name
    
    def __call__(self, value, *args, **kwargs):
        if (not re.compile(r'^[1-9]\d*$').match(value)):
            return """Please enter a positive integer."""
        return True
Esempio n. 2
0
                    string = '<a>' + value + '</a>'
                else:
                    string = u'<a>' + value + u'</a>'
                try:
                    doc = parseString(string)
                    doc.unlink()  # Destroy the document object so the garbage
                    # collector can delete it
                    return 1
                except:
                    return """Please use XHTML conformant markup."""
        # The format was not 'text/html' or something went wrong
        return True


# Register this validator in Zope
registerValidatorLogged(XMLValidator, 'isXML')


class PositiveIntegerValidator:
    """A validator for positive integers."""

    implements(IValidator)

    def __init__(self, name):
        self.name = name

    def __call__(self, value, *args, **kwargs):
        if (not re.compile(r'^[1-9]\d*$').match(value)):
            return """Please enter a positive integer."""
        return True
Esempio n. 3
0
            res = None
            match = re.match('^[0-9]+(\\'
                             + decimalSeparator
                             + r')?[0-9]*\s*%$', value)
            if match:
                return None
            else:
                return instance.translate(
                           msgid   = 'invalid_percentage',
                           domain  = I18N_DOMAIN,
                           default = 'Not a percentage: %s') % value
        else:
            return True

# Register this validator in Zope
registerValidatorLogged(PercentageValidator, 'percentage')

class ECQScaleAnswer(ECQMCAnswer):
    """An answer to a multiple-choice question that provides only some of the points."""
    
    schema = ECQMCAnswer.schema.copy() + Schema((
            FloatField(
                'score',
                accessor='getScorePrivate',
                mutator = 'setScore',
                edit_accessor = 'getScoreForEdit',
                default=0.0,
                searchable=False,
                validators=('percentage',),
                read_permission=PERMISSION_INTERROGATOR,
                widget=StringWidget(