예제 #1
0
파일: widget.py 프로젝트: calston/tums
 def processInput(self, ctx, key, args):
     charset = util.getPOSTCharset(ctx)
     value = self._valueFromRequestArgs(charset, key, args)
     value = iformal.IStringConvertible(self.original).toType(value)
     if self.noneOption is not None and value == iformal.IKey(self.noneOption).key():
         value = None
     return self.original.validate(value)
예제 #2
0
 def render(self, ctx, key, args, errors):
     converter = iformal.IStringConvertible(self.original)
     if errors:
         value = args.get(key, [''])
     else:
         value = converter.fromType(args.get(key))
     return self._renderTag(ctx, key, value, converter, False)
예제 #3
0
 def render(self, ctx, key, args, errors):
     if errors:
         value = args.get(key, [''])[0]
     else:
         value = iformal.IStringConvertible(self.original).fromType(
             args.get(key))
     return T.textarea(name=key, id=key, mce_editable='true')[value or '']
예제 #4
0
파일: widget.py 프로젝트: calston/tums
 def processInput(self, ctx, key, args):
     charset = util.getPOSTCharset(ctx)
     value = args.get(key, [''])[0].decode(charset)
     value = iformal.IStringConvertible(self.original).toType(value)
     if self.noneOption is not None and \
             value == iformal.IKey(self.noneOption).key():
         value = None
     return self.original.validate(value)
예제 #5
0
파일: widget.py 프로젝트: calston/tums
 def render(self, ctx, key, args, errors):
     if errors:
         value = args.get(key, [''])[0]
     else:
         value = iformal.IStringConvertible(self.original).fromType(args.get(key))
     if not self.showValueOnFailure:
         value = None
     return self._renderTag(ctx, key, value, False)
예제 #6
0
파일: widget.py 프로젝트: calston/tums
 def render(self, ctx, key, args, errors):
     if errors:
         value = args.get(key, [''])
         if isinstance(value, list):
             value = value[0]
     else:
         value = iformal.IStringConvertible(self.original).fromType(args.get(key))
     return T.input(type=self.inputType, name=key, id=render_cssid(key), value=value)
예제 #7
0
파일: widget.py 프로젝트: calston/tums
 def renderImmutable(self, ctx, key, args, errors):
     converter = iformal.IStringConvertible(self.original.type)
     values = args.get(key)
     if values is not None:
         values = [converter.fromType(v) for v in values]
     else:
         values = []
     return self._renderTag(ctx, key, values, True)
예제 #8
0
 def processInput(self, ctx, key, args):
     values = args.get(key, [''])
     rv = []
     for value in values:
         value = iformal.IStringConvertible(self.original).toType(value)
         if self.noneOption is not None and value == self.noneOption[0]:
             value = None
         rv.append(self.original.validate(value))
     return rv
예제 #9
0
 def renderImmutable(self, ctx, key, args, errors):
     value = iformal.IStringConvertible(self.original).fromType(
         args.get(key))
     if value:
         value = T.xml(value)
     else:
         value = ''
     return T.div(id=key, class_="readonly-textarea-container")[T.div(
         class_='readonly-textarea readonly')[value]]
예제 #10
0
파일: widget.py 프로젝트: calston/tums
    def render(self, ctx, key, args, errors):

        charset = util.getPOSTCharset(ctx)
        converter = iformal.IStringConvertible(self.original)

        if errors:
            value = self._valueFromRequestArgs(charset, key, args)
        else:
            value = converter.fromType(args.get(key))

        if value is None:
            value = iformal.IKey(self.noneOption).key()

        optionGen = inevow.IQ(self.template).patternGenerator('option')
        selectedOptionGen = inevow.IQ(self.template).patternGenerator('selectedOption')
        optionTags = []
        selectOther = True

        if self.noneOption is not None:
            noneValue = iformal.IKey(self.noneOption).key()
            if value == noneValue:
                tag = selectedOptionGen()
                selectOther = False
            else:
                tag = optionGen()
            tag.fillSlots('value', noneValue)
            tag.fillSlots('label', iformal.ILabel(self.noneOption).label())
            optionTags.append(tag)

        if self.options is not None:
            for item in self.options:
                if value == item:
                    tag = selectedOptionGen()
                    selectOther = False
                else:
                    tag = optionGen()
                tag.fillSlots('value', item)
                tag.fillSlots('label', item)
                optionTags.append(tag)

        if selectOther:
            tag = selectedOptionGen()
            otherValue = value
        else:
            tag = optionGen()
            otherValue = ''
        tag.fillSlots('value', self.otherOption[0])
        tag.fillSlots('label', self.otherOption[1])
        optionTags.append(tag)

        tag = T.invisible[self.template.load(ctx)]
        tag.fillSlots('key', key)
        tag.fillSlots('id', render_cssid(key))
        tag.fillSlots('options', optionTags)
        tag.fillSlots('otherValue', otherValue)
        return tag
