From 0bdd409dc254623e6d444f6476f4e150e00a57d9 Mon Sep 17 00:00:00 2001 From: Christian Berg Date: Fri, 16 Sep 2016 18:57:28 +0200 Subject: [PATCH] User Registration now uses all possibilities of the Membership Model. So you could apply for a membership with one step. Fixed an error in the cleanup-registration command. Also more stuff has been translated --- src/membership/admin.py | 3 +- src/membership/forms.py | 26 +- .../locale/de/LC_MESSAGES/django.po | 442 +++++++++++++----- .../migrations/0006_auto_20160916_1759.py | 19 + src/membership/models.py | 8 +- .../membership/email/activation_email.txt | 14 +- .../templates/membership/register_form.html | 54 ++- 7 files changed, 393 insertions(+), 173 deletions(-) create mode 100644 src/membership/migrations/0006_auto_20160916_1759.py diff --git a/src/membership/admin.py b/src/membership/admin.py index 14eb963..c7e451f 100644 --- a/src/membership/admin.py +++ b/src/membership/admin.py @@ -43,12 +43,13 @@ class ProxyGroup(Group): class MembershipAdmin(UserAdmin): # admin_thumbnail = AdminThumbnail(image_field='thumbnail') - list_filter = ('membership', 'confirmed') + list_filter = ('is_active','membership', 'confirmed') list_display = ( 'avatar', 'username', 'first_name', 'last_name', + 'is_active', 'membership', 'confirmed', 'paid_until', diff --git a/src/membership/forms.py b/src/membership/forms.py index 3d18f26..ac9d004 100644 --- a/src/membership/forms.py +++ b/src/membership/forms.py @@ -17,9 +17,10 @@ class MembershipForm(forms.ModelForm): error_css_class = 'error' required_css_class = 'required' birthday = forms.DateField(label=_('birthday'), required=False) + email = forms.EmailField(label=_('Email'), required=True) class Meta: - model = models.Membership + model = auth.get_user_model() fields = ( 'username', 'gender', 'first_name', 'last_name', 'email', 'avatar', 'website', 'membership', 'birthday', 'telephone', 'street_name', @@ -60,26 +61,13 @@ class MembershipForm(forms.ModelForm): return self.cleaned_data['city'] -class RegistrationForm(forms.ModelForm): +class RegistrationForm(MembershipForm): """ Form to register a new user account. Validates that the requested username and email is not already in use, requires the password to be entered twice to catch typos. sends an activation request per mail, to validate the eMail. """ - error_css_class = 'error' - required_css_class = 'required' - - first_name = forms.CharField(max_length=30, required=True, - label=_('Given Name')) - last_name = forms.CharField(max_length=30, required=True, - label=_('Last Name')) - username = forms.SlugField(required=True, max_length=30, - label=_('Username'), - help_text=_("The Username can only contain the letters from A to Z, \ - Numbers, and the underscore. It must be at least 2 characters long, \ - and cannot be longer the 30. The first character must be a letter.")) - email = forms.EmailField(required=True) password1 = forms.CharField(widget=forms.PasswordInput(), label=_('password')) password2 = forms.CharField(widget=forms.PasswordInput(), @@ -88,7 +76,13 @@ class RegistrationForm(forms.ModelForm): class Meta: model = auth.get_user_model() - fields = ('first_name', 'last_name', 'username', 'email',) + fields = ('first_name', 'last_name', 'username', 'email', + 'username', 'gender', 'first_name', 'last_name', 'email', + 'avatar', + 'website', 'membership', 'birthday', 'telephone', + 'street_name', + 'post_code', 'city' + ) def clean_username(self): """ diff --git a/src/membership/locale/de/LC_MESSAGES/django.po b/src/membership/locale/de/LC_MESSAGES/django.po index 9984462..89d9661 100644 --- a/src/membership/locale/de/LC_MESSAGES/django.po +++ b/src/membership/locale/de/LC_MESSAGES/django.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: kasu.membership\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-08-16 11:34+0200\n" -"PO-Revision-Date: 2015-09-03 18:31+0200\n" -"Last-Translator: Christian Berg \n" +"POT-Creation-Date: 2016-09-16 18:07+0200\n" +"PO-Revision-Date: 2016-09-16 18:20+0200\n" +"Last-Translator: Christian Berg \n" "Language-Team: Kasu \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -17,365 +17,539 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Translated-Using: django-rosetta 0.7.2\n" -"X-Generator: Poedit 1.8.3\n" +"X-Generator: Poedit 1.8.9\n" -#: admin.py:24 +#: src/membership/admin.py:23 msgid "Activate selected User" msgstr "Ausgewählte Benutzer freischalten" -#: admin.py:33 +#: src/membership/admin.py:33 msgid "Cleanup selected Activation Requests" msgstr "Ausgewählte Aktivierungsanfragen bereinigen" -#: admin.py:39 +#: src/membership/admin.py:40 msgid "Group" msgstr "Gruppe" -#: admin.py:40 +#: src/membership/admin.py:41 msgid "Groups" msgstr "Gruppen" -#: admin.py:60 models.py:187 models.py:247 +#: src/membership/admin.py:61 src/membership/models.py:162 +#: src/membership/models.py:210 +#: src/membership/templates/membership/register_form.html:28 msgid "Membership" msgstr "Mitgliedschaft" -#: admin.py:63 +#: src/membership/admin.py:64 msgid "Permissions" msgstr "Berechtigung" -#: admin.py:65 +#: src/membership/admin.py:66 msgid "Important dates" msgstr "Wichtige Daten" -#: forms.py:19 +#: src/membership/forms.py:19 msgid "birthday" msgstr "Geburtstag" -#: forms.py:32 forms.py:39 forms.py:46 forms.py:53 +#: src/membership/forms.py:20 +msgid "Email" +msgstr "E-Mail" + +#: src/membership/forms.py:32 src/membership/forms.py:39 +#: src/membership/forms.py:46 src/membership/forms.py:53 msgid "" "For your membership, we need this. Please fill out this field " "yet." msgstr "Diese Angabe wird für eine Mitgliedschaft benötigt, bitte ausfüllen." -#: forms.py:59 +#: src/membership/forms.py:59 msgid "" "For your membership, we need this. Please fill out this field " "yet." msgstr "Diese Angabe wird für eine Mitgliedschaft benötigt, bitte ausfüllen." -#: forms.py:75 -msgid "Given Name" -msgstr "Vorname" - -#: forms.py:77 -msgid "Last Name" -msgstr "Nachname" - -#: forms.py:79 -msgid "Username" -msgstr "Benutzername" - -#: forms.py:80 -msgid "" -"The Username can only contain the letters from A to Z, Numbers, and " -"the underscore. It must be at least 2 characters long, and cannot be " -"longer the 30. The first character must be a letter." -msgstr "" -"Der Benutzername kann aus den Buchstaben A-Z, Ziffern und dem Unterstrich " -"bestehen. Es sollte wenigstens 2, aber maximal 30 Zeichen lang sein. Das " -"erste Zeichen muss ein Buchstabe sein." - -#: forms.py:85 +#: src/membership/forms.py:72 msgid "password" msgstr "Passwort" -#: forms.py:87 +#: src/membership/forms.py:74 msgid "password (again)" msgstr "Passwort (wiederholen)" -#: forms.py:104 +#: src/membership/forms.py:97 msgid "This username is already taken. Please choose another." msgstr "Diesen Benutzername ist schon vergeben. Bitte einen anderen auswählen." -#: forms.py:113 +#: src/membership/forms.py:106 msgid "" "This email address is already in use. Please supply a different " "email address." msgstr "Die E-Mail Adresse wird schon verwendet. Bitte eine andere angeben." -#: forms.py:122 +#: src/membership/forms.py:115 msgid "The two password fields didn't match." msgstr "Die beiden Passwörter passen nicht." -#: models.py:23 +#: src/membership/models.py:20 msgid "Male" msgstr "Männlich" -#: models.py:24 +#: src/membership/models.py:21 msgid "Female" msgstr "Weiblich" -#: models.py:91 +#: src/membership/models.py:88 msgid "user" msgstr "Benutzer" -#: models.py:93 +#: src/membership/models.py:90 msgid "activation key" msgstr "Aktivierungsschlüssel" -#: models.py:97 +#: src/membership/models.py:94 msgid "pending activation" msgstr "Ausstehende Aktivierung" -#: models.py:98 +#: src/membership/models.py:95 msgid "pending activations" msgstr "Wartende Aktivierungen" -#: models.py:101 +#: src/membership/models.py:98 #, python-format msgid "user registration for %s" msgstr "Benutzerregistrierung für %s" -#: models.py:172 +#: src/membership/models.py:145 msgid "Gender" msgstr "Geschlecht" -#: models.py:189 +#: src/membership/models.py:164 msgid "" "Yes, I confirm that I am in agreement with the statutes and would " "like to become a member." msgstr "Ja, ich bin mit den Statuen einverstanden und möchte Mitglied werden." -#: models.py:192 +#: src/membership/models.py:167 msgid "Birthday Date" msgstr "Geburtstag" -#: models.py:194 +#: src/membership/models.py:169 msgid "Telephone" msgstr "Telefon" -#: models.py:200 +#: src/membership/models.py:175 msgid "Address" msgstr "Adresse" -#: models.py:206 +#: src/membership/models.py:181 msgid "Postcode" msgstr "Postleitzahl" -#: models.py:211 +#: src/membership/models.py:186 msgid "Town/City" msgstr "Ort" -#: models.py:219 +#: src/membership/models.py:194 msgid "Paid until" msgstr "Bezahlt bis" -#: models.py:225 +#: src/membership/models.py:200 msgid "Confirmed" msgstr "Bestätigt" -#: models.py:227 +#: src/membership/models.py:202 msgid "This person has paid the membership fee." msgstr "Diese Person hat ihre Mitgliedschaft bezahlt" -#: models.py:248 +#: src/membership/models.py:211 msgid "Memberships" msgstr "Mitgliedschaften" -#: templates/membership/email/password_reset_email.html:2 +#: src/membership/templates/membership/email/activation_email.txt:2 +#, python-format +msgid "Welcome %(user)s," +msgstr "Herzlich willkommen %(user)s," + +#: src/membership/templates/membership/email/activation_email.txt:4 +#, python-format +msgid "" +"We received an account request on %(site.domain)s for your email address.\n" +"To activate your account please visit the following link:" +msgstr "" +"Jemand (hoffentlich du selbst) möchte mit dieser E-Mail Adresse einen neuen " +"Benutzer Account für %(site.domain)s anlegen.\n" +"Solltest du diesen Account aktivieren wollen, klicke bitte auf den unten " +"stehenden Link, oder kopiere diesen in die Adresszeile deines Browsers:" + +#: src/membership/templates/membership/email/activation_email.txt:9 +#, python-format +msgid "" +"If you do not want to open an account on %(site.domain)s, please ignore this " +"email.\n" +"Your information will then be deleted in a few days time." +msgstr "" +"Wenn du keinen Zugang für %(site.domain)s eröffnen willst, ignoriere diese E-" +"Mail bitte.\n" +"Die Zugangsdaten werden dann in ein paar Tagen automatisch gelöscht." + +#: src/membership/templates/membership/email/activation_email.txt:12 +#, python-format +msgid "" +"Best Regards,\n" +"The %(site.domain)s team." +msgstr "" +"mit den besten Wünschen\n" +"Das Team von %(site.domain)s" + +#: src/membership/templates/membership/email/password_reset_email.html:2 msgid "You're receiving this e-mail because you requested a password reset" msgstr "" "Du hast diese E-Mail erhalten, weil jemand die das Passwort zurücksetzen " "möchte. " -#: templates/membership/email/password_reset_email.html:3 +#: src/membership/templates/membership/email/password_reset_email.html:3 #, python-format msgid "for your user account at %(site_name)s" msgstr "Für deinen Benutzerzugang auf %(site_name)s" -#: templates/membership/email/password_reset_email.html:5 +#: src/membership/templates/membership/email/password_reset_email.html:5 msgid "Please go to the following page and choose a new password:" msgstr "Bitte gehe auf folgende Seite und wähle ein neues Passwort aus:" -#: templates/membership/email/password_reset_email.html:9 +#: src/membership/templates/membership/email/password_reset_email.html:9 msgid "Your username, in case you've forgotten:" msgstr "Dein Benutzername, für den Fall das du diesen vergessen hast:" -#: templates/membership/email/password_reset_email.html:11 +#: src/membership/templates/membership/email/password_reset_email.html:11 msgid "Thanks for using our site!" msgstr "Danke das du unsere Seite verwendest!" -#: templates/membership/email/password_reset_email.html:13 +#: src/membership/templates/membership/email/password_reset_email.html:13 #, python-format msgid "The %(site_name)s team" msgstr "Das %(site_name)s Team" -#: templates/membership/email/password_reset_subject.txt:2 +#: src/membership/templates/membership/email/password_reset_subject.txt:2 #, python-format msgid "Password reset on %(site_name)s" msgstr "Passwort auf %(site_name)s zurücksetzen" -#: templates/membership/hanchan_table.html:5 +#: src/membership/templates/membership/hanchan_table.html:5 msgid "Start" msgstr "Beginn" -#: templates/membership/hanchan_table.html:6 +#: src/membership/templates/membership/hanchan_table.html:6 msgid "Event" msgstr "Termin" -#: templates/membership/hanchan_table.html:7 +#: src/membership/templates/membership/hanchan_table.html:7 msgid "Players" msgstr "Spieler" -#: templates/membership/hanchan_table.html:8 +#: src/membership/templates/membership/hanchan_table.html:8 msgid "Kyu Points" msgstr "Kyū Punkte" -#: templates/membership/hanchan_table.html:9 +#: src/membership/templates/membership/hanchan_table.html:9 msgid "Dan Points" msgstr "Dan Punkte" -#: templates/membership/hanchan_table.html:10 +#: src/membership/templates/membership/hanchan_table.html:10 msgid "Bonus Points" msgstr "Bonus Punkte" -#: templates/membership/hanchan_table.html:11 +#: src/membership/templates/membership/hanchan_table.html:11 msgid "Comment" msgstr "Anmerkung" -#: templates/membership/hanchan_table.html:26 +#: src/membership/templates/membership/hanchan_table.html:26 msgid "This Hanchan does not validate" msgstr "Diese Hanchan ist ungültig" -#: templates/membership/membership_detail.html:6 +#: src/membership/templates/membership/membership_detail.html:6 msgid "profile for" msgstr "Profil für" -#: templates/membership/membership_detail.html:10 +#: src/membership/templates/membership/membership_detail.html:10 msgid "Ladder Hanchans" msgstr "Ladder Hanchans" -#: templates/membership/membership_detail.html:11 +#: src/membership/templates/membership/membership_detail.html:11 msgid "Kyu Hanchans" msgstr "Kyū Hanchans" -#: templates/membership/membership_detail.html:12 +#: src/membership/templates/membership/membership_detail.html:12 msgid "Dan Hanchans" msgstr "Dan Hanchans" -#: templates/membership/membership_detail.html:13 +#: src/membership/templates/membership/membership_detail.html:13 msgid "Invalid Hanchans" msgstr "Ungültige Hanchans" -#: templates/membership/membership_detail.html:14 +#: src/membership/templates/membership/membership_detail.html:14 msgid "Mai-Star Games" msgstr "Mai-Star Spiele" -#: templates/membership/membership_detail.html:20 +#: src/membership/templates/membership/membership_detail.html:20 msgid "Profile Image" msgstr "Profilbild" -#: templates/membership/membership_detail.html:28 +#: src/membership/templates/membership/membership_detail.html:28 msgid "Member Since" msgstr "Mitglied seit" -#: templates/membership/membership_detail.html:29 +#: src/membership/templates/membership/membership_detail.html:29 msgid "Last Login" msgstr "Letzte Anmeldung" -#: templates/membership/membership_detail.html:38 -#: templates/membership/membership_detail.html:40 +#: src/membership/templates/membership/membership_detail.html:38 +#: src/membership/templates/membership/membership_detail.html:40 msgid "Points" msgstr "Punkte" -#: templates/membership/membership_detail.html:42 +#: src/membership/templates/membership/membership_detail.html:42 msgid "Games Total" msgstr "Spiele gesamt" -#: templates/membership/membership_detail.html:43 -#: templates/membership/membership_detail.html:45 +#: src/membership/templates/membership/membership_detail.html:43 +#: src/membership/templates/membership/membership_detail.html:45 msgid "Won" msgstr "Gewonnen" -#: templates/membership/membership_detail.html:43 -#: templates/membership/membership_detail.html:45 +#: src/membership/templates/membership/membership_detail.html:43 +#: src/membership/templates/membership/membership_detail.html:45 msgid "Good" msgstr "Gut" -#: templates/membership/membership_detail.html:45 +#: src/membership/templates/membership/membership_detail.html:45 msgid "Current Season" msgstr "Aktuelle Saison" -#: templates/membership/membership_detail.html:55 +#: src/membership/templates/membership/membership_detail.html:55 msgid "Edit Profile" msgstr "Profil bearbeiten" -#: templates/membership/membership_detail.html:59 +#: src/membership/templates/membership/membership_detail.html:59 +#: src/membership/templates/registration/password_change_form.html:23 msgid "Change Password" msgstr "Passwort ändern" -#: templates/membership/membership_detail.html:63 -#: templates/membership/membership_detail.html:67 -#: templates/membership/membership_detail.html:71 +#: src/membership/templates/membership/membership_detail.html:63 +#: src/membership/templates/membership/membership_detail.html:67 +#: src/membership/templates/membership/membership_detail.html:71 #, python-format msgid "Associate with %(name)s" msgstr "Verbinde mit %(name)s" -#: templates/membership/membership_form.html:4 -#: templates/membership/membership_form.html:6 -#: templates/membership/membership_form.html:11 +#: src/membership/templates/membership/membership_form.html:4 +#: src/membership/templates/membership/membership_form.html:6 +#: src/membership/templates/membership/membership_form.html:11 msgid "Edit Userprofile" msgstr "Profil bearbeiten" -#: templates/membership/membership_form.html:15 +#: src/membership/templates/membership/membership_form.html:15 msgid "Reset" msgstr "Zurücksetzen" -#: templates/membership/membership_form.html:16 +#: src/membership/templates/membership/membership_form.html:16 msgid "Save" msgstr "Speichern" -#: templates/membership/register_form.html:5 -#: templates/membership/register_form.html:7 +#: src/membership/templates/membership/register_form.html:5 +#: src/membership/templates/membership/register_form.html:7 msgid "Registration" msgstr "Registrieren" -#: templates/membership/register_form.html:13 -msgid "Name" +#: src/membership/templates/membership/register_form.html:16 +msgid "name" msgstr "Name" -#: templates/membership/register_form.html:18 -msgid "Security" -msgstr "Sicherheit" +#: src/membership/templates/membership/register_form.html:22 +#: src/membership/templates/registration/login.html:6 +#: src/membership/templates/registration/login.html:8 +#: src/membership/templates/registration/login.html:37 +msgid "login" +msgstr "Anmelden" -#: templates/membership/register_form.html:24 +#: src/membership/templates/membership/register_form.html:34 msgid "" -"After you've provided your account data, you'll\n" -" receive an email asking you to verify your email address.\n" -" You have to click on the link in this verification email to\n" -" confirm your email address, otherwise your can't login.\n" -" " +"After you've provided your account data, you'll receive\n" +" an email asking you to verify your email address. You have to click on " +"the\n" +" link in this verification email to confirm your email address, " +"otherwise\n" +" your can't login." msgstr "" "Nach dem du deine Daten eingegeben hast, wirst du eine E-Mail zur " "Bestätigung bekommen.\n" "Bitte klicke auf den Link in dieser E-Mail zur Verifizierung, erst dann ist " "die Anmeldung möglich." -#: templates/membership/register_form.html:30 +#: src/membership/templates/membership/register_form.html:39 msgid "reset" msgstr "Zurücksetzen" -#: templates/membership/register_form.html:31 +#: src/membership/templates/membership/register_form.html:41 +#: src/membership/templates/registration/login.html:31 msgid "register" msgstr "Registrieren" -#: templates/membership/register_successful.html:5 -#: templates/membership/register_successful.html:7 -#: templates/membership/register_successful.html:10 +#: src/membership/templates/membership/register_successful.html:5 +#: src/membership/templates/membership/register_successful.html:7 +#: src/membership/templates/membership/register_successful.html:10 msgid "Activation sent" msgstr "Aktivierung wurde zugesendet" -#: views.py:53 +#: src/membership/templates/registration/login.html:15 +msgid "Have you already registered?" +msgstr "Bereits registriert?" + +#: src/membership/templates/registration/login.html:16 +msgid "" +"\n" +"

