def update(self): translation_service = api.portal.get_tool(name="translation_service") unwanted = ("_authenticator", "form.button.Submit") required = ["email"] if "form.button.Submit" in self.request: authenticator = getMultiAdapter((self.context, self.request), name=u"authenticator") if not authenticator.verify(): raise Unauthorized form = self.request.form form_data = {} form_errors = {} errorIdx = 0 for value in form: if value not in unwanted: form_data[value] = safe_unicode(form[value]) if not form[value] and value in required: error = {} error_msg = _(u"This field is required") error["active"] = True error["msg"] = translation_service.translate( error_msg, "aha.sitecontent", target_language=api.portal.get_default_language() ) form_errors[value] = error errorIdx += 1 else: error = {} error["active"] = False error["msg"] = form[value] form_errors[value] = error if errorIdx > 0: self.errors = form_errors else: self.send_inquiry(form)
def send_inquiry(self, data): context = aq_inner(self.context) subject = _(u"Inquiry from website visitor") email_subject = api.portal.translate( "Inquiry from website visitor", "aha.sitecontent", api.portal.get_current_language() ) data["subject"] = email_subject mail_tpl = self._compose_message(data) mail_plain = create_plaintext_message(mail_tpl) msg = prepare_email_message(mail_tpl, mail_plain) recipients = ["*****@*****.**"] send_mail(msg, recipients, email_subject) context_parent = aq_parent(context) next_url = "{0}/@@inquiry-form-dispatched/".format(context_parent.absolute_url()) url = addTokenToUrl(next_url) return self.request.response.redirect(url)