Eine Menge Aufräumarbeiten.

* Eine Testsuite um Mahrjong Ranking Berechnungen zu testen
* Erste Arbeiten um die Workarounds aus dem "utils" Paket los zu werden.
* Vieles am Code umformatiert für PEP8 conformität
This commit is contained in:
2017-06-07 13:25:30 +02:00
parent cf0bbb4c8f
commit a26a91c360
93 changed files with 33531 additions and 2737 deletions

View File

@@ -43,7 +43,7 @@ class ProxyGroup(Group):
class MembershipAdmin(UserAdmin):
# admin_thumbnail = AdminThumbnail(image_field='thumbnail')
list_filter = ('is_active','membership', 'confirmed')
list_filter = ('is_active', 'membership', 'confirmed')
list_display = (
'avatar',
'username',

View File

@@ -3,15 +3,18 @@ Created on 03.10.2011
@author: Christian
"""
import sys
from django import forms
from django.conf import settings
from django.contrib import auth
from django.contrib.sites.models import Site
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from . import models
from utils.html5 import forms
from utils.massmailer import MassMailer
from captcha.fields import ReCaptchaField
from . import models
class MembershipForm(forms.ModelForm):
error_css_class = 'error'
@@ -65,9 +68,11 @@ class RegistrationForm(MembershipForm):
requires the password to be entered twice to catch typos.
sends an activation request per mail, to validate the eMail.
"""
password1 = forms.CharField(widget=forms.PasswordInput(), label=_('password'))
password2 = forms.CharField(widget=forms.PasswordInput(), label=_('password (again)'))
recaptcha = forms.ReCaptchaField()
password1 = forms.CharField(
widget=forms.PasswordInput(), label=_('password'))
password2 = forms.CharField(
widget=forms.PasswordInput(), label=_('password (again)'))
recaptcha = ReCaptchaField()
class Meta:
model = auth.get_user_model()

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.membership\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-09-28 00:25+0200\n"
"POT-Creation-Date: 2017-05-10 23:16+0200\n"
"PO-Revision-Date: 2016-09-28 00:24+0200\n"
"Last-Translator: Christian Berg <xeniac@posteo.at>\n"
"Language-Team: Kasu <verein@kasu.at>\n"
@@ -19,164 +19,162 @@ msgstr ""
"X-Translated-Using: django-rosetta 0.7.2\n"
"X-Generator: Poedit 1.8.9\n"
#: src/membership/admin.py:23
#: membership/admin.py:23
msgid "Activate selected User"
msgstr "Ausgewählte Benutzer freischalten"
#: src/membership/admin.py:33
#: membership/admin.py:33
msgid "Cleanup selected Activation Requests"
msgstr "Ausgewählte Aktivierungsanfragen bereinigen"
#: src/membership/admin.py:40
#: membership/admin.py:40
msgid "Group"
msgstr "Gruppe"
#: src/membership/admin.py:41
#: membership/admin.py:41
msgid "Groups"
msgstr "Gruppen"
#: src/membership/admin.py:62 src/membership/models.py:164
#: src/membership/models.py:215
#: src/membership/templates/membership/register_form.html:32
#: membership/admin.py:62 membership/models.py:164 membership/models.py:215
#: membership/templates/membership/register_form.html:31
msgid "Membership"
msgstr "Mitgliedschaft"
#: src/membership/admin.py:65
#: membership/admin.py:65
msgid "Permissions"
msgstr "Berechtigung"
#: src/membership/admin.py:67
#: membership/admin.py:67
msgid "Important dates"
msgstr "Wichtige Daten"
#: src/membership/forms.py:20
#: membership/forms.py:20
msgid "birthday"
msgstr "Geburtstag"
#: src/membership/forms.py:22
#: membership/forms.py:22
msgid "Input format: yyyy-mm-dd"
msgstr "Eingabeformat: tt.mm.jjjj"
#: src/membership/forms.py:24
#: membership/forms.py:24
msgid "Email"
msgstr "E-Mail"
#: src/membership/forms.py:36 src/membership/forms.py:43
#: src/membership/forms.py:50
#: membership/forms.py:36 membership/forms.py:43 membership/forms.py:50
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."
#: src/membership/forms.py:56
#: membership/forms.py:56
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."
#: src/membership/forms.py:68
#: membership/forms.py:68
msgid "password"
msgstr "Passwort"
#: src/membership/forms.py:69
#: membership/forms.py:69
msgid "password (again)"
msgstr "Passwort (wiederholen)"
#: src/membership/forms.py:92
#: membership/forms.py:92
msgid "This username is already taken. Please choose another."
msgstr "Diesen Benutzername ist schon vergeben. Bitte einen anderen auswählen."
#: src/membership/forms.py:101
#: membership/forms.py:101
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."
#: src/membership/forms.py:110
#: membership/forms.py:110
msgid "The two password fields didn't match."
msgstr "Die beiden Passwörter passen nicht."
#: src/membership/models.py:20
#: membership/models.py:20
msgid "Male"
msgstr "Männlich"
#: src/membership/models.py:21
#: membership/models.py:21
msgid "Female"
msgstr "Weiblich"
#: src/membership/models.py:90
#: membership/models.py:90
msgid "user"
msgstr "Benutzer"
#: src/membership/models.py:92
#: membership/models.py:92
msgid "activation key"
msgstr "Aktivierungsschlüssel"
#: src/membership/models.py:96
#: membership/models.py:96
msgid "pending activation"
msgstr "Ausstehende Aktivierung"
#: src/membership/models.py:97
#: membership/models.py:97
msgid "pending activations"
msgstr "Wartende Aktivierungen"
#: src/membership/models.py:100
#: membership/models.py:100
#, python-format
msgid "user registration for %s"
msgstr "Benutzerregistrierung für %s"
#: src/membership/models.py:147
#: membership/models.py:147
msgid "Gender"
msgstr "Geschlecht"
#: src/membership/models.py:166
#: membership/models.py:166
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."
#: src/membership/models.py:170
#: membership/models.py:170
msgid "Birthday Date"
msgstr "Geburtstag"
#: src/membership/models.py:174
#: membership/models.py:174
msgid "Telephone"
msgstr "Telefon"
#: src/membership/models.py:180
#: membership/models.py:180
msgid "Address"
msgstr "Adresse"
#: src/membership/models.py:186
#: membership/models.py:186
msgid "Postcode"
msgstr "Postleitzahl"
#: src/membership/models.py:191
#: membership/models.py:191
msgid "Town/City"
msgstr "Ort"
#: src/membership/models.py:199
#: membership/models.py:199
msgid "Paid until"
msgstr "Bezahlt bis"
#: src/membership/models.py:205
#: membership/models.py:205
msgid "Confirmed"
msgstr "Bestätigt"
#: src/membership/models.py:207
#: membership/models.py:207
msgid "This person has paid the membership fee."
msgstr "Diese Person hat ihre Mitgliedschaft bezahlt"
#: src/membership/models.py:216
#: membership/models.py:216
msgid "Memberships"
msgstr "Mitgliedschaften"
#: src/membership/templates/membership/email/activation_email.txt:2
#: 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
#: 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"
@@ -187,7 +185,7 @@ msgstr ""
"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
#: 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 "
@@ -198,7 +196,7 @@ msgstr ""
"Mail bitte.\n"
"Die Zugangsdaten werden dann in ein paar Tagen automatisch gelöscht."
#: src/membership/templates/membership/email/activation_email.txt:12
#: membership/templates/membership/email/activation_email.txt:12
#, python-format
msgid ""
"Best Regards,\n"
@@ -207,166 +205,166 @@ msgstr ""
"mit den besten Wünschen\n"
"Das Team von %(site.domain)s"
#: src/membership/templates/membership/email/password_reset_email.html:2
#: 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. "
#: src/membership/templates/membership/email/password_reset_email.html:3
#: 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"
#: src/membership/templates/membership/email/password_reset_email.html:5
#: 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:"
#: src/membership/templates/membership/email/password_reset_email.html:9
#: 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:"
#: src/membership/templates/membership/email/password_reset_email.html:11
#: membership/templates/membership/email/password_reset_email.html:11
msgid "Thanks for using our site!"
msgstr "Danke das du unsere Seite verwendest!"
#: src/membership/templates/membership/email/password_reset_email.html:13
#: membership/templates/membership/email/password_reset_email.html:13
#, python-format
msgid "The %(site_name)s team"
msgstr "Das %(site_name)s Team"
#: src/membership/templates/membership/email/password_reset_subject.txt:2
#: 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"
#: src/membership/templates/membership/hanchan_table.html:5
#: membership/templates/membership/hanchan_table.html:5
msgid "Start"
msgstr "Beginn"
#: src/membership/templates/membership/hanchan_table.html:6
#: membership/templates/membership/hanchan_table.html:6
msgid "Event"
msgstr "Termin"
#: src/membership/templates/membership/hanchan_table.html:7
#: membership/templates/membership/hanchan_table.html:7
msgid "Players"
msgstr "Spieler"
#: src/membership/templates/membership/hanchan_table.html:8
#: membership/templates/membership/hanchan_table.html:8
msgid "Kyu Points"
msgstr "Kyū Punkte"
#: src/membership/templates/membership/hanchan_table.html:9
#: membership/templates/membership/hanchan_table.html:9
msgid "Dan Points"
msgstr "Dan Punkte"
#: src/membership/templates/membership/hanchan_table.html:10
#: membership/templates/membership/hanchan_table.html:10
msgid "Bonus Points"
msgstr "Bonus Punkte"
#: src/membership/templates/membership/hanchan_table.html:11
#: membership/templates/membership/hanchan_table.html:11
msgid "Comment"
msgstr "Anmerkung"
#: src/membership/templates/membership/hanchan_table.html:26
#: membership/templates/membership/hanchan_table.html:26
msgid "This Hanchan does not validate"
msgstr "Diese Hanchan ist ungültig"
#: src/membership/templates/membership/membership_detail.html:6
#: membership/templates/membership/membership_detail.html:6
msgid "profile for"
msgstr "Profil für"
#: src/membership/templates/membership/membership_detail.html:10
#: membership/templates/membership/membership_detail.html:10
msgid "Ladder Hanchans"
msgstr "Ladder Hanchans"
#: src/membership/templates/membership/membership_detail.html:11
#: membership/templates/membership/membership_detail.html:11
msgid "Kyu Hanchans"
msgstr "Kyū Hanchans"
#: src/membership/templates/membership/membership_detail.html:12
#: membership/templates/membership/membership_detail.html:12
msgid "Dan Hanchans"
msgstr "Dan Hanchans"
#: src/membership/templates/membership/membership_detail.html:13
#: membership/templates/membership/membership_detail.html:13
msgid "Invalid Hanchans"
msgstr "Ungültige Hanchans"
#: src/membership/templates/membership/membership_detail.html:14
#: membership/templates/membership/membership_detail.html:14
msgid "Mai-Star Games"
msgstr "Mai-Star Spiele"
#: src/membership/templates/membership/membership_detail.html:20
#: membership/templates/membership/membership_detail.html:20
msgid "Profile Image"
msgstr "Profilbild"
#: src/membership/templates/membership/membership_detail.html:28
#: membership/templates/membership/membership_detail.html:28
msgid "Member Since"
msgstr "Mitglied seit"
#: src/membership/templates/membership/membership_detail.html:29
#: membership/templates/membership/membership_detail.html:29
msgid "Last Login"
msgstr "Letzte Anmeldung"
#: src/membership/templates/membership/membership_detail.html:38
#: src/membership/templates/membership/membership_detail.html:40
#: membership/templates/membership/membership_detail.html:38
#: membership/templates/membership/membership_detail.html:40
msgid "Points"
msgstr "Punkte"
#: src/membership/templates/membership/membership_detail.html:42
#: membership/templates/membership/membership_detail.html:42
msgid "Games Total"
msgstr "Spiele gesamt"
#: src/membership/templates/membership/membership_detail.html:43
#: src/membership/templates/membership/membership_detail.html:45
#: membership/templates/membership/membership_detail.html:43
#: membership/templates/membership/membership_detail.html:45
msgid "Won"
msgstr "Gewonnen"
#: src/membership/templates/membership/membership_detail.html:43
#: src/membership/templates/membership/membership_detail.html:45
#: membership/templates/membership/membership_detail.html:43
#: membership/templates/membership/membership_detail.html:45
msgid "Good"
msgstr "Gut"
#: src/membership/templates/membership/membership_detail.html:45
#: membership/templates/membership/membership_detail.html:45
msgid "Current Season"
msgstr "Aktuelle Saison"
#: src/membership/templates/membership/membership_detail.html:55
#: membership/templates/membership/membership_detail.html:55
msgid "Edit Profile"
msgstr "Profil bearbeiten"
#: src/membership/templates/membership/membership_detail.html:59
#: src/membership/templates/registration/password_change_form.html:23
#: membership/templates/membership/membership_detail.html:59
#: membership/templates/registration/password_change_form.html:23
msgid "Change Password"
msgstr "Passwort ändern"
#: src/membership/templates/membership/membership_detail.html:63
#: src/membership/templates/membership/membership_detail.html:67
#: src/membership/templates/membership/membership_detail.html:71
#: membership/templates/membership/membership_detail.html:63
#: membership/templates/membership/membership_detail.html:67
#: membership/templates/membership/membership_detail.html:71
#, python-format
msgid "Associate with %(name)s"
msgstr "Verbinde mit %(name)s"
#: src/membership/templates/membership/membership_form.html:4
#: src/membership/templates/membership/membership_form.html:6
#: src/membership/templates/membership/membership_form.html:11
#: membership/templates/membership/membership_form.html:4
#: membership/templates/membership/membership_form.html:6
#: membership/templates/membership/membership_form.html:11
msgid "Edit Userprofile"
msgstr "Profil bearbeiten"
#: src/membership/templates/membership/membership_form.html:15
#: membership/templates/membership/membership_form.html:15
msgid "Reset"
msgstr "Zurücksetzen"
#: src/membership/templates/membership/membership_form.html:16
#: membership/templates/membership/membership_form.html:16
msgid "Save"
msgstr "Speichern"
#: src/membership/templates/membership/register_form.html:5
#: src/membership/templates/membership/register_form.html:7
#: membership/templates/membership/register_form.html:4
#: membership/templates/membership/register_form.html:6
msgid "Registration"
msgstr "Registrieren"
#: src/membership/templates/membership/register_form.html:9
#: membership/templates/membership/register_form.html:8
msgid ""
"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 "
@@ -380,46 +378,62 @@ msgstr ""
"Bitte klicke auf den Link in dieser E-Mail zur Verifizierung, erst dann ist "
"die Anmeldung möglich."
#: src/membership/templates/membership/register_form.html:20
#: membership/templates/membership/register_form.html:19
msgid "name"
msgstr "Name"
#: src/membership/templates/membership/register_form.html:26
#: src/membership/templates/registration/login.html:6
#: src/membership/templates/registration/login.html:8
#: src/membership/templates/registration/login.html:37
#: membership/templates/membership/register_form.html:25
#: membership/templates/registration/login.html:41
msgid "login"
msgstr "Anmelden"
#: src/membership/templates/membership/register_form.html:39
#: membership/templates/membership/register_form.html:38
msgid "reset"
msgstr "Zurücksetzen"
#: src/membership/templates/membership/register_form.html:41
#: src/membership/templates/registration/login.html:31
#: membership/templates/membership/register_form.html:40
#: membership/templates/registration/login.html:35
msgid "register"
msgstr "Registrieren"
#: src/membership/templates/membership/register_successful.html:5
#: src/membership/templates/membership/register_successful.html:7
#: src/membership/templates/membership/register_successful.html:10
#: membership/templates/membership/register_successful.html:5
#: membership/templates/membership/register_successful.html:7
#: membership/templates/membership/register_successful.html:10
msgid "Activation sent"
msgstr "Aktivierung wurde zugesendet"
#: src/membership/templates/registration/login.html:15
#: membership/templates/registration/login.html:4
#: membership/templates/registration/login.html:11
#: membership/templates/registration/login.html:53
#: membership/templates/registration/password_reset_complete.html:13
msgid "Login"
msgstr "Anmelden"
#: membership/templates/registration/login.html:17
msgid "Have you already registered?"
msgstr "Bereits registriert?"
#: src/membership/templates/registration/login.html:16
#: membership/templates/registration/login.html:18
#, fuzzy
#| msgid ""
#| "\n"
#| "<p>As a registered member you can:</p>\n"
#| "<ul>\n"
#| " <li>leave comments on this page.</li>\n"
#| " <li>subscribe to our Newsletter</li>\n"
#| " <li>apply to a membership to our club</li>\n"
#| " <li>club-members have access to our ranking-system</li>\n"
#| "</ul>\n"
msgid ""
"\n"
"<p>As a registered member you can:</p>\n"
"<ul>\n"
" <li>leave comments on this page.</li>\n"
" <li>subscribe to our Newsletter</li>\n"
" <li>apply to a membership to our club</li>\n"
" <li>club-members have access to our ranking-system</li>\n"
"</ul>\n"
" <p>As a registered member you can:</p>\n"
" <ul>\n"
" <li>leave comments on this page.</li>\n"
" <li>subscribe to our Newsletter</li>\n"
" <li>apply to a membership to our club</li>\n"
" <li>club-members have access to our ranking-system</li>\n"
" </ul>\n"
" "
msgstr ""
"\n"
"<p>Als registrierter auf dieser Seite kannst du:</p>\n"
@@ -431,13 +445,21 @@ msgstr ""
"li>\n"
"</ul>\n"
#: src/membership/templates/registration/login.html:25
#: membership/templates/registration/login.html:27
#, fuzzy
#| msgid ""
#| "\n"
#| "<p>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.</p>\n"
msgid ""
"\n"
"<p>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.</p>\n"
" <p>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\n"
" authentication,\n"
" you can fill out our registration form.</p>\n"
" "
msgstr ""
"\n"
"<p>Du kannst dich auch über deinen Facebook, Google, oder Twitter Account "
@@ -445,52 +467,51 @@ msgstr ""
"Wenn du so etwas nicht besitzt, oder nicht verwenden möchtest, \n"
"kannst du auch das Registrierungsformular ausfüllen.</p>\n"
#: src/membership/templates/registration/login.html:41
msgid "Your username and password didn't match. Please try again."
#: membership/templates/registration/login.html:45
#, fuzzy
#| msgid "Your username and password didn't match. Please try again."
msgid ""
"Your username and password didn't match. Please try\n"
" again."
msgstr ""
"Benutzername und Passwort stimmen nicht überein. Bitte noch einmal versuchen."
#: src/membership/templates/registration/login.html:44
#: membership/templates/registration/login.html:50
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
#: membership/templates/registration/login.html:60
msgid "or login with an existing Account"
msgstr "oder über einen existierenden Account anmelden"
#: src/membership/templates/registration/login.html:53
#: membership/templates/registration/login.html:63
msgid "Login with Facebook"
msgstr "Über Facebook anmelden"
#: src/membership/templates/registration/login.html:54
#: membership/templates/registration/login.html:66
msgid "Login with Twitter"
msgstr "Über Twitter anmelden"
#: src/membership/templates/registration/login.html:55
#: membership/templates/registration/login.html:69
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
#: membership/templates/registration/password_change_done.html:4
#: 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
#: 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
#: membership/templates/registration/password_change_form.html:4
#: membership/templates/registration/password_change_form.html:9
#: membership/templates/registration/password_change_form.html:16
msgid "Password change"
msgstr "Passwort wechseln"
#: src/membership/templates/registration/password_change_form.html:10
#: 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."
@@ -498,23 +519,23 @@ 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
#: membership/templates/registration/password_reset_complete.html:4
#: membership/templates/registration/password_reset_complete.html:6
#: 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
#: 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
#: membership/templates/registration/password_reset_confirm.html:4
#: membership/templates/registration/password_reset_confirm.html:6
#: 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
#: membership/templates/registration/password_reset_confirm.html:12
msgid ""
"Please enter your new password twice so we can verify you typed it in "
"correctly."
@@ -522,15 +543,15 @@ msgstr ""
"Bitte das Passwort zweimal eingeben, um sicher zu stellen das es korrekt "
"eingetippt wurde."
#: src/membership/templates/registration/password_reset_confirm.html:18
#: membership/templates/registration/password_reset_confirm.html:18
msgid "Change my password"
msgstr "Passwort ändern"
#: src/membership/templates/registration/password_reset_confirm.html:26
#: 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
#: 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."
@@ -538,22 +559,22 @@ 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
#: membership/templates/registration/password_reset_done.html:4
#: membership/templates/registration/password_reset_done.html:6
#: 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
#: membership/templates/registration/password_reset_form.html:4
#: membership/templates/registration/password_reset_form.html:6
msgid "Password reset"
msgstr "Passwort zurücksetzen"
#: src/membership/templates/registration/password_reset_form.html:21
#: membership/templates/registration/password_reset_form.html:21
msgid "Transmit"
msgstr "Übermitteln"
#: src/membership/views.py:58
#: membership/views.py:58
msgid ""
"Activation successful. You can now login anytime with you username "
"and password."
@@ -561,11 +582,11 @@ msgstr ""
"Die Aktivierung war erfolgreich. Du kannst dich ab jetzt jederzeit mit "
"deinem Benutzernamen und Passwort anmelden."
#: src/membership/views.py:78
#: membership/views.py:78
msgid "User Profile changed successfully"
msgstr "Benutzerprofil erfolgreich geändert."
#: src/membership/views.py:92
#: membership/views.py:92
#, python-format
msgid "No %(verbose_name)s found matching the query"
msgstr "Kein %(verbose_name)s gefunden welche der Anfrage entspricht"

View File

@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations
from django.db import models
import django.contrib.auth.models

View File

@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations
from django.db import models
class Migration(migrations.Migration):

View File

@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations
from django.db import models
class Migration(migrations.Migration):

View File

@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations
from django.db import models
import membership.models
import utils
import easy_thumbnails.fields

View File

@@ -14,6 +14,7 @@ class Migration(migrations.Migration):
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')]),
field=models.CharField(blank=True, max_length=1, null=True, verbose_name='Geschlecht', choices=[
(b'm', 'M\xe4nnlich'), (b'f', 'Weiblich')]),
),
]

