Changeset 196

Show
Ignore:
Timestamp:
03/27/06 19:52:01 (3 years ago)
Author:
tv
Message:

Renaming forms to formal, step #2.
Everything works again.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/examples.tac

    r65 r196  
    11from twisted.application import internet, service 
    22from nevow import appserver 
    3 from forms.examples import main 
     3from formal.examples import main 
    44 
    55application = service.Application('examples') 
  • trunk/formal/__init__.py

    r194 r196  
    99 
    1010from nevow import static 
    11 from forms.types import * 
    12 from forms.validation import * 
    13 from forms.widget import * 
    14 from forms.widgets.restwidget import * 
    15 from forms.widgets.multiselect import * 
    16 from forms.form import Form, ResourceMixin, renderForm 
    17 from forms import iforms 
     11from formal.types import * 
     12from formal.validation import * 
     13from formal.widget import * 
     14from formal.widgets.restwidget import * 
     15from formal.widgets.multiselect import * 
     16from formal.form import Form, ResourceMixin, renderForm 
     17from formal import iformal 
    1818 
    1919def widgetFactory(widgetClass, *a, **k): 
     
    2929    formsJS = static.File(os.path.join(os.path.split(__file__)[0], 'js')) 
    3030else: 
    31     from forms.util import LazyResource 
    32     defaultCSS = LazyResource(lambda: static.File(pkg_resources.resource_filename('forms', 'forms.css'))) 
    33     formsJS = LazyResource(lambda: static.File(pkg_resources.resource_filename('forms', 'js'))) 
     31    from formal.util import LazyResource 
     32    defaultCSS = LazyResource(lambda: static.File(pkg_resources.resource_filename('formal', 'forms.css'))) 
     33    formsJS = LazyResource(lambda: static.File(pkg_resources.resource_filename('formal', 'js'))) 
    3434    del LazyResource 
    3535 
    3636# Register standard adapters 
    3737from twisted.python.components import registerAdapter 
    38 from forms import converters 
    39 from forms.util import SequenceKeyLabelAdapter 
    40 registerAdapter(TextInput, String, iforms.IWidget) 
    41 registerAdapter(TextInput, Integer, iforms.IWidget) 
    42 registerAdapter(TextInput, Float, iforms.IWidget) 
    43 registerAdapter(Checkbox, Boolean, iforms.IWidget) 
    44 registerAdapter(DatePartsInput, Date, iforms.IWidget) 
    45 registerAdapter(TextInput, Time, iforms.IWidget) 
    46 registerAdapter(FileUploadRaw, File, iforms.IWidget) 
    47 registerAdapter(SequenceKeyLabelAdapter, tuple, iforms.IKey) 
    48 registerAdapter(SequenceKeyLabelAdapter, tuple, iforms.ILabel) 
    49 registerAdapter(converters.NullConverter, String, iforms.IStringConvertible) 
    50 registerAdapter(converters.DateToDateTupleConverter, Date, iforms.IDateTupleConvertible) 
    51 registerAdapter(converters.BooleanToStringConverter, Boolean, iforms.IBooleanConvertible) 
    52 registerAdapter(converters.IntegerToStringConverter, Integer, iforms.IStringConvertible) 
    53 registerAdapter(converters.FloatToStringConverter, Float, iforms.IStringConvertible) 
    54 registerAdapter(converters.DateToStringConverter, Date, iforms.IStringConvertible) 
    55 registerAdapter(converters.TimeToStringConverter, Time, iforms.IStringConvertible) 
    56 registerAdapter(converters.NullConverter, File, iforms.IFileConvertible) 
    57 registerAdapter(converters.NullConverter, Sequence, iforms.ISequenceConvertible) 
     38from formal import converters 
     39from formal.util import SequenceKeyLabelAdapter 
     40registerAdapter(TextInput, String, iformal.IWidget) 
     41registerAdapter(TextInput, Integer, iformal.IWidget) 
     42registerAdapter(TextInput, Float, iformal.IWidget) 
     43registerAdapter(Checkbox, Boolean, iformal.IWidget) 
     44registerAdapter(DatePartsInput, Date, iformal.IWidget) 
     45registerAdapter(TextInput, Time, iformal.IWidget) 
     46registerAdapter(FileUploadRaw, File, iformal.IWidget) 
     47registerAdapter(SequenceKeyLabelAdapter, tuple, iformal.IKey) 
     48registerAdapter(SequenceKeyLabelAdapter, tuple, iformal.ILabel) 
     49registerAdapter(converters.NullConverter, String, iformal.IStringConvertible) 
     50registerAdapter(converters.DateToDateTupleConverter, Date, iformal.IDateTupleConvertible) 
     51registerAdapter(converters.BooleanToStringConverter, Boolean, iformal.IBooleanConvertible) 
     52registerAdapter(converters.IntegerToStringConverter, Integer, iformal.IStringConvertible) 
     53registerAdapter(converters.FloatToStringConverter, Float, iformal.IStringConvertible) 
     54registerAdapter(converters.DateToStringConverter, Date, iformal.IStringConvertible) 
     55registerAdapter(converters.TimeToStringConverter, Time, iformal.IStringConvertible) 
     56registerAdapter(converters.NullConverter, File, iformal.IFileConvertible) 
     57registerAdapter(converters.NullConverter, Sequence, iformal.ISequenceConvertible) 
    5858try: 
    5959    Decimal 
     
    6161    pass 
    6262else: 
    63     registerAdapter(TextInput, Decimal, iforms.IWidget) 
    64     registerAdapter(converters.DecimalToStringConverter, Decimal, iforms.IStringConvertible) 
     63    registerAdapter(TextInput, Decimal, iformal.IWidget) 
     64    registerAdapter(converters.DecimalToStringConverter, Decimal, iformal.IStringConvertible) 
    6565del SequenceKeyLabelAdapter 
    6666del registerAdapter 
  • trunk/formal/converters.py

    r194 r196  
    99except ImportError: 
    1010    haveDecimal = False 
    11 from forms import iforms, validation 
     11from formal import iformal, validation 
    1212from zope.interface import implements 
    1313 
     
    1919 
    2020class NullConverter(_Adapter): 
    21     implements( iforms.IStringConvertible ) 
     21    implements( iformal.IStringConvertible ) 
    2222     
    2323    def fromType(self, value): 
     
    3333 
    3434class NumberToStringConverter(_Adapter): 
    35     implements( iforms.IStringConvertible ) 
     35    implements( iformal.IStringConvertible ) 
    3636    cast = None 
    3737     
     
    7070 
    7171class BooleanToStringConverter(_Adapter): 
    72     implements( iforms.IStringConvertible ) 
     72    implements( iformal.IStringConvertible ) 
    7373     
    7474    def fromType(self, value): 
     
    9090     
    9191class DateToStringConverter(_Adapter): 
    92     implements( iforms.IStringConvertible ) 
     92    implements( iformal.IStringConvertible ) 
    9393     
    9494    def fromType(self, value): 
     
    117117 
    118118class TimeToStringConverter(_Adapter): 
    119     implements( iforms.IStringConvertible ) 
     119    implements( iformal.IStringConvertible ) 
    120120     
    121121    def fromType(self, value): 
     
    160160         
    161161class DateToDateTupleConverter(_Adapter): 
    162     implements( iforms.IDateTupleConvertible ) 
     162    implements( iformal.IDateTupleConvertible ) 
    163163     
    164164    def fromType(self, value): 
  • trunk/formal/examples/actionbuttons.py

    r134 r196  
    11from nevow import url 
    2 import forms 
    3 from forms.examples import main 
     2import formal 
     3from formal.examples import main 
    44 
    55class ActionButtonsPage(main.FormExamplePage): 
     
    99     
    1010    def form_example(self, ctx): 
    11         form = forms.Form() 
    12         form.addField('aString', forms.String(required=True)) 
     11        form = formal.Form() 
     12        form.addField('aString', formal.String(required=True)) 
    1313        form.addAction(self.submitted, label="Click, click, clickety-click!") 
    1414        form.addAction(self.redirect, 'back', validate=False) 
  • trunk/formal/examples/datestimes.py

    r135 r196  
    1 import forms 
    2 from forms.examples import main 
     1import formal 
     2from formal.examples import main 
    33 
    44class DatesTimesFormPage(main.FormExamplePage): 
     
    88     
    99    def form_example(self, ctx): 
    10         form = forms.Form() 
    11         form.addField('isoFormatDate', forms.Date(), forms.TextInput) 
    12         form.addField('monthFirstDate', forms.Date(), forms.DatePartsInput) 
    13         form.addField('dayFirstDate', forms.Date(), forms.widgetFactory(forms.DatePartsInput, dayFirst=True)) 
    14         form.addField('monthYearDate', forms.Date(), forms.MMYYDatePartsInput) 
    15         form.addField('twoCharYearDate', forms.Date(), forms.widgetFactory(forms.DatePartsInput, twoCharCutoffYear=70)) 
    16         form.addField('time', forms.Time()) 
     10        form = formal.Form() 
     11        form.addField('isoFormatDate', formal.Date(), formal.TextInput) 
     12        form.addField('monthFirstDate', formal.Date(), formal.DatePartsInput) 
     13        form.addField('dayFirstDate', formal.Date(), formal.widgetFactory(formal.DatePartsInput, dayFirst=True)) 
     14        form.addField('monthYearDate', formal.Date(), formal.MMYYDatePartsInput) 
     15        form.addField('twoCharYearDate', formal.Date(), formal.widgetFactory(formal.DatePartsInput, twoCharCutoffYear=70)) 
     16        form.addField('time', formal.Time()) 
    1717        form.addAction(self.submitted) 
    1818        return form 
  • trunk/formal/examples/fileupload.py

    r134 r196  
    1 import forms 
    2 from forms.examples import main 
     1import formal 
     2from formal.examples import main 
    33 
    44class FileUploadFormPage(main.FormExamplePage): 
     
    88     
    99    def form_example(self, ctx): 
    10         form = forms.Form() 
    11         form.addField('file', forms.File()) 
     10        form = formal.Form() 
     11        form.addField('file', formal.File()) 
    1212        form.addAction(self.submitted) 
    1313        return form 
  • trunk/formal/examples/main.py

    r185 r196  
    33from twisted.python import reflect 
    44from nevow import appserver, inevow, loaders, rend, static, tags as T, url 
    5 import forms 
     5import formal 
    66 
    77DOCTYPE = T.xml('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">') 
     
    99 
    1010examples = [ 
    11     'forms.examples.simple.SimpleFormPage', 
    12     'forms.examples.types.TypesFormPage', 
    13     'forms.examples.required.RequiredFormPage', 
    14     'forms.examples.missing.MissingFormPage', 
    15     'forms.examples.prepopulate.PrepopulateFormPage', 
    16     'forms.examples.fileupload.FileUploadFormPage', 
    17     'forms.examples.smartupload.SmartUploadFormPage', 
    18     'forms.examples.selections.SelectionFormPage', 
    19     'forms.examples.datestimes.DatesTimesFormPage', 
    20     'forms.examples.actionbuttons.ActionButtonsPage', 
    21     'forms.examples.validator.ValidatorFormPage', 
    22     'forms.examples.restwidget.ReSTWidgetFormPage', 
    23     'forms.examples.nofields.NoFieldsFormPage', 
     11    'formal.examples.simple.SimpleFormPage', 
     12    'formal.examples.types.TypesFormPage', 
     13    'formal.examples.required.RequiredFormPage', 
     14    'formal.examples.missing.MissingFormPage', 
     15    'formal.examples.prepopulate.PrepopulateFormPage', 
     16    'formal.examples.fileupload.FileUploadFormPage', 
     17    'formal.examples.smartupload.SmartUploadFormPage', 
     18    'formal.examples.selections.SelectionFormPage', 
     19    'formal.examples.datestimes.DatesTimesFormPage', 
     20    'formal.examples.actionbuttons.ActionButtonsPage', 
     21    'formal.examples.validator.ValidatorFormPage', 
     22    'formal.examples.restwidget.ReSTWidgetFormPage', 
     23    'formal.examples.nofields.NoFieldsFormPage', 
    2424    ] 
    2525 
     
    6565 
    6666 
    67 class FormExamplePage(forms.ResourceMixin, rend.Page): 
     67class FormExamplePage(formal.ResourceMixin, rend.Page): 
    6868    """ 
    6969    A base page for the actual examples. The page renders something sensible, 
     
    7373    Each example page is expected to provide the title and description 
    7474    attributes as well as a form_example method that builds and returns a 
    75     forms.Form instance. 
     75    formal.Form instance. 
    7676    """ 
    7777    docFactory = loaders.stan( 
     
    103103 
    104104# Add child_ attributes 
    105 examples_css = pkg_resources.resource_filename('forms.examples', 'examples.css') 
     105examples_css = pkg_resources.resource_filename('formal.examples', 'examples.css') 
    106106setattr(RootPage, 'child_examples.css', static.File(examples_css)) 
    107 setattr(RootPage, 'child_forms.css', forms.defaultCSS) 
    108 setattr(RootPage, 'child_js', forms.formsJS) 
     107setattr(RootPage, 'child_forms.css', formal.defaultCSS) 
     108setattr(RootPage, 'child_js', formal.formsJS) 
  • trunk/formal/examples/missing.py

    r134 r196  
    11from datetime import date 
    2 import forms 
    3 from forms.examples import main 
     2import formal 
     3from formal.examples import main 
    44 
    55class MissingFormPage(main.FormExamplePage): 
     
    99     
    1010    def form_example(self, ctx): 
    11         form = forms.Form() 
    12         form.addField('aString', forms.String(missing='<nothing>')) 
    13         form.addField('aDate', forms.Date(missing=date(2005, 8, 1))) 
     11        form = formal.Form() 
     12        form.addField('aString', formal.String(missing='<nothing>')) 
     13        form.addField('aDate', formal.Date(missing=date(2005, 8, 1))) 
    1414        form.addAction(self.submitted) 
    1515        return form 
  • trunk/formal/examples/nofields.py

    r185 r196  
    1 import forms 
    2 from forms.examples import main 
     1import formal 
     2from formal.examples import main 
    33 
    44class NoFieldsFormPage(main.FormExamplePage): 
     
    99     
    1010    def form_example(self, ctx): 
    11         form = forms.Form() 
     11        form = formal.Form() 
    1212        form.addAction(self.submitted) 
    1313        return form 
  • trunk/formal/examples/prepopulate.py

    r134 r196  
    11from datetime import datetime 
    2 import forms 
    3 from forms.examples import main 
     2import formal 
     3from formal.examples import main 
    44 
    55class PrepopulateFormPage(main.FormExamplePage): 
     
    99     
    1010    def form_example(self, ctx): 
    11         form = forms.Form() 
    12         form.addField('aString', forms.String()) 
    13         form.addField('aTime', forms.Time()) 
     11        form = formal.Form() 
     12        form.addField('aString', formal.String()) 
     13        form.addField('aTime', formal.Time()) 
    1414        form.addAction(self.submitted) 
    1515        form.data = { 
  • trunk/formal/examples/required.py

    r134 r196  
    1 import forms 
    2 from forms.examples import main 
     1import formal 
     2from formal.examples import main 
    33 
    44class RequiredFormPage(main.FormExamplePage): 
     
    88 
    99    def form_example(self, ctx): 
    10         form = forms.Form() 
    11         form.addField('name', forms.String(required=True)) 
    12         form.addField('age', forms.Integer()) 
     10        form = formal.Form() 
     11        form.addField('name', formal.String(required=True)) 
     12        form.addField('age', formal.Integer()) 
    1313        form.addAction(self.submitted) 
    1414        return form 
  • trunk/formal/examples/restwidget.py

    r175 r196  
    1 import forms 
    2 from forms.examples import main 
     1import formal 
     2from formal.examples import main 
    33 
    44# Let the examples run if docutils is not installed 
     
    4545     
    4646    def form_example(self, ctx): 
    47         form = forms.Form() 
    48         form.addField('restString', forms.String(required=True), 
    49                 widgetFactory=forms.ReSTTextArea) 
     47        form = formal.Form() 
     48        form.addField('restString', formal.String(required=True), 
     49                widgetFactory=formal.ReSTTextArea) 
    5050        if docutilsAvailable: 
    5151            w = Writer() 
    5252            w.translator_class = CustomisedHTMLTranslator 
    53             form.addField('customRestString', forms.String(required=True), 
    54                     forms.widgetFactory(forms.ReSTTextArea, restWriter=w)) 
     53            form.addField('customRestString', formal.String(required=True), 
     54                    formal.widgetFactory(formal.ReSTTextArea, restWriter=w)) 
    5555        form.addAction(self.submitted) 
    5656        return form 
  • trunk/formal/examples/selections.py

    r191 r196  
    11from twisted.internet import defer 
    22from datetime import date 
    3 import forms 
    4 from forms.examples import main 
     3import formal 
     4from formal.examples import main 
    55 
    66# A boring list of (value, label) pairs. 
     
    3030     
    3131    def form_example(self, ctx): 
    32         form = forms.Form() 
    33         form.addField('required', forms.String(required=True)) 
    34         form.addField('oneString', forms.String(), 
    35                 forms.widgetFactory(forms.SelectChoice, options=strings)) 
    36         form.addField('anotherString', forms.String(), 
    37                 forms.widgetFactory(forms.SelectChoice, options=data_strings)) 
    38         form.addField('oneMoreString', forms.String(required=True), 
    39                 forms.widgetFactory(forms.RadioChoice, options=data_strings)) 
    40         form.addField('oneDate', forms.Date(), 
    41                 forms.widgetFactory(forms.SelectChoice, options=dates)) 
    42         form.addField('multipleStrings', forms.Sequence(forms.String()), 
    43                 forms.widgetFactory(forms.CheckboxMultiChoice, 
     32        form = formal.Form() 
     33        form.addField('required', formal.String(required=True)) 
     34        form.addField('oneString', formal.String(), 
     35                formal.widgetFactory(formal.SelectChoice, options=strings)) 
     36        form.addField('anotherString', formal.String(), 
     37                formal.widgetFactory(formal.SelectChoice, options=data_strings)) 
     38        form.addField('oneMoreString', formal.String(required=True), 
     39                formal.widgetFactory(formal.RadioChoice, options=data_strings)) 
     40        form.addField('oneDate', formal.Date(), 
     41                formal.widgetFactory(formal.SelectChoice, options=dates)) 
     42        form.addField('multipleStrings', formal.Sequence(formal.String()), 
     43                formal.widgetFactory(formal.CheckboxMultiChoice, 
    4444                    options=data_strings)) 
    45         form.addField('multipleDates', forms.Sequence(forms.Date()), 
    46                 forms.widgetFactory(forms.CheckboxMultiChoice, options=dates)) 
    47         form.addField('differentNoneSelect', forms.String(), 
    48                 forms.widgetFactory(forms.SelectChoice, options=strings, 
     45        form.addField('multipleDates', formal.Sequence(formal.Date()), 
     46                formal.widgetFactory(formal.CheckboxMultiChoice, options=dates)) 
     47        form.addField('differentNoneSelect', formal.String(), 
     48                formal.widgetFactory(formal.SelectChoice, options=strings, 
    4949                    noneOption=differentNone)) 
    50         form.addField('differentNoneRadios', forms.String(), 
    51                 forms.widgetFactory(forms.RadioChoice, options=data_strings, 
     50        form.addField('differentNoneRadios', formal.String(), 
     51                formal.widgetFactory(formal.RadioChoice, options=data_strings, 
    5252                    noneOption=differentNone)) 
    53         form.addField('selectOther', forms.String(), 
    54                 forms.widgetFactory(forms.SelectOtherChoice, options=['Mr', 
     53        form.addField('selectOther', formal.String(), 
     54                formal.widgetFactory(formal.SelectOtherChoice, options=['Mr', 
    5555                    'Mrs'])) 
    56         form.addField('selectOtherRequired', forms.String(required=True), 
    57                 forms.widgetFactory(forms.SelectOtherChoice, options=['Mr', 
     56        form.addField('selectOtherRequired', formal.String(required=True), 
     57                formal.widgetFactory(formal.SelectOtherChoice, options=['Mr', 
    5858                    'Mrs'])) 
    59         form.addField('multiselect', forms.String(), 
    60                 forms.widgetFactory(forms.MultiselectChoice, options=strings)) 
     59        form.addField('multiselect', formal.String(), 
     60                formal.widgetFactory(formal.MultiselectChoice, options=strings)) 
    6161        form.addAction(self.submitted) 
    6262        return form 
  • trunk/formal/examples/simple.py

    r134 r196  
    1 import forms 
    2 from forms.examples import main 
     1import formal 
     2from formal.examples import main 
    33 
    44class SimpleFormPage(main.FormExamplePage): 
     
    88     
    99    def form_example(self, ctx): 
    10         form = forms.Form() 
    11         form.addField('aString', forms.String()) 
     10        form = formal.Form() 
     11        form.addField('aString', formal.String()) 
    1212        form.addAction(self.submitted) 
    1313        return form 
  • trunk/formal/examples/smartupload.py

    r134 r196  
    1 import forms 
    2 from forms.examples import main 
     1import formal 
     2from formal.examples import main 
    33 
    44class SmartUploadFormPage(main.FormExamplePage): 
     
    88     
    99    def form_example(self, ctx): 
    10         form = forms.Form() 
    11         form.addField('required', forms.String(required=True)) 
    12         form.addField('file', forms.File(), forms.FileUploadWidget) 
     10        form = formal.Form() 
     11        form.addField('required', formal.String(required=True)) 
     12        form.addField('file', formal.File(), formal.FileUploadWidget) 
    1313        form.addAction(self.submitted) 
    1414        return form 
  • trunk/formal/examples/types.py

    r193 r196  
    44except ImportError: 
    55    haveDecimal = False 
    6 import forms 
    7 from forms.examples import main 
     6import formal 
     7from formal.examples import main 
    88 
    99class TypesFormPage(main.FormExamplePage): 
     
    1313 
    1414    def form_example(self, ctx): 
    15         form = forms.Form() 
    16         form.addField('aString', forms.String()) 
    17         form.addField('aInteger', forms.Integer()) 
    18         form.addField('aFloat', forms.Float()) 
     15        form = formal.Form() 
     16        form.addField('aString', formal.String()) 
     17        form.addField('aInteger', formal.Integer()) 
     18        form.addField('aFloat', formal.Float()) 
    1919        if haveDecimal: 
    20             form.addField('aDecimal', forms.Decimal()) 
    21         form.addField('aBoolean', forms.Boolean()) 
    22         form.addField('aDate', forms.Date()) 
    23         form.addField('aTime', forms.Time()) 
     20            form.addField('aDecimal', formal.Decimal()) 
     21        form.addField('aBoolean', formal.Boolean()) 
     22        form.addField('aDate', formal.Date()) 
     23        form.addField('aTime', formal.Time()) 
    2424        form.addAction(self.submitted) 
    2525        return form 
  • trunk/formal/examples/validator.py

    r138 r196  
    11from zope.interface import implements 
    2 import forms 
    3 from forms import iforms 
    4 from forms.examples import main 
     2import formal 
     3from formal import iformal 
     4from formal.examples import main 
    55 
    66# A not-too-good regex for matching an IP address. 
     
    1313     
    1414    def form_example(self, ctx): 
    15         form = forms.Form() 
     15        form = formal.Form() 
    1616        # This actually installs a RequiredValidator for you. 
    17         form.addField('required', forms.String(required=True)) 
     17        form.addField('required', formal.String(required=True)) 
    1818        # Exactly the same as above, only with a "manually" installed validator. 
    19         form.addField('required2', forms.String(validators=[forms.RequiredValidator()])) 
     19        form.addField('required2', formal.String(validators=[formal.RequiredValidator()])) 
    2020        # Check for a minimum length, if anything entered. 
    21         form.addField('atLeastFiveChars', forms.String(validators=[forms.LengthValidator(min=5)])) 
     21        form.addField('atLeastFiveChars', formal.String(validators=[formal.LengthValidator(min=5)])) 
    2222        # Check for a minimum length, if anything entered. 
    23         form.addField('ipAddress', forms.String(strip=True, validators=[forms.PatternValidator(regex=IP_ADDRESS_PATTERN)])) 
     23        form.addField('ipAddress', formal.String(strip=True, validators=[formal.PatternValidator(regex=IP_ADDRESS_PATTERN)])) 
    2424        # Check for the word 'silly' 
    25         form.addField('silly', forms.String(validators=[SillyValidator()])) 
     25        form.addField('silly', formal.String(validators=[SillyValidator()])) 
    2626        # Check age is between 18 and 30 
    27         form.addField('ohToBeYoungAgain', forms.Integer(validators=[forms.RangeValidator(min=18, max=30)])) 
     27        form.addField('ohToBeYoungAgain', formal.Integer(validators=[formal.RangeValidator(min=18, max=30)])) 
    2828        form.addAction(self.submitted) 
    2929        return form 
     
    3636    A pointless example that checks a specific word, 'silly', is entered. 
    3737    """ 
    38     implements(iforms.IValidator) 
     38    implements(iformal.IValidator) 
    3939     
    4040    word = u'silly' 
     
    4444            return 
    4545        if value.lower() != self.word.lower(): 
    46             raise forms.FieldValidationError(u'You must enter \'%s\''%self.word) 
     46            raise formal.FieldValidationError(u'You must enter \'%s\''%self.word) 
  • trunk/formal/experimental.py

    r115 r196  
    11from nevow import appserver, rend 
    2 from forms.form import FormsResourceBehaviour 
     2from formal.form import FormsResourceBehaviour 
    33 
    44 
  • trunk/formal/form.py

    r194 r196  
    88from nevow import appserver, context, loaders, inevow, tags as T, url 
    99from nevow.util import getPOSTCharset 
    10 from forms import iforms, util, validation 
     10from formal import iformal, util, validation 
    1111from resourcemanager import ResourceManager 
    1212from zope.interface import implements 
     
    2424        def _processForm( form, ctx, name ): 
    2525            # Remember the form 
    26             ctx.remember(form, iforms.IForm) 
     26            ctx.remember(form, iformal.IForm) 
    2727 
    2828            # Create a keyed tag that will render the form when flattened. 
     
    3535 
    3636            # Find errors for *this* form and remember things on the context 
    37             errors = iforms.IFormErrors(ctx, None) 
     37            errors = iformal.IFormErrors(ctx, None) 
    3838            if errors is not None and errors.formName == name: 
    39                 ctx.remember(errors.data, iforms.IFormData) 
     39                ctx.remember(errors.data, iformal.IFormData) 
    4040            else: 
    41                 ctx.remember(None, iforms.IFormErrors) 
    42                 ctx.remember(form.data or {}, iforms.IFormData) 
     41                ctx.remember(None, iformal.IFormErrors) 
     42                ctx.remember(form.data or {}, iformal.IFormData) 
    4343 
    4444            return ctx 
     
    6767class Form(object): 
    6868 
    69     implements( iforms.IForm ) 
     69    implements( iformal.IForm ) 
    7070 
    7171    callback = None 
     
    123123                return widgetFactory(type) 
    124124 
    125         return iforms.IWidget(type) 
     125        return iformal.IWidget(type) 
    126126 
    127127    def process(self, ctx): 
     
    161161        errors = FormErrors(self.name) 
    162162        errors.data = args 
    163         ctx.remember(errors, iforms.IFormErrors) 
     163        ctx.remember(errors, iformal.IFormErrors) 
    164164 
    165165        # Iterate the items and collect the form data and/or errors. 
     
    193193        e = failure.value 
    194194        failure.trap(validation.FormError, validation.FieldError) 
    195         errors = iforms.IFormErrors(ctx) 
     195        errors = iformal.IFormErrors(ctx) 
    196196        errors.add(failure.value) 
    197197        return errors 
     
    199199 
    200200class FormErrors(object): 
    201     implements( iforms.IFormErrors ) 
     201    implements( iformal.IFormErrors ) 
    202202 
    203203    def __init__(self, formName): 
     
    238238 
    239239    def _fileFromWidget(self, form, ctx, segments): 
    240         ctx.remember(form, iforms.IForm) 
     240        ctx.remember(form, iformal.IForm) 
    241241        widget = form.widgetForItem(segments[0]) 
    242242        return widget.getResource(ctx, segments[0], segments[1:]) 
     
    278278 
    279279    def remember(self, ctx): 
    280         ctx.remember(self.parent, iforms.IFormFactory) 
     280        ctx.remember(self.parent, iformal.IFormFactory) 
    281281 
    282282    def render_form(self, name): 
     
    287287 
    288288    def _processForm(self, form, ctx): 
    289         ctx.remember(form, iforms.IForm) 
     289        ctx.remember(form, iformal.IForm) 
    290290        d = defer.maybeDeferred(form.process, ctx) 
    291291        d.addCallback(self._formProcessed, ctx) 
     
    303303 
    304304class ResourceMixin(object): 
    305     implements( iforms.IFormFactory ) 
     305    implements( iformal.IFormFactory ) 
    306306     
    307307    __formsBehaviour = None 
     
    317317                return result 
    318318            return super(ResourceMixin, self).locateChild(ctx, segments) 
    319         self.remember(self, iforms.IFormFactory) 
     319        self.remember(self, iformal.IFormFactory) 
    320320        d = defer.maybeDeferred(self.__behaviour().locateChild, ctx, segments) 
    321321        d.addCallback(gotResult) 
     
    327327                return result 
    328328            return super(ResourceMixin, self).renderHTTP(ctx) 
    329         self.remember(self, iforms.IFormFactory) 
     329        self.remember(self, iformal.IFormFactory) 
    330330        d = defer.maybeDeferred(self.__behaviour().renderHTTP, ctx) 
    331331        d.addCallback(gotResult) 
     
    377377        return form 
    378378    # Not known yet, ask a form factory to create the form 
    379     factory = ctx.locate(iforms.IFormFactory) 
     379    factory = ctx.locate(iformal.IFormFactory) 
    380380 
    381381    def cacheForm( form, name ): 
     
    445445 
    446446    def _renderErrors(self, ctx, data): 
    447         errors = iforms.IFormErrors(ctx, None) 
     447        errors = iformal.IFormErrors(ctx, None) 
    448448        if errors is not None: 
    449449            errors = errors.getFormErrors() 
     
    487487            name, type, label, description, cssClass = data 
    488488            form = self.original 
    489             formErrors = iforms.IFormErrors(ctx, None) 
    490             formData = iforms.IFormData(ctx) 
     489            formErrors = iformal.IFormErrors(ctx, None) 
     490            formData = iformal.IFormData(ctx) 
    491491 
    492492            widget = form.widgetForItem(name) 
     
    538538            name, type, label, description, cssClass = data 
    539539            form = self.original 
    540             formErrors = iforms.IFormErrors(ctx, None) 
    541             formData = iforms.IFormData(ctx) 
     540            formErrors = iformal.IFormErrors(ctx, None) 
     541            formData = iformal.IFormData(ctx) 
    542542 
    543543            widget = form.widgetForItem(name) 
  • trunk/formal/htmleditor.py

    r40 r196  
    11from nevow import tags as T, util 
    2 from forms import iforms 
     2from formal import iformal 
    33from zope.interface import implements 
    44 
     
    2020 
    2121class TinyMCE(object): 
    22     implements( iforms.IWidget ) 
     22    implements( iformal.IWidget ) 
    2323     
    2424    def __init__(self, original): 
     
    2929            value = args.get(key, [''])[0] 
    3030        else: 
    31             value = iforms.IStringConvertible(self.original).fromType(args.get(key)) 
     31            value = iformal.IStringConvertible(self.original).fromType(args.get(key)) 
    3232        return T.textarea(name=key, id=key, mce_editable='true')[value or ''] 
    3333 
    3434    def renderImmutable(self, ctx, key, args, errors): 
    35         value = iforms.IStringConvertible(self.original).fromType(args.get(key)) 
     35        value = iformal.IStringConvertible(self.original).fromType(args.get(key)) 
    3636        if value: 
    3737            value=T.xml(value) 
     
    4444    def processInput(self, ctx, key, args): 
    4545        value = args.get(key, [''])[0].decode(util.getPOSTCharset(ctx)) 
    46         value = iforms.IStringConvertible(self.original).toType(value) 
     46        value = iformal.IStringConvertible(self.original).toType(value) 
    4747        return self.original.validate(value) 
    4848 
  • trunk/formal/test/test_converters.py

    r193 r196  
    66    haveDecimal = False 
    77from twisted.trial import unittest 
    8 from forms import converters, validation 
     8from formal import converters, validation 
    99 
    1010 
  • trunk/formal/test/test_form.py

    r178 r196  
    11from twisted.trial import unittest 
    2 import forms 
     2import formal 
    33 
    44 
     
    66 
    77    def test_fieldName(self): 
    8         form = forms.Form() 
    9         form.addField('foo', forms.String()) 
    10         self.assertRaises(ValueError, form.addField, 'spaceAtTheEnd ', forms.String()) 
    11         self.assertRaises(ValueError, form.addField, 'got a space in it', forms.String()) 
     8        form = formal.Form() 
     9        form.addField('foo', formal.String()) 
     10        self.assertRaises(ValueError, form.addField, 'spaceAtTheEnd ', formal.String()) 
     11        self.assertRaises(ValueError, form.addField, 'got a space in it', formal.String()) 
  • trunk/formal/test/test_formerrors.py

    r92 r196  
    11from twisted.trial import unittest 
    2 from forms import form, validation 
     2from formal import form, validation 
    33 
    44class TestFormErrors(unittest.TestCase): 
  • trunk/formal/test/test_types.py

    r193 r196  
    66    haveDecimal = False 
    77from twisted.trial import unittest 
    8 import forms 
    9 from forms import validation 
     8import formal 
     9from formal import validation 
    1010 
    1111 
     
    1313 
    1414    def testHasValidator(self): 
    15