diff --git a/ddportfolioservice/controllers/ddportfolio.py b/ddportfolioservice/controllers/ddportfolio.py index 10dc215..8434b5f 100644 --- a/ddportfolioservice/controllers/ddportfolio.py +++ b/ddportfolioservice/controllers/ddportfolio.py @@ -1,6 +1,7 @@ import logging from ddportfolioservice.lib.base import * +from ddportfolioservice.model.form import * log = logging.getLogger(__name__) @@ -11,3 +12,12 @@ class DdportfolioController(BaseController): # return render('/some/template.mako') # or, Return a response return render('/showform.mako') + + def handle_post(self): + schema = DeveloperData() + try: + form_result = schema.to_python(request.params) + except formencode.validators.Invalid, error: + c.messages = { 'errors' : error.unpack_errors() } + return render('/showform.mako') + return ["done"] diff --git a/ddportfolioservice/model/form.py b/ddportfolioservice/model/form.py new file mode 100644 index 0000000..a4cba23 --- /dev/null +++ b/ddportfolioservice/model/form.py @@ -0,0 +1,8 @@ +import formencode + +class DeveloperData(formencode.Schema): + allow_extra_fields = True + filter_extra_fields = True + name = formencode.validators.String(not_empty=True) + email = formencode.validators.Email(not_empty=True) + username = formencode.validators.PlainText(not_empty=True) diff --git a/ddportfolioservice/public/stylesheets/style.css b/ddportfolioservice/public/stylesheets/style.css new file mode 100644 index 0000000..db49c40 --- /dev/null +++ b/ddportfolioservice/public/stylesheets/style.css @@ -0,0 +1,4 @@ +.errormsg { + font-size: 80%; + color: red; +} \ No newline at end of file diff --git a/ddportfolioservice/templates/showform.mako b/ddportfolioservice/templates/showform.mako index e2fbc99..55c83a4 100644 --- a/ddportfolioservice/templates/showform.mako +++ b/ddportfolioservice/templates/showform.mako @@ -3,16 +3,29 @@ ${_('Debian Developer Portfolio')} + ${h.stylesheet_link_tag('style')} ${h.start_form(h.url_for(action='handle_post'), method='post')}
${_('Debian Developer Portfolio')} -
+
${h.text_field('name', value=request.params.get('name', None))}
-
+
${h.text_field('email', value=request.params.get('email', None))}
-
+
${h.text_field('username', value=request.params.get('username', None))}
${h.submit(value=_('Build DD Portfolio URLs'))}