member registration: use info and feedback pages; configurable sender email; login/register portlet

This commit is contained in:
Helmut Merz 2013-06-05 09:15:50 +02:00
parent 3f1ffdb8f4
commit 45eeac9a41
5 changed files with 49 additions and 22 deletions

View file

@ -314,8 +314,13 @@
<metal:login define-macro="login">
<div><a href="login.html"
<div>
<a href="login.html"
i18n:translate="">Log in</a></div>
<div tal:define="register python:view.globalOptions('provideLogin')"
tal:condition="register">
<a tal:attributes="href python:register[0]"
i18n:translate="">Register new member</a></div>
</metal:login>

Binary file not shown.

View file

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: 0.13.0\n"
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
"PO-Revision-Date: 2013-05-05 12:00 CET\n"
"PO-Revision-Date: 2013-06-05 12:00 CET\n"
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
"Language-Team: loops developers <helmutm@cy55.de>\n"
"MIME-Version: 1.0\n"
@ -762,6 +762,9 @@ msgstr "Teilnehmerregistrierung"
msgid "Register"
msgstr "Benutzer registrieren"
msgid "Register new member"
msgstr "Neu registrieren"
msgid "Login name already taken."
msgstr "Die von Ihnen eingegebene Benutzerkennung ist schon vergeben."
@ -775,7 +778,7 @@ msgid "confirmation_mail_subject"
msgstr "Benutzer-Registrierung"
msgid "confirmation_mail_text"
msgstr "Bitte clicken Sie auf den folgenden Link, um die Anmeldung abzschließen."
msgstr "Bitte clicken Sie auf den folgenden Link, um die Anmeldung abzuschließen."
msgid "The user account has been created."
msgstr "Ihr Benutzerkonto wurde eingerichtet."

View file

@ -92,6 +92,7 @@ class BaseMemberRegistration(NodeView):
label = _(u'Member Registration')
label_submit = _(u'Register')
title = _('Member Registration')
permissions_key = u'registration.permissions'
roles_key = u'registration.roles'
@ -104,6 +105,7 @@ class BaseMemberRegistration(NodeView):
isInnerHtml = False
showAssignments = False
form_action = 'register'
versionInfo = None
def closeAction(self, submit=True):
return u''
@ -202,6 +204,7 @@ class SecureMemberRegistration(BaseMemberRegistration, CreateForm):
permissions_key = u'secure_registration.permissions'
roles_key = u'secure_registration.roles'
email_key = 'reg_email'
@Lazy
def schema(self):
@ -265,17 +268,19 @@ class SecureMemberRegistration(BaseMemberRegistration, CreateForm):
baseUrl, userid, id,)
recipients = [recipient]
subject = _(u'confirmation_mail_subject')
name = '.'.join((self.text_names_prefix, self.feedback_key))
name = '.'.join((self.text_names_prefix, self.email_key))
text = self.resourceManager.get(name)
if text:
message = text.data % url
message = (text.data % url).encode('UTF-8')
subject = text.description or subject
else:
message = _(u'confirmation_mail_text') + u':\n\n'
message = (message + url).encode('UTF-8')
sender = 'helmutm@cy55.de'
senderInfo = self.globalOptions('email.sender')
sender = senderInfo and senderInfo[0] or 'info@loops.cy55.de'
sender = sender.encode('UTF-8')
msg = MIMEText(message, 'plain', 'utf-8')
msg['Subject'] = subject
msg['Subject'] = subject.encode('UTF-8')
msg['From'] = sender
msg['To'] = ', '.join(recipients)
mailhost = component.getUtility(IMailDelivery, 'Mail')
@ -286,8 +291,9 @@ class ConfirmMemberRegistration(BaseMemberRegistration, Form):
permissions_key = u'secure_registration.permissions'
roles_key = u'secure_registration.roles'
info_key = 'conf_info'
feedback_key = 'conf_feedback'
info_key = 'confirm_info'
feedback_key = 'confirm_feedback'
email_key = 'confirm_email'
form_action = 'confirm_registration'
@ -303,6 +309,8 @@ class ConfirmMemberRegistration(BaseMemberRegistration, Form):
@Lazy
def schema(self):
schema = super(ConfirmMemberRegistration, self).schema
schema.fields.remove('salutation')
schema.fields.remove('academicTitle')
schema.fields.remove('birthDate')
schema.fields.remove('phoneNumbers')
schema.fields.remove('loginName')

View file

@ -2,25 +2,36 @@
<metal:block define-macro="register">
<tal:info content="structure item/infoText" />
<metal:data use-macro="view/form_macros/edit" />
<metal:data use-macro="view/form_macros/edit">
<metal:custom fill-slot="custom_header">
<tbody>
<tr><td colspan="5">
<tal:info content="structure item/infoText" />
</td></tr>
</tbody>
</metal:custom>
</metal:data>
</metal:block>
<metal:block define-macro="confirm">
<tal:info content="structure item/infoText" />
<metal:data use-macro="view/form_macros/edit">
<metal:custom fill-slot="custom_header">
<tbody><tr><td colspan="5">
<input type="hidden" name="login"
tal:attributes="value item/data/loginName" />
<input type="hidden" name="id"
tal:attributes="value item/data/id" />
<table><tr>
<td i18n:translate="">Login Name</td>
<td tal:content="item/data/loginName" />
</tr></table>
</td></tr></tbody>
<tbody>
<tr><td colspan="5">
<tal:info content="structure item/infoText" />
</td></tr>
<tr><td colspan="5">
<input type="hidden" name="login"
tal:attributes="value item/data/loginName" />
<input type="hidden" name="id"
tal:attributes="value item/data/id" />
<table><tr>
<td i18n:translate="">Login Name</td>
<td tal:content="item/data/loginName" />
</tr></table>
</td></tr>
</tbody>
</metal:custom>
</metal:data>
</metal:block>