Changeset 256

Show
Ignore:
Timestamp:
08/25/06 14:05:23 (2 years ago)
Author:
tim
Message:

added textareawithselect and sequencetostring convertor

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/formal/__init__.py

    r248 r256  
    5656registerAdapter(converters.TimeToStringConverter, Time, iformal.IStringConvertible) 
    5757registerAdapter(converters.NullConverter, File, iformal.IFileConvertible) 
    58 registerAdapter(converters.NullConverter, Sequence, iformal.ISequenceConvertible) 
     58registerAdapter(converters.SequenceToStringConverter, Sequence, iformal.IStringConvertible) 
    5959try: 
    6060    Decimal 
  • trunk/formal/converters.py

    r224 r256  
    176176        return value 
    177177         
     178 
     179 
     180class SequenceToStringConverter(_Adapter): 
     181    implements( iformal.IStringConvertible) 
     182     
     183    def fromType(self, value): 
     184        if value is None: 
     185            return None 
     186        import cStringIO as StringIO 
     187        import csv 
     188 
     189        sf = StringIO.StringIO() 
     190        writer = csv.writer(sf) 
     191        writer.writerow(value) 
     192        sf.seek(0,0) 
     193        return sf.read().strip() 
     194         
     195     
     196    def toType(self, value): 
     197        if not value: 
     198            return None 
     199        import cStringIO as StringIO 
     200        import csv 
     201     
     202        sf = StringIO.StringIO() 
     203        csvReader = csv.reader(sf) 
     204        sf.write(value) 
     205        sf.seek(0,0) 
     206        return csvReader.next()     
  • trunk/formal/examples/main.py

    r231 r256  
    2424    'formal.examples.nofields.NoFieldsFormPage', 
    2525    'formal.examples.hidden.HiddenFieldsFormPage', 
     26    'formal.examples.textareawithselect.TextAreaWithSelectFormPage', 
    2627    ] 
    2728 
  • trunk/formal/examples/selections.py

    r225 r256  
    1717    ] 
    1818 
     19tuples = [ 
     20         (('a',1), 'a1'), 
     21         (('b',1), 'b1'), 
     22         (('c',1), 'c1'), 
     23         ] 
     24         
    1925def data_strings(ctx, data): 
    2026    # Let's defer it, just for fun. 
     
    4551        form.addField('multipleDates', formal.Sequence(formal.Date()), 
    4652                formal.widgetFactory(formal.CheckboxMultiChoice, options=dates)) 
     53 
     54        form.addField('multipleTuples', formal.Sequence(formal.Sequence()), 
     55                formal.widgetFactory(formal.CheckboxMultiChoice, 
     56                    options=tuples)) 
     57         
    4758        form.addField('differentNoneSelect', formal.String(), 
    4859                formal.widgetFactory(formal.SelectChoice, options=strings, 
  • trunk/formal/formal.css

    r231 r256  
    141141.nevow-form div.field {display:block;} 
    142142/* End hide from IE Mac */ 
     143 
     144 
     145.nevow-form .add { 
     146  display:block; 
     147}