Exemple #1
0
 def parse(self, args):
     """Parse `args' to Python format."""
     data = super(EnumControl, self).parse(args)
     value = data[self.name]
     if value is not None and value not in self.values:
         m = tr('Illegal value for field: %s.') % tr(self.label)
         fields = [self.name]
         raise FormError(m, fields)
     return data
Exemple #2
0
 def parse(self, args):
     """Parse `args'."""
     data = super(StringControl, self).parse(args)
     value = data.get(self.name)
     if value is not None:
         value = value.strip()
         if self.re_eol.search(value):
             m = tr('Illegal value for field %s (no end-of-lines allowed).') \
                     % tr(self.label)
             fields = [self.name]
             raise FormError(m, fields)
         data[self.name] = value
     return data
Exemple #3
0
 def parse(self, args):
     value = args.get(self.name)
     if value:
         if not isinstance(value, FileUpload):
             m = tr('Expecting file upload for field: %s') % tr(self.label)
             fields = [self.name]
             raise FormError(m, fields)
     elif self.nullok:
         value = None
     else:
         m = tr('No file selected for field: %s') % tr(self.label)
         fields = [self.name]
         raise FormError(m, fields)
     result = {}
     result[self.name] = value
     return result
Exemple #4
0
 def parse(self, args):
     """Parse `args' to Python format."""
     result = super(NumericControl, self).parse(args)
     value = result[self.name]
     if value is not None:
         if self.minval is not None and value < self.minval:
             m = tr('Value of field %s is too low (minimum value is %s).') \
                         % (tr(self.label), self.minval)
             fields = [self.name]
             raise FormError(m, fields)
         elif self.maxval is not None and value > self.maxval:
             m = tr('Value of field %s is too high (maximum value is %s).') \
                         % (tr(self.label), self.minval)
             fields = [self.name]
             raise FormError(m, fields)
     return result
Exemple #5
0
 def parse(self, args):
     """Parse `args' to Python format."""
     data = super(BooleanControl, self).parse(args)
     value = data[self.name]
     if value == 'true':
         value = True
     elif value == 'false':
         value = False
     elif value is None:
         value = None
     else:
         m = tr('Illegal value for field: %s') % tr(self.label)
         fields = [self.name]
         raise FormError(m, fields)
     data[self.name] = value
     return data
Exemple #6
0
 def parse(self, args):
     """Parse `args' to Python format."""
     data = super(DateTimeBaseControl, self).parse(args)
     value = data[self.name]
     if value is not None:
         for fmt in self.formats:
             try:
                 tm = time.strptime(value, fmt)
                 break
             except ValueError:
                 pass
         else:
             m = tr('Illegal format for field: %s') % tr(self.label)
             fields = [self.name]
             raise FormError(m, fields)
         value = self.date_type(*tuple(tm)[self.tm_slice])
     data[self.name] = value
     return data
Exemple #7
0
 def parse(self, args):
     """Parse `args' to Python format."""
     value = args.get(self.name, '')
     if not isinstance(value, basestring):
         m = tr('Expecting scalar value for field: %s') % tr(self.label)
         fields = [self.name]
         raise FormError(m, fields)
     if self.nullok and value == self.null_value:
         value = None
     elif not value:
         if self.default is None:
             m = tr('A value is required for field: %s') % tr(self.label)
             fields = [self.name]
             raise FormError(m, fields)
         value = self.default
     if value is not None and self.type is not None:
         try:
             value = self.type(value)
         except ValueError:
             m = tr('Illegal value for field: %s') % tr(self.label)
             fields = [self.name]
             raise FormError(m, fields)
     result = {}
     result[self.name] = value
     return result
Exemple #8
0
 def parse(self, args):
     """Parse `args' to Python format."""
     data = super(CharacterControl, self).parse(args)
     value = data[self.name]
     if value is not None:
         if self.strip is not None:
             value = self.strip.sub('', value)
             data[self.name] = value
         if self.minlen is not None and len(value) < self.minlen:
             m = tr('Input for field %s is too short (minimum length is %d).') \
                         % (tr(self.label), self.minlen)
             fields = [self.name]
             raise FormError(m, fields)
         if self.maxlen is not None and len(value) > self.maxlen:
             m = tr('Input for field %s is too long (maximum length is %d).') \
                         % (tr(self.label), self.maxlen)
             fields = [self.name]
             raise FormError(m, fields)
         if self.regex is not None and not self.regex.match(value):
             m = tr('The input for field %s does not match the required ' \
                    'format.') % tr(self.label)
             fields = [self.name]
             raise FormError(m, fields)
     return data