[silva.infrae.contact][Emiliano D'Alterio] Fixed problem with ca...
[email protected] Thu, 17 Oct 2013 13:53:48 +0200
| Newsgroups | gmane.comp.web.zope.silva.cvs |
|---|---|
| Message-ID | <[email protected]> |
author: Emiliano D'Alterio
date: Thu Oct 17 13:53:44 2013 +0200
revision: 9:f7770115b8b6 in silva.infrae.contact
branch:
details: https://hg.infrae.com/silva.infrae.contact?cmd=changeset;node=f7770115b8b6
modified: setup.py src/silva/infrae/contact/contactform.py
added:
removed:
log: Fixed problem with caching, now no-cache header value is forced.
Subject is now a required field.
diffstat:
setup.py | 1 +
src/silva/infrae/contact/contactform.py | 21 ++++++++++++++++-----
2 files changed, 17 insertions(+), 5 deletions(-)
diffs (78 lines):
diff -r 1fa61bea7977 -r f7770115b8b6 setup.py
--- a/setup.py Wed Oct 16 16:29:48 2013 +0200
+++ b/setup.py Thu Oct 17 13:53:44 2013 +0200
@@ -40,5 +40,6 @@
'silva.fanstatic',
'megrok.pagetemplate',
'js.jquery',
+ 'silva.core.views',
],
)
diff -r 1fa61bea7977 -r f7770115b8b6 src/silva/infrae/contact/contactform.py
--- a/src/silva/infrae/contact/contactform.py Wed Oct 16 16:29:48 2013 +0200
+++ b/src/silva/infrae/contact/contactform.py Thu Oct 17 13:53:44 2013 +0200
@@ -7,10 +7,12 @@
from five import grok
from zope import interface, schema
+from silva.core.views.httpheaders import ResponseHeaders
from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
from zope.traversing.browser import absoluteURL
from silva.core.cache import store
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+from zope.publisher.interfaces.browser import IBrowserRequest
from z3c.schema.email import RFC822MailAddress
from zeam.form import silva as silvaforms
from zeam.form.viewlet.interfaces import IInlineForm
@@ -68,7 +70,7 @@
subject = schema.Choice(
title=u'Message subject',
source=subjects,
- required=False)
+ required=True)
message = schema.Text(
title=u'Message',
required=True)
@@ -91,10 +93,13 @@
"""
-class ContactFormTemplate(pt.PageTemplate):
- """Template for the public contact form.
+class ContactFormHeaders(ResponseHeaders):
+ """ Prevent caching to let session checking work.
"""
- pt.view(IPublicContactForm)
+ grok.adapts(IBrowserRequest, IPublicContactForm)
+
+ def cachable(self):
+ return False
class ContactForm(silvaforms.PublicContentProviderForm):
@@ -102,7 +107,6 @@
"""
grok.name('contactform')
grok.context(IViewableObject)
- grok.implements(IPublicContactForm)
label = _(u'Contact us')
@@ -132,6 +136,7 @@
def update(self):
need(IContactFormResources)
+ interface.alsoProvides(self.view, IPublicContactForm)
if self.sstore is None:
self.sstore = store.SessionStore(self.request)
@@ -175,3 +180,9 @@
self.status = _(u'Thank you for your message.')
self.sent = True
return silvaforms.SUCCESS
+
+
+class ContactFormTemplate(pt.PageTemplate):
+ """Template for the public contact form.
+ """
+ pt.view(ContactForm)