Mercurial > libervia-website
view pages/association/membership/page_meta.py @ 8:dc880664a8ec
modernisation of the theme using Bulma
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 16 Apr 2021 18:51:12 +0200 |
parents | 9ce41ef66dfa |
children | 67487063f421 |
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 = "association_membership" template = "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_("New subscription to the association") BODY_ADMIN = D_("""\ New subscription received: {fields_list}""").format( fields_list="\n".join("- {0}: {{{0}}}".format(f) for f in FIELDS) ) SUBJECT = D_("Your association membership request") BODY = D_("""\ 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 + '@' + 'salut-a-toi' + '.org' """ 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_( "You must have read the documents to validate your membership request") WARNING_MSG_MISSING_FIELDS = D_( "The form you posted is not complete, we can't validate this membership request.\n" "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("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("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()), )