From 45eeac9a4113f37623486c23d7867c97e6ef8805 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 5 Jun 2013 09:15:50 +0200 Subject: [PATCH] member registration: use info and feedback pages; configurable sender email; login/register portlet --- browser/node_macros.pt | 7 +++++- locales/de/LC_MESSAGES/loops.mo | Bin 24159 -> 24237 bytes locales/de/LC_MESSAGES/loops.po | 7 ++++-- organize/browser/member.py | 20 +++++++++++------ organize/browser/view_macros.pt | 37 +++++++++++++++++++++----------- 5 files changed, 49 insertions(+), 22 deletions(-) diff --git a/browser/node_macros.pt b/browser/node_macros.pt index b67f1fb..640f9a1 100644 --- a/browser/node_macros.pt +++ b/browser/node_macros.pt @@ -314,8 +314,13 @@ -
+ Log in
+
+ Register new member
diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index ad3d32055612f5c99ce41d9468b0b9cced058617..89e7e8c8dd3ffa2fd069020eeb9f787eaca30e35 100644 GIT binary patch delta 8836 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 diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po index 1a93a8d..1885c16 100644 --- a/locales/de/LC_MESSAGES/loops.po +++ b/locales/de/LC_MESSAGES/loops.po @@ -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 \n" "Language-Team: loops developers \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." diff --git a/organize/browser/member.py b/organize/browser/member.py index 28e13f0..5916929 100644 --- a/organize/browser/member.py +++ b/organize/browser/member.py @@ -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') diff --git a/organize/browser/view_macros.pt b/organize/browser/view_macros.pt index bff4b91..93ef80e 100644 --- a/organize/browser/view_macros.pt +++ b/organize/browser/view_macros.pt @@ -2,25 +2,36 @@ - - + + + + + + + + + - - - - - - -
Login Name -
- + + + + + + + + + +
Login Name +
+ +