예제 #11
0
    def processInput(self, ctx, key, args):
        fileitem = inevow.IRequest(ctx).fields[key]
        name = fileitem.filename.decode(util.getPOSTCharset(ctx))

        if name:
            value = self.fileHandler.storeFile(fileitem.file, name)
        else:
            namer = self._namer(key)
            value = args.get(namer('value'))[0]

        value = iformal.IStringConvertible(self.original).fromType(value)
        return self.original.validate(value)
예제 #12
0
파일: widget.py 프로젝트: calston/tums
 def processInput(self, ctx, key, args):
     # Get the whole string
     value = args.get(key, [''])[0].decode(util.getPOSTCharset(ctx))
     # Split into lines
     values = value.splitlines()
     # Strip each line
     values = [v.strip() for v in values]
     # Discard empty lines
     values = [v for v in values if v]
     # Convert values to correct type
     converter = iformal.IStringConvertible(self.original.type)
     values = [converter.toType(v) for v in values]
     # Validate and return
     return self.original.validate(values)
예제 #13
0
파일: widget.py 프로젝트: calston/tums
    def render(self, ctx, key, args, errors):
        namer = self._namer(key)
        if errors:
            fileitem = inevow.IRequest(ctx).fields[key]
            name = fileitem.filename.decode(util.getPOSTCharset(ctx))
            if name:
                value = name
            else:
               namer = self._namer(key)
               value = args.get(namer('value'))[0]
        else:
            value = iformal.IStringConvertible(self.original).fromType(args.get(key))

        return self._renderTag(ctx, key, value, namer, False)
예제 #14
0
 def renderImmutable(self, ctx, key, args, errors):
     converter = iformal.IStringConvertible(self.original)
     value = converter.fromType(args.get(key))
     return self._renderTag(ctx, key, value, converter, True)
예제 #15
0
 def processInput(self, ctx, key, args):
     values = args.get(key, [])
     converter = iformal.IStringConvertible(self.original.type)
     values = [converter.toType(v) for v in values]
     return self.original.validate(values)
예제 #16
0
 def processInput(self, ctx, key, args):
     value = args.get(key, [''])[0].decode(util.getPOSTCharset(ctx))
     value = iformal.IStringConvertible(self.original).toType(value)
     return self.original.validate(value)
예제 #17
0
 def processInput(self, ctx, key, args):
     value = self._valueFromRequestArgs(key, args)
     value = iformal.IStringConvertible(self.original).toType(value)
     if self.noneOption is not None and value == self.noneOption[0]:
         value = None
     return self.original.validate(value)
예제 #18
0
 def processInput(self, ctx, key, args):
     value = args.get(key, [''])[0]
     value = iformal.IStringConvertible(self.original).toType(value)
     if self.noneOption is not None and value == self.noneOption[0]:
         value = None
     return self.original.validate(value)
예제 #19
0
파일: widget.py 프로젝트: calston/tums
 def processInput(self, ctx, key, args):
     charset = util.getPOSTCharset(ctx)
     values = [v.decode(charset) for v in args.get(key, [])]
     converter = iformal.IStringConvertible(self.original.type)
     values = [converter.toType(v) for v in values]
     return self.original.validate(values)