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"
+#| "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.
Du kannst dich auch über deinen Facebook, Google, oder Twitter Account "
-"anmelden.\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"
+"kannst du auch das Registrierungsformular ausfüllen.
"
-#: membership/templates/registration/login.html:45
-#, fuzzy
+#: templates/registration/login.html:45
#| 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."
+"Benutzername und Passwort stimmen nicht überein. Bitte noch einmal "
+"versuchen."
-#: membership/templates/registration/login.html:50
+#: templates/registration/login.html:50
msgid "Forgot your Password?"
msgstr "Passwort vergessen?"
-#: membership/templates/registration/login.html:60
+#: templates/registration/login.html:60
msgid "or login with an existing Account"
msgstr "oder über einen existierenden Account anmelden"
-#: membership/templates/registration/login.html:63
+#: templates/registration/login.html:63
msgid "Login with Facebook"
msgstr "Über Facebook anmelden"
-#: membership/templates/registration/login.html:66
+#: templates/registration/login.html:66
msgid "Login with Twitter"
msgstr "Über Twitter anmelden"
-#: membership/templates/registration/login.html:69
+#: templates/registration/login.html:69
msgid "Login with Google"
msgstr "Über Google Anmelden"
-#: membership/templates/registration/password_change_done.html:4
-#: membership/templates/registration/password_change_done.html:7
+#: templates/registration/password_change_done.html:4
+#: templates/registration/password_change_done.html:7
msgid "Password change successful"
msgstr "Benutzerprofil erfolgreich geändert."
-#: membership/templates/registration/password_change_done.html:8
+#: templates/registration/password_change_done.html:8
msgid "Your password was changed."
msgstr "Passwort geändet"
-#: membership/templates/registration/password_change_form.html:4
-#: membership/templates/registration/password_change_form.html:9
-#: membership/templates/registration/password_change_form.html:16
+#: templates/registration/password_change_form.html:4
+#: templates/registration/password_change_form.html:9
+#: templates/registration/password_change_form.html:16
msgid "Password change"
msgstr "Passwort wechseln"
-#: membership/templates/registration/password_change_form.html:10
+#: 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."
+"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."
+"Zur Sicherheit bitte altes Passwort einmal und das gewünschte neue Passwort"
+" zweimal angeben, so können Tippfehler abgefangen werden."
-#: membership/templates/registration/password_reset_complete.html:4
-#: membership/templates/registration/password_reset_complete.html:6
-#: membership/templates/registration/password_reset_complete.html:9
+#: templates/registration/password_reset_complete.html:4
+#: templates/registration/password_reset_complete.html:6
+#: templates/registration/password_reset_complete.html:9
msgid "Password reset complete"
msgstr "Das Rücksetzen des Passwortes ist abgeschlossen."
-#: membership/templates/registration/password_reset_complete.html:10
+#: 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."
-#: membership/templates/registration/password_reset_confirm.html:4
-#: membership/templates/registration/password_reset_confirm.html:6
-#: membership/templates/registration/password_reset_confirm.html:15
+#: templates/registration/password_reset_confirm.html:4
+#: templates/registration/password_reset_confirm.html:6
+#: templates/registration/password_reset_confirm.html:15
msgid "Enter new password"
msgstr "Neues Passwort eingeben"
-#: membership/templates/registration/password_reset_confirm.html:12
+#: templates/registration/password_reset_confirm.html:12
msgid ""
"Please enter your new password twice so we can verify you typed it in "
"correctly."
@@ -543,15 +530,15 @@ msgstr ""
"Bitte das Passwort zweimal eingeben, um sicher zu stellen das es korrekt "
"eingetippt wurde."
-#: membership/templates/registration/password_reset_confirm.html:18
+#: templates/registration/password_reset_confirm.html:18
msgid "Change my password"
msgstr "Passwort ändern"
-#: membership/templates/registration/password_reset_confirm.html:26
+#: templates/registration/password_reset_confirm.html:26
msgid "Password reset unsuccessful"
msgstr "Passwort rücksetzen fehlgeschlagen"
-#: membership/templates/registration/password_reset_confirm.html:27
+#: 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."
@@ -559,22 +546,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."
-#: membership/templates/registration/password_reset_done.html:4
-#: membership/templates/registration/password_reset_done.html:6
-#: membership/templates/registration/password_reset_done.html:12
+#: templates/registration/password_reset_done.html:4
+#: templates/registration/password_reset_done.html:6
+#: templates/registration/password_reset_done.html:12
msgid "Password reset successful"
msgstr "Passwort erfolgreich zurückgesetzt."
-#: membership/templates/registration/password_reset_form.html:4
-#: membership/templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:4
+#: templates/registration/password_reset_form.html:6
msgid "Password reset"
msgstr "Passwort zurücksetzen"
-#: membership/templates/registration/password_reset_form.html:21
+#: templates/registration/password_reset_form.html:21
msgid "Transmit"
msgstr "Übermitteln"
-#: membership/views.py:63
+#: views.py:61
msgid ""
"Activation successful. You can now login anytime with you username "
"and password."
@@ -582,15 +569,14 @@ msgstr ""
"Die Aktivierung war erfolgreich. Du kannst dich ab jetzt jederzeit mit "
"deinem Benutzernamen und Passwort anmelden."
-#: membership/views.py:83
+#: views.py:88
msgid "User Profile changed successfully"
msgstr "Benutzerprofil erfolgreich geändert."
-#: membership/views.py:97
-#, fuzzy
+#: views.py:112
#| msgid "No %(verbose_name)s found matching the query"
msgid "No Membership found matching the query"
-msgstr "Kein %(verbose_name)s gefunden welche der Anfrage entspricht"
+msgstr "Keine Mitgliedschaft gefunden welche der Anfrage entspricht"
#~ msgid "Given Name"
#~ msgstr "Vorname"
@@ -599,9 +585,9 @@ msgstr "Kein %(verbose_name)s gefunden welche der Anfrage entspricht"
#~ 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."
+#~ "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 "
diff --git a/src/utils/locale/de/LC_MESSAGES/django.po b/src/utils/locale/de/LC_MESSAGES/django.po
index 6bac1e3..0a1e1d9 100644
--- a/src/utils/locale/de/LC_MESSAGES/django.po
+++ b/src/utils/locale/de/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.utils\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-06-19 22:46+0200\n"
+"POT-Creation-Date: 2018-04-27 09:49+0200\n"
"PO-Revision-Date: 2016-09-28 00:24+0200\n"
"Last-Translator: Christian Berg \n"
"Language-Team: Kasu \n"
@@ -18,999 +18,999 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.9\n"
-#: utils/__init__.py:17
+#: __init__.py:17
msgid "Rejected"
msgstr "Zurückgewiesen"
-#: utils/__init__.py:18
+#: __init__.py:18
msgid "Waiting..."
msgstr "Wartend..."
-#: utils/__init__.py:19
+#: __init__.py:19
msgid "Published"
msgstr "Veröffentlicht"
-#: utils/countries.py:4
+#: countries.py:5
msgid "United Kingdom"
msgstr "Vereinigtes Königreich"
-#: utils/countries.py:5
+#: countries.py:6
msgid "Afghanistan"
msgstr "Afghanistan"
-#: utils/countries.py:6
+#: countries.py:7
msgid "Aland Islands"
msgstr "Aland Islands"
-#: utils/countries.py:7
+#: countries.py:8
msgid "Albania"
msgstr "Albanien"
-#: utils/countries.py:8
+#: countries.py:9
msgid "Algeria"
msgstr "Algerien"
-#: utils/countries.py:9
+#: countries.py:10
msgid "American Samoa"
msgstr "Amerikanisch-Samoa"
-#: utils/countries.py:10
+#: countries.py:11
msgid "Andorra"
msgstr "Andorra"
-#: utils/countries.py:11
+#: countries.py:12
msgid "Angola"
msgstr "Angola"
-#: utils/countries.py:12
+#: countries.py:13
msgid "Anguilla"
msgstr "Anguilla"
-#: utils/countries.py:13
+#: countries.py:14
msgid "Antarctica"
msgstr "Antarktika"
-#: utils/countries.py:14
+#: countries.py:15
msgid "Antigua and Barbuda"
msgstr "Antigua und Barbuda"
-#: utils/countries.py:15
+#: countries.py:16
msgid "Argentina"
msgstr "Argentinien"
-#: utils/countries.py:16
+#: countries.py:17
msgid "Armenia"
msgstr "Armenien"
-#: utils/countries.py:17
+#: countries.py:18
msgid "Aruba"
msgstr "Aruba"
-#: utils/countries.py:18
+#: countries.py:19
msgid "Australia"
msgstr "Australien"
-#: utils/countries.py:19
+#: countries.py:20
msgid "Austria"
msgstr "Österreich"
-#: utils/countries.py:20
+#: countries.py:21
msgid "Azerbaijan"
msgstr "Aserbaidschan"
-#: utils/countries.py:21
+#: countries.py:22
msgid "Bahamas"
msgstr "Bahamas"
-#: utils/countries.py:22
+#: countries.py:23
msgid "Bahrain"
msgstr "Bahrein"
-#: utils/countries.py:23
+#: countries.py:24
msgid "Bangladesh"
msgstr "Bangladesch"
-#: utils/countries.py:24
+#: countries.py:25
msgid "Barbados"
msgstr "Barbados"
-#: utils/countries.py:25
+#: countries.py:26
msgid "Belarus"
msgstr "Weißrussland"
-#: utils/countries.py:26
+#: countries.py:27
msgid "Belgium"
msgstr "Belgien"
-#: utils/countries.py:27
+#: countries.py:28
msgid "Belize"
msgstr "Belize"
-#: utils/countries.py:28
+#: countries.py:29
msgid "Benin"
msgstr "Benin"
-#: utils/countries.py:29
+#: countries.py:30
msgid "Bermuda"
msgstr "Bermuda"
-#: utils/countries.py:30
+#: countries.py:31
msgid "Bhutan"
msgstr "Bhutan"
-#: utils/countries.py:31
+#: countries.py:32
msgid "Bolivia"
msgstr "Bolivien"
-#: utils/countries.py:32
+#: countries.py:33
msgid "Bosnia and Herzegovina"
msgstr "Bosnien und Herzegowina"
-#: utils/countries.py:33
+#: countries.py:34
msgid "Botswana"
msgstr "Botswana"
-#: utils/countries.py:34
+#: countries.py:35
msgid "Bouvet Island"
msgstr "Bouvet Island"
-#: utils/countries.py:35
+#: countries.py:36
msgid "Brazil"
msgstr "Brasilien"
-#: utils/countries.py:36
+#: countries.py:37
msgid "British Indian Ocean Territory"
msgstr "British Indian Ocean Territory"
-#: utils/countries.py:37
+#: countries.py:38
msgid "Brunei Darussalam"
msgstr "Brunei Darussalam"
-#: utils/countries.py:38
+#: countries.py:39
msgid "Bulgaria"
msgstr "Bulgarien"
-#: utils/countries.py:39
+#: countries.py:40
msgid "Burkina Faso"
msgstr "Burkina Faso"
-#: utils/countries.py:40
+#: countries.py:41
msgid "Burundi"
msgstr "Burundi"
-#: utils/countries.py:41
+#: countries.py:42
msgid "Cambodia"
msgstr "Kambodscha"
-#: utils/countries.py:42
+#: countries.py:43
msgid "Cameroon"
msgstr "Kamerun"
-#: utils/countries.py:43
+#: countries.py:44
msgid "Canada"
msgstr "Kanada"
-#: utils/countries.py:44
+#: countries.py:45
msgid "Cape Verde"
msgstr "Cape Verde"
-#: utils/countries.py:45
+#: countries.py:46
msgid "Cayman Islands"
msgstr "Cayman Islands"
-#: utils/countries.py:46
+#: countries.py:47
msgid "Central African Republic"
msgstr "Zentralafrikanische Republik"
-#: utils/countries.py:47
+#: countries.py:48
msgid "Chad"
msgstr "Tschad"
-#: utils/countries.py:48
+#: countries.py:49
msgid "Chile"
msgstr "Chile"
-#: utils/countries.py:49
+#: countries.py:50
msgid "China"
msgstr "China"
-#: utils/countries.py:50
+#: countries.py:51
msgid "Christmas Island"
msgstr "Christmas Island"
-#: utils/countries.py:51
+#: countries.py:52
msgid "Cocos (Keeling) Islands"
msgstr "Cocos (Keeling) Islands"
-#: utils/countries.py:52
+#: countries.py:53
msgid "Colombia"
msgstr "Kolumbien"
-#: utils/countries.py:53
+#: countries.py:54
msgid "Comoros"
msgstr "Komoren"
-#: utils/countries.py:54
+#: countries.py:55
msgid "Congo"
msgstr "Kongo"
-#: utils/countries.py:55
+#: countries.py:56
msgid "Congo, The Democratic Republic of the"
msgstr "Kongo, Demokratische Republik"
-#: utils/countries.py:56
+#: countries.py:57
msgid "Cook Islands"
msgstr "Cook-Inseln"
-#: utils/countries.py:57
+#: countries.py:58
msgid "Costa Rica"
msgstr "Costa Rica"
-#: utils/countries.py:58
+#: countries.py:59
msgid "Cote d'Ivoire"
msgstr "Cote d'Ivoire"
-#: utils/countries.py:59
+#: countries.py:60
msgid "Croatia"
msgstr "Kroatien"
-#: utils/countries.py:60
+#: countries.py:61
msgid "Cuba"
msgstr "Kuba"
-#: utils/countries.py:61
+#: countries.py:62
msgid "Cyprus"
msgstr "Zypern"
-#: utils/countries.py:62
+#: countries.py:63
msgid "Czech Republic"
msgstr "Tschechische Republik"
-#: utils/countries.py:63
+#: countries.py:64
msgid "Denmark"
msgstr "Dänemark"
-#: utils/countries.py:64
+#: countries.py:65
msgid "Djibouti"
msgstr "Dschibuti"
-#: utils/countries.py:65
+#: countries.py:66
msgid "Dominica"
msgstr "Dominica"
-#: utils/countries.py:66
+#: countries.py:67
msgid "Dominican Republic"
msgstr "Dominikanische Republik"
-#: utils/countries.py:67
+#: countries.py:68
msgid "Ecuador"
msgstr "Ecuador"
-#: utils/countries.py:68
+#: countries.py:69
msgid "Egypt"
msgstr "Ägypten"
-#: utils/countries.py:69
+#: countries.py:70
msgid "El Salvador"
msgstr "El Salvador"
-#: utils/countries.py:70
+#: countries.py:71
msgid "Equatorial Guinea"
msgstr "Äquatorial-Guinea"
-#: utils/countries.py:71
+#: countries.py:72
msgid "Eritrea"
msgstr "Eritrea"
-#: utils/countries.py:72
+#: countries.py:73
msgid "Estonia"
msgstr "Estland"
-#: utils/countries.py:73
+#: countries.py:74
msgid "Ethiopia"
msgstr "Äthiopien"
-#: utils/countries.py:74
+#: countries.py:75
msgid "Falkland Islands (Malvinas)"
msgstr "Falklandinseln (Malvinas)"
-#: utils/countries.py:75
+#: countries.py:76
msgid "Faroe Islands"
msgstr "Färöer-Inseln"
-#: utils/countries.py:76
+#: countries.py:77
msgid "Fiji"
msgstr "Fidschi"
-#: utils/countries.py:77
+#: countries.py:78
msgid "Finland"
msgstr "Finnland"
-#: utils/countries.py:78
+#: countries.py:79
msgid "France"
msgstr "Frankreich"
-#: utils/countries.py:79
+#: countries.py:80
msgid "French Guiana"
msgstr "Französisch-Guayana"
-#: utils/countries.py:80
+#: countries.py:81
msgid "French Polynesia"
msgstr "Französisch-Polynesien"
-#: utils/countries.py:81
+#: countries.py:82
msgid "French Southern Territories"
msgstr "Französisch Südliche Territorien"
-#: utils/countries.py:82
+#: countries.py:83
msgid "Gabon"
msgstr "Gabun"
-#: utils/countries.py:83
+#: countries.py:84
msgid "Gambia"
msgstr "Gambia"
-#: utils/countries.py:84
+#: countries.py:85
msgid "Georgia"
msgstr "Georgia"
-#: utils/countries.py:85
+#: countries.py:86
msgid "Germany"
msgstr "Deutschland"
-#: utils/countries.py:86
+#: countries.py:87
msgid "Ghana"
msgstr "Ghana"
-#: utils/countries.py:87
+#: countries.py:88
msgid "Gibraltar"
msgstr "Gibraltar"
-#: utils/countries.py:88
+#: countries.py:89
msgid "Greece"
msgstr "Griechenland"
-#: utils/countries.py:89
+#: countries.py:90
msgid "Greenland"
msgstr "Grönland"
-#: utils/countries.py:90
+#: countries.py:91
msgid "Grenada"
msgstr "Grenada"
-#: utils/countries.py:91
+#: countries.py:92
msgid "Guadeloupe"
msgstr "Guadeloupe"
-#: utils/countries.py:92
+#: countries.py:93
msgid "Guam"
msgstr "Guam"
-#: utils/countries.py:93
+#: countries.py:94
msgid "Guatemala"
msgstr "Guatemala"
-#: utils/countries.py:94
+#: countries.py:95
msgid "Guernsey"
msgstr "Guernsey"
-#: utils/countries.py:95
+#: countries.py:96
msgid "Guinea"
msgstr "Guinea"
-#: utils/countries.py:96
+#: countries.py:97
msgid "Guinea-Bissau"
msgstr "Guinea-Bissau"
-#: utils/countries.py:97
+#: countries.py:98
msgid "Guyana"
msgstr "Guyana"
-#: utils/countries.py:98
+#: countries.py:99
msgid "Haiti"
msgstr "Haiti"
-#: utils/countries.py:99
+#: countries.py:100
msgid "Heard Island and McDonald Islands"
msgstr "Heard und McDonald Inseln"
-#: utils/countries.py:100
+#: countries.py:101
msgid "Holy See (Vatican City State)"
msgstr "Heiliger Stuhl (Vatikanstadt)"
-#: utils/countries.py:101
+#: countries.py:102
msgid "Honduras"
msgstr "Honduras"
-#: utils/countries.py:102
+#: countries.py:103
msgid "Hong Kong"
msgstr "Hongkong"
-#: utils/countries.py:103
+#: countries.py:104
msgid "Hungary"
msgstr "Ungarn"
-#: utils/countries.py:104
+#: countries.py:105
msgid "Iceland"
msgstr "Island"
-#: utils/countries.py:105
+#: countries.py:106
msgid "India"
msgstr "Indien"
-#: utils/countries.py:106
+#: countries.py:107
msgid "Indonesia"
msgstr "Indonesien"
-#: utils/countries.py:107
+#: countries.py:108
msgid "Iran, Islamic Republic of"
msgstr "Iran, Islamische Republik"
-#: utils/countries.py:108
+#: countries.py:109
msgid "Iraq"
msgstr "Irak"
-#: utils/countries.py:109
+#: countries.py:110
msgid "Ireland"
msgstr "Irland"
-#: utils/countries.py:110
+#: countries.py:111
msgid "Isle of Man"
msgstr "Isle of Man"
-#: utils/countries.py:111
+#: countries.py:112
msgid "Israel"
msgstr "Israel"
-#: utils/countries.py:112
+#: countries.py:113
msgid "Italy"
msgstr "Italien"
-#: utils/countries.py:113
+#: countries.py:114
msgid "Jamaica"
msgstr "Jamaika"
-#: utils/countries.py:114
+#: countries.py:115
msgid "Japan"
msgstr "Japan"
-#: utils/countries.py:115
+#: countries.py:116
msgid "Jersey"
msgstr "Jersey"
-#: utils/countries.py:116
+#: countries.py:117
msgid "Jordan"
msgstr "Jordan"
-#: utils/countries.py:117
+#: countries.py:118
msgid "Kazakhstan"
msgstr "Kasachstan"
-#: utils/countries.py:118
+#: countries.py:119
msgid "Kenya"
msgstr "Kenia"
-#: utils/countries.py:119
+#: countries.py:120
msgid "Kiribati"
msgstr "Kiribati"
-#: utils/countries.py:120
+#: countries.py:121
msgid "Korea, Democratic People's Republic of"
msgstr "Korea, Demokratische Volksrepublik"
-#: utils/countries.py:121
+#: countries.py:122
msgid "Korea, Republic of"
msgstr "Korea, Republik"
-#: utils/countries.py:122
+#: countries.py:123
msgid "Kuwait"
msgstr "Kuwait"
-#: utils/countries.py:123
+#: countries.py:124
msgid "Kyrgyzstan"
msgstr "Kirgisistan"
-#: utils/countries.py:124
+#: countries.py:125
msgid "Lao People's Democratic Republic"
msgstr "Lao Demokratischen Volksrepublik"
-#: utils/countries.py:125
+#: countries.py:126
msgid "Latvia"
msgstr "Lettland"
-#: utils/countries.py:126
+#: countries.py:127
msgid "Lebanon"
msgstr "Libanon"
-#: utils/countries.py:127
+#: countries.py:128
msgid "Lesotho"
msgstr "Lesotho"
-#: utils/countries.py:128
+#: countries.py:129
msgid "Liberia"
msgstr "Liberia"
-#: utils/countries.py:129
+#: countries.py:130
msgid "Libyan Arab Jamahiriya"
msgstr "Libyen"
-#: utils/countries.py:130
+#: countries.py:131
msgid "Liechtenstein"
msgstr "Liechtenstein"
-#: utils/countries.py:131
+#: countries.py:132
msgid "Lithuania"
msgstr "Litauen"
-#: utils/countries.py:132
+#: countries.py:133
msgid "Luxembourg"
msgstr "Luxemburg"
-#: utils/countries.py:133
+#: countries.py:134
msgid "Macao"
msgstr "Macao"
-#: utils/countries.py:134
+#: countries.py:135
msgid "Macedonia, The Former Yugoslav Republic of"
msgstr "Mazedonien, die ehemalige jugoslawische Republik"
-#: utils/countries.py:135
+#: countries.py:136
msgid "Madagascar"
msgstr "Madagaskar"
-#: utils/countries.py:136
+#: countries.py:137
msgid "Malawi"
msgstr "Malawi"
-#: utils/countries.py:137
+#: countries.py:138
msgid "Malaysia"
msgstr "Malaysia"
-#: utils/countries.py:138
+#: countries.py:139
msgid "Maldives"
msgstr "Malediven"
-#: utils/countries.py:139
+#: countries.py:140
msgid "Mali"
msgstr "Mali"
-#: utils/countries.py:140
+#: countries.py:141
msgid "Malta"
msgstr "Malta"
-#: utils/countries.py:141
+#: countries.py:142
msgid "Marshall Islands"
msgstr "Marshall Islands"
-#: utils/countries.py:142
+#: countries.py:143
msgid "Martinique"
msgstr "Martinique"
-#: utils/countries.py:143
+#: countries.py:144
msgid "Mauritania"
msgstr "Mauretanien"
-#: utils/countries.py:144
+#: countries.py:145
msgid "Mauritius"
msgstr "Mauritius"
-#: utils/countries.py:145
+#: countries.py:146
msgid "Mayotte"
msgstr "Mayotte"
-#: utils/countries.py:146
+#: countries.py:147
msgid "Mexico"
msgstr "Mexiko"
-#: utils/countries.py:147
+#: countries.py:148
msgid "Micronesia, Federated States of"
msgstr "Mikronesien, Föderierte Staaten von"
-#: utils/countries.py:148
+#: countries.py:149
msgid "Moldova"
msgstr "Moldawien"
-#: utils/countries.py:149
+#: countries.py:150
msgid "Monaco"
msgstr "Monaco"
-#: utils/countries.py:150
+#: countries.py:151
msgid "Mongolia"
msgstr "Mongolei"
-#: utils/countries.py:151
+#: countries.py:152
msgid "Montenegro"
msgstr "Montenegro"
-#: utils/countries.py:152
+#: countries.py:153
msgid "Montserrat"
msgstr "Montserrat"
-#: utils/countries.py:153
+#: countries.py:154
msgid "Morocco"
msgstr "Marokko"
-#: utils/countries.py:154
+#: countries.py:155
msgid "Mozambique"
msgstr "Mosambik"
-#: utils/countries.py:155
+#: countries.py:156
msgid "Myanmar"
msgstr "Myanmar"
-#: utils/countries.py:156
+#: countries.py:157
msgid "Namibia"
msgstr "Namibia"
-#: utils/countries.py:157
+#: countries.py:158
msgid "Nauru"
msgstr "Nauru"
-#: utils/countries.py:158
+#: countries.py:159
msgid "Nepal"
msgstr "Nepal"
-#: utils/countries.py:159
+#: countries.py:160
msgid "Netherlands"
msgstr "Niederlande"
-#: utils/countries.py:160
+#: countries.py:161
msgid "Netherlands Antilles"
msgstr "Niederländische Antillen"
-#: utils/countries.py:161
+#: countries.py:162
msgid "New Caledonia"
msgstr "Neukaledonien"
-#: utils/countries.py:162
+#: countries.py:163
msgid "New Zealand"
msgstr "New Zealand"
-#: utils/countries.py:163
+#: countries.py:164
msgid "Nicaragua"
msgstr "Nicaragua"
-#: utils/countries.py:164
+#: countries.py:165
msgid "Niger"
msgstr "Niger"
-#: utils/countries.py:165
+#: countries.py:166
msgid "Nigeria"
msgstr "Nigeria"
-#: utils/countries.py:166
+#: countries.py:167
msgid "Niue"
msgstr "Niue"
-#: utils/countries.py:167
+#: countries.py:168
msgid "Norfolk Island"
msgstr "Norfolk Island"
-#: utils/countries.py:168
+#: countries.py:169
msgid "Northern Mariana Islands"
msgstr "Northern Mariana Islands"
-#: utils/countries.py:169
+#: countries.py:170
msgid "Norway"
msgstr "Norwegen"
-#: utils/countries.py:170
+#: countries.py:171
msgid "Oman"
msgstr "Oman"
-#: utils/countries.py:171
+#: countries.py:172
msgid "Pakistan"
msgstr "Pakistan"
-#: utils/countries.py:172
+#: countries.py:173
msgid "Palau"
msgstr "Palau"
-#: utils/countries.py:173
+#: countries.py:174
msgid "Palestinian Territory, Occupied"
msgstr "Palästinensische Autonomiegebiete"
-#: utils/countries.py:174
+#: countries.py:175
msgid "Panama"
msgstr "Panama"
-#: utils/countries.py:175
+#: countries.py:176
msgid "Papua New Guinea"
msgstr "Papua-Neuguinea"
-#: utils/countries.py:176
+#: countries.py:177
msgid "Paraguay"
msgstr "Paraguay"
-#: utils/countries.py:177
+#: countries.py:178
msgid "Peru"
msgstr "Peru"
-#: utils/countries.py:178
+#: countries.py:179
msgid "Philippines"
msgstr "Philippinen"
-#: utils/countries.py:179
+#: countries.py:180
msgid "Pitcairn"
msgstr "Pitcairn"
-#: utils/countries.py:180
+#: countries.py:181
msgid "Poland"
msgstr "Polen"
-#: utils/countries.py:181
+#: countries.py:182
msgid "Portugal"
msgstr "Portugal"
-#: utils/countries.py:182
+#: countries.py:183
msgid "Puerto Rico"
msgstr "Puerto Rico"
-#: utils/countries.py:183
+#: countries.py:184
msgid "Qatar"
msgstr "Katar"
-#: utils/countries.py:184
+#: countries.py:185
msgid "Reunion"
msgstr "Wiedervereinigung"
-#: utils/countries.py:185
+#: countries.py:186
msgid "Romania"
msgstr "Rumänien"
-#: utils/countries.py:186
+#: countries.py:187
msgid "Russian Federation"
msgstr "Russischen Föderation"
-#: utils/countries.py:187
+#: countries.py:188
msgid "Rwanda"
msgstr "Ruanda"
-#: utils/countries.py:188
+#: countries.py:189
msgid "Saint Barthelemy"
msgstr "Saint Barthelemy"
-#: utils/countries.py:189
+#: countries.py:190
msgid "Saint Helena"
msgstr "Saint Helena"
-#: utils/countries.py:190
+#: countries.py:191
msgid "Saint Kitts and Nevis"
msgstr "Saint Kitts und Nevis"
-#: utils/countries.py:191
+#: countries.py:192
msgid "Saint Lucia"
msgstr "Santa Lucia"
-#: utils/countries.py:192
+#: countries.py:193
msgid "Saint Martin"
msgstr "Santa Martin"
-#: utils/countries.py:193
+#: countries.py:194
msgid "Saint Pierre and Miquelon"
msgstr "Saint Pierre und Miquelon"
-#: utils/countries.py:194
+#: countries.py:195
msgid "Saint Vincent and the Grenadines"
msgstr "Saint Vincent und die Grenadinen"
-#: utils/countries.py:195
+#: countries.py:196
msgid "Samoa"
msgstr "Samoa"
-#: utils/countries.py:196
+#: countries.py:197
msgid "San Marino"
msgstr "San Marino"
-#: utils/countries.py:197
+#: countries.py:198
msgid "Sao Tome and Principe"
msgstr "Sao Tome und Principe"
-#: utils/countries.py:198
+#: countries.py:199
msgid "Saudi Arabia"
msgstr "Saudi-Arabien"
-#: utils/countries.py:199
+#: countries.py:200
msgid "Senegal"
msgstr "Senegal"
-#: utils/countries.py:200
+#: countries.py:201
msgid "Serbia"
msgstr "Serbien"
-#: utils/countries.py:201
+#: countries.py:202
msgid "Seychelles"
msgstr "Seychellen"
-#: utils/countries.py:202
+#: countries.py:203
msgid "Sierra Leone"
msgstr "Sierra Leone"
-#: utils/countries.py:203
+#: countries.py:204
msgid "Singapore"
msgstr "Singapur"
-#: utils/countries.py:204
+#: countries.py:205
msgid "Slovakia"
msgstr "Slowakei"
-#: utils/countries.py:205
+#: countries.py:206
msgid "Slovenia"
msgstr "Slowenien"
-#: utils/countries.py:206
+#: countries.py:207
msgid "Solomon Islands"
msgstr "Salomon-Inseln"
-#: utils/countries.py:207
+#: countries.py:208
msgid "Somalia"
msgstr "Somalia"
-#: utils/countries.py:208
+#: countries.py:209
msgid "South Africa"
msgstr "Südafrika"
-#: utils/countries.py:209
+#: countries.py:210
msgid "South Georgia and the South Sandwich Islands"
msgstr "Südgeorgien und die Südlichen Sandwichinseln"
-#: utils/countries.py:210
+#: countries.py:211
msgid "Spain"
msgstr "Spanien"
-#: utils/countries.py:211
+#: countries.py:212
msgid "Sri Lanka"
msgstr "Sri Lanka"
-#: utils/countries.py:212
+#: countries.py:213
msgid "Sudan"
msgstr "Sudan"
-#: utils/countries.py:213
+#: countries.py:214
msgid "Suriname"
msgstr "Suriname"
-#: utils/countries.py:214
+#: countries.py:215
msgid "Svalbard and Jan Mayen"
msgstr "Svalbard und Jan Mayen"
-#: utils/countries.py:215
+#: countries.py:216
msgid "Swaziland"
msgstr "Swaziland"
-#: utils/countries.py:216
+#: countries.py:217
msgid "Sweden"
msgstr "Schweden"
-#: utils/countries.py:217
+#: countries.py:218
msgid "Switzerland"
msgstr "Schweiz"
-#: utils/countries.py:218
+#: countries.py:219
msgid "Syrian Arab Republic"
msgstr "Arabische Republik Syrien"
-#: utils/countries.py:219
+#: countries.py:220
msgid "Taiwan, Province of China"
msgstr "Taiwan, Province of China"
-#: utils/countries.py:220
+#: countries.py:221
msgid "Tajikistan"
msgstr "Tadschikistan"
-#: utils/countries.py:221
+#: countries.py:222
msgid "Tanzania, United Republic of"
msgstr "Tansania, Vereinigte Republik"
-#: utils/countries.py:222
+#: countries.py:223
msgid "Thailand"
msgstr "Thailand"
-#: utils/countries.py:223
+#: countries.py:224
msgid "Timor-Leste"
msgstr "Timor-Leste"
-#: utils/countries.py:224
+#: countries.py:225
msgid "Togo"
msgstr "Togo"
-#: utils/countries.py:225
+#: countries.py:226
msgid "Tokelau"
msgstr "Tokelau"
-#: utils/countries.py:226
+#: countries.py:227
msgid "Tonga"
msgstr "Tonga"
-#: utils/countries.py:227
+#: countries.py:228
msgid "Trinidad and Tobago"
msgstr "Trinidad und Tobago"
-#: utils/countries.py:228
+#: countries.py:229
msgid "Tunisia"
msgstr "Tunesien"
-#: utils/countries.py:229
+#: countries.py:230
msgid "Turkey"
msgstr "Türkei"
-#: utils/countries.py:230
+#: countries.py:231
msgid "Turkmenistan"
msgstr "Turkmenistan"
-#: utils/countries.py:231
+#: countries.py:232
msgid "Turks and Caicos Islands"
msgstr "Turks-und Caicosinseln"
-#: utils/countries.py:232
+#: countries.py:233
msgid "Tuvalu"
msgstr "Tuvalu"
-#: utils/countries.py:233
+#: countries.py:234
msgid "Uganda"
msgstr "Uganda"
-#: utils/countries.py:234
+#: countries.py:235
msgid "Ukraine"
msgstr "Ukraine"
-#: utils/countries.py:235
+#: countries.py:236
msgid "United Arab Emirates"
msgstr "Vereinigte Arabische Emirate"
-#: utils/countries.py:236
+#: countries.py:237
msgid "United States"
msgstr "Vereinigte Staaten"
-#: utils/countries.py:237
+#: countries.py:238
msgid "United States Minor Outlying Islands"
msgstr "United States Minor Outlying Islands"
-#: utils/countries.py:238
+#: countries.py:239
msgid "Uruguay"
msgstr "Uruguay"
-#: utils/countries.py:239
+#: countries.py:240
msgid "Uzbekistan"
msgstr "Usbekistan"
-#: utils/countries.py:240
+#: countries.py:241
msgid "Vanuatu"
msgstr "Vanuatu"
-#: utils/countries.py:241
+#: countries.py:242
msgid "Venezuela"
msgstr "Venezuela"
-#: utils/countries.py:242
+#: countries.py:243
msgid "Viet Nam"
msgstr "Vietnam"
-#: utils/countries.py:243
+#: countries.py:244
msgid "Virgin Islands, British"
msgstr "Virgin Islands, British"
-#: utils/countries.py:244
+#: countries.py:245
msgid "Virgin Islands, U.S."
msgstr "Virgin Islands, US"
-#: utils/countries.py:245
+#: countries.py:246
msgid "Wallis and Futuna"
msgstr "Wallis und Futuna"
-#: utils/countries.py:246
+#: countries.py:247
msgid "Western Sahara"
msgstr "Westsahara"
-#: utils/countries.py:247
+#: countries.py:248
msgid "Yemen"
msgstr "Jemen"
-#: utils/countries.py:248
+#: countries.py:249
msgid "Zambia"
msgstr "Sambia"
-#: utils/countries.py:249
+#: countries.py:250
msgid "Zimbabwe"
msgstr "Zimbabwe"
From 4aab6110269a8af3ca1fa031c7b29d5b097edb3f Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Sat, 28 Apr 2018 11:11:12 +0200
Subject: [PATCH 06/23] requirements changed to django<2.0 for compatibility
reasons.
---
requirements/base.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/requirements/base.txt b/requirements/base.txt
index 3537068..d12b48e 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -1,5 +1,5 @@
beautifulsoup4
-django
+django<2.0
django-appconf
django-ckeditor
django-contrib-comments
@@ -18,4 +18,4 @@ pytz
requests
requests-oauthlib
social-auth-app-django
-social-auth-core
\ No newline at end of file
+social-auth-core
From 19bbb5a226f1e3bf481d54f6d2464fbbc8b11f30 Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Mon, 30 Apr 2018 10:16:04 +0200
Subject: [PATCH 07/23] All personal data can only seen by yourself.
---
.../locale/de/LC_MESSAGES/django.po | 322 +++++++++---------
.../membership/membership_detail.html | 129 ++++---
2 files changed, 216 insertions(+), 235 deletions(-)
diff --git a/src/membership/locale/de/LC_MESSAGES/django.po b/src/membership/locale/de/LC_MESSAGES/django.po
index de7d6c6..3d408f6 100644
--- a/src/membership/locale/de/LC_MESSAGES/django.po
+++ b/src/membership/locale/de/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.membership\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-11 22:50+0100\n"
-"PO-Revision-Date: 2018-01-12 15:22+0105\n"
+"POT-Creation-Date: 2018-04-30 10:10+0200\n"
+"PO-Revision-Date: 2018-04-30 10:14+0105\n"
"Last-Translator: b'Christian Berg '\n"
"Language-Team: Kasu \n"
"Language: de\n"
@@ -19,165 +19,163 @@ msgstr ""
"X-Generator: Poedit 1.8.9\n"
"X-Translated-Using: django-rosetta 0.7.14\n"
-#: src/membership/__init__.py:11
+#: __init__.py:11
msgid "Male"
msgstr "Männlich"
-#: src/membership/__init__.py:12
+#: __init__.py:12
msgid "Female"
msgstr "Weiblich"
-#: src/membership/admin.py:22
+#: admin.py:22
msgid "Activate selected User"
msgstr "Ausgewählte Benutzer freischalten"
-#: src/membership/admin.py:38
+#: admin.py:38
msgid "Cleanup selected Activation Requests"
msgstr "Ausgewählte Aktivierungsanfragen bereinigen"
-#: src/membership/admin.py:47
+#: admin.py:47
msgid "Group"
msgstr "Gruppe"
-#: src/membership/admin.py:48
+#: admin.py:48
msgid "Groups"
msgstr "Gruppen"
-#: src/membership/admin.py:72 src/membership/models.py:163
-#: src/membership/models.py:216
-#: src/membership/templates/membership/register_form.html:32
+#: admin.py:72 models.py:163 models.py:216
+#: templates/membership/register_form.html:32
msgid "Membership"
msgstr "Mitgliedschaft"
-#: src/membership/admin.py:77
+#: admin.py:77
msgid "Permissions"
msgstr "Berechtigung"
-#: src/membership/admin.py:79
+#: admin.py:79
msgid "Important dates"
msgstr "Wichtige Daten"
-#: src/membership/forms.py:23
+#: forms.py:23 templates/membership/membership_detail.html:46
msgid "birthday"
msgstr "Geburtstag"
-#: src/membership/forms.py:25
+#: forms.py:25
msgid "Input format: yyyy-mm-dd"
msgstr "Eingabeformat: tt.mm.jjjj"
-#: src/membership/forms.py:27
+#: forms.py:27 templates/membership/membership_detail.html:49
msgid "Email"
msgstr "E-Mail"
-#: src/membership/forms.py:42 src/membership/forms.py:50
-#: src/membership/forms.py:58
+#: forms.py:42 forms.py:50 forms.py:58
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:65
+#: forms.py:65
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:78
+#: forms.py:78
msgid "password"
msgstr "Passwort"
-#: src/membership/forms.py:80
+#: forms.py:80
msgid "password (again)"
msgstr "Passwort (wiederholen)"
-#: src/membership/forms.py:102
+#: forms.py:102
msgid "This username is already taken. Please choose another."
msgstr ""
"Diesen Benutzername ist schon vergeben. Bitte einen anderen auswählen."
-#: src/membership/forms.py:109
+#: forms.py:109
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:119
+#: forms.py:119
msgid "The two password fields didn't match."
msgstr "Die beiden Passwörter passen nicht."
-#: src/membership/models.py:84
+#: models.py:84
msgid "user"
msgstr "Benutzer"
-#: src/membership/models.py:86
+#: models.py:86
msgid "activation key"
msgstr "Aktivierungsschlüssel"
-#: src/membership/models.py:90
+#: models.py:90
msgid "pending activation"
msgstr "Ausstehende Aktivierung"
-#: src/membership/models.py:91
+#: models.py:91
msgid "pending activations"
msgstr "Wartende Aktivierungen"
-#: src/membership/models.py:94
+#: models.py:94
#, python-format
msgid "user registration for %s"
msgstr "Benutzerregistrierung für %s"
-#: src/membership/models.py:149
+#: models.py:149
msgid "Gender"
msgstr "Geschlecht"
-#: src/membership/models.py:165
+#: models.py:165
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:169
+#: models.py:169
msgid "Birthday Date"
msgstr "Geburtstag"
-#: src/membership/models.py:173
+#: models.py:173 templates/membership/membership_detail.html:50
msgid "Telephone"
msgstr "Telefon"
-#: src/membership/models.py:179
+#: models.py:179 templates/membership/membership_detail.html:47
msgid "Address"
msgstr "Adresse"
-#: src/membership/models.py:185
+#: models.py:185
msgid "Postcode"
msgstr "Postleitzahl"
-#: src/membership/models.py:190
+#: models.py:190
msgid "Town/City"
msgstr "Ort"
-#: src/membership/models.py:198
+#: models.py:198
msgid "Paid until"
msgstr "Bezahlt bis"
-#: src/membership/models.py:204
+#: models.py:204
msgid "Confirmed"
msgstr "Bestätigt"
-#: src/membership/models.py:206
+#: models.py:206
msgid "This person has paid the membership fee."
msgstr "Diese Person hat ihre Mitgliedschaft bezahlt"
-#: src/membership/models.py:217
+#: models.py:217
msgid "Memberships"
msgstr "Mitgliedschaften"
-#: src/membership/templates/membership/email/activation_email.txt:2
+#: 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
+#: templates/membership/email/activation_email.txt:4
#, python-format
msgid ""
"We received an account request on %(site.domain)s for your email address.\n"
@@ -186,7 +184,7 @@ 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
+#: 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"
@@ -195,7 +193,7 @@ 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
+#: templates/membership/email/activation_email.txt:12
#, python-format
msgid ""
"Best Regards,\n"
@@ -204,170 +202,185 @@ msgstr ""
"mit den besten Wünschen\n"
"Das Team von %(site.domain)s"
-#: src/membership/templates/membership/email/password_reset_email.html:2
+#: 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
+#: 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
+#: 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
+#: 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
+#: 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
+#: 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
+#: 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
+#: templates/membership/hanchan_table.html:5
msgid "Start"
msgstr "Beginn"
-#: src/membership/templates/membership/hanchan_table.html:6
+#: templates/membership/hanchan_table.html:6
msgid "Event"
msgstr "Termin"
-#: src/membership/templates/membership/hanchan_table.html:7
+#: templates/membership/hanchan_table.html:7
msgid "Players"
msgstr "Spieler"
-#: src/membership/templates/membership/hanchan_table.html:8
+#: templates/membership/hanchan_table.html:8
msgid "Kyu Points"
msgstr "Kyū Punkte"
-#: src/membership/templates/membership/hanchan_table.html:9
+#: templates/membership/hanchan_table.html:9
msgid "Dan Points"
msgstr "Dan Punkte"
-#: src/membership/templates/membership/hanchan_table.html:10
+#: templates/membership/hanchan_table.html:10
msgid "Bonus Points"
msgstr "Bonus Punkte"
-#: src/membership/templates/membership/hanchan_table.html:11
+#: templates/membership/hanchan_table.html:11
msgid "Comment"
msgstr "Anmerkung"
-#: src/membership/templates/membership/hanchan_table.html:26
+#: 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
+#: templates/membership/membership_detail.html:5
msgid "profile for"
msgstr "Profil für"
-#: src/membership/templates/membership/membership_detail.html:10
+#: templates/membership/membership_detail.html:9
msgid "Ladder Hanchans"
msgstr "Ladder Hanchans"
-#: src/membership/templates/membership/membership_detail.html:11
+#: templates/membership/membership_detail.html:10
msgid "Kyu Hanchans"
msgstr "Kyū Hanchans"
-#: src/membership/templates/membership/membership_detail.html:12
+#: templates/membership/membership_detail.html:11
msgid "Dan Hanchans"
msgstr "Dan Hanchans"
-#: src/membership/templates/membership/membership_detail.html:13
+#: templates/membership/membership_detail.html:12
msgid "Invalid Hanchans"
msgstr "Ungültige Hanchans"
-#: src/membership/templates/membership/membership_detail.html:14
+#: templates/membership/membership_detail.html:13
msgid "Mai-Star Games"
msgstr "Mai-Star Spiele"
-#: src/membership/templates/membership/membership_detail.html:20
+#: templates/membership/membership_detail.html:17
msgid "Profile Image"
msgstr "Profilbild"
-#: src/membership/templates/membership/membership_detail.html:28
-msgid "Member Since"
-msgstr "Mitglied seit"
-
-#: src/membership/templates/membership/membership_detail.html:29
-msgid "Last Login"
-msgstr "Letzte Anmeldung"
-
-#: src/membership/templates/membership/membership_detail.html:39
-#: src/membership/templates/membership/membership_detail.html:43
+#: templates/membership/membership_detail.html:26
+#: templates/membership/membership_detail.html:29
msgid "Points"
msgstr "Punkte"
-#: src/membership/templates/membership/membership_detail.html:40
+#: templates/membership/membership_detail.html:26
msgid "Maximum"
msgstr "Maximum"
-#: src/membership/templates/membership/membership_detail.html:45
+#: templates/membership/membership_detail.html:32
msgid "Games Total"
msgstr "Spiele gesamt"
-#: src/membership/templates/membership/membership_detail.html:46
-#: src/membership/templates/membership/membership_detail.html:48
+#: templates/membership/membership_detail.html:32
+#: templates/membership/membership_detail.html:35
msgid "Won"
msgstr "Gewonnen"
-#: src/membership/templates/membership/membership_detail.html:46
-#: src/membership/templates/membership/membership_detail.html:48
+#: templates/membership/membership_detail.html:32
+#: templates/membership/membership_detail.html:35
msgid "Good"
msgstr "Gut"
-#: src/membership/templates/membership/membership_detail.html:48
+#: templates/membership/membership_detail.html:35
msgid "Current Season"
msgstr "Aktuelle Saison"
-#: src/membership/templates/membership/membership_detail.html:58
+#: templates/membership/membership_detail.html:42
+msgid "private data"
+msgstr "Private Daten"
+
+#: templates/membership/membership_detail.html:43
+msgid "This data can only be seen by yourself and members of the board."
+msgstr ""
+"Diese Angaben können nur von dir selbst und von Mitgliedern des Vorstandes "
+"eingesehen werden."
+
+#: templates/membership/membership_detail.html:45
+#: templates/membership/register_form.html:20
+msgid "name"
+msgstr "Name"
+
+#: templates/membership/membership_detail.html:52
+msgid "Member Since"
+msgstr "Mitglied seit"
+
+#: templates/membership/membership_detail.html:53
+msgid "Last Login"
+msgstr "Letzte Anmeldung"
+
+#: templates/membership/membership_detail.html:64
msgid "Edit Profile"
msgstr "Profil bearbeiten"
-#: src/membership/templates/membership/membership_detail.html:62
-#: src/membership/templates/registration/password_change_form.html:23
+#: templates/membership/membership_detail.html:65
+#: templates/registration/password_change_form.html:23
msgid "Change Password"
msgstr "Passwort ändern"
-#: src/membership/templates/membership/membership_detail.html:66
-#: src/membership/templates/membership/membership_detail.html:70
-#: src/membership/templates/membership/membership_detail.html:74
+#: templates/membership/membership_detail.html:67
+#: templates/membership/membership_detail.html:69
+#: 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
+#: templates/membership/membership_form.html:4
+#: templates/membership/membership_form.html:6
+#: templates/membership/membership_form.html:11
msgid "Edit Userprofile"
msgstr "Profil bearbeiten"
-#: src/membership/templates/membership/membership_form.html:15
+#: templates/membership/membership_form.html:15
msgid "Reset"
msgstr "Zurücksetzen"
-#: src/membership/templates/membership/membership_form.html:16
+#: templates/membership/membership_form.html:16
msgid "Save"
msgstr "Speichern"
-#: src/membership/templates/membership/register_form.html:4
-#: src/membership/templates/membership/register_form.html:7
+#: templates/membership/register_form.html:4
+#: templates/membership/register_form.html:7
msgid "Registration"
msgstr "Registrieren"
-#: src/membership/templates/membership/register_form.html:9
+#: templates/membership/register_form.html:9
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 the\n"
@@ -377,51 +390,37 @@ 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."
-#: src/membership/templates/membership/register_form.html:20
-msgid "name"
-msgstr "Name"
-
-#: src/membership/templates/membership/register_form.html:26
-#: src/membership/templates/registration/login.html:41
+#: templates/membership/register_form.html:26
+#: templates/registration/login.html:41
msgid "login"
msgstr "Anmelden"
-#: src/membership/templates/membership/register_form.html:39
+#: templates/membership/register_form.html:39
msgid "reset"
msgstr "Zurücksetzen"
-#: src/membership/templates/membership/register_form.html:41
-#: src/membership/templates/registration/login.html:35
+#: templates/membership/register_form.html:41
+#: 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
+#: templates/membership/register_successful.html:5
+#: templates/membership/register_successful.html:7
+#: templates/membership/register_successful.html:10
msgid "Activation sent"
msgstr "Aktivierung wurde zugesendet"
-#: src/membership/templates/registration/login.html:4
-#: src/membership/templates/registration/login.html:11
-#: src/membership/templates/registration/login.html:53
-#: src/membership/templates/registration/password_reset_complete.html:13
+#: templates/registration/login.html:4 templates/registration/login.html:11
+#: templates/registration/login.html:53
+#: templates/registration/password_reset_complete.html:13
msgid "Login"
msgstr "Anmelden"
-#: src/membership/templates/registration/login.html:17
+#: templates/registration/login.html:17
msgid "Have you already registered?"
msgstr "Bereits registriert?"
-#: src/membership/templates/registration/login.html:18
-#| 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.
You can register here with your Google, or Facebook account.\n"
@@ -461,8 +455,7 @@ msgstr ""
"Wenn du so etwas nicht besitzt, oder nicht verwenden möchtest, \n"
"kannst du auch das Registrierungsformular ausfüllen.
"
-#: src/membership/templates/registration/login.html:45
-#| msgid "Your username and password didn't match. Please try again."
+#: templates/registration/login.html:45
msgid ""
"Your username and password didn't match. Please try\n"
" again."
@@ -470,42 +463,42 @@ msgstr ""
"Benutzername und Passwort stimmen nicht überein. Bitte noch einmal "
"versuchen."
-#: src/membership/templates/registration/login.html:50
+#: templates/registration/login.html:50
msgid "Forgot your Password?"
msgstr "Passwort vergessen?"
-#: src/membership/templates/registration/login.html:60
+#: 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:63
+#: templates/registration/login.html:63
msgid "Login with Facebook"
msgstr "Über Facebook anmelden"
-#: src/membership/templates/registration/login.html:66
+#: templates/registration/login.html:66
msgid "Login with Twitter"
msgstr "Über Twitter anmelden"
-#: src/membership/templates/registration/login.html:69
+#: 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
+#: templates/registration/password_change_done.html:4
+#: 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
+#: 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
+#: templates/registration/password_change_form.html:4
+#: templates/registration/password_change_form.html:9
+#: templates/registration/password_change_form.html:16
msgid "Password change"
msgstr "Passwort wechseln"
-#: src/membership/templates/registration/password_change_form.html:10
+#: 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."
@@ -513,23 +506,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
+#: templates/registration/password_reset_complete.html:4
+#: templates/registration/password_reset_complete.html:6
+#: 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
+#: 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
+#: templates/registration/password_reset_confirm.html:4
+#: templates/registration/password_reset_confirm.html:6
+#: templates/registration/password_reset_confirm.html:15
msgid "Enter new password"
msgstr "Neues Passwort eingeben"
-#: src/membership/templates/registration/password_reset_confirm.html:12
+#: templates/registration/password_reset_confirm.html:12
msgid ""
"Please enter your new password twice so we can verify you typed it in "
"correctly."
@@ -537,15 +530,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
+#: templates/registration/password_reset_confirm.html:18
msgid "Change my password"
msgstr "Passwort ändern"
-#: src/membership/templates/registration/password_reset_confirm.html:26
+#: 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
+#: 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."
@@ -553,22 +546,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
+#: templates/registration/password_reset_done.html:4
+#: templates/registration/password_reset_done.html:6
+#: 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
+#: templates/registration/password_reset_form.html:4
+#: templates/registration/password_reset_form.html:6
msgid "Password reset"
msgstr "Passwort zurücksetzen"
-#: src/membership/templates/registration/password_reset_form.html:21
+#: templates/registration/password_reset_form.html:21
msgid "Transmit"
msgstr "Übermitteln"
-#: src/membership/views.py:61
+#: views.py:61
msgid ""
"Activation successful. You can now login anytime with you username "
"and password."
@@ -576,12 +569,11 @@ msgstr ""
"Die Aktivierung war erfolgreich. Du kannst dich ab jetzt jederzeit mit "
"deinem Benutzernamen und Passwort anmelden."
-#: src/membership/views.py:88
+#: views.py:88
msgid "User Profile changed successfully"
msgstr "Benutzerprofil erfolgreich geändert."
-#: src/membership/views.py:112
-#| msgid "No %(verbose_name)s found matching the query"
+#: views.py:112
msgid "No Membership found matching the query"
msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
diff --git a/src/membership/templates/membership/membership_detail.html b/src/membership/templates/membership/membership_detail.html
index d1af67c..009de68 100644
--- a/src/membership/templates/membership/membership_detail.html
+++ b/src/membership/templates/membership/membership_detail.html
@@ -1,5 +1,4 @@
-{% extends "base.html" %}
-{% load i18n comments thumbnail %}
+{% extends "base.html" %}{% load i18n comments thumbnail %}
{% block title %}{{ membership.first_name }} {{membership.last_name}}{% endblock %}
@@ -7,84 +6,74 @@
{% block navigation %}
-{% endifequal %}
+{% endifequal %}
-{% block score_list %} {% endblock %}
-{% endblock %}
+{% block score_list %} {% endblock %}{% endblock %}
-{% block comments %}
-{% if membership %}
- {% render_comment_list for membership %}
- {% render_comment_form for membership %}
-{% endif %}
-{% endblock %}
+{% block comments %}{% if membership %}{% render_comment_list for membership %}{% render_comment_form for membership %}{% endif %}{% endblock %}
{% block buttonbar%}{%endblock%}
From a4c4f96c06bb2d1df1d2a53a7c1e11fb9e1f9e52 Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Mon, 30 Apr 2018 11:12:20 +0200
Subject: [PATCH 08/23] Personal data is only needed for a club membership.
---
src/membership/forms.py | 43 ++++++-------------
.../locale/de/LC_MESSAGES/django.po | 40 +++++++++--------
.../templates/membership/register_form.html | 16 +++----
3 files changed, 39 insertions(+), 60 deletions(-)
diff --git a/src/membership/forms.py b/src/membership/forms.py
index 2214837..62a0658 100644
--- a/src/membership/forms.py
+++ b/src/membership/forms.py
@@ -25,6 +25,10 @@ class MembershipForm(forms.ModelForm):
help_text=_('Input format: yyyy-mm-dd')
)
email = forms.EmailField(label=_('Email'), required=True)
+ required_membership_fields = (
+ 'first_name', 'last_name', 'birthday',
+ 'street_name', 'post_code', 'city'
+ )
class Meta:
"""get the user model dyamicly"""
@@ -35,36 +39,15 @@ class MembershipForm(forms.ModelForm):
'post_code', 'city'
)
- def clean_birthday(self):
- """If the user wants to be a member the birthday field is mandatory."""
- if self.cleaned_data['membership'] \
- and not self.cleaned_data['birthday']:
- raise forms.ValidationError(_('For your membership, we need this. \
- Please fill out this field yet.'))
- return self.cleaned_data['birthday']
+ def clean(self):
+ cleaned_data = super().clean()
+ errormsg = _('For your membership, we need this. \
+ Please fill out this field yet.')
+ membership = cleaned_data.get('membership')
+ for fieldname in self.required_membership_fields:
+ if membership and not cleaned_data.get(fieldname):
+ self.add_error(fieldname, errormsg)
- def clean_street_name(self):
- """If the user wants to be a member the address is mandatory."""
- if self.cleaned_data['membership'] \
- and not self.cleaned_data['street_name']:
- raise forms.ValidationError(_('For your membership, we need this. \
- Please fill out this field yet.'))
- return self.cleaned_data['street_name']
-
- def clean_post_code(self):
- """If the user wants to be a member the address is mandatory."""
- if self.cleaned_data['membership'] \
- and not self.cleaned_data['post_code']:
- raise forms.ValidationError(_('For your membership, we need this. \
- Please fill out this field yet.'))
- return self.cleaned_data['post_code']
-
- def clean_city(self):
- """If the user wants to be a member the address is mandatory."""
- if self.cleaned_data['membership'] and not self.cleaned_data['city']:
- raise forms.ValidationError(_('For your membership, we need this. \
- Please fill out this field yet.'))
- return self.cleaned_data['city']
class RegistrationForm(MembershipForm):
@@ -122,7 +105,7 @@ class RegistrationForm(MembershipForm):
def save(self, commit=True):
""" Create the new User, set him/her inactive, create an acitivation
request for the user and send him/her an activation email.
-
+
:param commit: commit the SQL and send the email if True
:return: the created User Object
"""
diff --git a/src/membership/locale/de/LC_MESSAGES/django.po b/src/membership/locale/de/LC_MESSAGES/django.po
index 3d408f6..dfb5e8d 100644
--- a/src/membership/locale/de/LC_MESSAGES/django.po
+++ b/src/membership/locale/de/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.membership\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-30 10:10+0200\n"
-"PO-Revision-Date: 2018-04-30 10:14+0105\n"
+"POT-Creation-Date: 2018-04-30 10:57+0200\n"
+"PO-Revision-Date: 2018-04-30 10:59+0105\n"
"Last-Translator: b'Christian Berg '\n"
"Language-Team: Kasu \n"
"Language: de\n"
@@ -44,7 +44,6 @@ msgid "Groups"
msgstr "Gruppen"
#: admin.py:72 models.py:163 models.py:216
-#: templates/membership/register_form.html:32
msgid "Membership"
msgstr "Mitgliedschaft"
@@ -68,38 +67,32 @@ msgstr "Eingabeformat: tt.mm.jjjj"
msgid "Email"
msgstr "E-Mail"
-#: forms.py:42 forms.py:50 forms.py:58
+#: forms.py:44
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:65
-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:78
+#: forms.py:61
msgid "password"
msgstr "Passwort"
-#: forms.py:80
+#: forms.py:63
msgid "password (again)"
msgstr "Passwort (wiederholen)"
-#: forms.py:102
+#: forms.py:85
msgid "This username is already taken. Please choose another."
msgstr ""
"Diesen Benutzername ist schon vergeben. Bitte einen anderen auswählen."
-#: forms.py:109
+#: forms.py:92
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:119
+#: forms.py:102
msgid "The two password fields didn't match."
msgstr "Die beiden Passwörter passen nicht."
@@ -333,7 +326,6 @@ msgstr ""
"eingesehen werden."
#: templates/membership/membership_detail.html:45
-#: templates/membership/register_form.html:20
msgid "name"
msgstr "Name"
@@ -390,16 +382,21 @@ 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:26
+#: templates/membership/register_form.html:20
#: templates/registration/login.html:41
msgid "login"
msgstr "Anmelden"
-#: templates/membership/register_form.html:39
+#: templates/membership/register_form.html:26
+#| msgid "Membership"
+msgid "Club membership"
+msgstr "Vereinsmitgliedschaft"
+
+#: templates/membership/register_form.html:33
msgid "reset"
msgstr "Zurücksetzen"
-#: templates/membership/register_form.html:41
+#: templates/membership/register_form.html:35
#: templates/registration/login.html:35
msgid "register"
msgstr "Registrieren"
@@ -577,6 +574,11 @@ msgstr "Benutzerprofil erfolgreich geändert."
msgid "No Membership found matching the query"
msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
+#~ 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."
+
#~ msgid "Given Name"
#~ msgstr "Vorname"
diff --git a/src/membership/templates/membership/register_form.html b/src/membership/templates/membership/register_form.html
index 59519bf..eadc98e 100644
--- a/src/membership/templates/membership/register_form.html
+++ b/src/membership/templates/membership/register_form.html
@@ -16,21 +16,15 @@
{% block maincontent %}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
From 90cefd87394e275bc9927b0586d8997f4e32367c Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Mon, 30 Apr 2018 11:37:32 +0200
Subject: [PATCH 09/23] Track without cookies.
---
src/kasu/static/js/piwik.js | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/kasu/static/js/piwik.js b/src/kasu/static/js/piwik.js
index 23d43a5..5ebbf1a 100644
--- a/src/kasu/static/js/piwik.js
+++ b/src/kasu/static/js/piwik.js
@@ -4,10 +4,12 @@
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
- var u="//kasu.at/piwik/";
+ var u="/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '1']);
+ _paq.push(['disableCookies']);
+ _paq.push(['trackPageView']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
-/* End Piwik Code */
\ No newline at end of file
+/* End Piwik Code */
From 10bb990539c0b99c3c7837de6d217c1be2527b00 Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Tue, 1 May 2018 20:27:22 +0200
Subject: [PATCH 10/23] Don't display members real name anywhere!
---
.../templates/mahjong_ranking/kyudanranking_list.html | 6 ------
1 file changed, 6 deletions(-)
diff --git a/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html b/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html
index c1e3f28..b4cd34f 100755
--- a/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html
+++ b/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html
@@ -20,11 +20,6 @@
{% trans 'Nickname' %}
-
{% if user.is_authenticated %}{{player.user.last_name}} {{player.user.first_name}}{% else %}---{% endif %}
{{player.avg_placement|floatformat:2 }}
{{player.avg_score|floatformat:0|intcomma }}
{{player.hanchan_count}}
@@ -57,4 +55,4 @@
{% endfor %}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
From 595341a53b4b06caa99052b65ea2acc4d34e15f3 Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Thu, 3 May 2018 09:45:06 +0200
Subject: [PATCH 12/23] Added a admin action to cleanup personal data from
inactive members.
---
src/membership/admin.py | 38 +++++++++++++++++--
.../locale/de/LC_MESSAGES/django.po | 34 ++++++++++++-----
src/membership/models.py | 10 +++--
3 files changed, 64 insertions(+), 18 deletions(-)
diff --git a/src/membership/admin.py b/src/membership/admin.py
index d2daa27..22ab74b 100644
--- a/src/membership/admin.py
+++ b/src/membership/admin.py
@@ -1,11 +1,11 @@
""" Admin Interface to manage the memberships."""
# import stuff we need from django
-from django.contrib import admin
+from django.contrib import admin, messages
from django.contrib.auth.admin import UserAdmin, GroupAdmin
from django.contrib.auth.models import Group
+from django.core.exceptions import PermissionDenied
from django.utils.translation import ugettext as _
from easy_thumbnails import fields, widgets
-
from membership.models import Membership, ActivationRequest
@@ -16,13 +16,14 @@ def activate_user(modeladmin, request, queryset):
:param request: An HttpRequest representing the current request.
:param queryset: A QuerySet containing the objects selected by the user.
"""
- [activation.activate() for activation in queryset ]
+ [activation.activate() for activation in queryset]
activate_user.short_description = _('Activate selected User')
-def cleanup_activation(modeladmin, request, queryset): # Ignore PyLintBear (W0613)
+def cleanup_activation(modeladmin, request,
+ queryset): # Ignore PyLintBear (W0613)
"""Delete every selected activation request that has been expired.
:param modeladmin: The ModelAdmin that triggered this action.
@@ -38,6 +39,33 @@ cleanup_activation.short_description = _(
"Cleanup selected Activation Requests")
+def clear_personal_data(modeladmin, request, queryset):
+ """deactivates the account and removes all personal user information.
+
+ :param modeladmin: The ModelAdmin that triggered this action.
+ :param request: An HttpRequest representing the current request.
+ :param queryset: A QuerySet containing the objects selected by the user.
+ """
+ cleared_memberships = 0
+ if not modeladmin.has_delete_permission(request):
+ raise PermissionDenied
+ for membership in queryset:
+ if membership.membership == False:
+ [ setattr(membership, fieldname, None) for fieldname in membership.nullable_personal_data ]
+ [ setattr(membership, fieldname, "") for fieldname in membership.blankable_personal_data ]
+ membership.is_active = False
+ membership.confirmed = False
+ membership.membership = False
+ membership.save()
+ cleared_memberships += 1
+ else:
+ modeladmin.message_user(request, _("Can't remove personal data from active member %s.") % membership.username, messages.ERROR)
+ if cleared_memberships > 0:
+ modeladmin.message_user(request, _("Cleared %d personal data profiles.") % cleared_memberships, messages.INFO)
+
+clear_personal_data.short_description = _("Clear personal Data")
+
+
class ProxyGroup(Group):
"""A Proxy to list Usergroups from django.contrib.auth here."""
@@ -50,6 +78,8 @@ class ProxyGroup(Group):
class MembershipAdmin(UserAdmin):
"""Admin interface to manage membership. e.g. users."""
+ actions = [clear_personal_data, ]
+
formfield_overrides = {
fields.ThumbnailerImageField: {
'widget': widgets.ImageClearableFileInput},
diff --git a/src/membership/locale/de/LC_MESSAGES/django.po b/src/membership/locale/de/LC_MESSAGES/django.po
index dfb5e8d..a922f6c 100644
--- a/src/membership/locale/de/LC_MESSAGES/django.po
+++ b/src/membership/locale/de/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.membership\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-30 10:57+0200\n"
-"PO-Revision-Date: 2018-04-30 10:59+0105\n"
+"POT-Creation-Date: 2018-05-03 09:36+0200\n"
+"PO-Revision-Date: 2018-05-03 09:39+0105\n"
"Last-Translator: b'Christian Berg '\n"
"Language-Team: Kasu \n"
"Language: de\n"
@@ -31,27 +31,42 @@ msgstr "Weiblich"
msgid "Activate selected User"
msgstr "Ausgewählte Benutzer freischalten"
-#: admin.py:38
+#: admin.py:39
msgid "Cleanup selected Activation Requests"
msgstr "Ausgewählte Aktivierungsanfragen bereinigen"
-#: admin.py:47
+#: admin.py:62
+#, python-format
+msgid "Can't remove personal data from active member %s."
+msgstr ""
+"Persönliche Daten von aktiven Mitglied %s können nicht entfernt werden."
+
+#: admin.py:64
+#, python-format
+msgid "Cleared %d personal data profiles."
+msgstr "Persönliche Daten in %d Profilen entfernt."
+
+#: admin.py:66
+msgid "Clear personal Data"
+msgstr "Persönliche Daten bereinigen"
+
+#: admin.py:75
msgid "Group"
msgstr "Gruppe"
-#: admin.py:48
+#: admin.py:76
msgid "Groups"
msgstr "Gruppen"
-#: admin.py:72 models.py:163 models.py:216
+#: admin.py:102 models.py:163 models.py:218
msgid "Membership"
msgstr "Mitgliedschaft"
-#: admin.py:77
+#: admin.py:107
msgid "Permissions"
msgstr "Berechtigung"
-#: admin.py:79
+#: admin.py:109
msgid "Important dates"
msgstr "Wichtige Daten"
@@ -159,7 +174,7 @@ msgstr "Bestätigt"
msgid "This person has paid the membership fee."
msgstr "Diese Person hat ihre Mitgliedschaft bezahlt"
-#: models.py:217
+#: models.py:219
msgid "Memberships"
msgstr "Mitgliedschaften"
@@ -388,7 +403,6 @@ msgid "login"
msgstr "Anmelden"
#: templates/membership/register_form.html:26
-#| msgid "Membership"
msgid "Club membership"
msgstr "Vereinsmitgliedschaft"
diff --git a/src/membership/models.py b/src/membership/models.py
index 7b746d2..6aa9669 100644
--- a/src/membership/models.py
+++ b/src/membership/models.py
@@ -7,8 +7,8 @@ from os import path
from django.conf import settings
from django.contrib.auth.models import AbstractUser
-from django.urls import reverse
from django.db import models
+from django.urls import reverse
from django.utils import timezone
from django.utils.translation import ugettext as _
from easy_thumbnails.fields import ThumbnailerImageField
@@ -150,7 +150,7 @@ class Membership(AbstractUser):
max_length=1,
choices=GENDER_CHOICES,
blank=True,
- null=True
+ null=True,
)
website = models.URLField(blank=True)
avatar = ThumbnailerImageField(
@@ -206,8 +206,10 @@ class Membership(AbstractUser):
help_text=_('This person has paid the membership fee.')
)
- # comment = models.TextField(blank=True)
- # objects = MembershipManager()
+ nullable_personal_data = (
+ 'gender', 'birthday', 'telephone', 'street_name', 'post_code', 'city')
+ blankable_personal_data = (
+ 'email', 'password', 'first_name', 'last_name', 'website',)
class Meta(object):
"""To manage object ordering and dispalynames on the admin interface."""
From f2533273e906828b94591317ad441bf726c3e5cc Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Thu, 3 May 2018 10:12:23 +0200
Subject: [PATCH 13/23] You can only fill in your personal data if you apply
for a full membership.
---
src/membership/forms.py | 2 +-
.../templates/membership/register_form.html | 16 +++++++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/membership/forms.py b/src/membership/forms.py
index 62a0658..9ade0e2 100644
--- a/src/membership/forms.py
+++ b/src/membership/forms.py
@@ -69,7 +69,7 @@ class RegistrationForm(MembershipForm):
fields = ('first_name', 'last_name', 'username', 'email',
'username', 'gender', 'first_name', 'last_name', 'email',
'avatar',
- 'website', 'membership', 'birthday', 'telephone',
+ 'membership', 'birthday', 'telephone',
'street_name',
'post_code', 'city'
)
diff --git a/src/membership/templates/membership/register_form.html b/src/membership/templates/membership/register_form.html
index eadc98e..a6983ea 100644
--- a/src/membership/templates/membership/register_form.html
+++ b/src/membership/templates/membership/register_form.html
@@ -24,7 +24,7 @@
@@ -36,4 +36,18 @@
+
{% endblock %}
From df4d8c83a686123f08dad184dc11fa81b549be9c Mon Sep 17 00:00:00 2001
From: Xeniac
Date: Thu, 3 May 2018 10:32:27 +0200
Subject: [PATCH 14/23] First draft of a disclaimer (german)
---
.../templates/membership/register_form.html | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/membership/templates/membership/register_form.html b/src/membership/templates/membership/register_form.html
index a6983ea..43e8842 100644
--- a/src/membership/templates/membership/register_form.html
+++ b/src/membership/templates/membership/register_form.html
@@ -28,6 +28,23 @@
{% with form2 as form %}{% include "form.html" %}{% endwith %}
+
+ Datenschutzhinweis:
+
+
Der angegebene Benutzername wird auf dieser Homepage öffentlich
+ gemacht.
+
Die E-Mail Adresse wird nur für die Verifizierung und dringende
+ persönliche Mitteilungen verwendet.
+
Die Passwörter werden nach modernsten Sicherheitsstandards
+ verschlüsselt
+ abgespeichert und sind nach aktuellen Status nicht knackbar.
+
Alle anderen Angaben sind nur für Vereinsmitglieder von Belang und
+ werden vertraulich behandelt. Nur Vorstandsmitglieder haben Zugriff
+ auf diese Daten und sie werden nicht ohne vorheriger Genemigung mit
+ anderen Personen oder Organisationen geteilt.