View File

@@ -65,8 +65,9 @@ class ActivationManager(models.Manager):
creates a PendingActivation instance with an random activation key.
@param user: the user that requests activation.
"""
salt = str(random.random())
activation_key = hashlib.sha1(salt + user.username).hexdigest()
salt = str(user.pk * random.random()) + \
user.registration_date.isoformat()
activation_key = hashlib.sha1(salt.encode('utf-8')).hexdigest()
return self.create(user=user, activation_key=activation_key)

View File

@@ -11,7 +11,7 @@
<img class="grid_4" src="" alt="" />
<ul class="grid_8">
<li><strong>Der Aktivierungs Link ist nicht korrekt.</strong> Bitte kopiere die ganze Zeile aus der E-Mail in die Adressleiste.</li>
<li><strong>Der Aktivierungs Schlüssel ist abgelaufen.</strong> Dieser ist nur {{ expiration_days }} Tage gültig.In diesem Fall fülle das <a href="{% url 'membership-register' %}">Registrierungs Formular</a> bitte erneut aus.</p></li>
<li><strong>Der Aktivierungs Schlüssel ist abgelaufen.</strong> Dieser ist nur {{ expiration_days }} Tage gültig.In diesem Fall fülle das <a href="{% url 'membership-register' %}">Registrierungs Formular</a> bitte erneut aus.</li>
<li><strong>Der Account wurde schon aktiviert.</strong> Dies passiert sehr schnell, veruche zuerst dich mit deinen Daten <a href="{% url 'login' %}">anzumelden</a>. Sollte das nicht funktionieren, kannst du dir ja mal <a href="{% url 'password_reset' %}">neue Zugangsdaten zuschicken</a> lassen.</li>
<li><strong>Ein obskurer Fehler ist aufgetreten.</strong> In diesem Fall, nimm bitte Kontakt mit dem Webadmin auf.</li>
</ul>

View File

@@ -2,6 +2,7 @@
{% load i18n fieldset_extras %}
{% block title %}{% trans "Registration"%}{% endblock %}
{% block teaser%}
<h1>{% trans "Registration"%}</h1>
<div id="teaser_text">
@@ -41,5 +42,4 @@
</p>
</div>
</form>
{% endblock %}
{% endblock %}

View File

@@ -25,6 +25,5 @@
</div>
</form>
</fieldset>
</div>
{% endblock %}

View File

@@ -4,7 +4,8 @@ Created on 03.10.2011
@author: christian
"""
import django.contrib.auth.views as auth_views
from django.conf.urls import url, include
from django.conf.urls import include
from django.conf.urls import url
from . import views

View File

@@ -12,10 +12,14 @@ from mahjong_ranking.models import KyuDanRanking, SeasonRanking
from utils import mixins
from . import forms, models
RECAPTCHA_CSP = {
'SCRIPT_SRC': ['https://www.google.com/recaptcha/', 'https://www.gstatic.com/recaptcha/'],
'FRAME_SRC': 'https://www.google.com/recaptcha/',
'STYLE_SRC': "'unsafe-inline'"
'SCRIPT_SRC': (
'https://www.google.com/recaptcha/',
'https://www.gstatic.com/recaptcha/'
),
'CHILD_SRC': ('https://www.google.com/recaptcha/',)
}
class ActivateRegistration(generic.DetailView):
"""
Activates the Registration of an User and logs him in