Package spammcan :: Package forms :: Module base
[hide private]

Source Code for Module spammcan.forms.base

 1  """Form widgets and validators are defined here.""" 
 2   
 3  __all__ = [ 
 4      'paste_form', 
 5      'style_select' 
 6  ] 
 7   
 8  import tgmochikit 
 9  from turbogears import config, validators 
10  from turbogears.widgets import register_static_directory 
11  from tw.api import JSLink, WidgetsList 
12  from tw.forms import ListForm, TableForm, TextArea, TextField, SingleSelectField 
13   
14  from validators import SpamBayesFilter, ValidFormat, ValidStyle 
15   
16   
17  tgmochikit.init(register_static_directory, 
18      version=config.get('tg_mochikit.version', '1.4'), 
19      packed=config.get('tg_mochikit.packed', True), 
20      xhtml=config.get('tg_mochikit.xhtml', False), 
21      draganddrop=config.get('tg_mochikit.draganddrop', False)) 
22  mochikit_js = [JSLink(link='/tg_widgets/tgmochikit/%s' % p) 
23      for p in tgmochikit.get_paths()] 
24  styleselect_js = JSLink(modname='spammcan', 
25      filename="static/javascript/styleselect.js") 
26   
27 -class PasteFormSchema(validators.Schema):
28 title = validators.UnicodeString(max=100, strip=True) 29 code = validators.UnicodeString(max=10000, strip=True, not_empty=True) 30 format = ValidFormat(if_invalid=None) 31 chained_validators = [SpamBayesFilter('code')]
32
33 -class PasteFormFields(WidgetsList):
34 code = TextArea(suppress_label=True, attrs=dict(cols=75, rows=15)) 35 title = TextField(label_text=_(u'Title:'), 36 attrs=dict(maxlength=100, size=50), help_text=_(u'(Optional)')) 37 format = SingleSelectField(label_text=_(u'Format:'), 38 options=[('text', _(u'No highliting'))])
39
40 -class StyleSelectForm(ListForm):
41 - class fields(WidgetsList):
42 st = SingleSelectField(label_text=_(u'Color scheme:'), 43 options=[('default', _(u'Default'))])
44 submit_text = _(u'Go') 45 javascript = mochikit_js + [styleselect_js]
46 47 style_select = StyleSelectForm('styleselect') 48 49 paste_form = TableForm( 50 fields = PasteFormFields(), 51 validator = PasteFormSchema() 52 ) 53