Compare commits
115 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d3c47d8b3 | |||
| 95f5e0b920 | |||
| b12203911e | |||
| a733130b65 | |||
| 483e6f215d | |||
| 2bdf8c9692 | |||
| 36e24b7da8 | |||
| 79a5cdb868 | |||
| 5ed8976074 | |||
| 12930c2ec6 | |||
| e792da7459 | |||
| b01dc33cb4 | |||
| 1bdce47375 | |||
| bb7d4c8a08 | |||
| a3ac722acf | |||
| 1313d96e8f | |||
| f2836baae5 | |||
| d67719cc17 | |||
| 12773463a6 | |||
| ba4620705f | |||
| 40d2120d7e | |||
| f7e9585932 | |||
| 99ceb54db1 | |||
| f841c1736e | |||
| 436a77d036 | |||
| a10b2706c3 | |||
| afc471d27f | |||
| 1d18356c8c | |||
| 5a32dbf0af | |||
| 65b8208987 | |||
| 4f61b1e73b | |||
| df4d8c83a6 | |||
| f2533273e9 | |||
| 595341a53b | |||
| af46768e7d | |||
| 10bb990539 | |||
| 90cefd8739 | |||
| a4c4f96c06 | |||
| 19bbb5a226 | |||
| 3a3c8ec0c5 | |||
| 4aab611026 | |||
| d5995bc612 | |||
| 3ef947f128 | |||
| 28f7292c9d | |||
| 7b631230da | |||
| 6804319c28 | |||
| a2df81d62e | |||
| afd163298c | |||
| cce6ac6014 | |||
| 192721452e | |||
| 10c27784ee | |||
| 8ab99ec039 | |||
| 1fdf88c6d2 | |||
| b20b988e5d | |||
| cf0e5e778c | |||
| c7b714c41b | |||
| f51155cfac | |||
| 1315bc4225 | |||
| 97749bfd2e | |||
| 84880281c6 | |||
| cffbd30d7e | |||
| 3a611ca9da | |||
| 68c484afc9 | |||
| 92470514c4 | |||
| d33e5fc8c6 | |||
| bb110da5a2 | |||
| 35a51091bf | |||
| c0c48f950a | |||
| d9e0d5596c | |||
| a3c02ae73a | |||
| e6f2528a0e | |||
| 638ec96c25 | |||
| 34d327f183 | |||
| 002eb40ea5 | |||
| d97c9db539 | |||
| 7ef69849a4 | |||
| 8719c2377a | |||
| abeb86d48f | |||
| 42a6ebedf9 | |||
| b3ab9798b5 | |||
| ce218080b2 | |||
| 63e099b7c5 | |||
| a26a91c360 | |||
| cf0bbb4c8f | |||
| 321531c160 | |||
| 5437b7b8de | |||
| 10bdaaa98c | |||
| 9b4ab374c6 | |||
| ae87414584 | |||
| 120b4ea17f | |||
| fcb15c7e7e | |||
| 299418ee62 | |||
| e5f0d7f6fe | |||
| 53974dcd48 | |||
| 222dd060b1 | |||
| bbe16b2d13 | |||
| ba44e97e9a | |||
| 8595959872 | |||
| 9b0967adc8 | |||
| ac78dc3d75 | |||
| 57b7d5a84b | |||
| 6b37aa84b0 | |||
|
|
0c7bd466c7 | ||
| 0bdd409dc2 | |||
|
|
9c4ec20394 | ||
|
|
6f1512906d | ||
|
|
12c9a6e0e9 | ||
|
|
8cac20dd2b | ||
|
|
b1586efbab | ||
|
|
088efe2f39 | ||
|
|
b9ec418e5e | ||
|
|
836eee983d | ||
|
|
79eaeb34ad | ||
|
|
bafbf38612 | ||
|
|
b96b485b61 |
2
.coafile
2
.coafile
@@ -5,4 +5,4 @@ language = python
|
|||||||
bears = PEP8Bear,PyLintBear,PyUnusedCodeBear
|
bears = PEP8Bear,PyLintBear,PyUnusedCodeBear
|
||||||
use_spaces = True
|
use_spaces = True
|
||||||
pylint_cli_options = --load-plugins pylint_django
|
pylint_cli_options = --load-plugins pylint_django
|
||||||
pylint_disable = E1101,R0201,R0901,R0903
|
#pylint_disable = E1101,R0201,R0901,R0903
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -71,3 +71,4 @@ backup/
|
|||||||
.[a-zA-Z]*
|
.[a-zA-Z]*
|
||||||
local_settings.py
|
local_settings.py
|
||||||
sample.xlsx
|
sample.xlsx
|
||||||
|
venv/
|
||||||
|
|||||||
80
Makefile
Normal file
80
Makefile
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
ASSESTS=requirements static
|
||||||
|
DEV_REQUIREMENTS=requirements/development.txt
|
||||||
|
DJANGO_SETTINGS_MODULE="kasu.settings"
|
||||||
|
EXCLUDE_FILES=*.pyc
|
||||||
|
PROJECT_PATH=$(CURDIR)
|
||||||
|
PYTHON=${VENV_PATH}/bin/python3
|
||||||
|
REQUIREMENTS=requirements/base.txt
|
||||||
|
SRC_PATH=${PROJECT_PATH}/src
|
||||||
|
MANAGE_PY=${PYTHON} -Wa ${SRC_PATH}/manage.py
|
||||||
|
SSH_LOGIN=kasu@kasu.at
|
||||||
|
VENV_PATH=$(PROJECT_PATH)/venv
|
||||||
|
|
||||||
|
.PHONY: clean venv
|
||||||
|
|
||||||
|
all: cleanup migrate testserver
|
||||||
|
|
||||||
|
venv: $(VENV_PATH)/bin/activate
|
||||||
|
$(VENV_PATH)/bin/activate:
|
||||||
|
@test -d $(VENV_PATH) || python3 -m venv --clear $(VENV_PATH)
|
||||||
|
|
||||||
|
dev-requirements: venv ${DEV_REQUIREMENTS}
|
||||||
|
${PYTHON} -m pip install -qU pip
|
||||||
|
${PYTHON} -m pip install -qUr ${DEV_REQUIREMENTS}
|
||||||
|
|
||||||
|
requirements: venv ${REQUIREMENTS}
|
||||||
|
${PYTHON} -m pip install -qU pip
|
||||||
|
${PYTHON} -m pip install -qUr ${REQUIREMENTS}
|
||||||
|
|
||||||
|
grunt:
|
||||||
|
-grunt
|
||||||
|
|
||||||
|
requirements_remote:
|
||||||
|
@echo "Installing requirements"
|
||||||
|
ssh ${SSH_LOGIN} "virtualenv/bin/pip install -qUr ${REQUIREMENTS}"
|
||||||
|
|
||||||
|
sync_assets:
|
||||||
|
@echo "Syncing project assets ..."
|
||||||
|
rsync -qr --copy-links --delete ${ASSESTS} ${SSH_LOGIN}:~/
|
||||||
|
|
||||||
|
sync_src:
|
||||||
|
@echo "Syncing Sourcecode ..."
|
||||||
|
find . -name EXCLUDE_FILES -exec rm -rf {} \;
|
||||||
|
rsync -qr --copy-links --delete ${SRC_PATH} ${SSH_LOGIN}:~/ --exclude 'src/kasu/local_settings.py'
|
||||||
|
|
||||||
|
restart_remote:
|
||||||
|
@echo "Rebuild and reload django..."
|
||||||
|
ssh ${SSH_LOGIN} "~/virtualenv/bin/python ~/src/manage.py collectstatic -l --noinput -v0"
|
||||||
|
ssh ${SSH_LOGIN} "~/init/kasu restart"
|
||||||
|
|
||||||
|
sync: sync_assets requirements_remote sync_src restart_remote
|
||||||
|
|
||||||
|
testserver: venv
|
||||||
|
${MANAGE_PY} runserver 127.0.0.1:8000
|
||||||
|
|
||||||
|
messages: venv
|
||||||
|
@echo "aktualisiere Übersetzungen..."
|
||||||
|
@(for d in ${SRC_PATH}/*; do \
|
||||||
|
test -d $$d/locale && cd $$d && ${VENV_PATH}/bin/django-admin.py makemessages -l de;\
|
||||||
|
done)
|
||||||
|
${MANAGE_PY} compilemessages -v0
|
||||||
|
|
||||||
|
cleanup-pyc:
|
||||||
|
@echo "lösche den Python Compiler Cache..."
|
||||||
|
find ${SRC_PATH} -name ${EXCLUDE_FILES} -exec rm -rf {} \;
|
||||||
|
|
||||||
|
collectstatic: venv
|
||||||
|
@echo "aktualisiere Statics"
|
||||||
|
${MANAGE_PY} collectstatic --noinput -c -v0
|
||||||
|
|
||||||
|
thumbnails: venv
|
||||||
|
@echo "Erstelle Vorschaubilder"
|
||||||
|
${MANAGE_PY} thumbnail_cleanup
|
||||||
|
|
||||||
|
cleanup: requirements messages cleanup-pyc collectstatic thumbnails
|
||||||
|
|
||||||
|
migrate: venv
|
||||||
|
${MANAGE_PY} migrate
|
||||||
|
|
||||||
|
migrations: venv
|
||||||
|
${MANAGE_PY} makemigrations
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
source .virtualenv/bin/activate
|
|
||||||
echo "aktualisiere Übersetzungen..."
|
|
||||||
cd src
|
|
||||||
unset DJANGO_SETTINGS_MODULE
|
|
||||||
for dir in *
|
|
||||||
do
|
|
||||||
if [ -d ${dir}/locale ]
|
|
||||||
then
|
|
||||||
echo -n "$dir: "
|
|
||||||
cd ${dir}
|
|
||||||
django-admin.py makemessages -l de
|
|
||||||
cd ..
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
sleep 5s
|
|
||||||
export DJANGO_SETTINGS_MODULE="kasu.settings"
|
|
||||||
./manage.py compilemessages
|
|
||||||
|
|
||||||
echo "lösche den Python Compiler Cache..."
|
|
||||||
find . -name "*.pyc" -exec rm -rf {} \;
|
|
||||||
echo "Aktualisiere Statics"
|
|
||||||
./manage.py collectstatic --noinput -c
|
|
||||||
echo "Erstelle Vorschaubilder"
|
|
||||||
./manage.py thumbnail_cleanup
|
|
||||||
touch kasu/wsgi.py
|
|
||||||
23
bin/sync.sh
23
bin/sync.sh
@@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
SSH_LOGIN="kasu@s21.wservices.ch"
|
|
||||||
SYNC_ASSESTS="requirements static"
|
|
||||||
SYNC_SOURCECODE="src"
|
|
||||||
EXCLUDE_FILES="*.pyc"
|
|
||||||
|
|
||||||
grunt
|
|
||||||
|
|
||||||
echo "Syncing project assets ..."
|
|
||||||
rsync -r --copy-links --delete ${SYNC_ASSESTS} ${SSH_LOGIN}:~/
|
|
||||||
|
|
||||||
echo "Installing dependecies"
|
|
||||||
ssh ${SSH_LOGIN} "virtualenv/bin/pip install --upgrade -r requirements/base.txt"
|
|
||||||
|
|
||||||
echo "Syncing Sourcecode ..."
|
|
||||||
find . -name "*.pyc" -exec rm -rf {} \;
|
|
||||||
rsync -r --copy-links --delete ${SYNC_SOURCECODE} ${SSH_LOGIN}:~/ --exclude 'src/kasu/local_settings.py'
|
|
||||||
|
|
||||||
echo "Rebuild and reload django..."
|
|
||||||
ssh ${SSH_LOGIN} "rm src/kasu/settings/development.*"
|
|
||||||
ssh ${SSH_LOGIN} "~/virtualenv/bin/python ~/src/manage.py collectstatic -l --noinput -v1"
|
|
||||||
ssh ${SSH_LOGIN} "~/init/kasu restart"
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
export DJANGO_SETTINGS_MODULE=kasu.settings
|
|
||||||
source .virtualenv/bin/activate
|
|
||||||
./manage.py runserver 0.0.0.0:8000
|
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
beautifulsoup4
|
beautifulsoup4
|
||||||
django < 2.0
|
django < 3.0
|
||||||
django-appconf
|
django-appconf
|
||||||
django-ckeditor
|
django-ckeditor
|
||||||
django-contrib-comments
|
django-contrib-comments
|
||||||
@@ -8,11 +8,12 @@ django-compressor
|
|||||||
django-extra-views
|
django-extra-views
|
||||||
django-markdown
|
django-markdown
|
||||||
django-recaptcha
|
django-recaptcha
|
||||||
easy-thumbnails
|
git+https://github.com/SmileyChris/easy-thumbnails.git
|
||||||
icalendar
|
icalendar
|
||||||
|
openpyxl
|
||||||
markdown
|
markdown
|
||||||
pillow
|
pillow
|
||||||
psycopg2
|
psycopg2-binary
|
||||||
PyJWT
|
PyJWT
|
||||||
pytz
|
pytz
|
||||||
requests
|
requests
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ django-rosetta
|
|||||||
sqlparse
|
sqlparse
|
||||||
|
|
||||||
# Code Linting
|
# Code Linting
|
||||||
coala-bears
|
pylint>=2.0
|
||||||
pylint-django
|
pylint-django
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ from django.core.cache import cache
|
|||||||
from . import models
|
from . import models
|
||||||
from utils import STATUS_PUBLISHED
|
from utils import STATUS_PUBLISHED
|
||||||
|
|
||||||
|
|
||||||
def content_menus(request):
|
def content_menus(request):
|
||||||
""" Generate the menu tree and add these info to the template context.
|
""" Generate the menu tree and add these info to the template context.
|
||||||
|
|
||||||
@@ -18,8 +19,8 @@ def content_menus(request):
|
|||||||
:param request: a Django request object
|
:param request: a Django request object
|
||||||
:return: a dict with the template variables mentioned above
|
:return: a dict with the template variables mentioned above
|
||||||
"""
|
"""
|
||||||
current_page = None
|
current_page = models.Page()
|
||||||
current_top_page = None
|
current_top_page = models.Page()
|
||||||
current_path = request.path_info[1:request.path_info.rfind('.')]
|
current_path = request.path_info[1:request.path_info.rfind('.')]
|
||||||
|
|
||||||
# erzeuge das Top-Level Menü
|
# erzeuge das Top-Level Menü
|
||||||
|
|||||||
Binary file not shown.
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.content\n"
|
"Project-Id-Version: kasu.content\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-05-08 00:17+0200\n"
|
"POT-Creation-Date: 2019-12-13 23:38+0100\n"
|
||||||
"PO-Revision-Date: 2018-01-12 15:25+0105\n"
|
"PO-Revision-Date: 2018-01-12 15:25+0105\n"
|
||||||
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
||||||
"Language-Team: Deutsch <>\n"
|
"Language-Team: Deutsch <>\n"
|
||||||
@@ -20,252 +20,245 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 1.8.9\n"
|
"X-Generator: Poedit 1.8.9\n"
|
||||||
"X-Translated-Using: django-rosetta 0.7.14\n"
|
"X-Translated-Using: django-rosetta 0.7.14\n"
|
||||||
|
|
||||||
#: .\content\feeds.py:18
|
#: feeds.py:18
|
||||||
msgid "Current news from Kasu"
|
msgid "Current news from Kasu"
|
||||||
msgstr "Aktuelle Nachrichten von Kasu"
|
msgstr "Aktuelle Nachrichten von Kasu"
|
||||||
|
|
||||||
#: .\content\feeds.py:51
|
#: feeds.py:51
|
||||||
msgid "Latest comments on kasu.at"
|
msgid "Latest comments on kasu.at"
|
||||||
msgstr "Neueste Kommentare auf Kasu.at "
|
msgstr "Neueste Kommentare auf Kasu.at "
|
||||||
|
|
||||||
#: .\content\feeds.py:52
|
#: feeds.py:52
|
||||||
msgid "Kasu - latest comments"
|
msgid "Kasu - latest comments"
|
||||||
msgstr "Kasu - neue Kommentare"
|
msgstr "Kasu - neue Kommentare"
|
||||||
|
|
||||||
#: .\content\forms.py:57 .\content\models.py:318
|
#: forms.py:57 models.py:318
|
||||||
msgid "Please upload a PDF-File to this PDF-Page."
|
msgid "Please upload a PDF-File to this PDF-Page."
|
||||||
msgstr "Bitte eine PDF Datei für diese PDF Seite hochladen."
|
msgstr "Bitte eine PDF Datei für diese PDF Seite hochladen."
|
||||||
|
|
||||||
#: .\content\models.py:76
|
#: models.py:76
|
||||||
msgid "Headline"
|
msgid "Headline"
|
||||||
msgstr "Schlagzeile"
|
msgstr "Schlagzeile"
|
||||||
|
|
||||||
#: .\content\models.py:78
|
#: models.py:78
|
||||||
msgid "Content"
|
msgid "Content"
|
||||||
msgstr "Inhalt"
|
msgstr "Inhalt"
|
||||||
|
|
||||||
#: .\content\models.py:82 .\content\models.py:150
|
#: models.py:82 models.py:150 templates/content/article_detail.html:28
|
||||||
#: .\content\templates\content\article_detail.html:25
|
|
||||||
msgid "Category"
|
msgid "Category"
|
||||||
msgstr "Kategorie"
|
msgstr "Kategorie"
|
||||||
|
|
||||||
#: .\content\models.py:83 .\content\models.py:143
|
#: models.py:83 models.py:143
|
||||||
msgid "Image"
|
msgid "Image"
|
||||||
msgstr "Bild"
|
msgstr "Bild"
|
||||||
|
|
||||||
#: .\content\models.py:85 .\content\models.py:145
|
#: models.py:85 models.py:145
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "Slug"
|
msgstr "Slug"
|
||||||
|
|
||||||
#: .\content\models.py:88 .\content\templates\content\article_detail.html:23
|
#: models.py:88 templates/content/article_detail.html:21
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "Autor"
|
msgstr "Autor"
|
||||||
|
|
||||||
#: .\content\models.py:89
|
#: models.py:89
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: .\content\models.py:91
|
#: models.py:91
|
||||||
msgid "Created"
|
msgid "Created"
|
||||||
msgstr "Erstellt"
|
msgstr "Erstellt"
|
||||||
|
|
||||||
#: .\content\models.py:92
|
#: models.py:92
|
||||||
msgid "Modified"
|
msgid "Modified"
|
||||||
msgstr "Bearbeitet"
|
msgstr "Bearbeitet"
|
||||||
|
|
||||||
#: .\content\models.py:97
|
#: models.py:97
|
||||||
msgid "Article"
|
msgid "Article"
|
||||||
msgstr "Artikel"
|
msgstr "Artikel"
|
||||||
|
|
||||||
#: .\content\models.py:98
|
#: models.py:98
|
||||||
msgid "Articles"
|
msgid "Articles"
|
||||||
msgstr "Artikel"
|
msgstr "Artikel"
|
||||||
|
|
||||||
#: .\content\models.py:139 .\content\models.py:140
|
#: models.py:139 models.py:140
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: .\content\models.py:141 .\content\models.py:142
|
#: models.py:141 models.py:142
|
||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr "Beschreibung"
|
msgstr "Beschreibung"
|
||||||
|
|
||||||
#: .\content\models.py:151
|
#: models.py:151
|
||||||
msgid "Categories"
|
msgid "Categories"
|
||||||
msgstr "Kategorien"
|
msgstr "Kategorien"
|
||||||
|
|
||||||
#: .\content\models.py:182 .\content\models.py:188
|
#: models.py:182 models.py:188
|
||||||
msgid "The short name for the menu-entry of this page"
|
msgid "The short name for the menu-entry of this page"
|
||||||
msgstr "Ein kurzer Name für den Menüeintrag"
|
msgstr "Ein kurzer Name für den Menüeintrag"
|
||||||
|
|
||||||
#: .\content\models.py:193 .\content\models.py:198
|
#: models.py:193 models.py:198
|
||||||
msgid "The page title as you'd like it to be seen by the public"
|
msgid "The page title as you'd like it to be seen by the public"
|
||||||
msgstr "Der Seitentitel der öffentlich angezeigt werden soll"
|
msgstr "Der Seitentitel der öffentlich angezeigt werden soll"
|
||||||
|
|
||||||
#: .\content\models.py:200
|
#: models.py:200
|
||||||
msgid "slug"
|
msgid "slug"
|
||||||
msgstr "Slug"
|
msgstr "Slug"
|
||||||
|
|
||||||
#: .\content\models.py:203
|
#: models.py:203
|
||||||
msgid ""
|
msgid ""
|
||||||
"The name of the page as it will appear in URLs e.g http://domain.com/blog/"
|
"The name of the page as it will appear in URLs e.g http://domain.com/blog/"
|
||||||
"[my-slug]/"
|
"[my-slug]/"
|
||||||
msgstr "Wie die Seite in der URL aufscheint also http://domain.com/blog/[slug]"
|
msgstr "Wie die Seite in der URL aufscheint also http://domain.com/blog/[slug]"
|
||||||
|
|
||||||
#: .\content\models.py:212
|
#: models.py:212
|
||||||
msgid "Path"
|
msgid "Path"
|
||||||
msgstr "Pfad"
|
msgstr "Pfad"
|
||||||
|
|
||||||
#: .\content\models.py:224
|
#: models.py:224
|
||||||
msgid "Position"
|
msgid "Position"
|
||||||
msgstr "Position"
|
msgstr "Position"
|
||||||
|
|
||||||
#: .\content\models.py:229
|
#: models.py:229
|
||||||
msgid "status"
|
msgid "status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: .\content\models.py:232 .\content\models.py:234
|
#: models.py:232 models.py:234
|
||||||
msgid "search description"
|
msgid "search description"
|
||||||
msgstr "Beschreibung für Suchfunktion"
|
msgstr "Beschreibung für Suchfunktion"
|
||||||
|
|
||||||
#: .\content\models.py:237
|
#: models.py:237
|
||||||
msgid "content type"
|
msgid "content type"
|
||||||
msgstr "Inhaltstyp"
|
msgstr "Inhaltstyp"
|
||||||
|
|
||||||
#: .\content\models.py:242
|
#: models.py:242
|
||||||
msgid "enable comments"
|
msgid "enable comments"
|
||||||
msgstr "Kommentare möglich"
|
msgstr "Kommentare möglich"
|
||||||
|
|
||||||
#: .\content\models.py:247
|
#: models.py:247
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Vorlage"
|
msgstr "Vorlage"
|
||||||
|
|
||||||
#: .\content\models.py:255
|
#: models.py:255
|
||||||
msgid "first created at"
|
msgid "first created at"
|
||||||
msgstr "erstellt am"
|
msgstr "erstellt am"
|
||||||
|
|
||||||
#: .\content\models.py:260
|
#: models.py:260
|
||||||
msgid "latest updated at"
|
msgid "latest updated at"
|
||||||
msgstr "letzte Aktualisierung am"
|
msgstr "letzte Aktualisierung am"
|
||||||
|
|
||||||
#: .\content\models.py:331
|
#: models.py:331
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Seite"
|
msgstr "Seite"
|
||||||
|
|
||||||
#: .\content\models.py:332
|
#: models.py:332
|
||||||
msgid "Pages"
|
msgid "Pages"
|
||||||
msgstr "Seiten"
|
msgstr "Seiten"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:5
|
#: templates/content/article_archive.html:5
|
||||||
#: .\content\templates\content\article_archive.html:20
|
#: templates/content/article_archive.html:20
|
||||||
msgid "Article Archive"
|
msgid "Article Archive"
|
||||||
msgstr "Nachrichtenarchiv"
|
msgstr "Nachrichtenarchiv"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:35
|
#: templates/content/article_archive.html:35
|
||||||
#: .\content\templates\content\article_archive_month.html:5
|
#: templates/content/article_archive_month.html:5
|
||||||
#: .\content\templates\content\article_archive_year.html:7
|
#: templates/content/article_archive_year.html:7
|
||||||
msgid "Archive"
|
msgid "Archive"
|
||||||
msgstr "Archiv"
|
msgstr "Archiv"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:56
|
#: templates/content/article_archive.html:56
|
||||||
msgid "All Categories"
|
msgid "All Categories"
|
||||||
msgstr "Alle Kategorien"
|
msgstr "Alle Kategorien"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:71
|
#: templates/content/article_archive.html:71
|
||||||
msgid "created on"
|
msgid "created on"
|
||||||
msgstr "erstellt am"
|
msgstr "erstellt am"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:73
|
#: templates/content/article_archive.html:73
|
||||||
msgid "by"
|
msgid "by"
|
||||||
msgstr "von"
|
msgstr "von"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:74
|
#: templates/content/article_archive.html:74
|
||||||
#: .\content\templates\content\article_archive.html:75
|
#: templates/content/article_archive.html:75
|
||||||
msgid "comments"
|
msgid "comments"
|
||||||
msgstr "Kommentare"
|
msgstr "Kommentare"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:81
|
#: templates/content/article_archive.html:81
|
||||||
msgid "Read More"
|
msgid "Read More"
|
||||||
msgstr "Mehr lesen"
|
msgstr "Mehr lesen"
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:86
|
#: templates/content/article_archive.html:86
|
||||||
msgid "We're sorry. Your search yielded no results."
|
msgid "We're sorry. Your search yielded no results."
|
||||||
msgstr "Es tut uns leid. Deine Suche ergab keine Treffer."
|
msgstr "Es tut uns leid. Deine Suche ergab keine Treffer."
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive.html:104
|
#: templates/content/article_archive.html:104
|
||||||
msgid "Add Article"
|
msgid "Add Article"
|
||||||
msgstr "neuer Artikel "
|
msgstr "neuer Artikel "
|
||||||
|
|
||||||
#: .\content\templates\content\article_archive_month.html:7
|
#: templates/content/article_archive_month.html:7
|
||||||
msgid "back"
|
msgid "back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: .\content\templates\content\article_detail.html:24
|
#: templates/content/article_detail.html:25
|
||||||
msgid "Created on"
|
msgid "Created on"
|
||||||
msgstr "Erstellt am"
|
msgstr "Erstellt am"
|
||||||
|
|
||||||
#: .\content\templates\content\article_detail.html:36
|
#: templates/content/article_detail.html:39
|
||||||
msgid "share on"
|
msgid "share on"
|
||||||
msgstr "Teile auf"
|
msgstr "Teile auf"
|
||||||
|
|
||||||
#: .\content\templates\content\article_detail.html:51 .\content\views.py:156
|
#: templates/content/article_detail.html:48 views.py:156
|
||||||
msgid "Edit Article"
|
msgid "Edit Article"
|
||||||
msgstr "Artikel bearbeiten"
|
msgstr "Artikel bearbeiten"
|
||||||
|
|
||||||
#: .\content\templates\content\article_form.html:32
|
#: templates/content/article_form.html:32 templates/content/page_form.html:42
|
||||||
#: .\content\templates\content\page_form.html:42
|
#: templates/content/page_form.html:49
|
||||||
#: .\content\templates\content\page_form.html:49
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Deutsch"
|
msgstr "Deutsch"
|
||||||
|
|
||||||
#: .\content\templates\content\article_form.html:33
|
#: templates/content/article_form.html:33 templates/content/page_form.html:43
|
||||||
#: .\content\templates\content\page_form.html:43
|
#: templates/content/page_form.html:57
|
||||||
#: .\content\templates\content\page_form.html:57
|
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Englisch"
|
msgstr "Englisch"
|
||||||
|
|
||||||
#: .\content\templates\content\article_form.html:59
|
#: templates/content/article_form.html:59 templates/content/page_form.html:66
|
||||||
#: .\content\templates\content\page_form.html:66
|
|
||||||
msgid "reset"
|
msgid "reset"
|
||||||
msgstr "Zurücksetzen"
|
msgstr "Zurücksetzen"
|
||||||
|
|
||||||
#: .\content\templates\content\article_form.html:60
|
#: templates/content/article_form.html:60 templates/content/page_form.html:67
|
||||||
#: .\content\templates\content\page_form.html:67
|
|
||||||
msgid "save"
|
msgid "save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: .\content\templates\content\page_form.html:5
|
#: templates/content/page_form.html:5 templates/content/page_form.html:35
|
||||||
#: .\content\templates\content\page_form.html:35
|
|
||||||
msgid "Edit Page"
|
msgid "Edit Page"
|
||||||
msgstr "Seite bearbeiten"
|
msgstr "Seite bearbeiten"
|
||||||
|
|
||||||
#: .\content\templates\content\page_form.html:5
|
#: templates/content/page_form.html:5 templates/content/page_form.html:19
|
||||||
#: .\content\templates\content\page_form.html:19
|
#: templates/content/page_form.html:35
|
||||||
#: .\content\templates\content\page_form.html:35
|
|
||||||
msgid "Add Page"
|
msgid "Add Page"
|
||||||
msgstr "Seite hinzufügen"
|
msgstr "Seite hinzufügen"
|
||||||
|
|
||||||
#: .\content\templates\content\page_form.html:18
|
#: templates/content/page_form.html:18
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Bearbeiten"
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
#: .\content\templates\content\page_form.html:37
|
#: templates/content/page_form.html:37
|
||||||
msgid "HTML Specific"
|
msgid "HTML Specific"
|
||||||
msgstr "HTML spezifisch"
|
msgstr "HTML spezifisch"
|
||||||
|
|
||||||
#: .\content\views.py:53
|
#: views.py:53
|
||||||
msgid "This Category does not exist."
|
msgid "This Category does not exist."
|
||||||
msgstr "Diese Kategorie existiert nicht."
|
msgstr "Diese Kategorie existiert nicht."
|
||||||
|
|
||||||
#: .\content\views.py:157
|
#: views.py:157
|
||||||
msgid "Create Article"
|
msgid "Create Article"
|
||||||
msgstr "Artikel erstellen"
|
msgstr "Artikel erstellen"
|
||||||
|
|
||||||
#: .\content\views.py:233
|
#: views.py:237
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No Page found matching the Path %s"
|
msgid "No Page found matching the Path %s"
|
||||||
msgstr "Keine Seite unter dem Pfad %s gefunden"
|
msgstr "Keine Seite unter dem Pfad %s gefunden"
|
||||||
|
|
||||||
#: .\content\views.py:262
|
#: views.py:266
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No PDF Document found matching the Path %s"
|
msgid "No PDF Document found matching the Path %s"
|
||||||
msgstr "Kein PDF Dokument unter dem Pfad %s gefunden."
|
msgstr "Kein PDF Dokument unter dem Pfad %s gefunden."
|
||||||
|
|||||||
58
src/content/migrations/0008_auto_20190106_1954.py
Normal file
58
src/content/migrations/0008_auto_20190106_1954.py
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# Generated by Django 2.1.5 on 2019-01-06 18:54
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('content', '0007_auto_20171214_1215'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='article',
|
||||||
|
name='status',
|
||||||
|
field=models.SmallIntegerField(choices=[(-1, 'Rejected'), (0, 'Waiting...'), (1, 'Published')], default=1, verbose_name='Status'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='date_created',
|
||||||
|
field=models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='erstellt am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='date_modified',
|
||||||
|
field=models.DateTimeField(auto_now=True, verbose_name='letzte Aktualisierung am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='description_de',
|
||||||
|
field=models.TextField(blank=True, verbose_name='Beschreibung für Suchfunktion'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='description_en',
|
||||||
|
field=models.TextField(blank=True, verbose_name='Beschreibung für Suchfunktion'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='slug',
|
||||||
|
field=models.SlugField(help_text='Wie die Seite in der URL aufscheint also http://domain.com/blog/[slug]', max_length=100, verbose_name='Slug'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='status',
|
||||||
|
field=models.SmallIntegerField(choices=[(-1, 'Rejected'), (0, 'Waiting...'), (1, 'Published')], default=0, verbose_name='Status'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='title_de',
|
||||||
|
field=models.CharField(help_text='Der Seitentitel der öffentlich angezeigt werden soll', max_length=255, verbose_name='Titel'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='page',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(blank=True, help_text='Der Seitentitel der öffentlich angezeigt werden soll', max_length=255, verbose_name='Title'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
<h3><a href="{{article.get_absolute_url}}">{{article.headline}}</a></h3>
|
<h3><a href="{{article.get_absolute_url}}">{{article.headline}}</a></h3>
|
||||||
<ul class="info">
|
<ul class="info">
|
||||||
<li><span class="fa fa-calendar-o" title="{% trans 'created on' %}"></span> <time
|
<li><span class="fa fa-calendar-o" title="{% trans 'created on' %}"></span> <time
|
||||||
datetime="{{article.date_created|date:'c'}}">{{ article.date_created|date }}</time></li>
|
datetime="{{article.date_created|date:'Y-m-d\TH:i:sO'}}">{{ article.date_created|date }}</time></li>
|
||||||
<li><span class="fa fa-user" title="{% trans 'by' %}"></span> {{ article.author }}</li>
|
<li><span class="fa fa-user" title="{% trans 'by' %}"></span> {{ article.author }}</li>
|
||||||
<li><span class="fa fa-comments" title="{% trans 'comments' %}"></span> <a
|
<li><span class="fa fa-comments" title="{% trans 'comments' %}"></span> <a
|
||||||
href="{{article.get_absolute_url}}#comments" >{{comment_count}} {% trans "comments" %}</a></li>
|
href="{{article.get_absolute_url}}#comments" >{{comment_count}} {% trans "comments" %}</a></li>
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}{% load i18n comments thumbnail %}
|
||||||
{% load i18n comments thumbnail %}
|
|
||||||
|
|
||||||
{% block title %}{{ article.headline }}{% endblock %}
|
{% block title %}{{ article.headline }}{% endblock %}
|
||||||
|
|
||||||
{% block description %}{{article.content|striptags|truncatewords:16}}{% endblock %}
|
{% block description %}{{article.content|striptags|truncatewords:16}}{% endblock %}
|
||||||
|
|
||||||
{% block opengraph %}
|
{% block opengraph %}
|
||||||
<meta property="og:type" content="article" />
|
<meta property="og:type" content="article"/>
|
||||||
<meta property="og:title" content="{{ article.headline|force_escape }}" />
|
<meta property="og:title" content="{{ article.headline|force_escape }}"/>
|
||||||
<meta property="og:url" content="http://www.kasu.at{{ article.get_absolute_url }}" />
|
<meta property="og:url" content="http://www.kasu.at{{ article.get_absolute_url }}"/>
|
||||||
<meta property="og:image" content="http://www.kasu.at{{article.get_image|thumbnail_url:'article'}}" />
|
<meta property="og:image" content="http://www.kasu.at{{article.get_image|thumbnail_url:'article'}}"/>
|
||||||
<meta property="og:description" content="{{article.content|striptags|truncatewords:25|force_escape}}" />
|
<meta property="og:description" content="{{article.content|striptags|truncatewords:25|force_escape}}"/>
|
||||||
<link rel="image_src" type="image/jpeg" href="{{article.get_image|thumbnail_url:'article'}}" />
|
<link rel="image_src" type="image/jpeg" href="{{article.get_image|thumbnail_url:'article'}}"/>{% endblock %}
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block itemscope %}itemscope itemtype="http://schema.org/Article"{% endblock %}
|
{% block itemscope %}itemscope itemtype="http://schema.org/Article"{% endblock %}
|
||||||
|
|
||||||
@@ -20,34 +18,31 @@
|
|||||||
<h1 itemprop="name">{{article.headline}}</h1>
|
<h1 itemprop="name">{{article.headline}}</h1>
|
||||||
<div id="teaser_text">
|
<div id="teaser_text">
|
||||||
<ul class="info">
|
<ul class="info">
|
||||||
<li><span class="fa fa-user"></span> <strong>{% trans 'Author' %}:</strong> <a href="{% url 'membership-details' article.author %}" itemprop="author">{{article.author}}</a></li>
|
<li><span class="fa fa-user"></span> <strong>{% trans 'Author' %}:</strong>
|
||||||
<li><span class="fa fa-calendar-o"></span> <strong>{% trans 'Created on' %}: </strong><time datetime="{{article.date_created|date:'Y-m-d H:i'}}">{{ article.date_created|date:'DATE_FORMAT' }}</time></li>
|
<a href="{% url 'membership-details' article.author %}" itemprop="author">{{article.author}}</a>
|
||||||
<li><span class="fa fa-tag"></span> <strong>{% trans "Category"%}: </strong><a href="{{ article.category.get_absolute_url }}" itemprop="articleSection">{{article.category.name}}</a></li>
|
</li>
|
||||||
|
<li><span class="fa fa-calendar-o"></span>
|
||||||
|
<strong>{% trans 'Created on' %}:</strong>
|
||||||
|
<time datetime="{{article.date_created|date:'Y-m-d\TH:i:sO'}}">{{ article.date_created|date:'DATE_FORMAT' }}</time>
|
||||||
|
</li>
|
||||||
|
<li><span class="fa fa-tag"></span> <strong>{% trans "Category"%}:</strong>
|
||||||
|
<a href="{{ article.category.get_absolute_url }}" itemprop="articleSection">{{article.category.name}}</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>{% endblock %}
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block maincontent %}
|
{% block maincontent %}
|
||||||
<div itemprop="articleBody" class="grid_12">
|
<div itemprop="articleBody" class="grid_12">
|
||||||
<img alt="{{article.category.name}}" src="{{article.get_image|thumbnail_url:'article'}}" class="posting_image" itemprop="image"/>
|
<img alt="{{article.category.name}}" src="{{article.get_image|thumbnail_url:'article'}}" class="posting_image" itemprop="image"/> {{ article.content }}
|
||||||
{{ article.content }}
|
|
||||||
</div>
|
</div>
|
||||||
<p class="right">
|
<p class="right">
|
||||||
<strong>{% trans 'share on' %}:</strong>
|
<strong>{% trans 'share on' %}:</strong>
|
||||||
<a class="button" href="https://plus.google.com/share?url=http%3A%2F%2Fwww.kasu.at{{article.get_absolute_url|urlencode}}"
|
<a class="button" href="https://plus.google.com/share?url=http%3A%2F%2Fwww.kasu.at{{article.get_absolute_url|urlencode}}" onclick="javascript:window.open(this.href,'', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;"><span class="fa fa-google-plus"></span> Google+</a>
|
||||||
onclick="javascript:window.open(this.href,'', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;"><span class="fa fa-google-plus"></span> Google+</a>
|
|
||||||
<a class="button" href="https://twitter.com/share?url=http%3A%2F%2Fwww.kasu.at{{article.get_absolute_url|urlencode}}" target='_blank'><span class="fa fa-twitter"></span> Twitter</a>
|
<a class="button" href="https://twitter.com/share?url=http%3A%2F%2Fwww.kasu.at{{article.get_absolute_url|urlencode}}" target='_blank'><span class="fa fa-twitter"></span> Twitter</a>
|
||||||
<a class="button" href="http://facebook.com/sharer.php?u=http%3A%2F%2Fwww.kasu.at{{article.get_absolute_url|urlencode}}?t={{article.headline|urlencode}}" target="_blank"><span class="fa fa-facebook"></span> Facebook</a>
|
<a class="button" href="http://facebook.com/sharer.php?u=http%3A%2F%2Fwww.kasu.at{{article.get_absolute_url|urlencode}}?t={{article.headline|urlencode}}" target="_blank"><span class="fa fa-facebook"></span> Facebook</a>
|
||||||
</p>
|
</p>{% endblock %}
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block comments%}
|
{% block comments%}{% render_comment_list for article %}{% render_comment_form for article %}{% endblock %}
|
||||||
{% render_comment_list for article %}
|
|
||||||
{% render_comment_form for article %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block buttonbar %}
|
{% block buttonbar %}{% if perms.content.change_article %}
|
||||||
{% if perms.content.change_article %}
|
<a href="{% url 'edit-article' article.id %}" class="button"><span class="fa fa-pencil"></span> {% trans "Edit Article" %}</a>{% endif %}{% endblock %}
|
||||||
<a href="{% url 'edit-article' article.id %}" class="button"><span class="fa fa-pencil"></span> {% trans "Edit Article" %}</a>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ class PageAddForm(WYSIWYGEditorMixin, generic.CreateView):
|
|||||||
|
|
||||||
def get_initial(self):
|
def get_initial(self):
|
||||||
"""Try to get the path of the parent page as initial data."""
|
"""Try to get the path of the parent page as initial data."""
|
||||||
|
if self.kwargs['path']:
|
||||||
path = os.path.splitext(self.kwargs['path'])[0]
|
path = os.path.splitext(self.kwargs['path'])[0]
|
||||||
if path.startswith('/'):
|
if path.startswith('/'):
|
||||||
path = path[1:]
|
path = path[1:]
|
||||||
@@ -186,6 +187,8 @@ class PageAddForm(WYSIWYGEditorMixin, generic.CreateView):
|
|||||||
path = path[:-1]
|
path = path[:-1]
|
||||||
parent = models.Page.objects.get(path=path)
|
parent = models.Page.objects.get(path=path)
|
||||||
return {'parent': parent}
|
return {'parent': parent}
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
class PageEditForm(WYSIWYGEditorMixin, generic.UpdateView):
|
class PageEditForm(WYSIWYGEditorMixin, generic.UpdateView):
|
||||||
@@ -204,7 +207,8 @@ class PageEditForm(WYSIWYGEditorMixin, generic.UpdateView):
|
|||||||
:param queryset: Get the single item from this filtered queryset.
|
:param queryset: Get the single item from this filtered queryset.
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
path = os.path.splitext(self.kwargs['path'])[0]
|
path = self.kwargs['path'] or 'index.html'
|
||||||
|
path = os.path.splitext(path)[0]
|
||||||
queryset = queryset or self.get_queryset()
|
queryset = queryset or self.get_queryset()
|
||||||
if path.startswith('/'):
|
if path.startswith('/'):
|
||||||
path = path[1:]
|
path = path[1:]
|
||||||
|
|||||||
Binary file not shown.
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.events\n"
|
"Project-Id-Version: kasu.events\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-05-08 00:17+0200\n"
|
"POT-Creation-Date: 2019-12-13 23:38+0100\n"
|
||||||
"PO-Revision-Date: 2018-01-12 15:25+0105\n"
|
"PO-Revision-Date: 2018-01-12 15:25+0105\n"
|
||||||
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
@@ -19,58 +19,59 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 1.8.9\n"
|
"X-Generator: Poedit 1.8.9\n"
|
||||||
"X-Translated-Using: django-rosetta 0.7.14\n"
|
"X-Translated-Using: django-rosetta 0.7.14\n"
|
||||||
|
|
||||||
#: .\events\admin.py:14 .\events\models.py:82
|
#: admin.py:14 models.py:82
|
||||||
msgid "Event Series"
|
msgid "Event Series"
|
||||||
msgstr "Veranstaltungsreihen"
|
msgstr "Veranstaltungsreihen"
|
||||||
|
|
||||||
#: .\events\forms.py:17
|
#: forms.py:17
|
||||||
msgid "Images"
|
msgid "Images"
|
||||||
msgstr "Bilder"
|
msgstr "Bilder"
|
||||||
|
|
||||||
#: .\events\forms.py:46
|
#: forms.py:46
|
||||||
msgid "start"
|
msgid "start"
|
||||||
msgstr "Beginn"
|
msgstr "Beginn"
|
||||||
|
|
||||||
#: .\events\forms.py:49
|
#: forms.py:49
|
||||||
msgid "end"
|
msgid "end"
|
||||||
msgstr "Ende"
|
msgstr "Ende"
|
||||||
|
|
||||||
#: .\events\models.py:52 .\events\models.py:176 .\events\models.py:217
|
#: mixins.py:76
|
||||||
|
msgid "Event does not exist"
|
||||||
|
msgstr "Veranstaltung gibt es nicht"
|
||||||
|
|
||||||
|
#: models.py:52 models.py:176 models.py:217
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: .\events\models.py:53 .\events\models.py:177 .\events\models.py:225
|
#: models.py:53 models.py:177 models.py:225
|
||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr "Beschreibung"
|
msgstr "Beschreibung"
|
||||||
|
|
||||||
#: .\events\models.py:55 .\events\templates\events\event_detail.html:29
|
#: models.py:55 templates/events/event_detail.html:29
|
||||||
#: .\events\templates\events\event_detail.html:87
|
#: templates/events/event_detail.html:87 templates/events/event_list.html:28
|
||||||
#: .\events\templates\events\event_list.html:28
|
#: templates/events/photo_upload.html:13
|
||||||
#: .\events\templates\events\photo_upload.html:13
|
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "Beginn"
|
msgstr "Beginn"
|
||||||
|
|
||||||
#: .\events\models.py:56 .\events\templates\events\event_detail.html:30
|
#: models.py:56 templates/events/event_detail.html:30
|
||||||
#: .\events\templates\events\event_detail.html:89
|
#: templates/events/event_detail.html:89
|
||||||
msgid "End"
|
msgid "End"
|
||||||
msgstr "Ende"
|
msgstr "Ende"
|
||||||
|
|
||||||
#: .\events\models.py:57 .\events\models.py:185
|
#: models.py:57 models.py:185 templates/events/event_detail.html:34
|
||||||
#: .\events\templates\events\event_detail.html:34
|
#: templates/events/event_detail.html:80 templates/events/event_detail.html:92
|
||||||
#: .\events\templates\events\event_detail.html:80
|
|
||||||
#: .\events\templates\events\event_detail.html:92
|
|
||||||
msgid "Homepage"
|
msgid "Homepage"
|
||||||
msgstr "Homepage"
|
msgstr "Homepage"
|
||||||
|
|
||||||
#: .\events\models.py:59 .\events\models.py:179 .\events\models.py:219
|
#: models.py:59 models.py:179 models.py:219
|
||||||
msgid "Image"
|
msgid "Image"
|
||||||
msgstr "Bild"
|
msgstr "Bild"
|
||||||
|
|
||||||
#: .\events\models.py:66
|
#: models.py:66
|
||||||
msgid "Mahjong Tournament"
|
msgid "Mahjong Tournament"
|
||||||
msgstr "Mahjong Turnier"
|
msgstr "Mahjong Turnier"
|
||||||
|
|
||||||
#: .\events\models.py:68
|
#: models.py:68
|
||||||
msgid ""
|
msgid ""
|
||||||
"This event is a tournament, different rules apply for the kyu "
|
"This event is a tournament, different rules apply for the kyu "
|
||||||
"ranking."
|
"ranking."
|
||||||
@@ -78,11 +79,11 @@ msgstr ""
|
|||||||
"Diese Veranstaltung ist ein Turnier, es gelten andere Regeln für das Kyu "
|
"Diese Veranstaltung ist ein Turnier, es gelten andere Regeln für das Kyu "
|
||||||
"Ranking."
|
"Ranking."
|
||||||
|
|
||||||
#: .\events\models.py:72
|
#: models.py:72
|
||||||
msgid "Mahjong Season"
|
msgid "Mahjong Season"
|
||||||
msgstr "Mahjong Saison"
|
msgstr "Mahjong Saison"
|
||||||
|
|
||||||
#: .\events\models.py:83
|
#: models.py:83
|
||||||
msgid ""
|
msgid ""
|
||||||
"Wenn dieser Event zu einer Veranstaltungsreihe gehört werden Ort, "
|
"Wenn dieser Event zu einer Veranstaltungsreihe gehört werden Ort, "
|
||||||
"Beschreibung, Bild und Homepage von dem hier angegebenen Event "
|
"Beschreibung, Bild und Homepage von dem hier angegebenen Event "
|
||||||
@@ -91,248 +92,227 @@ msgstr ""
|
|||||||
"Wenn dieser Termin zu einer Veranstaltungsreihe gehört werden Ort, "
|
"Wenn dieser Termin zu einer Veranstaltungsreihe gehört werden Ort, "
|
||||||
"Beschreibung, Bild und Homepage von dem hier angegebenen Event übernommen."
|
"Beschreibung, Bild und Homepage von dem hier angegebenen Event übernommen."
|
||||||
|
|
||||||
#: .\events\models.py:92 .\events\models.py:195 .\events\models.py:248
|
#: models.py:92 models.py:195 models.py:248
|
||||||
msgid "first created at"
|
msgid "first created at"
|
||||||
msgstr "erstellt am"
|
msgstr "erstellt am"
|
||||||
|
|
||||||
#: .\events\models.py:97 .\events\models.py:200 .\events\models.py:253
|
#: models.py:97 models.py:200 models.py:253
|
||||||
msgid "latest updated at"
|
msgid "latest updated at"
|
||||||
msgstr "letzte Aktualisierung am"
|
msgstr "letzte Aktualisierung am"
|
||||||
|
|
||||||
#: .\events\models.py:103
|
#: models.py:103
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr "Termin"
|
msgstr "Termin"
|
||||||
|
|
||||||
#: .\events\models.py:104
|
#: models.py:104
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr "Termine"
|
msgstr "Termine"
|
||||||
|
|
||||||
#: .\events\models.py:117
|
#: models.py:117
|
||||||
msgid "A event can't end before it had started"
|
msgid "A event can't end before it had started"
|
||||||
msgstr "Eine Veranstaltung kann nicht enden bevor sie begonnen hat"
|
msgstr "Eine Veranstaltung kann nicht enden bevor sie begonnen hat"
|
||||||
|
|
||||||
#: .\events\models.py:186
|
#: models.py:186
|
||||||
msgid "Postal Code"
|
msgid "Postal Code"
|
||||||
msgstr "Postleitzahl"
|
msgstr "Postleitzahl"
|
||||||
|
|
||||||
#: .\events\models.py:187
|
#: models.py:187
|
||||||
msgid "Street Address"
|
msgid "Street Address"
|
||||||
msgstr "Straße"
|
msgstr "Straße"
|
||||||
|
|
||||||
#: .\events\models.py:188
|
#: models.py:188
|
||||||
msgid "Locality"
|
msgid "Locality"
|
||||||
msgstr "Ort"
|
msgstr "Ort"
|
||||||
|
|
||||||
#: .\events\models.py:189
|
#: models.py:189
|
||||||
msgid "Country"
|
msgid "Country"
|
||||||
msgstr "Land"
|
msgstr "Land"
|
||||||
|
|
||||||
#: .\events\models.py:204
|
#: models.py:204
|
||||||
msgid "Venue"
|
msgid "Venue"
|
||||||
msgstr "Veranstaltungsort"
|
msgstr "Veranstaltungsort"
|
||||||
|
|
||||||
#: .\events\models.py:205
|
#: models.py:205
|
||||||
msgid "Venues"
|
msgid "Venues"
|
||||||
msgstr "Veranstaltungsorte"
|
msgstr "Veranstaltungsorte"
|
||||||
|
|
||||||
#: .\events\models.py:232
|
#: models.py:232
|
||||||
msgid "Startpage"
|
msgid "Startpage"
|
||||||
msgstr "Startseite"
|
msgstr "Startseite"
|
||||||
|
|
||||||
#: .\events\models.py:235
|
#: models.py:235
|
||||||
msgid "Display this Photo on the Startpage Teaser"
|
msgid "Display this Photo on the Startpage Teaser"
|
||||||
msgstr "Foto als Teaser auf der Startseite verwenden."
|
msgstr "Foto als Teaser auf der Startseite verwenden."
|
||||||
|
|
||||||
#: .\events\models.py:237
|
#: models.py:237
|
||||||
msgid "Published on"
|
msgid "Published on"
|
||||||
msgstr "Veröffentlicht am"
|
msgstr "Veröffentlicht am"
|
||||||
|
|
||||||
#: .\events\models.py:239
|
#: models.py:239
|
||||||
msgid "Number of views"
|
msgid "Number of views"
|
||||||
msgstr "Wie oft gesehen"
|
msgstr "Wie oft gesehen"
|
||||||
|
|
||||||
#: .\events\models.py:263 .\events\templates\events\event_archive.html:38
|
#: models.py:263 templates/events/event_archive.html:38
|
||||||
#: .\events\templates\events\event_list.html:18
|
#: templates/events/event_list.html:18
|
||||||
msgid "Event Image"
|
msgid "Event Image"
|
||||||
msgstr "Veranstaltungsbild"
|
msgstr "Veranstaltungsbild"
|
||||||
|
|
||||||
#: .\events\models.py:264
|
#: models.py:264
|
||||||
msgid "Event Images"
|
msgid "Event Images"
|
||||||
msgstr "Veranstaltungsbilder"
|
msgstr "Veranstaltungsbilder"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:5
|
#: templates/events/event_archive.html:5 templates/events/event_archive.html:9
|
||||||
#: .\events\templates\events\event_archive.html:9
|
|
||||||
msgid "Event Archive"
|
msgid "Event Archive"
|
||||||
msgstr "Veranstaltungsarchiv"
|
msgstr "Veranstaltungsarchiv"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:42
|
#: templates/events/event_archive.html:42 templates/events/event_detail.html:85
|
||||||
#: .\events\templates\events\event_detail.html:85
|
#: templates/events/event_list.html:22 templates/events/photo_detail.html:53
|
||||||
#: .\events\templates\events\event_list.html:22
|
|
||||||
#: .\events\templates\events\photo_detail.html:53
|
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Datum"
|
msgstr "Datum"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:47
|
#: templates/events/event_archive.html:47
|
||||||
msgid "Time"
|
msgid "Time"
|
||||||
msgstr "Zeit"
|
msgstr "Zeit"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:49
|
#: templates/events/event_archive.html:49 templates/events/photo_upload.html:16
|
||||||
#: .\events\templates\events\photo_upload.html:16
|
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr "von"
|
msgstr "von"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:49
|
#: templates/events/event_archive.html:49 templates/events/photo_upload.html:16
|
||||||
#: .\events\templates\events\photo_upload.html:16
|
|
||||||
msgid "to"
|
msgid "to"
|
||||||
msgstr "bis"
|
msgstr "bis"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:57
|
#: templates/events/event_archive.html:57 templates/events/event_detail.html:31
|
||||||
#: .\events\templates\events\event_detail.html:31
|
#: templates/events/event_detail.html:72 templates/events/event_list.html:32
|
||||||
#: .\events\templates\events\event_detail.html:72
|
#: templates/events/photo_upload.html:23
|
||||||
#: .\events\templates\events\event_list.html:32
|
|
||||||
#: .\events\templates\events\photo_upload.html:23
|
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr "Ort"
|
msgstr "Ort"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:58
|
#: templates/events/event_archive.html:58 templates/events/event_list.html:35
|
||||||
#: .\events\templates\events\event_list.html:35
|
#: templates/events/photo_upload.html:25 templates/events/photo_upload.html:26
|
||||||
#: .\events\templates\events\photo_upload.html:25
|
|
||||||
#: .\events\templates\events\photo_upload.html:26
|
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Kommentare"
|
msgstr "Kommentare"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:59
|
#: templates/events/event_archive.html:59 templates/events/event_detail.html:36
|
||||||
#: .\events\templates\events\event_detail.html:36
|
#: templates/events/event_detail.html:48 templates/events/photo_list.html:4
|
||||||
#: .\events\templates\events\event_detail.html:48
|
#: templates/events/photo_upload.html:28 templates/events/photo_upload.html:29
|
||||||
#: .\events\templates\events\photo_list.html:4
|
|
||||||
#: .\events\templates\events\photo_upload.html:28
|
|
||||||
#: .\events\templates\events\photo_upload.html:29
|
|
||||||
msgid "Photos"
|
msgid "Photos"
|
||||||
msgstr "Fotos"
|
msgstr "Fotos"
|
||||||
|
|
||||||
#: .\events\templates\events\event_archive.html:60
|
#: templates/events/event_archive.html:60
|
||||||
#: .\events\templates\events\event_archive.html:61
|
#: templates/events/event_archive.html:61 templates/events/event_detail.html:35
|
||||||
#: .\events\templates\events\event_detail.html:35
|
#: templates/events/event_detail.html:51
|
||||||
#: .\events\templates\events\event_detail.html:51
|
|
||||||
msgid "Hanchans"
|
msgid "Hanchans"
|
||||||
msgstr "Hanchans"
|
msgstr "Hanchans"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:37
|
#: templates/events/event_detail.html:37
|
||||||
msgid "tourney"
|
msgid "tourney"
|
||||||
msgstr "Turnier"
|
msgstr "Turnier"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:37
|
#: templates/events/event_detail.html:37
|
||||||
msgid "other rules apply here"
|
msgid "other rules apply here"
|
||||||
msgstr "hier gelten andere Regeln"
|
msgstr "hier gelten andere Regeln"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:45
|
#: templates/events/event_detail.html:45
|
||||||
msgid "Info"
|
msgid "Info"
|
||||||
msgstr "Info"
|
msgstr "Info"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:54
|
#: templates/events/event_detail.html:54
|
||||||
msgid "Mai-Star Games"
|
msgid "Mai-Star Games"
|
||||||
msgstr "Mai-Star Spiele"
|
msgstr "Mai-Star Spiele"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:57
|
#: templates/events/event_detail.html:57
|
||||||
msgid "Event Ranking"
|
msgid "Event Ranking"
|
||||||
msgstr "Veranstaltungs Wertung"
|
msgstr "Veranstaltungs Wertung"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:100
|
#: templates/events/event_detail.html:100
|
||||||
msgid "Share on Facebook"
|
msgid "Share on Facebook"
|
||||||
msgstr "Auf Facebook teilen"
|
msgstr "Auf Facebook teilen"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:104
|
#: templates/events/event_detail.html:104
|
||||||
msgid "Share on Google+"
|
msgid "Share on Google+"
|
||||||
msgstr "Auf Google+ teilen"
|
msgstr "Auf Google+ teilen"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:109
|
#: templates/events/event_detail.html:109
|
||||||
msgid "Share on Twitter"
|
msgid "Share on Twitter"
|
||||||
msgstr "Auf Twitter teilen"
|
msgstr "Auf Twitter teilen"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:113
|
#: templates/events/event_detail.html:113
|
||||||
msgid "Show on Google Maps"
|
msgid "Show on Google Maps"
|
||||||
msgstr "Auf Google Maps zeigen"
|
msgstr "Auf Google Maps zeigen"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:127
|
#: templates/events/event_detail.html:127 templates/events/event_form.html:9
|
||||||
#: .\events\templates\events\event_form.html:9 .\events\views.py:62
|
#: views.py:62
|
||||||
msgid "Edit Event"
|
msgid "Edit Event"
|
||||||
msgstr "Termin bearbeiten"
|
msgstr "Termin bearbeiten"
|
||||||
|
|
||||||
#: .\events\templates\events\event_detail.html:131
|
#: templates/events/event_detail.html:131
|
||||||
msgid "Add Dates"
|
msgid "Add Dates"
|
||||||
msgstr "Termine hinzufügen"
|
msgstr "Termine hinzufügen"
|
||||||
|
|
||||||
#: .\events\templates\events\event_form.html:9
|
#: templates/events/event_form.html:9 templates/events/page.html:9 views.py:64
|
||||||
#: .\events\templates\events\page.html:9 .\events\views.py:64
|
|
||||||
msgid "Add Event"
|
msgid "Add Event"
|
||||||
msgstr "Neuer Termin"
|
msgstr "Neuer Termin"
|
||||||
|
|
||||||
#: .\events\templates\events\event_form.html:18
|
#: templates/events/event_form.html:18 templates/events/photo_list.html:35
|
||||||
#: .\events\templates\events\photo_list.html:35
|
|
||||||
msgid "reset"
|
msgid "reset"
|
||||||
msgstr "Zurücksetzen"
|
msgstr "Zurücksetzen"
|
||||||
|
|
||||||
#: .\events\templates\events\event_form.html:19
|
#: templates/events/event_form.html:19
|
||||||
#: .\events\templates\events\eventseries_form.html:25
|
#: templates/events/eventseries_form.html:25
|
||||||
msgid "save"
|
msgid "save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: .\events\templates\events\event_list.html:4
|
#: templates/events/event_list.html:4 templates/events/event_list.html:5
|
||||||
#: .\events\templates\events\event_list.html:5
|
|
||||||
msgid "Upcoming Events"
|
msgid "Upcoming Events"
|
||||||
msgstr "Bevorstehende Veranstaltungen"
|
msgstr "Bevorstehende Veranstaltungen"
|
||||||
|
|
||||||
#: .\events\templates\events\eventseries_form.html:24
|
#: templates/events/eventseries_form.html:24
|
||||||
msgid "back"
|
msgid "back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_confirm_delete.html:17
|
#: templates/events/photo_confirm_delete.html:17
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_confirm_delete.html:21
|
#: templates/events/photo_confirm_delete.html:21
|
||||||
#: .\events\templates\events\photo_list.html:21
|
#: templates/events/photo_list.html:21
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_detail.html:44
|
#: templates/events/photo_detail.html:44
|
||||||
msgid "previous"
|
msgid "previous"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_detail.html:52
|
#: templates/events/photo_detail.html:52
|
||||||
msgid "Photographer"
|
msgid "Photographer"
|
||||||
msgstr "Fotograf"
|
msgstr "Fotograf"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_detail.html:58
|
#: templates/events/photo_detail.html:58
|
||||||
msgid "share on"
|
msgid "share on"
|
||||||
msgstr "Teile auf"
|
msgstr "Teile auf"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_detail.html:81
|
#: templates/events/photo_detail.html:81
|
||||||
msgid "download"
|
msgid "download"
|
||||||
msgstr "Herunterladen"
|
msgstr "Herunterladen"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_detail.html:82
|
#: templates/events/photo_detail.html:82
|
||||||
msgid "Rotate counter clockwise"
|
msgid "Rotate counter clockwise"
|
||||||
msgstr "mit dem Uhrzeiger drehen"
|
msgstr "mit dem Uhrzeiger drehen"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_detail.html:83
|
#: templates/events/photo_detail.html:83
|
||||||
msgid "Rotate clockwise"
|
msgid "Rotate clockwise"
|
||||||
msgstr "gegen den Uhrzeiger drehen"
|
msgstr "gegen den Uhrzeiger drehen"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_detail.html:84
|
#: templates/events/photo_detail.html:84
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: .\events\templates\events\photo_list.html:36
|
#: templates/events/photo_list.html:36 templates/events/photo_upload.html:35
|
||||||
#: .\events\templates\events\photo_upload.html:35
|
#: templates/events/photo_upload.html:49
|
||||||
#: .\events\templates\events\photo_upload.html:49
|
|
||||||
msgid "Upload"
|
msgid "Upload"
|
||||||
msgstr "Hochladen"
|
msgstr "Hochladen"
|
||||||
|
|
||||||
#: .\events\views.py:150
|
|
||||||
msgid "Event does not exist"
|
|
||||||
msgstr "Veranstaltung gibt es nicht"
|
|
||||||
|
|
||||||
#~ msgid " Edit"
|
#~ msgid " Edit"
|
||||||
#~ msgstr "Bearbeiten"
|
#~ msgstr "Bearbeiten"
|
||||||
|
|
||||||
|
|||||||
48
src/events/migrations/0010_auto_20190106_1954.py
Normal file
48
src/events/migrations/0010_auto_20190106_1954.py
Normal file
File diff suppressed because one or more lines are too long
@@ -1,6 +1,9 @@
|
|||||||
"""Mixins for Events."""
|
"""Mixins for Events."""
|
||||||
|
from django.db.models import Q
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|
||||||
@@ -54,6 +57,20 @@ class EventDetailMixin(object):
|
|||||||
self.event = get_object_or_404(models.Event, pk=self.kwargs['pk'])
|
self.event = get_object_or_404(models.Event, pk=self.kwargs['pk'])
|
||||||
queryset = self.model.objects.all()
|
queryset = self.model.objects.all()
|
||||||
else:
|
else:
|
||||||
self.event = get_object_or_404(models.Event, pk=self.kwargs['event'])
|
self.event = get_object_or_404(models.Event,
|
||||||
|
pk=self.kwargs['event'])
|
||||||
queryset = self.model.objects.filter(event=self.event)
|
queryset = self.model.objects.filter(event=self.event)
|
||||||
return queryset.prefetch_related()
|
return queryset.prefetch_related()
|
||||||
|
|
||||||
|
|
||||||
|
class EventPhotoMixin(EventDetailMixin):
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
try:
|
||||||
|
self.event = models.Event.objects.get(id=self.kwargs['event'])
|
||||||
|
return models.Photo.objects.filter(
|
||||||
|
Q(event=self.event) |
|
||||||
|
Q(event__event_series=self.event)
|
||||||
|
)
|
||||||
|
except models.Event.DoesNotExist:
|
||||||
|
raise Http404(_('Event does not exist'))
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
<h4><a href="{{ event.get_absolute_url }}">{{ event.name }}</a></h4>
|
<h4><a href="{{ event.get_absolute_url }}">{{ event.name }}</a></h4>
|
||||||
<p>
|
<p>
|
||||||
<span class="fa fa-calendar-o" title="{% trans 'Date' %}" aria-label="{% trans 'Date' %}"></span>
|
<span class="fa fa-calendar-o" title="{% trans 'Date' %}" aria-label="{% trans 'Date' %}"></span>
|
||||||
<time datetime="{{event.start|date:'c'}}">
|
<time datetime="{{event.start|date:'Y-m-d\TH:i:sO'}}">
|
||||||
{{ event.start|date:'D' }}
|
{{ event.start|date:'D' }}
|
||||||
{{ event.start|date:'SHORT_DATE_FORMAT' }} {{hanchan.start|time:'H:i'}}
|
{{ event.start|date:'SHORT_DATE_FORMAT' }} {{hanchan.start|time:'H:i'}}
|
||||||
</time>
|
</time>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<h4><a href="{{ event.get_absolute_url }}">{{ event.name }}</a></h4>
|
<h4><a href="{{ event.get_absolute_url }}">{{ event.name }}</a></h4>
|
||||||
<ul class="info">
|
<ul class="info">
|
||||||
<li><span class="fa fa-calendar-o" title="{% trans 'Date' %}" aria-label="{% trans 'Date' %}"></span>
|
<li><span class="fa fa-calendar-o" title="{% trans 'Date' %}" aria-label="{% trans 'Date' %}"></span>
|
||||||
<time datetime="{{event.start|date:'c'}}">
|
<time datetime="{{event.start|date:'Y-m-d\TH:i:sO'}}">
|
||||||
{{ event.start|date:'D' }}
|
{{ event.start|date:'D' }}
|
||||||
{{ event.start|date:'SHORT_DATE_FORMAT' }}
|
{{ event.start|date:'SHORT_DATE_FORMAT' }}
|
||||||
</time>
|
</time>
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ from django.contrib.auth import get_user_model
|
|||||||
from django.contrib.auth.mixins import PermissionRequiredMixin
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.http import HttpResponse, Http404
|
from django.http import Http404
|
||||||
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
@@ -75,13 +76,16 @@ class EventForm(PermissionRequiredMixin, mixins.EventDetailMixin,
|
|||||||
class EventGallery(generic.ListView):
|
class EventGallery(generic.ListView):
|
||||||
"""Display a overview of all event photo albums."""
|
"""Display a overview of all event photo albums."""
|
||||||
template_name = 'events/photo_gallery.html'
|
template_name = 'events/photo_gallery.html'
|
||||||
|
paginate_by = 24
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
queryset = models.Event.objects.filter(
|
queryset = models.Event.objects.filter(
|
||||||
start__lt=timezone.now(),
|
start__lt=timezone.now(),
|
||||||
event_series__isnull=True,
|
event_series__isnull=True,
|
||||||
photo_count__gt=0
|
photo_count__gt=0
|
||||||
)
|
)
|
||||||
queryset = queryset.order_by('-start')
|
queryset = queryset.order_by('-start')
|
||||||
paginate_by = 24
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
class EventListIcal(generic.View):
|
class EventListIcal(generic.View):
|
||||||
@@ -110,7 +114,7 @@ class EventListIcal(generic.View):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
class EventPhoto(mixins.EventDetailMixin, generic.UpdateView):
|
class EventPhoto(mixins.EventPhotoMixin, generic.UpdateView):
|
||||||
"""Display the requested Photo and allows rotation if the user has change
|
"""Display the requested Photo and allows rotation if the user has change
|
||||||
permissions."""
|
permissions."""
|
||||||
form_class = forms.EditPhotoForm
|
form_class = forms.EditPhotoForm
|
||||||
@@ -127,7 +131,7 @@ class EventPhoto(mixins.EventDetailMixin, generic.UpdateView):
|
|||||||
return generic.UpdateView.post(self, request, *args, **kwargs)
|
return generic.UpdateView.post(self, request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class EventPhotoList(mixins.EventDetailMixin, generic.ListView):
|
class EventPhotoList(mixins.EventPhotoMixin, generic.ListView):
|
||||||
"""List all Photos of the event or event series in an album."""
|
"""List all Photos of the event or event series in an album."""
|
||||||
context_object_name = 'photo_list'
|
context_object_name = 'photo_list'
|
||||||
event = None
|
event = None
|
||||||
@@ -139,16 +143,6 @@ class EventPhotoList(mixins.EventDetailMixin, generic.ListView):
|
|||||||
initial={'event': self.event, 'photographer': self.request.user})
|
initial={'event': self.event, 'photographer': self.request.user})
|
||||||
return context
|
return context
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
try:
|
|
||||||
self.event = models.Event.objects.get(id=self.kwargs['event'])
|
|
||||||
return models.Photo.objects.filter(
|
|
||||||
Q(event=self.event) |
|
|
||||||
Q(event__event_series=self.event)
|
|
||||||
)
|
|
||||||
except models.Event.DoesNotExist:
|
|
||||||
raise Http404(_('Event does not exist'))
|
|
||||||
|
|
||||||
|
|
||||||
class EventPhotoUpload(mixins.EventDetailMixin, generic.FormView):
|
class EventPhotoUpload(mixins.EventDetailMixin, generic.FormView):
|
||||||
form_class = forms.PhotoUploadForm
|
form_class = forms.PhotoUploadForm
|
||||||
@@ -187,10 +181,9 @@ class EventSeriesForm(mixins.EventDetailMixin, PermissionRequiredMixin,
|
|||||||
InlineFormSetView):
|
InlineFormSetView):
|
||||||
model = models.Event
|
model = models.Event
|
||||||
inline_model = models.Event
|
inline_model = models.Event
|
||||||
fk_name = 'event_series'
|
|
||||||
fields = ('start', 'end')
|
fields = ('start', 'end')
|
||||||
form_class = forms.EventForm
|
form_class = forms.EventForm
|
||||||
extra = 3
|
factory_kwargs = {'extra': 3, 'fk_name': 'event_series'}
|
||||||
permission_required = 'events.add_event'
|
permission_required = 'events.add_event'
|
||||||
template_name = 'events/eventseries_form.html'
|
template_name = 'events/eventseries_form.html'
|
||||||
|
|
||||||
@@ -202,5 +195,7 @@ class EventSeriesForm(mixins.EventDetailMixin, PermissionRequiredMixin,
|
|||||||
|
|
||||||
|
|
||||||
class UpcomingEvents(generic.ListView):
|
class UpcomingEvents(generic.ListView):
|
||||||
queryset = models.Event.objects.upcoming(limit=None)
|
|
||||||
paginate_by = 16
|
paginate_by = 16
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return models.Event.objects.upcoming(limit=None)
|
||||||
|
|||||||
Binary file not shown.
@@ -7,9 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.utils\n"
|
"Project-Id-Version: kasu.utils\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-05-08 00:17+0200\n"
|
"POT-Creation-Date: 2019-12-13 23:38+0100\n"
|
||||||
"PO-Revision-Date: 2016-09-28 00:24+0200\n"
|
"PO-Revision-Date: 2018-12-30 11:14+0105\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: b' <kasu@xendynastie.at>'\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -17,172 +17,183 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Poedit 1.8.9\n"
|
"X-Generator: Poedit 1.8.9\n"
|
||||||
"X-Translated-Using: django-rosetta 0.7.6\n"
|
"X-Translated-Using: django-rosetta 0.9.0\n"
|
||||||
|
|
||||||
#: .\kasu\settings.py:141
|
#: settings.py:140
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Deutsch"
|
msgstr "Deutsch"
|
||||||
|
|
||||||
#: .\kasu\settings.py:141
|
#: settings.py:140
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Englisch"
|
msgstr "Englisch"
|
||||||
|
|
||||||
#: .\kasu\templates\404.html:8
|
#: templates/404.html:8
|
||||||
msgid "The page your requested does not exist on this server."
|
msgid "The page your requested does not exist on this server."
|
||||||
msgstr "Die angeforderte Seite existiert auf diesem Server nicht."
|
msgstr "Die angeforderte Seite existiert auf diesem Server nicht."
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:22
|
#: templates/base.html:22
|
||||||
msgid "Current News"
|
msgid "Current News"
|
||||||
msgstr "Aktuelle Neuigkeiten"
|
msgstr "Aktuelle Neuigkeiten"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:24 .\kasu\templates\index.html:40
|
#: templates/base.html:24 templates/index.html:40
|
||||||
msgid "Recent Comments"
|
msgid "Recent Comments"
|
||||||
msgstr "Kürzliche Kommentare"
|
msgstr "Kürzliche Kommentare"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:45
|
#: templates/base.html:45
|
||||||
msgid "Menu"
|
msgid "Menu"
|
||||||
msgstr "Menü"
|
msgstr "Menü"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:69
|
#: templates/base.html:69
|
||||||
msgid "Current Event"
|
msgid "Current Event"
|
||||||
msgstr "Aktuelle Veranstaltung"
|
msgstr "Aktuelle Veranstaltung"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:72
|
#: templates/base.html:72
|
||||||
msgid "Since"
|
msgid "Since"
|
||||||
msgstr "seit"
|
msgstr "seit"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:73 .\kasu\templates\base.html:87
|
#: templates/base.html:73 templates/base.html:87
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "Beginn"
|
msgstr "Beginn"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:76 .\kasu\templates\base.html:90
|
#: templates/base.html:76 templates/base.html:90
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr "Ort"
|
msgstr "Ort"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:81 .\kasu\templates\base.html:94
|
#: templates/base.html:81 templates/base.html:94
|
||||||
msgid "More Details"
|
msgid "More Details"
|
||||||
msgstr "Mehr Details"
|
msgstr "Mehr Details"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:83
|
#: templates/base.html:83
|
||||||
msgid "Next Event"
|
msgid "Next Event"
|
||||||
msgstr "Nächste Veranstaltung"
|
msgstr "Nächste Veranstaltung"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:86
|
#: templates/base.html:86
|
||||||
msgid "in"
|
msgid "in"
|
||||||
msgstr "in"
|
msgstr "in"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:97
|
#: templates/base.html:97
|
||||||
msgid "Upcoming events"
|
msgid "Upcoming events"
|
||||||
msgstr "Bevorstehende Veranstaltungen"
|
msgstr "Bevorstehende Veranstaltungen"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:147
|
#: templates/base.html:107
|
||||||
|
msgid "No events found"
|
||||||
|
msgstr "Keine Veranstaltungen gefunden"
|
||||||
|
|
||||||
|
#: templates/base.html:149
|
||||||
msgid "Add Subpage"
|
msgid "Add Subpage"
|
||||||
msgstr "Unterseite Hinzufügen"
|
msgstr "Unterseite Hinzufügen"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:152
|
#: templates/base.html:154
|
||||||
msgid "Edit Page"
|
msgid "Edit Page"
|
||||||
msgstr "Seite bearbeiten"
|
msgstr "Seite bearbeiten"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:160
|
#: templates/base.html:162
|
||||||
msgid "Imprint"
|
msgid "Imprint"
|
||||||
msgstr "Impressum"
|
msgstr "Impressum"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:161
|
#: templates/base.html:163
|
||||||
msgid "contact"
|
msgid "contact"
|
||||||
msgstr "Kontakt"
|
msgstr "Kontakt"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:166
|
#: templates/base.html:168
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:175
|
#: templates/base.html:177
|
||||||
msgid "Go"
|
msgid "Go"
|
||||||
msgstr "Los"
|
msgstr "Los"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:180
|
#: templates/base.html:182
|
||||||
msgid "Logged in as"
|
msgid "Logged in as"
|
||||||
msgstr "Angemeldet als"
|
msgstr "Angemeldet als"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:182
|
#: templates/base.html:184
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:183
|
#: templates/base.html:185
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Abmelden"
|
msgstr "Abmelden"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:185
|
#: templates/base.html:187
|
||||||
msgid "no user logged in"
|
msgid "no user logged in"
|
||||||
msgstr "Niemand angemeldet"
|
msgstr "Niemand angemeldet"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:186 .\kasu\templates\comments\form.html:43
|
#: templates/base.html:188 templates/comments/form.html:43
|
||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr "Registrieren"
|
msgstr "Registrieren"
|
||||||
|
|
||||||
#: .\kasu\templates\base.html:187 .\kasu\templates\comments\form.html:44
|
#: templates/base.html:189 templates/comments/form.html:44
|
||||||
msgid "login"
|
msgid "login"
|
||||||
msgstr "anmelden"
|
msgstr "anmelden"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\form.html:5
|
#: templates/comments/form.html:5
|
||||||
msgid "New Comment"
|
msgid "New Comment"
|
||||||
msgstr "Neuer Kommentar"
|
msgstr "Neuer Kommentar"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\form.html:20
|
#: templates/comments/form.html:20
|
||||||
msgid "now"
|
msgid "now"
|
||||||
msgstr "Jetzt"
|
msgstr "Jetzt"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\form.html:25
|
#: templates/comments/form.html:25
|
||||||
msgid "Preview"
|
msgid "Preview"
|
||||||
msgstr "Vorschau"
|
msgstr "Vorschau"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\form.html:26
|
#: templates/comments/form.html:26
|
||||||
msgid "Post"
|
msgid "Post"
|
||||||
msgstr "Schreiben"
|
msgstr "Schreiben"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\form.html:34
|
#: templates/comments/form.html:34
|
||||||
msgid "not logged in"
|
msgid "not logged in"
|
||||||
msgstr "Nicht angemeldet"
|
msgstr "Nicht angemeldet"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\form.html:38
|
#: templates/comments/form.html:38
|
||||||
msgid "Register now, or Login to leave a comment here."
|
msgid "Register now, or Login to leave a comment here."
|
||||||
msgstr "Jetzt registrieren, oder anmelden um einen Kommentar zu schreiben."
|
msgstr "Jetzt registrieren, oder anmelden um einen Kommentar zu schreiben."
|
||||||
|
|
||||||
#: .\kasu\templates\comments\list.html:2 .\kasu\templates\index.html:25
|
#: templates/comments/list.html:2 templates/index.html:25
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Kommentare"
|
msgstr "Kommentare"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\posted.html:4
|
#: templates/comments/posted.html:4 templates/comments/posted.html:7
|
||||||
#: .\kasu\templates\comments\posted.html:7
|
|
||||||
msgid "Thank you for your comment"
|
msgid "Thank you for your comment"
|
||||||
msgstr "Danke für deinen Kommentar."
|
msgstr "Danke für deinen Kommentar."
|
||||||
|
|
||||||
#: .\kasu\templates\comments\preview.html:4
|
#: templates/comments/preview.html:4 templates/comments/preview.html:6
|
||||||
#: .\kasu\templates\comments\preview.html:6
|
|
||||||
msgid "Preview your comment"
|
msgid "Preview your comment"
|
||||||
msgstr "Vorschau deines Kommentars"
|
msgstr "Vorschau deines Kommentars"
|
||||||
|
|
||||||
#: .\kasu\templates\comments\preview.html:10
|
#: templates/comments/preview.html:10
|
||||||
msgid "Please correct the error below"
|
msgid "Please correct the error below"
|
||||||
msgid_plural "Please correct the errors below"
|
msgid_plural "Please correct the errors below"
|
||||||
msgstr[0] "Bitte den Fehler weiter unten beheben"
|
msgstr[0] "Bitte den Fehler weiter unten beheben"
|
||||||
msgstr[1] "Bitte die Fehler weiter unten beheben"
|
msgstr[1] "Bitte die Fehler weiter unten beheben"
|
||||||
|
|
||||||
#: .\kasu\templates\index.html:4
|
#: templates/index.html:4
|
||||||
msgid "traditional Asian game culture"
|
msgid "traditional Asian game culture"
|
||||||
msgstr "traditionelle asiatische Spielkultur"
|
msgstr "traditionelle asiatische Spielkultur"
|
||||||
|
|
||||||
#: .\kasu\templates\index.html:33
|
#: templates/index.html:33
|
||||||
msgid "Read More"
|
msgid "Read More"
|
||||||
msgstr "Mehr lesen"
|
msgstr "Mehr lesen"
|
||||||
|
|
||||||
#: .\kasu\templates\index.html:47
|
#: templates/index.html:47
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
|
#| msgid ""
|
||||||
|
#| "\n"
|
||||||
|
#| " From <a href=\"%(user_link)s\">%(author)s</a> in\n"
|
||||||
|
#| " <a href=\"%(comment_link)s\">“%(object)s”</"
|
||||||
|
#| "a>\n"
|
||||||
|
#| " since\n"
|
||||||
|
#| " <time datetime=\"%(submit_date)s\">%(since)s</time>\n"
|
||||||
|
#| " "
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
" From <a href=\"%(user_link)s\">%(author)s</a> in\n"
|
" From <a href=\"%(user_link)s\">%(author)s</a> in\n"
|
||||||
" <a href=\"%(comment_link)s\">“%(object)s”</a>\n"
|
" <a href=\"%(comment_link)s\">“%(object)s”</a>\n"
|
||||||
" since\n"
|
" since\n"
|
||||||
" <time datetime=\"%(submit_date)s\">%(since)s</time>\n"
|
" <time datetime=\"%(submit_date|date:'Y-m-d\\TH:i:sO')s\">"
|
||||||
|
"%(since)s</time>\n"
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
@@ -192,23 +203,23 @@ msgstr ""
|
|||||||
" <time datetime=\"%(submit_date)s\">%(since)s</time>\n"
|
" <time datetime=\"%(submit_date)s\">%(since)s</time>\n"
|
||||||
" "
|
" "
|
||||||
|
|
||||||
#: .\kasu\templates\index.html:59
|
#: templates/index.html:59
|
||||||
msgid "Kasu in the social network"
|
msgid "Kasu in the social network"
|
||||||
msgstr "Kasu im sozialem Netzwerk"
|
msgstr "Kasu im sozialem Netzwerk"
|
||||||
|
|
||||||
#: .\kasu\templates\index.html:62 .\kasu\templates\index.html:65
|
#: templates/index.html:62 templates/index.html:65
|
||||||
msgid "Visit us on"
|
msgid "Visit us on"
|
||||||
msgstr "Besuche uns auf"
|
msgstr "Besuche uns auf"
|
||||||
|
|
||||||
#: .\kasu\templates\index.html:74
|
#: templates/index.html:74
|
||||||
msgid "Add Article"
|
msgid "Add Article"
|
||||||
msgstr "Artikel hinzufügen"
|
msgstr "Artikel hinzufügen"
|
||||||
|
|
||||||
#: .\kasu\templates\paginator.html:8
|
#: templates/paginator.html:8
|
||||||
msgid "Previous"
|
msgid "Previous"
|
||||||
msgstr "Vorherige"
|
msgstr "Vorherige"
|
||||||
|
|
||||||
#: .\kasu\templates\paginator.html:20
|
#: templates/paginator.html:20
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Nächste"
|
msgstr "Nächste"
|
||||||
|
|
||||||
|
|||||||
@@ -68,17 +68,16 @@ CACHES = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Request Middleware
|
# Request Middleware
|
||||||
MIDDLEWARE_CLASSES = [
|
MIDDLEWARE = [
|
||||||
'csp.middleware.CSPMiddleware',
|
'csp.middleware.CSPMiddleware',
|
||||||
'django.middleware.security.SecurityMiddleware',
|
'django.middleware.security.SecurityMiddleware',
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
|
|
||||||
'django.middleware.locale.LocaleMiddleware',
|
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
'django.middleware.locale.LocaleMiddleware',
|
||||||
'utils.middleware.SetRemoteAddrFromForwardedFor',
|
'utils.middleware.SetRemoteAddrFromForwardedFor',
|
||||||
'mahjong_ranking.middleware.DenormalizationUpdateMiddleware',
|
'mahjong_ranking.middleware.DenormalizationUpdateMiddleware',
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -71,7 +71,7 @@
|
|||||||
<ul class="fa-ul">
|
<ul class="fa-ul">
|
||||||
<li><span class="fa-li fa fa-clock-o"></span><strong>{% trans "Since" %}:</strong> {{current_event.start|timesince}}</li>
|
<li><span class="fa-li fa fa-clock-o"></span><strong>{% trans "Since" %}:</strong> {{current_event.start|timesince}}</li>
|
||||||
<li><span class="fa-li fa fa-calendar"></span><strong>{% trans "Start" %}:</strong>
|
<li><span class="fa-li fa fa-calendar"></span><strong>{% trans "Start" %}:</strong>
|
||||||
<time datetime="{{current_event.start|date:'c'}}">{{current_event.start|date:'DATETIME_FORMAT'}}</time>
|
<time datetime="{{current_event.start|date:'Y-m-d\TH:i:sO'}}">{{current_event.start|date:'DATETIME_FORMAT'}}</time>
|
||||||
</li>
|
</li>
|
||||||
<li><span class="fa-li fa fa-map-marker"></span><strong>{% trans "Location" %}:</strong> {{ current_event.location }}
|
<li><span class="fa-li fa fa-map-marker"></span><strong>{% trans "Location" %}:</strong> {{ current_event.location }}
|
||||||
- {{current_event.location.street_address}}, {{current_event.location.postal_code}} {{current_event.location.locality}}
|
- {{current_event.location.street_address}}, {{current_event.location.postal_code}} {{current_event.location.locality}}
|
||||||
@@ -79,13 +79,13 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<div class="right"><a class="button" href="{{current_event.get_absolute_url}}">
|
<div class="right"><a class="button" href="{{current_event.get_absolute_url}}">
|
||||||
{% trans "More Details" %} <span class="fa fa-arrow-right"></span></a></div>
|
{% trans "More Details" %} <span class="fa fa-arrow-right"></span></a></div>
|
||||||
{% else %}
|
{% elif next_event %}
|
||||||
<h2>{% trans "Next Event" %}</h2>
|
<h2>{% trans "Next Event" %}</h2>
|
||||||
<h3>{{ next_event.name}}</h3>
|
<h3>{{ next_event.name}}</h3>
|
||||||
<ul class="fa-ul">
|
<ul class="fa-ul">
|
||||||
<li><span class="fa-li fa fa-clock-o"></span><strong>{% trans "in" %}:</strong> {{next_event.start|timeuntil}}</li>
|
<li><span class="fa-li fa fa-clock-o"></span><strong>{% trans "in" %}:</strong> {{next_event.start|timeuntil}}</li>
|
||||||
<li><span class="fa-li fa fa-calendar"></span><strong>{% trans "Start" %}:</strong>
|
<li><span class="fa-li fa fa-calendar"></span><strong>{% trans "Start" %}:</strong>
|
||||||
<time datetime="{{next_event.start|date:'c'}}">{{next_event.start|date:'DATETIME_FORMAT' }}</time>
|
<time datetime="{{next_event.start|date:'Y-m-d\TH:i:sO'}}">{{next_event.start|date:'DATETIME_FORMAT' }}</time>
|
||||||
</li>
|
</li>
|
||||||
<li><span class="fa-li fa fa-map-marker"></span><strong>{% trans "Location" %}:</strong> {{ next_event.location }}
|
<li><span class="fa-li fa fa-map-marker"></span><strong>{% trans "Location" %}:</strong> {{ next_event.location }}
|
||||||
- {{next_event.location.street_address}}, {{next_event.location.postal_code}} {{next_event.location.locality}}
|
- {{next_event.location.street_address}}, {{next_event.location.postal_code}} {{next_event.location.locality}}
|
||||||
@@ -101,8 +101,10 @@
|
|||||||
{% for event in upcoming_events %}
|
{% for event in upcoming_events %}
|
||||||
<li><span class="fa-li fa fa-calendar-o"></span>
|
<li><span class="fa-li fa fa-calendar-o"></span>
|
||||||
<a href="{{ event.get_absolute_url}}">
|
<a href="{{ event.get_absolute_url}}">
|
||||||
<time datetime="{{event.start|date:'c'}}">{{event.start|date:'D d. M:'}}</time>
|
<time datetime="{{event.start|date:'Y-m-d\TH:i:sO'}}">{{event.start|date:'D d. M:'}}</time>
|
||||||
{{event.name}}</a></li>
|
{{event.name}}</a></li>
|
||||||
|
{% empty %}
|
||||||
|
<li>{% trans 'No events found' %}.</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<header class="comment_header">
|
<header class="comment_header">
|
||||||
<h3><a href="{{ comment.user.get_profile.get_absolute_url }}" class="user">{{comment.user}}</a></h3>
|
<h3><a href="{{ comment.user.get_profile.get_absolute_url }}" class="user">{{comment.user}}</a></h3>
|
||||||
<time datetime="{{comment.submit_date|date:'Y-m-d'}}" class="submit_date">{{comment.submit_date|timesince}}</time>
|
<time datetime="{{comment.submit_date|date:'Y-m-d\TH:i:sO'}}" class="submit_date">{{comment.submit_date|timesince}}</time>
|
||||||
</header>
|
</header>
|
||||||
<div class="comment_text">{{comment.comment}}</div>
|
<div class="comment_text">{{comment.comment}}</div>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<h2><a href="{{article.get_absolute_url}}">{{article.headline}}</a></h2>
|
<h2><a href="{{article.get_absolute_url}}">{{article.headline}}</a></h2>
|
||||||
<ul class="info">
|
<ul class="info">
|
||||||
<li><span class="fa fa-calendar"></span>
|
<li><span class="fa fa-calendar"></span>
|
||||||
<time datetime="{{article.date_created|date:'Y-m-d H:i'}}">{{ article.date_created|date:'DATE_FORMAT' }}</time>
|
<time datetime="{{article.date_created|date:'Y-m-d\TH:i:sO'}}">{{ article.date_created|date:'DATE_FORMAT' }}</time>
|
||||||
</li>
|
</li>
|
||||||
<li><span class="fa fa-user"></span> {{ article.author }}
|
<li><span class="fa fa-user"></span> {{ article.author }}
|
||||||
</li>
|
</li>
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
From <a href="{{user_link}}">{{author}}</a> in
|
From <a href="{{user_link}}">{{author}}</a> in
|
||||||
<a href="{{comment_link}}">“{{object}}”</a>
|
<a href="{{comment_link}}">“{{object}}”</a>
|
||||||
since
|
since
|
||||||
<time datetime="{{submit_date}}">{{since}}</time>
|
<time datetime="{{submit_date|date:'Y-m-d\TH:i:sO'}}">{{since}}</time>
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ sitemaps = {
|
|||||||
urlpatterns = [ # Ignore PyLintBear (C0103)
|
urlpatterns = [ # Ignore PyLintBear (C0103)
|
||||||
url(r'^$', views.StartPage.as_view()),
|
url(r'^$', views.StartPage.as_view()),
|
||||||
url(r'^404/$', TemplateView.as_view(template_name='404.html')),
|
url(r'^404/$', TemplateView.as_view(template_name='404.html')),
|
||||||
url(r'^add_page/(?P<path>[\+\.\-\d\w\/]+)/$',
|
url(r'^add_page/(?P<path>[\+\.\-\d\w\/]*)$',
|
||||||
views.PageAddForm.as_view(), name='add-page'),
|
views.PageAddForm.as_view(), name='add-page'),
|
||||||
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||||
url(r'^admin/', admin.site.urls),
|
url(r'^admin/', admin.site.urls),
|
||||||
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
|
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
|
||||||
url(r'^comments/', include('django_comments.urls')),
|
url(r'^comments/', include('django_comments.urls')),
|
||||||
url(r'^edit_page/(?P<path>[\+\.\-\d\w\/]+)/$',
|
url(r'^edit_page/(?P<path>[\+\.\-\d\w\/]*)$',
|
||||||
views.PageEditForm.as_view(), name='edit-page'),
|
views.PageEditForm.as_view(), name='edit-page'),
|
||||||
url(r'^events/', include('events.urls')),
|
url(r'^events/', include('events.urls')),
|
||||||
url(r'^events.ics$', EventListIcal.as_view(), name='events-ical'),
|
url(r'^events.ics$', EventListIcal.as_view(), name='events-ical'),
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ if VENV_PATH not in sys.path:
|
|||||||
if SOURCE_PATH not in sys.path:
|
if SOURCE_PATH not in sys.path:
|
||||||
sys.path.append(SOURCE_PATH)
|
sys.path.append(SOURCE_PATH)
|
||||||
|
|
||||||
from django.core.wsgi import get_wsgi_application # Ignore PyLintBear (C0413) # Ignore PyLintBear (C0413)
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
|
||||||
os.environ['DJANGO_SETTINGS_MODULE'] = 'kasu.settings'
|
os.environ['DJANGO_SETTINGS_MODULE'] = 'kasu.settings'
|
||||||
|
|
||||||
application = get_wsgi_application() # Ignore PyLintBear (C0103) # Ignore PyLintBear (C0103)
|
application = get_wsgi_application()
|
||||||
|
|||||||
@@ -80,7 +80,8 @@ class Workbook(object):
|
|||||||
:rtype: object
|
:rtype: object
|
||||||
"""
|
"""
|
||||||
self.workbook = openpyxl.Workbook()
|
self.workbook = openpyxl.Workbook()
|
||||||
[self.workbook.add_named_style(style) for style in XLSX_STYLES.values()]
|
[self.workbook.add_named_style(style)
|
||||||
|
for style in XLSX_STYLES.values()]
|
||||||
[self.workbook.remove(sheet) for sheet in self.workbook.worksheets]
|
[self.workbook.remove(sheet) for sheet in self.workbook.worksheets]
|
||||||
|
|
||||||
def generate_sheet(self, title, columns_settings, object_list,
|
def generate_sheet(self, title, columns_settings, object_list,
|
||||||
@@ -135,7 +136,8 @@ class Workbook(object):
|
|||||||
|
|
||||||
# write table footer
|
# write table footer
|
||||||
for column, settings in enumerate(columns_settings, 1):
|
for column, settings in enumerate(columns_settings, 1):
|
||||||
cell = ws.cell(column=column, row=row, value=settings.get('footer'))
|
cell = ws.cell(column=column, row=row,
|
||||||
|
value=settings.get('footer'))
|
||||||
cell.style = settings['style']
|
cell.style = settings['style']
|
||||||
row += 1
|
row += 1
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ def recalculate(modeladmin, request, queryset): # Ignore PyLintBear (W0613)
|
|||||||
for ladder_ranking in queryset:
|
for ladder_ranking in queryset:
|
||||||
set_dirty(user=ladder_ranking.user_id,
|
set_dirty(user=ladder_ranking.user_id,
|
||||||
season=ladder_ranking.season)
|
season=ladder_ranking.season)
|
||||||
|
|
||||||
|
|
||||||
recalculate.short_description = _("Recalculate")
|
recalculate.short_description = _("Recalculate")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.mahjong_ranking\n"
|
"Project-Id-Version: kasu.mahjong_ranking\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-05-08 00:17+0200\n"
|
"POT-Creation-Date: 2019-12-13 23:38+0100\n"
|
||||||
"PO-Revision-Date: 2018-05-08 00:20+0105\n"
|
"PO-Revision-Date: 2018-05-08 00:20+0105\n"
|
||||||
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
@@ -19,382 +19,374 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 1.8.9\n"
|
"X-Generator: Poedit 1.8.9\n"
|
||||||
"X-Translated-Using: django-rosetta 0.8.1\n"
|
"X-Translated-Using: django-rosetta 0.8.1\n"
|
||||||
|
|
||||||
#: .\mahjong_ranking\admin.py:24
|
#: admin.py:24
|
||||||
msgid "Recalculate"
|
msgid "Recalculate"
|
||||||
msgstr "Neuberechnen"
|
msgstr "Neuberechnen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\admin.py:34
|
#: admin.py:34
|
||||||
msgid "Confirm"
|
msgid "Confirm"
|
||||||
msgstr "Bestätigen"
|
msgstr "Bestätigen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\admin.py:44
|
#: admin.py:44
|
||||||
msgid "Set unconfirmed"
|
msgid "Set unconfirmed"
|
||||||
msgstr "Als unbestätigt markieren"
|
msgstr "Als unbestätigt markieren"
|
||||||
|
|
||||||
#: .\mahjong_ranking\forms.py:22
|
#: forms.py:22
|
||||||
msgid "start"
|
msgid "start"
|
||||||
msgstr "Beginn"
|
msgstr "Beginn"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:91
|
#: models.py:91 templates/mahjong_ranking/player_dan_score.html:14
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:14
|
#: templates/mahjong_ranking/player_invalid_score.html:13
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:13
|
#: templates/mahjong_ranking/player_kyu_score.html:15
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:15
|
#: templates/mahjong_ranking/player_ladder_score.html:15
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:15
|
#: templates/mahjong_ranking/seasonranking_list.html:10
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:10
|
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "Beginn"
|
msgstr "Beginn"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:92
|
#: models.py:92
|
||||||
msgid "This is crucial to get the right Hanchans that scores"
|
msgid "This is crucial to get the right Hanchans that scores"
|
||||||
msgstr "Wichtig damit die richtigen Hanchans in die Wertung kommen."
|
msgstr "Wichtig damit die richtigen Hanchans in die Wertung kommen."
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:99
|
#: models.py:99
|
||||||
msgid "Player 1"
|
msgid "Player 1"
|
||||||
msgstr "Spieler 1"
|
msgstr "Spieler 1"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:100 .\mahjong_ranking\models.py:102
|
#: models.py:100 models.py:102 models.py:119 models.py:121 models.py:138
|
||||||
#: .\mahjong_ranking\models.py:119 .\mahjong_ranking\models.py:121
|
#: models.py:140 models.py:157 models.py:159
|
||||||
#: .\mahjong_ranking\models.py:138 .\mahjong_ranking\models.py:140
|
#: templates/mahjong_ranking/eventhanchan_list.html:19
|
||||||
#: .\mahjong_ranking\models.py:157 .\mahjong_ranking\models.py:159
|
#: templates/mahjong_ranking/eventranking_list.html:21
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:19
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:16
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:21
|
#: templates/mahjong_ranking/hanchan_form.html:19
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:16
|
#: templates/mahjong_ranking/kyudanranking_list.html:30
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:19
|
#: templates/mahjong_ranking/seasonranking_list.html:31
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\kyudanranking_list.html:30
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:31
|
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr "Punkte"
|
msgstr "Punkte"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:112 .\mahjong_ranking\models.py:131
|
#: models.py:112 models.py:131 models.py:150 models.py:169 models.py:171
|
||||||
#: .\mahjong_ranking\models.py:150 .\mahjong_ranking\models.py:169
|
#: templates/mahjong_ranking/hanchan_form.html:20
|
||||||
#: .\mahjong_ranking\models.py:171
|
#: templates/mahjong_ranking/player_dan_score.html:18
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:20
|
#: templates/mahjong_ranking/player_invalid_score.html:17
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:18
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:17
|
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
msgstr "Kommentar"
|
msgstr "Kommentar"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:118
|
#: models.py:118
|
||||||
msgid "Player 2"
|
msgid "Player 2"
|
||||||
msgstr "Spieler 2"
|
msgstr "Spieler 2"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:137
|
#: models.py:137
|
||||||
msgid "Player 3"
|
msgid "Player 3"
|
||||||
msgstr "Spieler 3"
|
msgstr "Spieler 3"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:156
|
#: models.py:156
|
||||||
msgid "Player 4"
|
msgid "Player 4"
|
||||||
msgstr "Spieler 4"
|
msgstr "Spieler 4"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:173
|
#: models.py:173
|
||||||
msgid "Has been Confirmed"
|
msgid "Has been Confirmed"
|
||||||
msgstr "Wurde bestätigt"
|
msgstr "Wurde bestätigt"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:174
|
#: models.py:174
|
||||||
msgid "Only valid and confirmed Hanchans will be counted in the rating."
|
msgid "Only valid and confirmed Hanchans will be counted in the rating."
|
||||||
msgstr "Nur gültige und bestätigte Hanchans kommen in die Wertung."
|
msgstr "Nur gültige und bestätigte Hanchans kommen in die Wertung."
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:179 .\mahjong_ranking\models.py:607
|
#: models.py:179 models.py:607 templates/mahjong_ranking/ladder_redbox.html:29
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\ladder_redbox.html:29
|
#: templates/mahjong_ranking/player_ladder_score.html:63
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:63
|
|
||||||
msgid "Season"
|
msgid "Season"
|
||||||
msgstr "Saison"
|
msgstr "Saison"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:184
|
#: models.py:184
|
||||||
msgid "Hanchan"
|
msgid "Hanchan"
|
||||||
msgstr "Hanchan"
|
msgstr "Hanchan"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:185
|
#: models.py:185 templates/mahjong_ranking/eventranking_list.html:17
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:17
|
|
||||||
msgid "Hanchans"
|
msgid "Hanchans"
|
||||||
msgstr "Hanchans"
|
msgstr "Hanchans"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:188
|
#: models.py:188
|
||||||
msgid "Hanchan from {0:%Y-%m-%d} at {0:%H:%M} with {1}"
|
msgid "Hanchan from {0:%Y-%m-%d} at {0:%H:%M} with {1}"
|
||||||
msgstr "Hanchan vom {0:%Y-%m-%d} um {0:%H:%M} mit {1}"
|
msgstr "Hanchan vom {0:%Y-%m-%d} um {0:%H:%M} mit {1}"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:215
|
#: models.py:215
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s can't attend the same game multiple times"
|
msgid "%s can't attend the same game multiple times"
|
||||||
msgstr "%s kann an einem Spiel nicht mehrfach teilnehmen."
|
msgstr "%s kann an einem Spiel nicht mehrfach teilnehmen."
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:223
|
#: models.py:223
|
||||||
msgid "Games in the future may not be added, Dr. Brown"
|
msgid "Games in the future may not be added, Dr. Brown"
|
||||||
msgstr "Spiele aus der Zukunft dürfen noch nicht erfasst werden. Dr. Brown."
|
msgstr "Spiele aus der Zukunft dürfen noch nicht erfasst werden. Dr. Brown."
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:225
|
#: models.py:225
|
||||||
msgid "Only games during the event are allowed"
|
msgid "Only games during the event are allowed"
|
||||||
msgstr "Nur Spiele während der Veranstaltung zählen."
|
msgstr "Nur Spiele während der Veranstaltung zählen."
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:228
|
#: models.py:228
|
||||||
msgid "Gamescore is lower then 100.000 Pt."
|
msgid "Gamescore is lower then 100.000 Pt."
|
||||||
msgstr "Spielstand ist weniger als 100.000 Punkte"
|
msgstr "Spielstand ist weniger als 100.000 Punkte"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:230
|
#: models.py:230
|
||||||
msgid "Gamescore is over 100.000 Pt."
|
msgid "Gamescore is over 100.000 Pt."
|
||||||
msgstr "Spielstand ist über 100.000 Punkte."
|
msgstr "Spielstand ist über 100.000 Punkte."
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:362
|
#: models.py:362
|
||||||
msgid "Kyū/Dan Ranking"
|
msgid "Kyū/Dan Ranking"
|
||||||
msgstr "Kyū/Dan Wertung"
|
msgstr "Kyū/Dan Wertung"
|
||||||
|
|
||||||
#: .\mahjong_ranking\models.py:363
|
#: models.py:363
|
||||||
msgid "Kyū/Dan Rankings"
|
msgid "Kyū/Dan Rankings"
|
||||||
msgstr "Kyū/Dan Wertungen"
|
msgstr "Kyū/Dan Wertungen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_form.html:11
|
#: templates/mahjong_ranking/eventhanchan_form.html:11
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:55
|
#: templates/mahjong_ranking/eventhanchan_list.html:55
|
||||||
msgid "Edit Hanchans"
|
msgid "Edit Hanchans"
|
||||||
msgstr "Hanchans bearbeiten"
|
msgstr "Hanchans bearbeiten"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_form.html:49
|
#: templates/mahjong_ranking/eventhanchan_form.html:49
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:58
|
#: templates/mahjong_ranking/hanchan_form.html:58
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Total"
|
msgstr "Total"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_form.html:51
|
#: templates/mahjong_ranking/eventhanchan_form.html:51
|
||||||
msgid "Difference"
|
msgid "Difference"
|
||||||
msgstr "Unterschied"
|
msgstr "Unterschied"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_form.html:103
|
#: templates/mahjong_ranking/eventhanchan_form.html:103
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:56
|
#: templates/mahjong_ranking/eventhanchan_list.html:56
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:52
|
#: templates/mahjong_ranking/eventranking_list.html:52
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:4
|
#: templates/mahjong_ranking/hanchan_form.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:14
|
#: templates/mahjong_ranking/hanchan_form.html:14
|
||||||
msgid "Add Hanchan"
|
msgid "Add Hanchan"
|
||||||
msgstr "Hanchan hinzufügen"
|
msgstr "Hanchan hinzufügen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_form.html:105
|
#: templates/mahjong_ranking/eventhanchan_form.html:105
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:37
|
#: templates/mahjong_ranking/eventhanchan_list.html:37
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:4
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:33
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:33
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:44
|
#: templates/mahjong_ranking/player_dan_score.html:44
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:33
|
#: templates/mahjong_ranking/player_invalid_score.html:33
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:41
|
#: templates/mahjong_ranking/player_kyu_score.html:41
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:52
|
#: templates/mahjong_ranking/player_ladder_score.html:52
|
||||||
msgid "Delete Hanchan"
|
msgid "Delete Hanchan"
|
||||||
msgstr "Hanchan löschen"
|
msgstr "Hanchan löschen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_form.html:118
|
#: templates/mahjong_ranking/eventhanchan_form.html:118
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:71
|
#: templates/mahjong_ranking/hanchan_form.html:71
|
||||||
msgid "back"
|
msgid "back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_form.html:119
|
#: templates/mahjong_ranking/eventhanchan_form.html:119
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:72
|
#: templates/mahjong_ranking/hanchan_form.html:72
|
||||||
msgid "save"
|
msgid "save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:7
|
#: templates/mahjong_ranking/eventhanchan_list.html:7
|
||||||
msgid "Played Hanchans"
|
msgid "Played Hanchans"
|
||||||
msgstr "Gespielte Hanchans"
|
msgstr "Gespielte Hanchans"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:18
|
#: templates/mahjong_ranking/eventhanchan_list.html:18
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:15
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:15
|
||||||
msgid "Place"
|
msgid "Place"
|
||||||
msgstr "Platz"
|
msgstr "Platz"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:21
|
#: templates/mahjong_ranking/eventhanchan_list.html:21
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:18
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:18
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:17
|
#: templates/mahjong_ranking/player_dan_score.html:17
|
||||||
msgid "Dan Points"
|
msgid "Dan Points"
|
||||||
msgstr "Dan Punkte"
|
msgstr "Dan Punkte"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:23
|
#: templates/mahjong_ranking/eventhanchan_list.html:23
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:20
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:20
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:16
|
#: templates/mahjong_ranking/player_invalid_score.html:16
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:18
|
#: templates/mahjong_ranking/player_kyu_score.html:18
|
||||||
msgid "Kyu Points"
|
msgid "Kyu Points"
|
||||||
msgstr "Kyu Punkte"
|
msgstr "Kyu Punkte"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:43
|
#: templates/mahjong_ranking/eventhanchan_list.html:43
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:4
|
#: templates/mahjong_ranking/hanchan_form.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:14
|
#: templates/mahjong_ranking/hanchan_form.html:14
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:47
|
#: templates/mahjong_ranking/player_dan_score.html:47
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:36
|
#: templates/mahjong_ranking/player_invalid_score.html:36
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:44
|
#: templates/mahjong_ranking/player_kyu_score.html:44
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:55
|
#: templates/mahjong_ranking/player_ladder_score.html:55
|
||||||
msgid "Edit Hanchan"
|
msgid "Edit Hanchan"
|
||||||
msgstr "Hanchan bearbeiten"
|
msgstr "Hanchan bearbeiten"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:48
|
#: templates/mahjong_ranking/eventhanchan_list.html:48
|
||||||
msgid "No Hanchan has been added to this event yet."
|
msgid "No Hanchan has been added to this event yet."
|
||||||
msgstr "Für diese Veranstaltung wurde noch keine Hanchan eingetragen."
|
msgstr "Für diese Veranstaltung wurde noch keine Hanchan eingetragen."
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventhanchan_list.html:54
|
#: templates/mahjong_ranking/eventhanchan_list.html:54
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:51
|
#: templates/mahjong_ranking/eventranking_list.html:51
|
||||||
msgid "Edit Event"
|
msgid "Edit Event"
|
||||||
msgstr "Veranstaltung bearbeiten"
|
msgstr "Veranstaltung bearbeiten"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:4
|
#: templates/mahjong_ranking/eventranking_list.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:5
|
#: templates/mahjong_ranking/eventranking_list.html:5
|
||||||
msgid "Tournament Ranking"
|
msgid "Tournament Ranking"
|
||||||
msgstr "Turnierwertung"
|
msgstr "Turnierwertung"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:12
|
#: templates/mahjong_ranking/eventranking_list.html:12
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\kyudanranking_list.html:25
|
#: templates/mahjong_ranking/kyudanranking_list.html:25
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:23
|
#: templates/mahjong_ranking/seasonranking_list.html:23
|
||||||
msgid "Rank"
|
msgid "Rank"
|
||||||
msgstr "Rang"
|
msgstr "Rang"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:13
|
#: templates/mahjong_ranking/eventranking_list.html:13
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\kyudanranking_list.html:17
|
#: templates/mahjong_ranking/kyudanranking_list.html:17
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:24
|
#: templates/mahjong_ranking/seasonranking_list.html:24
|
||||||
msgid "Avatar"
|
msgid "Avatar"
|
||||||
msgstr "Avatar"
|
msgstr "Avatar"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:14
|
#: templates/mahjong_ranking/eventranking_list.html:14
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\kyudanranking_list.html:20
|
#: templates/mahjong_ranking/kyudanranking_list.html:20
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:25
|
#: templates/mahjong_ranking/seasonranking_list.html:25
|
||||||
msgid "Nickname"
|
msgid "Nickname"
|
||||||
msgstr "Spitzname"
|
msgstr "Spitzname"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:15
|
#: templates/mahjong_ranking/eventranking_list.html:15
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:16
|
#: templates/mahjong_ranking/eventranking_list.html:16
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:26
|
#: templates/mahjong_ranking/seasonranking_list.html:26
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Durchschnitt"
|
msgstr "Durchschnitt"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:20
|
#: templates/mahjong_ranking/eventranking_list.html:20
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:15
|
#: templates/mahjong_ranking/player_dan_score.html:15
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:15
|
#: templates/mahjong_ranking/player_invalid_score.html:15
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:16
|
#: templates/mahjong_ranking/player_kyu_score.html:16
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:16
|
#: templates/mahjong_ranking/player_ladder_score.html:16
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:30
|
#: templates/mahjong_ranking/seasonranking_list.html:30
|
||||||
msgid "Placement"
|
msgid "Placement"
|
||||||
msgstr "Platzierung"
|
msgstr "Platzierung"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:22
|
#: templates/mahjong_ranking/eventranking_list.html:22
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:32
|
#: templates/mahjong_ranking/seasonranking_list.html:32
|
||||||
msgid "count"
|
msgid "count"
|
||||||
msgstr "Anzahl"
|
msgstr "Anzahl"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:23
|
#: templates/mahjong_ranking/eventranking_list.html:23
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:33
|
#: templates/mahjong_ranking/seasonranking_list.html:33
|
||||||
msgid "good"
|
msgid "good"
|
||||||
msgstr "gut"
|
msgstr "gut"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\eventranking_list.html:24
|
#: templates/mahjong_ranking/eventranking_list.html:24
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:34
|
#: templates/mahjong_ranking/seasonranking_list.html:34
|
||||||
msgid "won"
|
msgid "won"
|
||||||
msgstr "gewonnen"
|
msgstr "gewonnen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:39
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:39
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbruch"
|
msgstr "Abbruch"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_confirm_delete.html:40
|
#: templates/mahjong_ranking/hanchan_confirm_delete.html:40
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\hanchan_form.html:18
|
#: templates/mahjong_ranking/hanchan_form.html:18
|
||||||
msgid "Player"
|
msgid "Player"
|
||||||
msgstr "Spieler"
|
msgstr "Spieler"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\kyudanranking_list.html:4
|
#: templates/mahjong_ranking/kyudanranking_list.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\kyudanranking_list.html:9
|
#: templates/mahjong_ranking/kyudanranking_list.html:9
|
||||||
#| msgid "Player List"
|
|
||||||
msgid "Players list"
|
msgid "Players list"
|
||||||
msgstr "Spielerliste"
|
msgstr "Spielerliste"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\kyudanranking_list.html:35
|
#: templates/mahjong_ranking/kyudanranking_list.html:35
|
||||||
msgid "Games Total"
|
msgid "Games Total"
|
||||||
msgstr "Spiele total"
|
msgstr "Spiele total"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\ladder_redbox.html:3
|
#: templates/mahjong_ranking/ladder_redbox.html:3
|
||||||
msgid "Latest Hanchans"
|
msgid "Latest Hanchans"
|
||||||
msgstr "Letzten Hanchans"
|
msgstr "Letzten Hanchans"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\ladder_redbox.html:15
|
#: templates/mahjong_ranking/ladder_redbox.html:15
|
||||||
msgid "Latest Events"
|
msgid "Latest Events"
|
||||||
msgstr "Letzte Veranstaltungen"
|
msgstr "Letzte Veranstaltungen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\ladder_redbox.html:27
|
#: templates/mahjong_ranking/ladder_redbox.html:27
|
||||||
msgid "Ladder Archive"
|
msgid "Ladder Archive"
|
||||||
msgstr "Ladder Archiv"
|
msgstr "Ladder Archiv"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:4
|
#: templates/mahjong_ranking/player_dan_score.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:5
|
#: templates/mahjong_ranking/player_dan_score.html:5
|
||||||
msgid "Dan Score for"
|
msgid "Dan Score for"
|
||||||
msgstr "Dan Wertung für"
|
msgstr "Dan Wertung für"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:8
|
#: templates/mahjong_ranking/player_dan_score.html:8
|
||||||
msgid "Hanchans that apply to the Dan Score"
|
msgid "Hanchans that apply to the Dan Score"
|
||||||
msgstr "Hanchans welche zur Dan Wertung zählen"
|
msgstr "Hanchans welche zur Dan Wertung zählen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:12
|
#: templates/mahjong_ranking/player_dan_score.html:12
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:13
|
#: templates/mahjong_ranking/player_kyu_score.html:13
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:13
|
#: templates/mahjong_ranking/player_ladder_score.html:13
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Datum"
|
msgstr "Datum"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:13
|
#: templates/mahjong_ranking/player_dan_score.html:13
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:12
|
#: templates/mahjong_ranking/player_invalid_score.html:12
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:14
|
#: templates/mahjong_ranking/player_kyu_score.html:14
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:14
|
#: templates/mahjong_ranking/player_ladder_score.html:14
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr "Veranstaltung"
|
msgstr "Veranstaltung"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_dan_score.html:16
|
#: templates/mahjong_ranking/player_dan_score.html:16
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:14
|
#: templates/mahjong_ranking/player_invalid_score.html:14
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:17
|
#: templates/mahjong_ranking/player_kyu_score.html:17
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:17
|
#: templates/mahjong_ranking/player_ladder_score.html:17
|
||||||
msgid "Players"
|
msgid "Players"
|
||||||
msgstr "Spieler"
|
msgstr "Spieler"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:4
|
#: templates/mahjong_ranking/player_invalid_score.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:6
|
#: templates/mahjong_ranking/player_invalid_score.html:6
|
||||||
msgid "Unconfirmed Hanchans from"
|
msgid "Unconfirmed Hanchans from"
|
||||||
msgstr "Nicht bestätigte Hanchans von"
|
msgstr "Nicht bestätigte Hanchans von"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_invalid_score.html:9
|
#: templates/mahjong_ranking/player_invalid_score.html:9
|
||||||
msgid "Invalid hanchans with"
|
msgid "Invalid hanchans with"
|
||||||
msgstr "Ungültige Hanchans mit"
|
msgstr "Ungültige Hanchans mit"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:4
|
#: templates/mahjong_ranking/player_kyu_score.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:6
|
#: templates/mahjong_ranking/player_kyu_score.html:6
|
||||||
msgid "Kyu Score for"
|
msgid "Kyu Score for"
|
||||||
msgstr "Kyu Wertung für"
|
msgstr "Kyu Wertung für"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_kyu_score.html:9
|
#: templates/mahjong_ranking/player_kyu_score.html:9
|
||||||
msgid "Hanchans that apply to the Kyu Score"
|
msgid "Hanchans that apply to the Kyu Score"
|
||||||
msgstr "Hanchans welche zur Kyu Wertung zählen"
|
msgstr "Hanchans welche zur Kyu Wertung zählen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:4
|
#: templates/mahjong_ranking/player_ladder_score.html:4
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:5
|
#: templates/mahjong_ranking/player_ladder_score.html:5
|
||||||
msgid "Ladder Score for"
|
msgid "Ladder Score for"
|
||||||
msgstr "Ladder Wertung für"
|
msgstr "Ladder Wertung für"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:8
|
#: templates/mahjong_ranking/player_ladder_score.html:8
|
||||||
msgid "Hanchans that apply to the Ladder Score"
|
msgid "Hanchans that apply to the Ladder Score"
|
||||||
msgstr "Hanchans welche in der Ladder zählen"
|
msgstr "Hanchans welche in der Ladder zählen"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\player_ladder_score.html:71
|
#: templates/mahjong_ranking/player_ladder_score.html:71
|
||||||
msgid "Go"
|
msgid "Go"
|
||||||
msgstr "Los"
|
msgstr "Los"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:11
|
#: templates/mahjong_ranking/seasonranking_list.html:11
|
||||||
msgid "End"
|
msgid "End"
|
||||||
msgstr "Ende"
|
msgstr "Ende"
|
||||||
|
|
||||||
#: .\mahjong_ranking\templates\mahjong_ranking\seasonranking_list.html:12
|
#: templates/mahjong_ranking/seasonranking_list.html:12
|
||||||
msgid "Participants"
|
msgid "Participants"
|
||||||
msgstr "Teilnehmer"
|
msgstr "Teilnehmer"
|
||||||
|
|
||||||
#: .\mahjong_ranking\views.py:104
|
#: views.py:116
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s has been updated successfully."
|
msgid "%s has been updated successfully."
|
||||||
msgstr "%s wurde erfolgreich aktualisiert."
|
msgstr "%s wurde erfolgreich aktualisiert."
|
||||||
|
|
||||||
#: .\mahjong_ranking\views.py:107
|
#: views.py:119
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s has been added successfully. You can now add a new one."
|
msgid "%s has been added successfully. You can now add a new one."
|
||||||
msgstr "%s wurde erfolgreich hinzugefügt. Du kannst eine neue eintragen."
|
msgstr "%s wurde erfolgreich hinzugefügt. Du kannst eine neue eintragen."
|
||||||
|
|
||||||
#: .\mahjong_ranking\views.py:207
|
#: views.py:219
|
||||||
msgid "No user found matching the name {}"
|
msgid "No user found matching the name {}"
|
||||||
msgstr "Kein Benutzer mit dem Namen %s gefunden"
|
msgstr "Kein Benutzer mit dem Namen %s gefunden"
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,13 @@ Rest all dan points to 0 at a given date.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from datetime import date, datetime, time
|
from datetime import datetime
|
||||||
|
from datetime import time
|
||||||
from mahjong_ranking import models
|
from mahjong_ranking import models
|
||||||
from django.utils.dateparse import parse_date
|
from django.utils.dateparse import parse_date
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
""" Recalculate all Kyu/Dan Rankings """
|
""" Recalculate all Kyu/Dan Rankings """
|
||||||
|
|
||||||
@@ -17,12 +19,13 @@ class Command(BaseCommand):
|
|||||||
parser.add_argument('reset_date', type=parse_date)
|
parser.add_argument('reset_date', type=parse_date)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
legacy_attrs = [ key for key in models.KyuDanRanking.__dict__.keys()
|
legacy_attrs = [key for key in models.KyuDanRanking.__dict__.keys()
|
||||||
if key.startswith('legacy') ]
|
if key.startswith('legacy')]
|
||||||
legacy_attrs.remove('legacy_date')
|
legacy_attrs.remove('legacy_date')
|
||||||
reset_date = timezone.make_aware(datetime.combine(
|
reset_date = timezone.make_aware(datetime.combine(
|
||||||
options.get('reset_date'), time(23, 59, 59)))
|
options.get('reset_date'), time(23, 59, 59)))
|
||||||
models.KyuDanRanking.objects.update(until=reset_date, force_recalc=True)
|
models.KyuDanRanking.objects.update(
|
||||||
|
until=reset_date, force_recalc=True)
|
||||||
for ranking in models.KyuDanRanking.objects.filter(dan__gt=0):
|
for ranking in models.KyuDanRanking.objects.filter(dan__gt=0):
|
||||||
print(ranking)
|
print(ranking)
|
||||||
ranking.dan = 1
|
ranking.dan = 1
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class HanchanManager(models.Manager):
|
|||||||
hanchans = hanchans.filter(start__lte=until)
|
hanchans = hanchans.filter(start__lte=until)
|
||||||
return hanchans
|
return hanchans
|
||||||
|
|
||||||
def dan_hanchans(self, user, since = None, **filter_args):
|
def dan_hanchans(self, user, since=None, **filter_args):
|
||||||
""" Return all Hanchans where a specific user has participated and had
|
""" Return all Hanchans where a specific user has participated and had
|
||||||
gain dan points and make his gamestats availabale.
|
gain dan points and make his gamestats availabale.
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ class HanchanManager(models.Manager):
|
|||||||
[hanchan.get_playerdata(user) for hanchan in queryset]
|
[hanchan.get_playerdata(user) for hanchan in queryset]
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def kyu_hanchans(self, user, since = None, **filter_args):
|
def kyu_hanchans(self, user, since=None, **filter_args):
|
||||||
""" Return all Hanchans where a specific user has participated and had
|
""" Return all Hanchans where a specific user has participated and had
|
||||||
gain kyū points and make his gamestats availabale.
|
gain kyū points and make his gamestats availabale.
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,27 @@
|
|||||||
"""Middleware to defer slow denormalization at the end of a request."""
|
"""Middleware to defer slow denormalization at the end of a request."""
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
|
|
||||||
from mahjong_ranking import models
|
from mahjong_ranking import models
|
||||||
from . import LOGGER
|
from . import LOGGER
|
||||||
|
from . import LOGGER
|
||||||
|
|
||||||
|
|
||||||
class DenormalizationUpdateMiddleware(object): # Ignore PyLintBear (R0903)
|
class DenormalizationUpdateMiddleware:
|
||||||
"""To recalculate everything in the queues at the end of a POST request."""
|
"""To recalculate everything in the queues at the end of a POST request."""
|
||||||
|
|
||||||
|
def __init__(self, get_response=None):
|
||||||
|
self.get_response = get_response
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
def __call__(self, request):
|
||||||
|
response = None
|
||||||
|
if hasattr(self, 'process_request'):
|
||||||
|
response = self.process_request(request)
|
||||||
|
response = response or self.get_response(request)
|
||||||
|
if hasattr(self, 'process_response'):
|
||||||
|
response = self.process_response(request, response)
|
||||||
|
return response
|
||||||
|
|
||||||
def process_response(self, request, response): # Ignore PyLintBear (R0201)
|
def process_response(self, request, response): # Ignore PyLintBear (R0201)
|
||||||
"""Check and process the recalculation queues on each POST request.
|
"""Check and process the recalculation queues on each POST request.
|
||||||
|
|
||||||
@@ -16,7 +31,6 @@ class DenormalizationUpdateMiddleware(object): # Ignore PyLintBear (R0903)
|
|||||||
"""
|
"""
|
||||||
event_queue = set()
|
event_queue = set()
|
||||||
season_queue = set()
|
season_queue = set()
|
||||||
|
|
||||||
if request.method != 'POST':
|
if request.method != 'POST':
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ class EventRanking(models.Model):
|
|||||||
Sie beschränken sich aber auf einen Event und werden nur dann angestossen,
|
Sie beschränken sich aber auf einen Event und werden nur dann angestossen,
|
||||||
wenn der Event als Turnier markiert wurde.
|
wenn der Event als Turnier markiert wurde.
|
||||||
"""
|
"""
|
||||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
|
user = models.ForeignKey(settings.AUTH_USER_MODEL,
|
||||||
|
on_delete=models.PROTECT)
|
||||||
event = models.ForeignKey(Event, on_delete=models.CASCADE)
|
event = models.ForeignKey(Event, on_delete=models.CASCADE)
|
||||||
placement = models.PositiveIntegerField(blank=True, null=True)
|
placement = models.PositiveIntegerField(blank=True, null=True)
|
||||||
avg_placement = models.FloatField(default=4)
|
avg_placement = models.FloatField(default=4)
|
||||||
@@ -428,7 +429,8 @@ class KyuDanRanking(models.Model):
|
|||||||
).order_by('-start')
|
).order_by('-start')
|
||||||
last_hanchan_this_event = hanchans_this_event[0]
|
last_hanchan_this_event = hanchans_this_event[0]
|
||||||
# Das braucht nur am Ende eines Turnieres gemacht werden.
|
# Das braucht nur am Ende eines Turnieres gemacht werden.
|
||||||
if hanchan != last_hanchan_this_event: return False
|
if hanchan != last_hanchan_this_event:
|
||||||
|
return False
|
||||||
event_ranking = EventRanking.objects.get(
|
event_ranking = EventRanking.objects.get(
|
||||||
user=self.user,
|
user=self.user,
|
||||||
event=hanchan.event
|
event=hanchan.event
|
||||||
@@ -603,7 +605,8 @@ class KyuDanRanking(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
class SeasonRanking(models.Model):
|
class SeasonRanking(models.Model):
|
||||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
|
user = models.ForeignKey(settings.AUTH_USER_MODEL,
|
||||||
|
on_delete=models.PROTECT)
|
||||||
season = models.PositiveSmallIntegerField(_('Season'))
|
season = models.PositiveSmallIntegerField(_('Season'))
|
||||||
placement = models.PositiveIntegerField(blank=True, null=True)
|
placement = models.PositiveIntegerField(blank=True, null=True)
|
||||||
avg_placement = models.FloatField(blank=True, null=True)
|
avg_placement = models.FloatField(blank=True, null=True)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
{% for hanchan in latest_hanchan_list %}
|
{% for hanchan in latest_hanchan_list %}
|
||||||
<li><span class="fa-li fa fa-table"></span>
|
<li><span class="fa-li fa fa-table"></span>
|
||||||
<a href="{% url 'event-hanchan-list' hanchan.event_id %}">
|
<a href="{% url 'event-hanchan-list' hanchan.event_id %}">
|
||||||
<time datetime="{{ hanchan.start|date:'c' }}">{{ hanchan.start|date:'D' }}
|
<time datetime="{{ hanchan.start|date:'Y-m-d\TH:i:sO' }}">{{ hanchan.start|date:'D' }}
|
||||||
{{ hanchan.start|date:'SHORT_DATE_FORMAT' }} {{hanchan.start|time:'H:i'}}
|
{{ hanchan.start|date:'SHORT_DATE_FORMAT' }} {{hanchan.start|time:'H:i'}}
|
||||||
</time></a>:<br />
|
</time></a>:<br />
|
||||||
<small>{{hanchan.player_names}}</small>
|
<small>{{hanchan.player_names}}</small>
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<span class="fa-li fa fa-calendar-o"></span>
|
<span class="fa-li fa fa-calendar-o"></span>
|
||||||
<a href="{% url 'event-hanchan-list' event.pk %}">
|
<a href="{% url 'event-hanchan-list' event.pk %}">
|
||||||
<time datetime="{{event.start|date:'c'}}">{{ event.start|date:'D' }} {{ event.start|date:'SHORT_DATE_FORMAT' }}</time>:
|
<time datetime="{{event.start|date:'Y-m-d\TH:i:sO'}}">{{ event.start|date:'D' }} {{ event.start|date:'SHORT_DATE_FORMAT' }}</time>:
|
||||||
{{event.name}}</a></li>
|
{{event.name}}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="9">Leider hat es noch niemand in das Ranking geschafft.
|
<td colspan="8">Leider hat es noch niemand in das Ranking geschafft.
|
||||||
Ein Spieler wird erst ins Ranking genommen wenn er 5 Hanchans absolviert hat.
|
Ein Spieler wird erst ins Ranking genommen wenn er 5 Hanchans absolviert hat.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -36,4 +36,3 @@ urlpatterns = [ # Ignore PyLintBear (C0103)
|
|||||||
url(r'^mahjong/(?P<order_by>[\+\-][a-z_]+)/$',
|
url(r'^mahjong/(?P<order_by>[\+\-][a-z_]+)/$',
|
||||||
views.KyuDanRankingList.as_view(), name="kyudanranking-list"),
|
views.KyuDanRankingList.as_view(), name="kyudanranking-list"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ class EventHanchanForm(EventDetailMixin, PermissionRequiredMixin,
|
|||||||
"""Display a Formset to add and Edit Hanchans of the specific Event."""
|
"""Display a Formset to add and Edit Hanchans of the specific Event."""
|
||||||
permission_required = 'mahjong_ranking.add_hanchan'
|
permission_required = 'mahjong_ranking.add_hanchan'
|
||||||
template_name = 'mahjong_ranking/eventhanchan_form.html'
|
template_name = 'mahjong_ranking/eventhanchan_form.html'
|
||||||
model=models.Hanchan
|
model = models.Hanchan
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
self.event = models.Event.objects.get(pk=self.kwargs['event'])
|
self.event = models.Event.objects.get(pk=self.kwargs['event'])
|
||||||
@@ -160,7 +160,6 @@ class EventHanchanForm(EventDetailMixin, PermissionRequiredMixin,
|
|||||||
return self.render_to_response(context)
|
return self.render_to_response(context)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class EventHanchanList(EventDetailMixin, generic.ListView):
|
class EventHanchanList(EventDetailMixin, generic.ListView):
|
||||||
"List all hanchans played on a given event."
|
"List all hanchans played on a given event."
|
||||||
model = models.Hanchan
|
model = models.Hanchan
|
||||||
|
|||||||
Binary file not shown.
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.mahjong_ranking\n"
|
"Project-Id-Version: kasu.mahjong_ranking\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-05-08 00:17+0200\n"
|
"POT-Creation-Date: 2019-12-13 23:38+0100\n"
|
||||||
"PO-Revision-Date: 2016-09-28 00:24+0200\n"
|
"PO-Revision-Date: 2016-09-28 00:24+0200\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
@@ -19,208 +19,205 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 1.8.9\n"
|
"X-Generator: Poedit 1.8.9\n"
|
||||||
"X-Translated-Using: django-rosetta 0.7.2\n"
|
"X-Translated-Using: django-rosetta 0.7.2\n"
|
||||||
|
|
||||||
#: .\maistar_ranking\admin.py:24
|
#: admin.py:24
|
||||||
msgid "Recalculate"
|
msgid "Recalculate"
|
||||||
msgstr "Neuberechnen"
|
msgstr "Neuberechnen"
|
||||||
|
|
||||||
#: .\maistar_ranking\forms.py:35
|
#: forms.py:35
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s may only participate once."
|
msgid "%s may only participate once."
|
||||||
msgstr "%s darf nur einmal teilnehmen."
|
msgstr "%s darf nur einmal teilnehmen."
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:21
|
#: models.py:21
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
msgstr "Kommentar"
|
msgstr "Kommentar"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:24
|
#: models.py:24
|
||||||
msgid "Player 1"
|
msgid "Player 1"
|
||||||
msgstr "Spieler 1"
|
msgstr "Spieler 1"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:26 .\maistar_ranking\models.py:33
|
#: models.py:26 models.py:33 models.py:40 models.py:47 models.py:54
|
||||||
#: .\maistar_ranking\models.py:40 .\maistar_ranking\models.py:47
|
#: models.py:61 templates/maistar_ranking/ranking_list.html:19
|
||||||
#: .\maistar_ranking\models.py:54 .\maistar_ranking\models.py:61
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:19
|
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr "Punkte"
|
msgstr "Punkte"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:31
|
#: models.py:31
|
||||||
msgid "Player 2"
|
msgid "Player 2"
|
||||||
msgstr "Spieler 2"
|
msgstr "Spieler 2"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:38
|
#: models.py:38
|
||||||
msgid "Player 3"
|
msgid "Player 3"
|
||||||
msgstr "Spieler 3"
|
msgstr "Spieler 3"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:45
|
#: models.py:45
|
||||||
msgid "Player 4"
|
msgid "Player 4"
|
||||||
msgstr "Spieler 4"
|
msgstr "Spieler 4"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:52
|
#: models.py:52
|
||||||
msgid "Player 5"
|
msgid "Player 5"
|
||||||
msgstr "Spieler 5"
|
msgstr "Spieler 5"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:59
|
#: models.py:59
|
||||||
msgid "Player 6"
|
msgid "Player 6"
|
||||||
msgstr "Spieler 6"
|
msgstr "Spieler 6"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:65
|
#: models.py:65
|
||||||
msgid "Has been confirmed"
|
msgid "Has been confirmed"
|
||||||
msgstr "Wurde bestätigt"
|
msgstr "Wurde bestätigt"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:67
|
#: models.py:67
|
||||||
msgid "the game only counts whe it has been confirmed"
|
msgid "the game only counts whe it has been confirmed"
|
||||||
msgstr "das Spiel zählt nur wenn es bestätigt wurde"
|
msgstr "das Spiel zählt nur wenn es bestätigt wurde"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:70 .\maistar_ranking\models.py:153
|
#: models.py:70 models.py:153 templates/maistar_ranking/player_game_list.html:6
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:6
|
#: templates/maistar_ranking/ranking_list.html:4
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:4
|
#: templates/maistar_ranking/ranking_list.html:72
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:72
|
|
||||||
msgid "Season"
|
msgid "Season"
|
||||||
msgstr "Saison"
|
msgstr "Saison"
|
||||||
|
|
||||||
#: .\maistar_ranking\models.py:80
|
#: models.py:80
|
||||||
msgid "Mai-Star Game with {0} from {1:%Y-%m-%d}"
|
msgid "Mai-Star Game with {0} from {1:%Y-%m-%d}"
|
||||||
msgstr "Mai-Star Spiel mit {0} vom {1:%Y-%m-%d}"
|
msgstr "Mai-Star Spiel mit {0} vom {1:%Y-%m-%d}"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_form.html:5
|
#: templates/maistar_ranking/game_form.html:5
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_form.html:16
|
#: templates/maistar_ranking/game_form.html:16
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:27
|
#: templates/maistar_ranking/game_list.html:27
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:44
|
#: templates/maistar_ranking/player_game_list.html:44
|
||||||
msgid "Edit Game"
|
msgid "Edit Game"
|
||||||
msgstr "Spiel bearbeiten"
|
msgstr "Spiel bearbeiten"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_form.html:5
|
#: templates/maistar_ranking/game_form.html:5
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_form.html:16
|
#: templates/maistar_ranking/game_form.html:16
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:41
|
#: templates/maistar_ranking/game_list.html:41
|
||||||
msgid "Add Game"
|
msgid "Add Game"
|
||||||
msgstr "Spiel hinzufügen"
|
msgstr "Spiel hinzufügen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_form.html:76
|
#: templates/maistar_ranking/game_form.html:76
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_form.html:77
|
#: templates/maistar_ranking/game_form.html:77
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:4
|
#: templates/maistar_ranking/game_list.html:4
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:6
|
#: templates/maistar_ranking/player_game_list.html:6
|
||||||
msgid "Mai-Star Games"
|
msgid "Mai-Star Games"
|
||||||
msgstr "Mai-Star Spiele"
|
msgstr "Mai-Star Spiele"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:7
|
#: templates/maistar_ranking/game_list.html:7
|
||||||
msgid "Played Mai-Star Games"
|
msgid "Played Mai-Star Games"
|
||||||
msgstr "Gespielte Mai-Star Spiele"
|
msgstr "Gespielte Mai-Star Spiele"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:11
|
#: templates/maistar_ranking/game_list.html:11
|
||||||
msgid "Game"
|
msgid "Game"
|
||||||
msgstr "Spiel"
|
msgstr "Spiel"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:14
|
#: templates/maistar_ranking/game_list.html:14
|
||||||
msgid "Place"
|
msgid "Place"
|
||||||
msgstr "Platz"
|
msgstr "Platz"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:19
|
#: templates/maistar_ranking/game_list.html:19
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:36
|
#: templates/maistar_ranking/player_game_list.html:36
|
||||||
msgid "Points"
|
msgid "Points"
|
||||||
msgstr "Punkte"
|
msgstr "Punkte"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:24
|
#: templates/maistar_ranking/game_list.html:24
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:41
|
#: templates/maistar_ranking/player_game_list.html:41
|
||||||
msgid "Delete Game"
|
msgid "Delete Game"
|
||||||
msgstr "Spiel löschen"
|
msgstr "Spiel löschen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:33
|
#: templates/maistar_ranking/game_list.html:33
|
||||||
msgid "No Mai-Star games have been added to this event yet."
|
msgid "No Mai-Star games have been added to this event yet."
|
||||||
msgstr "Für diese Veranstaltung wurden noch keine Mai-Star Spiele erfasst."
|
msgstr "Für diese Veranstaltung wurden noch keine Mai-Star Spiele erfasst."
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\game_list.html:40
|
#: templates/maistar_ranking/game_list.html:40
|
||||||
msgid "Edit Event"
|
msgid "Edit Event"
|
||||||
msgstr "Veranstaltung bearbeiten"
|
msgstr "Veranstaltung bearbeiten"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\hanchan_confirm_delete.html:4
|
#: templates/maistar_ranking/hanchan_confirm_delete.html:4
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\hanchan_confirm_delete.html:10
|
#: templates/maistar_ranking/hanchan_confirm_delete.html:10
|
||||||
msgid "Delete game"
|
msgid "Delete game"
|
||||||
msgstr "Spiel löschen"
|
msgstr "Spiel löschen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\hanchan_confirm_delete.html:13
|
#: templates/maistar_ranking/hanchan_confirm_delete.html:13
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\hanchan_confirm_delete.html:14
|
#: templates/maistar_ranking/hanchan_confirm_delete.html:14
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\page.html:5
|
#: templates/maistar_ranking/page.html:5
|
||||||
msgid "Archive"
|
msgid "Archive"
|
||||||
msgstr "Archiv"
|
msgstr "Archiv"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\page.html:7
|
#: templates/maistar_ranking/page.html:7
|
||||||
msgid "Add Event"
|
msgid "Add Event"
|
||||||
msgstr "Veranstaltung hinzufügen"
|
msgstr "Veranstaltung hinzufügen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:4
|
#: templates/maistar_ranking/player_game_list.html:4
|
||||||
msgid "Ladder Score for"
|
msgid "Ladder Score for"
|
||||||
msgstr "Ladder Wertung für"
|
msgstr "Ladder Wertung für"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:9
|
#: templates/maistar_ranking/player_game_list.html:9
|
||||||
msgid "Mai-Star Games with"
|
msgid "Mai-Star Games with"
|
||||||
msgstr "Mai-Star Spiele mit"
|
msgstr "Mai-Star Spiele mit"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:14
|
#: templates/maistar_ranking/player_game_list.html:14
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Datum"
|
msgstr "Datum"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:15
|
#: templates/maistar_ranking/player_game_list.html:15
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr "Veranstaltung"
|
msgstr "Veranstaltung"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\player_game_list.html:16
|
#: templates/maistar_ranking/player_game_list.html:16
|
||||||
msgid "Players"
|
msgid "Players"
|
||||||
msgstr "Spieler"
|
msgstr "Spieler"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:4
|
#: templates/maistar_ranking/ranking_list.html:4
|
||||||
msgid "Mai-Star Ranking"
|
msgid "Mai-Star Ranking"
|
||||||
msgstr "Mai-Star Platzierung"
|
msgstr "Mai-Star Platzierung"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:10
|
#: templates/maistar_ranking/ranking_list.html:10
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:18
|
#: templates/maistar_ranking/ranking_list.html:18
|
||||||
msgid "Placement"
|
msgid "Placement"
|
||||||
msgstr "Platzierung"
|
msgstr "Platzierung"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:11
|
#: templates/maistar_ranking/ranking_list.html:11
|
||||||
msgid "Avatar"
|
msgid "Avatar"
|
||||||
msgstr "Avatar"
|
msgstr "Avatar"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:12
|
#: templates/maistar_ranking/ranking_list.html:12
|
||||||
msgid "Nickname"
|
msgid "Nickname"
|
||||||
msgstr "Spitzname"
|
msgstr "Spitzname"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:13
|
#: templates/maistar_ranking/ranking_list.html:13
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:14
|
#: templates/maistar_ranking/ranking_list.html:14
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Durchschnitt"
|
msgstr "Durchschnitt"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:15
|
#: templates/maistar_ranking/ranking_list.html:15
|
||||||
msgid "Games"
|
msgid "Games"
|
||||||
msgstr "Spiele"
|
msgstr "Spiele"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:20
|
#: templates/maistar_ranking/ranking_list.html:20
|
||||||
msgid "count"
|
msgid "count"
|
||||||
msgstr "Anzahl"
|
msgstr "Anzahl"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:21
|
#: templates/maistar_ranking/ranking_list.html:21
|
||||||
msgid "good"
|
msgid "good"
|
||||||
msgstr "Gut"
|
msgstr "Gut"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:22
|
#: templates/maistar_ranking/ranking_list.html:22
|
||||||
msgid "won"
|
msgid "won"
|
||||||
msgstr "Gewonnen"
|
msgstr "Gewonnen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:43
|
#: templates/maistar_ranking/ranking_list.html:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unfortunately, nobody has it been done in the ranking.\n"
|
"Unfortunately, nobody has it been done in the ranking.\n"
|
||||||
" A player must have 6 games done, to be added to the ranking."
|
" A player must have 6 games done, to be added to the ranking."
|
||||||
@@ -229,15 +226,15 @@ msgstr ""
|
|||||||
"als 6 Spiele innerhalb einer Saison absolviert haben, werden für das "
|
"als 6 Spiele innerhalb einer Saison absolviert haben, werden für das "
|
||||||
"Endergebnis nicht gewertet."
|
"Endergebnis nicht gewertet."
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:52
|
#: templates/maistar_ranking/ranking_list.html:52
|
||||||
msgid "Latest Games"
|
msgid "Latest Games"
|
||||||
msgstr "Letzten Spiele"
|
msgstr "Letzten Spiele"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:63
|
#: templates/maistar_ranking/ranking_list.html:63
|
||||||
msgid "Latest Events"
|
msgid "Latest Events"
|
||||||
msgstr "Letzten Veranstaltungen"
|
msgstr "Letzten Veranstaltungen"
|
||||||
|
|
||||||
#: .\maistar_ranking\templates\maistar_ranking\ranking_list.html:70
|
#: templates/maistar_ranking/ranking_list.html:70
|
||||||
msgid "Ladder Archive"
|
msgid "Ladder Archive"
|
||||||
msgstr "Archiv"
|
msgstr "Archiv"
|
||||||
|
|
||||||
|
|||||||
@@ -149,7 +149,8 @@ class Game(models.Model):
|
|||||||
|
|
||||||
class Ranking(models.Model):
|
class Ranking(models.Model):
|
||||||
"""the player scores in the ladder for one season. """
|
"""the player scores in the ladder for one season. """
|
||||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
|
user = models.ForeignKey(settings.AUTH_USER_MODEL,
|
||||||
|
on_delete=models.PROTECT)
|
||||||
season = models.PositiveSmallIntegerField(_("Season"))
|
season = models.PositiveSmallIntegerField(_("Season"))
|
||||||
placement = models.PositiveIntegerField(blank=True, null=True)
|
placement = models.PositiveIntegerField(blank=True, null=True)
|
||||||
avg_placement = models.PositiveSmallIntegerField(blank=True, null=True)
|
avg_placement = models.PositiveSmallIntegerField(blank=True, null=True)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ from django.urls import reverse
|
|||||||
from events.models import Event
|
from events.models import Event
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MaistarGamesSitemap(GenericSitemap):
|
class MaistarGamesSitemap(GenericSitemap):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def items():
|
def items():
|
||||||
|
|||||||
@@ -51,17 +51,22 @@ def clear_personal_data(modeladmin, request, queryset):
|
|||||||
raise PermissionDenied
|
raise PermissionDenied
|
||||||
for membership in queryset:
|
for membership in queryset:
|
||||||
if membership.membership == False:
|
if membership.membership == False:
|
||||||
[ setattr(membership, fieldname, None) for fieldname in membership.nullable_personal_data ]
|
[setattr(membership, fieldname, None)
|
||||||
[ setattr(membership, fieldname, "") for fieldname in membership.blankable_personal_data ]
|
for fieldname in membership.nullable_personal_data]
|
||||||
|
[setattr(membership, fieldname, "")
|
||||||
|
for fieldname in membership.blankable_personal_data]
|
||||||
membership.is_active = False
|
membership.is_active = False
|
||||||
membership.confirmed = False
|
membership.confirmed = False
|
||||||
membership.membership = False
|
membership.membership = False
|
||||||
membership.save()
|
membership.save()
|
||||||
cleared_memberships += 1
|
cleared_memberships += 1
|
||||||
else:
|
else:
|
||||||
modeladmin.message_user(request, _("Can't remove personal data from active member %s.") % membership.username, messages.ERROR)
|
modeladmin.message_user(request, _(
|
||||||
|
"Can't remove personal data from active member %s.") % membership.username, messages.ERROR)
|
||||||
if cleared_memberships > 0:
|
if cleared_memberships > 0:
|
||||||
modeladmin.message_user(request, _("Cleared %d personal data profiles.") % cleared_memberships, messages.INFO)
|
modeladmin.message_user(request, _(
|
||||||
|
"Cleared %d personal data profiles.") % cleared_memberships, messages.INFO)
|
||||||
|
|
||||||
|
|
||||||
clear_personal_data.short_description = _("Clear personal Data")
|
clear_personal_data.short_description = _("Clear personal Data")
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ Created on 03.10.2011
|
|||||||
|
|
||||||
@author: Christian
|
@author: Christian
|
||||||
"""
|
"""
|
||||||
from datetime import date, timedelta
|
from datetime import date
|
||||||
from captcha.fields import ReCaptchaField
|
from captcha.fields import ReCaptchaField
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@@ -25,18 +25,14 @@ class MembershipForm(forms.ModelForm):
|
|||||||
help_text=_('Input format: yyyy-mm-dd')
|
help_text=_('Input format: yyyy-mm-dd')
|
||||||
)
|
)
|
||||||
email = forms.EmailField(label=_('Email'), required=True)
|
email = forms.EmailField(label=_('Email'), required=True)
|
||||||
required_membership_fields = (
|
required_membership_fields = ('first_name', 'last_name', 'birthday')
|
||||||
'first_name', 'last_name', 'birthday',
|
|
||||||
'street_name', 'post_code', 'city'
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""get the user model dyamicly"""
|
"""get the user model dyamicly"""
|
||||||
model = auth.get_user_model()
|
model = auth.get_user_model()
|
||||||
fields = (
|
fields = (
|
||||||
'username', 'gender', 'first_name', 'last_name', 'email', 'avatar',
|
'username', 'email', 'avatar',
|
||||||
'website', 'membership', 'birthday', 'telephone', 'street_name',
|
'membership', 'first_name', 'last_name', 'birthday',
|
||||||
'post_code', 'city'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
@@ -86,7 +82,6 @@ class RegistrationForm(MembershipForm):
|
|||||||
"""Metadata to localize and customize the ModelForm."""
|
"""Metadata to localize and customize the ModelForm."""
|
||||||
model = auth.get_user_model()
|
model = auth.get_user_model()
|
||||||
fields = ('first_name', 'last_name', 'username', 'email',
|
fields = ('first_name', 'last_name', 'username', 'email',
|
||||||
'username', 'gender', 'first_name', 'last_name', 'email',
|
|
||||||
'avatar',
|
'avatar',
|
||||||
'membership', 'birthday', 'telephone',
|
'membership', 'birthday', 'telephone',
|
||||||
'street_name',
|
'street_name',
|
||||||
|
|||||||
Binary file not shown.
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.membership\n"
|
"Project-Id-Version: kasu.membership\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-05-08 00:17+0200\n"
|
"POT-Creation-Date: 2019-12-13 23:38+0100\n"
|
||||||
"PO-Revision-Date: 2018-05-08 00:19+0105\n"
|
"PO-Revision-Date: 2018-05-08 00:19+0105\n"
|
||||||
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
"Last-Translator: b'Christian Berg <kasu@xendynastie.at>'\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
@@ -19,101 +19,95 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 1.8.9\n"
|
"X-Generator: Poedit 1.8.9\n"
|
||||||
"X-Translated-Using: django-rosetta 0.8.1\n"
|
"X-Translated-Using: django-rosetta 0.8.1\n"
|
||||||
|
|
||||||
#: .\membership\__init__.py:11
|
#: __init__.py:11
|
||||||
msgid "Male"
|
msgid "Male"
|
||||||
msgstr "Männlich"
|
msgstr "Männlich"
|
||||||
|
|
||||||
#: .\membership\__init__.py:12
|
#: __init__.py:12
|
||||||
msgid "Female"
|
msgid "Female"
|
||||||
msgstr "Weiblich"
|
msgstr "Weiblich"
|
||||||
|
|
||||||
#: .\membership\admin.py:22
|
#: admin.py:22
|
||||||
msgid "Activate selected User"
|
msgid "Activate selected User"
|
||||||
msgstr "Ausgewählte Benutzer freischalten"
|
msgstr "Ausgewählte Benutzer freischalten"
|
||||||
|
|
||||||
#: .\membership\admin.py:39
|
#: admin.py:39
|
||||||
msgid "Cleanup selected Activation Requests"
|
msgid "Cleanup selected Activation Requests"
|
||||||
msgstr "Ausgewählte Aktivierungsanfragen bereinigen"
|
msgstr "Ausgewählte Aktivierungsanfragen bereinigen"
|
||||||
|
|
||||||
#: .\membership\admin.py:62
|
#: admin.py:62
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Can't remove personal data from active member %s."
|
msgid "Can't remove personal data from active member %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Persönliche Daten von aktiven Mitglied %s können nicht entfernt werden."
|
"Persönliche Daten von aktiven Mitglied %s können nicht entfernt werden."
|
||||||
|
|
||||||
#: .\membership\admin.py:64
|
#: admin.py:64
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Cleared %d personal data profiles."
|
msgid "Cleared %d personal data profiles."
|
||||||
msgstr "Persönliche Daten in %d Profilen entfernt."
|
msgstr "Persönliche Daten in %d Profilen entfernt."
|
||||||
|
|
||||||
#: .\membership\admin.py:66
|
#: admin.py:66
|
||||||
msgid "Clear personal Data"
|
msgid "Clear personal Data"
|
||||||
msgstr "Persönliche Daten bereinigen"
|
msgstr "Persönliche Daten bereinigen"
|
||||||
|
|
||||||
#: .\membership\admin.py:75
|
#: admin.py:75
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Gruppe"
|
msgstr "Gruppe"
|
||||||
|
|
||||||
#: .\membership\admin.py:76
|
#: admin.py:76
|
||||||
msgid "Groups"
|
msgid "Groups"
|
||||||
msgstr "Gruppen"
|
msgstr "Gruppen"
|
||||||
|
|
||||||
#: .\membership\admin.py:102 .\membership\forms.py:78
|
#: admin.py:102 forms.py:73 models.py:163 models.py:218
|
||||||
#: .\membership\models.py:163 .\membership\models.py:218
|
|
||||||
msgid "Membership"
|
msgid "Membership"
|
||||||
msgstr "Mitgliedschaft"
|
msgstr "Mitgliedschaft"
|
||||||
|
|
||||||
#: .\membership\admin.py:107
|
#: admin.py:107
|
||||||
msgid "Permissions"
|
msgid "Permissions"
|
||||||
msgstr "Berechtigung"
|
msgstr "Berechtigung"
|
||||||
|
|
||||||
#: .\membership\admin.py:109
|
#: admin.py:109
|
||||||
msgid "Important dates"
|
msgid "Important dates"
|
||||||
msgstr "Wichtige Daten"
|
msgstr "Wichtige Daten"
|
||||||
|
|
||||||
#: .\membership\forms.py:24
|
#: forms.py:23 templates/membership/membership_detail.html:46
|
||||||
#: .\membership\templates\membership\membership_detail.html:46
|
|
||||||
msgid "birthday"
|
msgid "birthday"
|
||||||
msgstr "Geburtstag"
|
msgstr "Geburtstag"
|
||||||
|
|
||||||
#: .\membership\forms.py:26
|
#: forms.py:25
|
||||||
msgid "Input format: yyyy-mm-dd"
|
msgid "Input format: yyyy-mm-dd"
|
||||||
msgstr "Eingabeformat: tt.mm.jjjj"
|
msgstr "Eingabeformat: tt.mm.jjjj"
|
||||||
|
|
||||||
#: .\membership\forms.py:28
|
#: forms.py:27 templates/membership/membership_detail.html:48
|
||||||
#: .\membership\templates\membership\membership_detail.html:48
|
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-Mail"
|
msgstr "E-Mail"
|
||||||
|
|
||||||
#: .\membership\forms.py:45
|
#: forms.py:40
|
||||||
msgid ""
|
msgid ""
|
||||||
"For your membership, we need this. Please fill out this field "
|
"For your membership, we need this. Please fill out this field "
|
||||||
"yet."
|
"yet."
|
||||||
msgstr "Diese Angabe wird für eine Mitgliedschaft benötigt, bitte ausfüllen."
|
msgstr "Diese Angabe wird für eine Mitgliedschaft benötigt, bitte ausfüllen."
|
||||||
|
|
||||||
#: .\membership\forms.py:69
|
#: forms.py:64
|
||||||
msgid "password"
|
msgid "password"
|
||||||
msgstr "Passwort"
|
msgstr "Passwort"
|
||||||
|
|
||||||
#: .\membership\forms.py:71
|
#: forms.py:66
|
||||||
msgid "password (again)"
|
msgid "password (again)"
|
||||||
msgstr "Passwort (wiederholen)"
|
msgstr "Passwort (wiederholen)"
|
||||||
|
|
||||||
#: .\membership\forms.py:73
|
#: forms.py:68
|
||||||
msgid "Privacy policy"
|
msgid "Privacy policy"
|
||||||
msgstr "Datenschutzerklärung"
|
msgstr "Datenschutzerklärung"
|
||||||
|
|
||||||
#: .\membership\forms.py:75
|
#: forms.py:70
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "I have read and understood the <a href=\"%s\">privacy policy</a>"
|
msgid "I have read and understood the <a href=\"%s\">privacy policy</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ich habe die <a href=\"%s\"> Datenschutzerklärung</a> gelesen und verstanden"
|
"Ich habe die <a href=\"%s\"> Datenschutzerklärung</a> gelesen und verstanden"
|
||||||
|
|
||||||
#: .\membership\forms.py:80
|
#: forms.py:75
|
||||||
#, python-format
|
#, python-format
|
||||||
#| msgid ""
|
|
||||||
#| "Yes, I confirm that I am in agreement with the statutes and would "
|
|
||||||
#| "like to become a member."
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Yes, I confirm that I am in agreement with the <a href=\"%s\">statutes</a> "
|
"Yes, I confirm that I am in agreement with the <a href=\"%s\">statutes</a> "
|
||||||
"and would like to become a member."
|
"and would like to become a member."
|
||||||
@@ -121,114 +115,115 @@ msgstr ""
|
|||||||
"Ja, ich bin mit den <a href=\"%s\">Statuen</a> einverstanden und möchte "
|
"Ja, ich bin mit den <a href=\"%s\">Statuen</a> einverstanden und möchte "
|
||||||
"Mitglied werden."
|
"Mitglied werden."
|
||||||
|
|
||||||
#: .\membership\forms.py:105
|
#: forms.py:99
|
||||||
msgid "This username is already taken. Please choose another."
|
msgid "This username is already taken. Please choose another."
|
||||||
msgstr ""
|
msgstr "Diesen Benutzername ist schon vergeben. Bitte einen anderen auswählen."
|
||||||
"Diesen Benutzername ist schon vergeben. Bitte einen anderen auswählen."
|
|
||||||
|
|
||||||
#: .\membership\forms.py:112
|
#: forms.py:106
|
||||||
msgid ""
|
msgid ""
|
||||||
"This email address is already in use. Please supply a different "
|
"This email address is already in use. Please supply a different "
|
||||||
"email address."
|
"email address."
|
||||||
msgstr "Die E-Mail Adresse wird schon verwendet. Bitte eine andere angeben."
|
msgstr "Die E-Mail Adresse wird schon verwendet. Bitte eine andere angeben."
|
||||||
|
|
||||||
#: .\membership\forms.py:122
|
#: forms.py:116
|
||||||
msgid "The two password fields didn't match."
|
msgid "The two password fields didn't match."
|
||||||
msgstr "Die beiden Passwörter passen nicht."
|
msgstr "Die beiden Passwörter passen nicht."
|
||||||
|
|
||||||
#: .\membership\models.py:84
|
#: models.py:84
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "Benutzer"
|
msgstr "Benutzer"
|
||||||
|
|
||||||
#: .\membership\models.py:86
|
#: models.py:86
|
||||||
msgid "activation key"
|
msgid "activation key"
|
||||||
msgstr "Aktivierungsschlüssel"
|
msgstr "Aktivierungsschlüssel"
|
||||||
|
|
||||||
#: .\membership\models.py:90
|
#: models.py:90
|
||||||
msgid "pending activation"
|
msgid "pending activation"
|
||||||
msgstr "Ausstehende Aktivierung"
|
msgstr "Ausstehende Aktivierung"
|
||||||
|
|
||||||
#: .\membership\models.py:91
|
#: models.py:91
|
||||||
msgid "pending activations"
|
msgid "pending activations"
|
||||||
msgstr "Wartende Aktivierungen"
|
msgstr "Wartende Aktivierungen"
|
||||||
|
|
||||||
#: .\membership\models.py:94
|
#: models.py:94
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "user registration for %s"
|
msgid "user registration for %s"
|
||||||
msgstr "Benutzerregistrierung für %s"
|
msgstr "Benutzerregistrierung für %s"
|
||||||
|
|
||||||
#: .\membership\models.py:149
|
#: models.py:149
|
||||||
msgid "Gender"
|
msgid "Gender"
|
||||||
msgstr "Geschlecht"
|
msgstr "Geschlecht"
|
||||||
|
|
||||||
#: .\membership\models.py:165
|
#: models.py:165
|
||||||
msgid ""
|
msgid ""
|
||||||
"Yes, I confirm that I am in agreement with the statutes and would "
|
"Yes, I confirm that I am in agreement with the statutes and would "
|
||||||
"like to become a member."
|
"like to become a member."
|
||||||
msgstr "Ja, ich bin mit den Statuen einverstanden und möchte Mitglied werden."
|
msgstr "Ja, ich bin mit den Statuen einverstanden und möchte Mitglied werden."
|
||||||
|
|
||||||
#: .\membership\models.py:169
|
#: models.py:169
|
||||||
msgid "Birthday Date"
|
msgid "Birthday Date"
|
||||||
msgstr "Geburtstag"
|
msgstr "Geburtstag"
|
||||||
|
|
||||||
#: .\membership\models.py:173
|
#: models.py:173 templates/membership/membership_detail.html:49
|
||||||
#: .\membership\templates\membership\membership_detail.html:49
|
|
||||||
msgid "Telephone"
|
msgid "Telephone"
|
||||||
msgstr "Telefon"
|
msgstr "Telefon"
|
||||||
|
|
||||||
#: .\membership\models.py:179
|
#: models.py:179 templates/membership/membership_detail.html:47
|
||||||
#: .\membership\templates\membership\membership_detail.html:47
|
|
||||||
msgid "Address"
|
msgid "Address"
|
||||||
msgstr "Adresse"
|
msgstr "Adresse"
|
||||||
|
|
||||||
#: .\membership\models.py:185
|
#: models.py:185
|
||||||
msgid "Postcode"
|
msgid "Postcode"
|
||||||
msgstr "Postleitzahl"
|
msgstr "Postleitzahl"
|
||||||
|
|
||||||
#: .\membership\models.py:190
|
#: models.py:190
|
||||||
msgid "Town/City"
|
msgid "Town/City"
|
||||||
msgstr "Ort"
|
msgstr "Ort"
|
||||||
|
|
||||||
#: .\membership\models.py:198
|
#: models.py:198
|
||||||
msgid "Paid until"
|
msgid "Paid until"
|
||||||
msgstr "Bezahlt bis"
|
msgstr "Bezahlt bis"
|
||||||
|
|
||||||
#: .\membership\models.py:204
|
#: models.py:204
|
||||||
msgid "Confirmed"
|
msgid "Confirmed"
|
||||||
msgstr "Bestätigt"
|
msgstr "Bestätigt"
|
||||||
|
|
||||||
#: .\membership\models.py:206
|
#: models.py:206
|
||||||
msgid "This person has paid the membership fee."
|
msgid "This person has paid the membership fee."
|
||||||
msgstr "Diese Person hat ihre Mitgliedschaft bezahlt"
|
msgstr "Diese Person hat ihre Mitgliedschaft bezahlt"
|
||||||
|
|
||||||
#: .\membership\models.py:219
|
#: models.py:219
|
||||||
msgid "Memberships"
|
msgid "Memberships"
|
||||||
msgstr "Mitgliedschaften"
|
msgstr "Mitgliedschaften"
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\activation_email.txt:2
|
#: templates/membership/email/activation_email.txt:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Welcome %(user)s,"
|
msgid "Welcome %(user)s,"
|
||||||
msgstr "Herzlich willkommen %(user)s,"
|
msgstr "Herzlich willkommen %(user)s,"
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\activation_email.txt:4
|
#: templates/membership/email/activation_email.txt:4
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"We received an account request on %(site.domain)s for your email address.\n"
|
"We received an account request on %(site.domain)s for your email address.\n"
|
||||||
"To activate your account please visit the following link:"
|
"To activate your account please visit the following link:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Jemand (hoffentlich du selbst) möchte mit dieser E-Mail Adresse einen neuen Benutzer Account für %(site.domain)s anlegen.\n"
|
"Jemand (hoffentlich du selbst) möchte mit dieser E-Mail Adresse einen neuen "
|
||||||
"Solltest du diesen Account aktivieren wollen, klicke bitte auf den unten stehenden Link, oder kopiere diesen in die Adresszeile deines Browsers:"
|
"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:"
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\activation_email.txt:9
|
#: templates/membership/email/activation_email.txt:9
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you do not want to open an account on %(site.domain)s, please ignore this email.\n"
|
"If you do not want to open an account on %(site.domain)s, please ignore this "
|
||||||
|
"email.\n"
|
||||||
"Your information will then be deleted in a few days time."
|
"Your information will then be deleted in a few days time."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wenn du keinen Zugang für %(site.domain)s eröffnen willst, ignoriere diese E-Mail bitte.\n"
|
"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."
|
"Die Zugangsdaten werden dann in ein paar Tagen automatisch gelöscht."
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\activation_email.txt:12
|
#: templates/membership/email/activation_email.txt:12
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Best Regards,\n"
|
"Best Regards,\n"
|
||||||
@@ -237,254 +232,254 @@ msgstr ""
|
|||||||
"mit den besten Wünschen\n"
|
"mit den besten Wünschen\n"
|
||||||
"Das Team von %(site.domain)s"
|
"Das Team von %(site.domain)s"
|
||||||
|
|
||||||
#: .\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"
|
msgid "You're receiving this e-mail because you requested a password reset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Du hast diese E-Mail erhalten, weil jemand die das Passwort zurücksetzen "
|
"Du hast diese E-Mail erhalten, weil jemand die das Passwort zurücksetzen "
|
||||||
"möchte. "
|
"möchte. "
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\password_reset_email.html:3
|
#: templates/membership/email/password_reset_email.html:3
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "for your user account at %(site_name)s"
|
msgid "for your user account at %(site_name)s"
|
||||||
msgstr "Für deinen Benutzerzugang auf %(site_name)s"
|
msgstr "Für deinen Benutzerzugang auf %(site_name)s"
|
||||||
|
|
||||||
#: .\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:"
|
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:"
|
msgstr "Bitte gehe auf folgende Seite und wähle ein neues Passwort aus:"
|
||||||
|
|
||||||
#: .\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:"
|
msgid "Your username, in case you've forgotten:"
|
||||||
msgstr "Dein Benutzername, für den Fall das du diesen vergessen hast:"
|
msgstr "Dein Benutzername, für den Fall das du diesen vergessen hast:"
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\password_reset_email.html:11
|
#: templates/membership/email/password_reset_email.html:11
|
||||||
msgid "Thanks for using our site!"
|
msgid "Thanks for using our site!"
|
||||||
msgstr "Danke das du unsere Seite verwendest!"
|
msgstr "Danke das du unsere Seite verwendest!"
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\password_reset_email.html:13
|
#: templates/membership/email/password_reset_email.html:13
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The %(site_name)s team"
|
msgid "The %(site_name)s team"
|
||||||
msgstr "Das %(site_name)s Team"
|
msgstr "Das %(site_name)s Team"
|
||||||
|
|
||||||
#: .\membership\templates\membership\email\password_reset_subject.txt:2
|
#: templates/membership/email/password_reset_subject.txt:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Password reset on %(site_name)s"
|
msgid "Password reset on %(site_name)s"
|
||||||
msgstr "Passwort auf %(site_name)s zurücksetzen"
|
msgstr "Passwort auf %(site_name)s zurücksetzen"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:5
|
#: templates/membership/hanchan_table.html:5
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "Beginn"
|
msgstr "Beginn"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:6
|
#: templates/membership/hanchan_table.html:6
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr "Termin"
|
msgstr "Termin"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:7
|
#: templates/membership/hanchan_table.html:7
|
||||||
msgid "Players"
|
msgid "Players"
|
||||||
msgstr "Spieler"
|
msgstr "Spieler"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:8
|
#: templates/membership/hanchan_table.html:8
|
||||||
msgid "Kyu Points"
|
msgid "Kyu Points"
|
||||||
msgstr "Kyū Punkte"
|
msgstr "Kyū Punkte"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:9
|
#: templates/membership/hanchan_table.html:9
|
||||||
msgid "Dan Points"
|
msgid "Dan Points"
|
||||||
msgstr "Dan Punkte"
|
msgstr "Dan Punkte"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:10
|
#: templates/membership/hanchan_table.html:10
|
||||||
msgid "Bonus Points"
|
msgid "Bonus Points"
|
||||||
msgstr "Bonus Punkte"
|
msgstr "Bonus Punkte"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:11
|
#: templates/membership/hanchan_table.html:11
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
msgstr "Anmerkung"
|
msgstr "Anmerkung"
|
||||||
|
|
||||||
#: .\membership\templates\membership\hanchan_table.html:26
|
#: templates/membership/hanchan_table.html:26
|
||||||
msgid "This Hanchan does not validate"
|
msgid "This Hanchan does not validate"
|
||||||
msgstr "Diese Hanchan ist ungültig"
|
msgstr "Diese Hanchan ist ungültig"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:5
|
#: templates/membership/membership_detail.html:5
|
||||||
msgid "profile for"
|
msgid "profile for"
|
||||||
msgstr "Profil für"
|
msgstr "Profil für"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:9
|
#: templates/membership/membership_detail.html:9
|
||||||
msgid "Ladder Hanchans"
|
msgid "Ladder Hanchans"
|
||||||
msgstr "Ladder Hanchans"
|
msgstr "Ladder Hanchans"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:10
|
#: templates/membership/membership_detail.html:10
|
||||||
msgid "Kyu Hanchans"
|
msgid "Kyu Hanchans"
|
||||||
msgstr "Kyū Hanchans"
|
msgstr "Kyū Hanchans"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:11
|
#: templates/membership/membership_detail.html:11
|
||||||
msgid "Dan Hanchans"
|
msgid "Dan Hanchans"
|
||||||
msgstr "Dan Hanchans"
|
msgstr "Dan Hanchans"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:12
|
#: templates/membership/membership_detail.html:12
|
||||||
msgid "Invalid Hanchans"
|
msgid "Invalid Hanchans"
|
||||||
msgstr "Ungültige Hanchans"
|
msgstr "Ungültige Hanchans"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:13
|
#: templates/membership/membership_detail.html:13
|
||||||
msgid "Mai-Star Games"
|
msgid "Mai-Star Games"
|
||||||
msgstr "Mai-Star Spiele"
|
msgstr "Mai-Star Spiele"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:17
|
#: templates/membership/membership_detail.html:17
|
||||||
msgid "Profile Image"
|
msgid "Profile Image"
|
||||||
msgstr "Profilbild"
|
msgstr "Profilbild"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:26
|
#: templates/membership/membership_detail.html:26
|
||||||
#: .\membership\templates\membership\membership_detail.html:29
|
#: templates/membership/membership_detail.html:29
|
||||||
msgid "Points"
|
msgid "Points"
|
||||||
msgstr "Punkte"
|
msgstr "Punkte"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:26
|
#: templates/membership/membership_detail.html:26
|
||||||
msgid "Maximum"
|
msgid "Maximum"
|
||||||
msgstr "Maximum"
|
msgstr "Maximum"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:32
|
#: templates/membership/membership_detail.html:32
|
||||||
msgid "Games Total"
|
msgid "Games Total"
|
||||||
msgstr "Spiele gesamt"
|
msgstr "Spiele gesamt"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:32
|
#: templates/membership/membership_detail.html:32
|
||||||
#: .\membership\templates\membership\membership_detail.html:35
|
#: templates/membership/membership_detail.html:35
|
||||||
msgid "Won"
|
msgid "Won"
|
||||||
msgstr "Gewonnen"
|
msgstr "Gewonnen"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:32
|
#: templates/membership/membership_detail.html:32
|
||||||
#: .\membership\templates\membership\membership_detail.html:35
|
#: templates/membership/membership_detail.html:35
|
||||||
msgid "Good"
|
msgid "Good"
|
||||||
msgstr "Gut"
|
msgstr "Gut"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:35
|
#: templates/membership/membership_detail.html:35
|
||||||
msgid "Current Season"
|
msgid "Current Season"
|
||||||
msgstr "Aktuelle Saison"
|
msgstr "Aktuelle Saison"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:42
|
#: templates/membership/membership_detail.html:42
|
||||||
msgid "private data"
|
msgid "private data"
|
||||||
msgstr "Private Daten"
|
msgstr "Private Daten"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:43
|
#: templates/membership/membership_detail.html:43
|
||||||
msgid "This data can only be seen by yourself and members of the board."
|
msgid "This data can only be seen by yourself and members of the board."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Diese Angaben können nur von dir selbst und von Mitgliedern des Vorstandes "
|
"Diese Angaben können nur von dir selbst und von Mitgliedern des Vorstandes "
|
||||||
"eingesehen werden."
|
"eingesehen werden."
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:45
|
#: templates/membership/membership_detail.html:45
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:50
|
#: templates/membership/membership_detail.html:50
|
||||||
msgid "Member Since"
|
msgid "Member Since"
|
||||||
msgstr "Mitglied seit"
|
msgstr "Mitglied seit"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:51
|
#: templates/membership/membership_detail.html:51
|
||||||
msgid "Last Login"
|
msgid "Last Login"
|
||||||
msgstr "Letzte Anmeldung"
|
msgstr "Letzte Anmeldung"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:54
|
#: templates/membership/membership_detail.html:54
|
||||||
msgid "Edit Profile"
|
msgid "Edit Profile"
|
||||||
msgstr "Profil bearbeiten"
|
msgstr "Profil bearbeiten"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_detail.html:55
|
#: templates/membership/membership_detail.html:55
|
||||||
#: .\membership\templates\registration\password_change_form.html:23
|
#: templates/registration/password_change_form.html:23
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
msgstr "Passwort ändern"
|
msgstr "Passwort ändern"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_form.html:4
|
#: templates/membership/membership_form.html:4
|
||||||
#: .\membership\templates\membership\membership_form.html:6
|
#: templates/membership/membership_form.html:6
|
||||||
#: .\membership\templates\membership\membership_form.html:11
|
#: templates/membership/membership_form.html:11
|
||||||
msgid "Edit Userprofile"
|
msgid "Edit Userprofile"
|
||||||
msgstr "Profil bearbeiten"
|
msgstr "Profil bearbeiten"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_form.html:15
|
#: templates/membership/membership_form.html:15
|
||||||
msgid "Reset"
|
msgid "Reset"
|
||||||
msgstr "Zurücksetzen"
|
msgstr "Zurücksetzen"
|
||||||
|
|
||||||
#: .\membership\templates\membership\membership_form.html:16
|
#: templates/membership/membership_form.html:16
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: .\membership\templates\membership\register_form.html:4
|
#: templates/membership/register_form.html:4
|
||||||
msgid "Registration"
|
msgid "Registration"
|
||||||
msgstr "Registrieren"
|
msgstr "Registrieren"
|
||||||
|
|
||||||
#: .\membership\templates\membership\register_form.html:10
|
#: templates/membership/register_form.html:10
|
||||||
msgid "Login crendentials"
|
msgid "Login crendentials"
|
||||||
msgstr "Anmeldedaten"
|
msgstr "Anmeldedaten"
|
||||||
|
|
||||||
#: .\membership\templates\membership\register_form.html:16
|
#: templates/membership/register_form.html:16
|
||||||
msgid "Club membership"
|
msgid "Club membership"
|
||||||
msgstr "Vereinsmitgliedschaft"
|
msgstr "Vereinsmitgliedschaft"
|
||||||
|
|
||||||
#: .\membership\templates\membership\register_form.html:27
|
#: templates/membership/register_form.html:27
|
||||||
msgid "reset"
|
msgid "reset"
|
||||||
msgstr "Zurücksetzen"
|
msgstr "Zurücksetzen"
|
||||||
|
|
||||||
#: .\membership\templates\membership\register_form.html:29
|
#: templates/membership/register_form.html:29
|
||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr "Registrieren"
|
msgstr "Registrieren"
|
||||||
|
|
||||||
#: .\membership\templates\membership\register_successful.html:5
|
#: templates/membership/register_successful.html:5
|
||||||
#: .\membership\templates\membership\register_successful.html:7
|
#: templates/membership/register_successful.html:7
|
||||||
#: .\membership\templates\membership\register_successful.html:10
|
#: templates/membership/register_successful.html:10
|
||||||
msgid "Activation sent"
|
msgid "Activation sent"
|
||||||
msgstr "Aktivierung wurde zugesendet"
|
msgstr "Aktivierung wurde zugesendet"
|
||||||
|
|
||||||
#: .\membership\templates\registration\login.html:17
|
#: templates/registration/login.html:17
|
||||||
msgid "login"
|
msgid "login"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: .\membership\templates\registration\login.html:19
|
#: templates/registration/login.html:19
|
||||||
msgid "Your username and password didn't match. Please try again."
|
msgid "Your username and password didn't match. Please try again."
|
||||||
msgstr "Anmeldung fehlgeschlagen, bitte Benutzername und Passwort überprüfen."
|
msgstr "Anmeldung fehlgeschlagen, bitte Benutzername und Passwort überprüfen."
|
||||||
|
|
||||||
#: .\membership\templates\registration\login.html:22
|
#: templates/registration/login.html:22
|
||||||
msgid "Forgot your Password?"
|
msgid "Forgot your Password?"
|
||||||
msgstr "Passwort vergessen?"
|
msgstr "Passwort vergessen?"
|
||||||
|
|
||||||
#: .\membership\templates\registration\login.html:26
|
#: templates/registration/login.html:26
|
||||||
#: .\membership\templates\registration\password_reset_complete.html:13
|
#: templates/registration/password_reset_complete.html:13
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_change_done.html:4
|
#: templates/registration/password_change_done.html:4
|
||||||
#: .\membership\templates\registration\password_change_done.html:7
|
#: templates/registration/password_change_done.html:7
|
||||||
msgid "Password change successful"
|
msgid "Password change successful"
|
||||||
msgstr "Benutzerprofil erfolgreich geändert."
|
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."
|
msgid "Your password was changed."
|
||||||
msgstr "Passwort geändet"
|
msgstr "Passwort geändet"
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_change_form.html:4
|
#: templates/registration/password_change_form.html:4
|
||||||
#: .\membership\templates\registration\password_change_form.html:9
|
#: templates/registration/password_change_form.html:9
|
||||||
#: .\membership\templates\registration\password_change_form.html:16
|
#: templates/registration/password_change_form.html:16
|
||||||
msgid "Password change"
|
msgid "Password change"
|
||||||
msgstr "Passwort wechseln"
|
msgstr "Passwort wechseln"
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_change_form.html:10
|
#: templates/registration/password_change_form.html:10
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please enter your old password, for security's sake, and then enter your new"
|
"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."
|
"password twice so we can verify you typed it in correctly."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Zur Sicherheit bitte altes Passwort einmal und das gewünschte neue Passwort"
|
"Zur Sicherheit bitte altes Passwort einmal und das gewünschte neue Passwort "
|
||||||
" zweimal angeben, so können Tippfehler abgefangen werden."
|
"zweimal angeben, so können Tippfehler abgefangen werden."
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_complete.html:4
|
#: templates/registration/password_reset_complete.html:4
|
||||||
#: .\membership\templates\registration\password_reset_complete.html:6
|
#: templates/registration/password_reset_complete.html:6
|
||||||
#: .\membership\templates\registration\password_reset_complete.html:9
|
#: templates/registration/password_reset_complete.html:9
|
||||||
msgid "Password reset complete"
|
msgid "Password reset complete"
|
||||||
msgstr "Das Rücksetzen des Passwortes ist abgeschlossen."
|
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."
|
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."
|
msgstr "Das Passwort wurde gesetzt, Du kannst dich nun damit anmelden."
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_confirm.html:4
|
#: templates/registration/password_reset_confirm.html:4
|
||||||
#: .\membership\templates\registration\password_reset_confirm.html:6
|
#: templates/registration/password_reset_confirm.html:6
|
||||||
#: .\membership\templates\registration\password_reset_confirm.html:15
|
#: templates/registration/password_reset_confirm.html:15
|
||||||
msgid "Enter new password"
|
msgid "Enter new password"
|
||||||
msgstr "Neues Passwort eingeben"
|
msgstr "Neues Passwort eingeben"
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_confirm.html:12
|
#: templates/registration/password_reset_confirm.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please enter your new password twice so we can verify you typed it in "
|
"Please enter your new password twice so we can verify you typed it in "
|
||||||
"correctly."
|
"correctly."
|
||||||
@@ -492,15 +487,15 @@ msgstr ""
|
|||||||
"Bitte das Passwort zweimal eingeben, um sicher zu stellen das es korrekt "
|
"Bitte das Passwort zweimal eingeben, um sicher zu stellen das es korrekt "
|
||||||
"eingetippt wurde."
|
"eingetippt wurde."
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_confirm.html:18
|
#: templates/registration/password_reset_confirm.html:18
|
||||||
msgid "Change my password"
|
msgid "Change my password"
|
||||||
msgstr "Passwort ändern"
|
msgstr "Passwort ändern"
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_confirm.html:26
|
#: templates/registration/password_reset_confirm.html:26
|
||||||
msgid "Password reset unsuccessful"
|
msgid "Password reset unsuccessful"
|
||||||
msgstr "Passwort rücksetzen fehlgeschlagen"
|
msgstr "Passwort rücksetzen fehlgeschlagen"
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_confirm.html:27
|
#: templates/registration/password_reset_confirm.html:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"The password reset link was invalid, possibly because it has already been "
|
"The password reset link was invalid, possibly because it has already been "
|
||||||
"used. Please request a new password reset."
|
"used. Please request a new password reset."
|
||||||
@@ -508,22 +503,22 @@ msgstr ""
|
|||||||
"Der Link für die Rücksetzung des Passwortes war ungültig, vermutlich wurde "
|
"Der Link für die Rücksetzung des Passwortes war ungültig, vermutlich wurde "
|
||||||
"er schon einmal benutzt. Bitte eine neue Rücksetzung beantragen."
|
"er schon einmal benutzt. Bitte eine neue Rücksetzung beantragen."
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_done.html:4
|
#: templates/registration/password_reset_done.html:4
|
||||||
#: .\membership\templates\registration\password_reset_done.html:6
|
#: templates/registration/password_reset_done.html:6
|
||||||
#: .\membership\templates\registration\password_reset_done.html:12
|
#: templates/registration/password_reset_done.html:12
|
||||||
msgid "Password reset successful"
|
msgid "Password reset successful"
|
||||||
msgstr "Passwort erfolgreich zurückgesetzt."
|
msgstr "Passwort erfolgreich zurückgesetzt."
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_form.html:4
|
#: templates/registration/password_reset_form.html:4
|
||||||
#: .\membership\templates\registration\password_reset_form.html:6
|
#: templates/registration/password_reset_form.html:6
|
||||||
msgid "Password reset"
|
msgid "Password reset"
|
||||||
msgstr "Passwort zurücksetzen"
|
msgstr "Passwort zurücksetzen"
|
||||||
|
|
||||||
#: .\membership\templates\registration\password_reset_form.html:21
|
#: templates/registration/password_reset_form.html:21
|
||||||
msgid "Transmit"
|
msgid "Transmit"
|
||||||
msgstr "Übermitteln"
|
msgstr "Übermitteln"
|
||||||
|
|
||||||
#: .\membership\views.py:61
|
#: views.py:61
|
||||||
msgid ""
|
msgid ""
|
||||||
"Activation successful. You can now login anytime with you username "
|
"Activation successful. You can now login anytime with you username "
|
||||||
"and password."
|
"and password."
|
||||||
@@ -531,11 +526,11 @@ msgstr ""
|
|||||||
"Die Aktivierung war erfolgreich. Du kannst dich ab jetzt jederzeit mit "
|
"Die Aktivierung war erfolgreich. Du kannst dich ab jetzt jederzeit mit "
|
||||||
"deinem Benutzernamen und Passwort anmelden."
|
"deinem Benutzernamen und Passwort anmelden."
|
||||||
|
|
||||||
#: .\membership\views.py:88
|
#: views.py:88
|
||||||
msgid "User Profile changed successfully"
|
msgid "User Profile changed successfully"
|
||||||
msgstr "Benutzerprofil erfolgreich geändert."
|
msgstr "Benutzerprofil erfolgreich geändert."
|
||||||
|
|
||||||
#: .\membership\views.py:112
|
#: views.py:112
|
||||||
msgid "No Membership found matching the query"
|
msgid "No Membership found matching the query"
|
||||||
msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
|
msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
|
||||||
|
|
||||||
@@ -556,12 +551,16 @@ msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
|
|||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "After you've provided your account data, you'll receive\n"
|
#~ "After you've provided your account data, you'll receive\n"
|
||||||
#~ " an email asking you to verify your email address. You have to click on the\n"
|
#~ " an email asking you to verify your email address. You have to click "
|
||||||
#~ " link in this verification email to confirm your email address, otherwise\n"
|
#~ "on the\n"
|
||||||
|
#~ " link in this verification email to confirm your email address, "
|
||||||
|
#~ "otherwise\n"
|
||||||
#~ " your can't login."
|
#~ " your can't login."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Nach dem du deine Daten eingegeben hast, wirst du eine E-Mail zur Bestätigung bekommen.\n"
|
#~ "Nach dem du deine Daten eingegeben hast, wirst du eine E-Mail zur "
|
||||||
#~ "Bitte klicke auf den Link in dieser E-Mail zur Verifizierung, erst dann ist die Anmeldung möglich."
|
#~ "Bestätigung bekommen.\n"
|
||||||
|
#~ "Bitte klicke auf den Link in dieser E-Mail zur Verifizierung, erst dann "
|
||||||
|
#~ "ist die Anmeldung möglich."
|
||||||
|
|
||||||
#~ msgid "Have you already registered?"
|
#~ msgid "Have you already registered?"
|
||||||
#~ msgstr "Bereits registriert?"
|
#~ msgstr "Bereits registriert?"
|
||||||
@@ -583,7 +582,8 @@ msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
|
|||||||
#~ " <li>Kommentare auf dieser Seite hinterlassen.</li>\n"
|
#~ " <li>Kommentare auf dieser Seite hinterlassen.</li>\n"
|
||||||
#~ " <li>Dich für unseren Newsletter anmelden</li>\n"
|
#~ " <li>Dich für unseren Newsletter anmelden</li>\n"
|
||||||
#~ " <li>Mitglied in unserem Verein werden</li>\n"
|
#~ " <li>Mitglied in unserem Verein werden</li>\n"
|
||||||
#~ " <li>Vereinsmitglieder haben auch vollen Zugang zu unserem Ranking System</li>\n"
|
#~ " <li>Vereinsmitglieder haben auch vollen Zugang zu unserem Ranking "
|
||||||
|
#~ "System</li>\n"
|
||||||
#~ "</ul>"
|
#~ "</ul>"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
@@ -595,7 +595,8 @@ msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
|
|||||||
#~ " "
|
#~ " "
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "\n"
|
#~ "\n"
|
||||||
#~ "<p>Du kannst dich auch über deinen Facebook, Google, oder Twitter Account anmelden.\n"
|
#~ "<p>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"
|
#~ "Wenn du so etwas nicht besitzt, oder nicht verwenden möchtest, \n"
|
||||||
#~ "kannst du auch das Registrierungsformular ausfüllen.</p>"
|
#~ "kannst du auch das Registrierungsformular ausfüllen.</p>"
|
||||||
|
|
||||||
@@ -603,9 +604,10 @@ msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
|
|||||||
#~ msgstr "oder über einen existierenden Account anmelden"
|
#~ msgstr "oder über einen existierenden Account anmelden"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "For your membership, we need this. Please fill out this field "
|
#~ "For your membership, we need this. Please fill out this "
|
||||||
#~ "yet."
|
#~ "field yet."
|
||||||
#~ msgstr "Diese Angabe wird für eine Mitgliedschaft benötigt, bitte ausfüllen."
|
#~ msgstr ""
|
||||||
|
#~ "Diese Angabe wird für eine Mitgliedschaft benötigt, bitte ausfüllen."
|
||||||
|
|
||||||
#~ msgid "Given Name"
|
#~ msgid "Given Name"
|
||||||
#~ msgstr "Vorname"
|
#~ msgstr "Vorname"
|
||||||
@@ -614,9 +616,9 @@ msgstr "Kein Mitglied gefunden welche der Anfrage entspricht"
|
|||||||
#~ msgstr "Nachname"
|
#~ msgstr "Nachname"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "The Username can only contain the letters from A to Z, Numbers, and "
|
#~ "The Username can only contain the letters from A to Z, Numbers, "
|
||||||
#~ "the underscore. It must be at least 2 characters long, and cannot be"
|
#~ "and the underscore. It must be at least 2 characters long, and "
|
||||||
#~ " longer the 30. The first character must be a letter."
|
#~ "cannot be longer the 30. The first character must be a letter."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Der Benutzername kann aus den Buchstaben A-Z, Ziffern und dem Unterstrich "
|
#~ "Der Benutzername kann aus den Buchstaben A-Z, Ziffern und dem Unterstrich "
|
||||||
#~ "bestehen. Es sollte wenigstens 2, aber maximal 30 Zeichen lang sein. Das "
|
#~ "bestehen. Es sollte wenigstens 2, aber maximal 30 Zeichen lang sein. Das "
|
||||||
|
|||||||
18
src/membership/migrations/0008_auto_20190106_1954.py
Normal file
18
src/membership/migrations/0008_auto_20190106_1954.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 2.1.5 on 2019-01-06 18:54
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('membership', '0007_auto_20171115_0653'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='membership',
|
||||||
|
name='last_name',
|
||||||
|
field=models.CharField(blank=True, max_length=150, verbose_name='last name'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -17,18 +17,22 @@
|
|||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block javascript %}
|
<script type="text/javascript">
|
||||||
$(function() {
|
function togglePersonalData(event) {
|
||||||
$( "#id_birthday" ).datepicker({
|
var membership = document.getElementById("id_membership").checked;
|
||||||
changeMonth: true,
|
var input_elements = ["id_first_name", "id_last_name", "id_birthday"];
|
||||||
changeYear: true,
|
for (var i = 0; i < input_elements.length; i++) {
|
||||||
dateFormat: 'yy-mm-dd',
|
element_id = input_elements[i]
|
||||||
yearRange: '-50,0',
|
element = document.getElementById(element_id);
|
||||||
firstDay: 1
|
element.disabled = !membership;
|
||||||
});
|
if (membership == 0) {element.value = ""};
|
||||||
});
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded',function() {document.querySelector('#id_membership').onchange=togglePersonalData;},false);
|
||||||
|
togglePersonalData();
|
||||||
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block buttonbar %}{% endblock %}
|
{% block buttonbar %}{% endblock %}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<fieldset class="grid_5">
|
<fieldset class="grid_5">
|
||||||
<legend>{% trans "Club membership"%}</legend>
|
<legend>{% trans "Club membership"%}</legend>
|
||||||
{% get_fieldset "membership, first_name, last_name, gender, birthday, street_name, post_code, city, telephone" from form as form2 %}
|
{% get_fieldset "membership, first_name, last_name, birthday" from form as form2 %}
|
||||||
{% with form2 as form %}{% include "form.html" %}{% endwith %}
|
{% with form2 as form %}{% include "form.html" %}{% endwith %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
@@ -33,11 +33,12 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function togglePersonalData(event) {
|
function togglePersonalData(event) {
|
||||||
var membership = document.getElementById("id_membership").checked;
|
var membership = document.getElementById("id_membership").checked;
|
||||||
var input_elements = ["id_first_name", "id_last_name", "id_gender", "id_birthday", "id_street_name", "id_post_code", "id_city", "id_telephone"];
|
var input_elements = ["id_first_name", "id_last_name", "id_birthday"];
|
||||||
for (var i = 0; i < input_elements.length; i++) {
|
for (var i = 0; i < input_elements.length; i++) {
|
||||||
element_id = input_elements[i]
|
element_id = input_elements[i]
|
||||||
element = document.getElementById(element_id);
|
element = document.getElementById(element_id);
|
||||||
element.disabled = !membership;
|
element.disabled = !membership;
|
||||||
|
if (membership == 0) {element.value = ""};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django.conf.urls import url
|
|||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^$',views.MembershipDetail.as_view()),
|
url(r'^$', views.MembershipDetail.as_view()),
|
||||||
url(r'^activate/(?P<activation_key>[\d\w]+)/$',
|
url(r'^activate/(?P<activation_key>[\d\w]+)/$',
|
||||||
views.ActivateRegistration.as_view(),
|
views.ActivateRegistration.as_view(),
|
||||||
name='membership-activate-registration'),
|
name='membership-activate-registration'),
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ class MembershipDetail(LoginRequiredMixin, generic.DetailView):
|
|||||||
try:
|
try:
|
||||||
if self.kwargs.get('username'):
|
if self.kwargs.get('username'):
|
||||||
return queryset.get(username=self.kwargs['username'])
|
return queryset.get(username=self.kwargs['username'])
|
||||||
elif self.request.user.is_authenticated():
|
else:
|
||||||
return self.request.user
|
return self.request.user
|
||||||
except models.Membership.DoesNotExist:
|
except models.Membership.DoesNotExist:
|
||||||
raise Http404(_("No Membership found matching the query"))
|
raise Http404(_("No Membership found matching the query"))
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -3,10 +3,9 @@ between Tags, an at the beginning and the end of the content."""
|
|||||||
from django.utils.html import strip_spaces_between_tags
|
from django.utils.html import strip_spaces_between_tags
|
||||||
|
|
||||||
|
|
||||||
class CompressHtmlMiddleware(object):
|
class CompressHtmlMiddleware:
|
||||||
"""This Middleware compresses strips the spaces between tags, and at the
|
"""This Middleware compresses strips the spaces between tags, and at the
|
||||||
beginning and the end of the content."""
|
beginning and the end of the content."""
|
||||||
# TODO: Port to django 1.10 and upward
|
|
||||||
|
|
||||||
def __init__(self, get_response):
|
def __init__(self, get_response):
|
||||||
"""
|
"""
|
||||||
@@ -14,7 +13,6 @@ class CompressHtmlMiddleware(object):
|
|||||||
:param get_response:
|
:param get_response:
|
||||||
"""
|
"""
|
||||||
self.get_response = get_response
|
self.get_response = get_response
|
||||||
regex = ">[\s]*<"
|
|
||||||
|
|
||||||
def __call__(self, request):
|
def __call__(self, request):
|
||||||
"""
|
"""
|
||||||
@@ -25,14 +23,29 @@ class CompressHtmlMiddleware(object):
|
|||||||
|
|
||||||
# Code to be executed for each request before
|
# Code to be executed for each request before
|
||||||
# the view (and later middleware) are called.
|
# the view (and later middleware) are called.
|
||||||
|
|
||||||
response = self.get_response(request)
|
response = self.get_response(request)
|
||||||
if 'text/html' in response['Content-Type']:
|
if 'text/html' in response['Content-Type']:
|
||||||
response.content = strip_spaces_between_tags(
|
response.content = strip_spaces_between_tags(
|
||||||
response.content).strip()
|
response.content).strip()
|
||||||
return response
|
return response
|
||||||
|
|
||||||
class SetRemoteAddrFromForwardedFor(object):
|
|
||||||
|
class SetRemoteAddrFromForwardedFor:
|
||||||
|
def __init__(self, get_response):
|
||||||
|
self.get_response = get_response
|
||||||
|
# One-time configuration and initialization.
|
||||||
|
|
||||||
|
def __call__(self, request):
|
||||||
|
# Code to be executed for each request before
|
||||||
|
# the view (and later middleware) are called.
|
||||||
|
|
||||||
|
response = self.get_response(request)
|
||||||
|
|
||||||
|
# Code to be executed for each request/response after
|
||||||
|
# the view is called.
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
def process_request(self, request):
|
def process_request(self, request):
|
||||||
try:
|
try:
|
||||||
real_ip = request.META['HTTP_X_FORWARDED_FOR']
|
real_ip = request.META['HTTP_X_FORWARDED_FOR']
|
||||||
|
|||||||
Reference in New Issue
Block a user