Mercurial > libervia-website
view pages/association/membership/page_meta.py @ 3:b7e8db97b3b0
presentation: added installation section, with links to Flatpak and Android packages
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 28 Jun 2019 17:12:40 +0200 |
parents | 09d66acc7c73 |
children | 9ce41ef66dfa |
line wrap: on
line source
#!/usr/bin/env python2.7 # -*- coding: utf-8 -*- from collections import namedtuple from twisted.internet import defer from libervia.server.constants import Const as C from sat.core.i18n import D_ from sat.tools import config from sat.tools.common import email from sat.core import exceptions from sat.core.log import getLogger log = getLogger(__name__) name = u"association_membership" template = u"association/membership.html" FIELDS = ( 'name', 'firstname', 'address', 'email', 'jid', 'subscription', 'reference', 'comment', 'mailing_list', 'documents_read', ) REQUIRED = ('name', 'firstname', 'address', 'email', 'subscription') FormData = namedtuple("FormData", FIELDS) SUBJECT_ADMIN = D_(u"New subscription to the association") BODY_ADMIN = D_(u"""\ New subscription received: {fields_list}""").format( fields_list=u"\n".join(u"- {0}: {{{0}}}".format(f) for f in FIELDS) ) SUBJECT = D_(u"Your association membership request") BODY = D_(u"""\ Hello {firstname}, you request to join the "Salut à Toi" association has been well received. Thank you and welcome to the SàT community. You can contact us at contact""" # we split the address to avoid # it being recognized too easily by spam bots + u'@' + u'salut-a-toi' + u'.org' u""" or on the official XMPP chat room: xmpp: sat@chat.jabberfr.org web: https://chat.jabberfr.org/converse.js/sat@chat.jabberfr.org The Salut à Toi team """) WARNING_MSG_NOT_READ = D_( u"You must have read the documents to validate your membership request") WARNING_MSG_MISSING_FIELDS = D_( u"The form you posted is not complete, we can't validate this membership request.\n" u"Please fill all the required fields, thank you!") @defer.inlineCallbacks def on_data_post(self, request): data = FormData(*self.getPostedData(request, FIELDS, raise_on_missing=False)) if any(not getattr(data, f) for f in REQUIRED): log.warning(u"missing data fields:\n{data}".format(data=data)) raise exceptions.DataError(WARNING_MSG_MISSING_FIELDS) if not C.bool(data.documents_read or C.BOOL_FALSE): log.warning(u"documents_read has not been checked:\n{data}".format(data=data)) raise exceptions.DataError(WARNING_MSG_NOT_READ) addresses = config.getConfig( self.host.main_conf, None, "email_admins_list", default=Exception) yield email.sendEmail( self.host.main_conf, addresses, SUBJECT_ADMIN, BODY_ADMIN.format(**data._asdict()), ) yield email.sendEmail( self.host.main_conf, data.email, SUBJECT, BODY.format(**data._asdict()), )