As a registered member you can:

\n" +"
    \n" +"
  • leave comments on this page.
  • \n" +"
  • subscribe to our Newsletter
  • \n" +"
  • apply to a membership to our club
  • \n" +"
  • club-members have access to our ranking-system
  • \n" +"
\n" +msgstr "" +"\n" +"

Als registrierter auf dieser Seite kannst du:

\n" +"
    \n" +"
  • Kommentare auf dieser Seite hinterlassen.
  • \n" +"
  • Dich für unseren Newsletter anmelden
  • \n" +"
  • Mitglied in unserem Verein werden
  • \n" +"
  • Vereinsmitglieder haben auch vollen Zugang zu unserem Ranking System\n" +"
\n" + +#: src/membership/templates/registration/login.html:25 +msgid "" +"\n" +"

You can register here with your Google, or Facebook account.\n" +"If you don't own such an account, or do not want to use it for " +"authentication,\n" +"you can fill out our registration form.

\n" +msgstr "" +"\n" +"

Du kannst dich auch über deinen Facebook, Google, oder Twitter Account " +"anmelden.\n" +"Wenn du so etwas nicht besitzt, oder nicht verwenden möchtest, \n" +"kannst du auch das Registrierungsformular ausfüllen.

\n" + +#: src/membership/templates/registration/login.html:41 +msgid "Your username and password didn't match. Please try again." +msgstr "" +"Benutzername und Passwort stimmen nicht überein. Bitte noch einmal versuchen." + +#: src/membership/templates/registration/login.html:44 +msgid "Forgot your Password?" +msgstr "Passwort vergessen?" + +#: src/membership/templates/registration/login.html:46 +#: src/membership/templates/registration/password_reset_complete.html:13 +msgid "Login" +msgstr "Anmelden" + +#: src/membership/templates/registration/login.html:52 +msgid "or login with an existing Account" +msgstr "oder über einen existierenden Account anmelden" + +#: src/membership/templates/registration/login.html:53 +msgid "Login with Facebook" +msgstr "Über Facebook anmelden" + +#: src/membership/templates/registration/login.html:54 +msgid "Login with Twitter" +msgstr "Über Twitter anmelden" + +#: src/membership/templates/registration/login.html:55 +msgid "Login with Google" +msgstr "Über Google Anmelden" + +#: src/membership/templates/registration/password_change_done.html:4 +#: src/membership/templates/registration/password_change_done.html:7 +msgid "Password change successful" +msgstr "Benutzerprofil erfolgreich geändert." + +#: src/membership/templates/registration/password_change_done.html:8 +msgid "Your password was changed." +msgstr "Passwort geändet" + +#: src/membership/templates/registration/password_change_form.html:4 +#: src/membership/templates/registration/password_change_form.html:9 +#: src/membership/templates/registration/password_change_form.html:16 +msgid "Password change" +msgstr "Passwort wechseln" + +#: src/membership/templates/registration/password_change_form.html:10 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Zur Sicherheit bitte altes Passwort einmal und das gewünschte neue Passwort " +"zweimal angeben, so können Tippfehler abgefangen werden." + +#: src/membership/templates/registration/password_reset_complete.html:4 +#: src/membership/templates/registration/password_reset_complete.html:6 +#: src/membership/templates/registration/password_reset_complete.html:9 +msgid "Password reset complete" +msgstr "Das Rücksetzen des Passwortes ist abgeschlossen." + +#: src/membership/templates/registration/password_reset_complete.html:10 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Das Passwort wurde gesetzt, Du kannst dich nun damit anmelden." + +#: src/membership/templates/registration/password_reset_confirm.html:4 +#: src/membership/templates/registration/password_reset_confirm.html:6 +#: src/membership/templates/registration/password_reset_confirm.html:15 +msgid "Enter new password" +msgstr "Neues Passwort eingeben" + +#: src/membership/templates/registration/password_reset_confirm.html:12 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Bitte das Passwort zweimal eingeben, um sicher zu stellen das es korrekt " +"eingetippt wurde." + +#: src/membership/templates/registration/password_reset_confirm.html:18 +msgid "Change my password" +msgstr "Passwort ändern" + +#: src/membership/templates/registration/password_reset_confirm.html:26 +msgid "Password reset unsuccessful" +msgstr "Passwort rücksetzen fehlgeschlagen" + +#: src/membership/templates/registration/password_reset_confirm.html:27 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Der Link für die Rücksetzung des Passwortes war ungültig, vermutlich wurde " +"er schon einmal benutzt. Bitte eine neue Rücksetzung beantragen." + +#: src/membership/templates/registration/password_reset_done.html:4 +#: src/membership/templates/registration/password_reset_done.html:6 +#: src/membership/templates/registration/password_reset_done.html:12 +msgid "Password reset successful" +msgstr "Passwort erfolgreich zurückgesetzt." + +#: src/membership/templates/registration/password_reset_form.html:4 +#: src/membership/templates/registration/password_reset_form.html:6 +msgid "Password reset" +msgstr "Passwort zurücksetzen" + +#: src/membership/templates/registration/password_reset_form.html:21 +msgid "Transmit" +msgstr "Übermitteln" + +#: src/membership/views.py:54 msgid "" "Activation successful. You can now login anytime with you username " "and password." @@ -383,21 +557,39 @@ msgstr "" "Die Aktivierung war erfolgreich. Du kannst dich ab jetzt jederzeit mit " "deinem Benutzernamen und Passwort anmelden." -#: views.py:73 +#: src/membership/views.py:74 msgid "User Profile changed successfully" msgstr "Benutzerprofil erfolgreich geändert." -#: views.py:87 +#: src/membership/views.py:88 #, python-format msgid "No %(verbose_name)s found matching the query" msgstr "Kein %(verbose_name)s gefunden welche der Anfrage entspricht" +#~ msgid "Given Name" +#~ msgstr "Vorname" + +#~ msgid "Last Name" +#~ msgstr "Nachname" + +#~ msgid "" +#~ "The Username can only contain the letters from A to Z, Numbers, " +#~ "and the underscore. It must be at least 2 characters long, and " +#~ "cannot be longer the 30. The first character must be a letter." +#~ msgstr "" +#~ "Der Benutzername kann aus den Buchstaben A-Z, Ziffern und dem Unterstrich " +#~ "bestehen. Es sollte wenigstens 2, aber maximal 30 Zeichen lang sein. Das " +#~ "erste Zeichen muss ein Buchstabe sein." + +#~ msgid "Name" +#~ msgstr "Name" + +#~ msgid "Security" +#~ msgstr "Sicherheit" + #~ msgid "Nickname" #~ msgstr "Spitzname" -#~ msgid "Email" -#~ msgstr "E-Mail" - #~ msgid "Userprofile for %s" #~ msgstr "Benutzerprofil für %s" diff --git a/src/membership/migrations/0006_auto_20160916_1759.py b/src/membership/migrations/0006_auto_20160916_1759.py new file mode 100644 index 0000000..6a8f7e4 --- /dev/null +++ b/src/membership/migrations/0006_auto_20160916_1759.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('membership', '0005_auto_20150901_2204'), + ] + + operations = [ + migrations.AlterField( + model_name='membership', + name='gender', + field=models.CharField(blank=True, max_length=1, null=True, verbose_name='Geschlecht', choices=[(b'm', 'M\xe4nnlich'), (b'f', 'Weiblich')]), + ), + ] diff --git a/src/membership/models.py b/src/membership/models.py index e39c348..7f7e9c5 100644 --- a/src/membership/models.py +++ b/src/membership/models.py @@ -71,9 +71,11 @@ class ActivationManager(models.Manager): return self.create(user=user, activation_key=activation_key) def expired(self): + timespan = timedelta(days=settings.ACCOUNT_ACTIVATION_DAYS) + expiration_date = timezone.now() - timespan return self.filter( user__is_active=False, - user__date_joined__lt=self.expiration_date + user__date_joined__lt=expiration_date ) @@ -144,7 +146,9 @@ class Membership(AbstractUser): gender = models.CharField( _("Gender"), max_length=1, - choices=GENDER_CHOICES + choices=GENDER_CHOICES, + blank=True, + null=True ) # first_name = models.CharField(_("Given Name"), max_length=30) # last_name = models.CharField(_("Last Name"), max_length=30) diff --git a/src/membership/templates/membership/email/activation_email.txt b/src/membership/templates/membership/email/activation_email.txt index 60cfc6e..d2cc593 100644 --- a/src/membership/templates/membership/email/activation_email.txt +++ b/src/membership/templates/membership/email/activation_email.txt @@ -1,13 +1,13 @@ {% load i18n %} -Dear {{user}}, +{% blocktrans %}Welcome {{user}},{% endblocktrans %}. -We received an account request on {{site.domain}} for your email address. -To activate your account please visit the following link: +{% blocktrans %}We received an account request on {{site.domain}} for your email address. +To activate your account please visit the following link:{% endblocktrans %} http://{{site.domain}}/membership/activate/{{ activation_key }}/ -If you do not want to open an account on {{site.domain}}, please ignore this email. -Your information will then be deleted in a few days time. +{% blocktrans %}If you do not want to open an account on {{site.domain}}, please ignore this email. +Your information will then be deleted in a few days time.{% endblocktrans %} -Best Regards, -The {{site.domain}} team. \ No newline at end of file +{% blocktrans %}Best Regards, +The {{site.domain}} team.{% endblocktrans %} \ No newline at end of file diff --git a/src/membership/templates/membership/register_form.html b/src/membership/templates/membership/register_form.html index 392afde..54938be 100644 --- a/src/membership/templates/membership/register_form.html +++ b/src/membership/templates/membership/register_form.html @@ -8,29 +8,39 @@ {% block maincontent %}
- {% csrf_token %} -
- {% trans "Name"%} - {% get_fieldset "first_name, last_name, username" from form as form1 %} - {% with form1 as form %}{% include "form.html" %}{% endwith %} -
-
- {% trans "Security"%} - {% get_fieldset "email, password1, password2, recaptcha" from form as form2 %} - {% with form2 as form %}{% include "form.html" %}{% endwith %} -
+ {% csrf_token %} +

Form

-
-

{% blocktrans %}After you've provided your account data, you'll - receive an email asking you to verify your email address. - You have to click on the link in this verification email to - confirm your email address, otherwise your can't login. - {% endblocktrans %}

-

- - -

-
+

End Form

+
+ {% trans "name"%} + {% get_fieldset "gender, first_name, last_name, username" from form as form1 %} + {% with form1 as form %}{% include "form.html" %}{% endwith %} +
+ +
+ {% trans "login"%} + {% get_fieldset "email, password1, password2, recaptcha" from form as form1 %} + {% with form1 as form %}{% include "form.html" %}{% endwith %} +
+ +
+ {% trans "Membership"%} + {% get_fieldset "membership, birthday, street_name, post_code, city, telephone, website" from form as form2 %} + {% with form2 as form %}{% include "form.html" %}{% endwith %} +
+ +
+

{% blocktrans %}After you've provided your account data, you'll receive + an email asking you to verify your email address. You have to click on the + link in this verification email to confirm your email address, otherwise + your can't login.{% endblocktrans %}

+

+ + +

+
{% endblock %}