diff --git a/deformdemo/__init__.py b/deformdemo/__init__.py index f03b3912..93d61364 100644 --- a/deformdemo/__init__.py +++ b/deformdemo/__init__.py @@ -73,9 +73,20 @@ def __init__(self, request): self.request = request self.macros = get_renderer('templates/main.pt').implementation().macros + if 'form_class' in self.request.GET: + session = self.request.session + form_class = self.request.GET['form_class'] + if form_class not in ('form-horizontal', 'form-inline'): + form_class = None + session['form_class'] = form_class + def render_form(self, form, appstruct=colander.null, submitted='submit', success=None, readonly=False, is_i18n=False): + form_class = self.request.session.get('form_class') + if form_class: + form.widget = deform.widget.FormWidget(css_class=form_class) + captured = None if submitted in self.request.POST: @@ -118,6 +129,7 @@ def render_form(self, form, appstruct=colander.null, submitted='submit', 'end':end, 'is_i18n':is_i18n, 'locale': locale_name, + 'form_class': form.widget.css_class, 'demos':self.get_demos(), 'title':self.get_title(), 'css_links':reqts['css'], @@ -2274,6 +2286,7 @@ def main(global_config, **settings): renderer = settings['deformdemo.renderer'] session_factory = UnencryptedCookieSessionFactoryConfig('seekrit!') config = Configurator(settings=settings, session_factory=session_factory) + config.include('pyramid_chameleon') renderer = config.maybe_dotted(renderer) deform.Form.set_default_renderer(renderer) config.add_static_view('static_deform', 'deform:static') diff --git a/deformdemo/templates/main.pt b/deformdemo/templates/main.pt index 22d03d00..8e2725fb 100644 --- a/deformdemo/templates/main.pt +++ b/deformdemo/templates/main.pt @@ -45,14 +45,35 @@ -