Kleine anpassungen für die Stablität der Seite.

* Methode Bilder zu löschen wurde geändert damit weniger Fehlermeldungen auftreten.
* kleine änderungen für PEP-8 kompatibiltät
* Nicht alle Seiten sind im Menü verankert, hier hat der Teaser-Block Fehler verursacht.
* reCaptcha wird keine IP Adresse übergeben (Das funktioniert leider nicht)
This commit is contained in:
Christian Berg
2015-02-08 11:33:13 +01:00
parent 9c2413a794
commit cb4b15b3c6
53 changed files with 259 additions and 243 deletions

2
.idea/dataSources.xml generated
View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4" />

7
.idea/encodings.xml generated
View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
<file url="file://$PROJECT_DIR$/kasu/static/css/kasu.less" charset="UTF-8" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

48
.idea/kasu.iml generated
View File

@@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="FacetManager">
<facet type="django" name="Django">
<configuration>
<option name="rootFolder" value="$MODULE_DIR$" />
<option name="settingsModule" value="kasu/settings/dev.py" />
<option name="manageScript" value="manage.py" />
<option name="environment" value="&lt;map/&gt;" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/aggregator" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/content" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/events" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/kasu" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/gallery" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/mahjong_ranking" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/maistar_ranking" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/media" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/membership" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/utils" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/.idea" />
<excludeFolder url="file://$MODULE_DIR$/.settings" />
<excludeFolder url="file://$MODULE_DIR$/gallery/templates" />
<excludeFolder url="file://$MODULE_DIR$/media" />
<excludeFolder url="file://$MODULE_DIR$/static" />
<excludeFolder url="file://$MODULE_DIR$/virtenv" />
</content>
<orderEntry type="jdk" jdkName="Python 2.6.9 virtualenv at ~/workspace/kasu/virtenv" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TemplatesService">
<option name="TEMPLATE_CONFIGURATION" value="Django" />
<option name="TEMPLATE_FOLDERS">
<list>
<option value="$MODULE_DIR$/content/templates" />
<option value="$MODULE_DIR$/events/templates" />
<option value="$MODULE_DIR$/kasu/templates" />
<option value="$MODULE_DIR$/mahjong_ranking/templates" />
<option value="$MODULE_DIR$/maistar_ranking/templates" />
<option value="$MODULE_DIR$/membership/templates" />
</list>
</option>
</component>
</module>

4
.idea/misc.xml generated
View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 2.6.9 virtualenv at ~/workspace/kasu/virtenv" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated
View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/kasu.iml" filepath="$PROJECT_DIR$/.idea/kasu.iml" />
</modules>
</component>
</project>

View File

@@ -1,5 +0,0 @@
<component name="DependencyValidationManager">
<state>
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</state>
</component>

6
.idea/vcs.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -1,4 +1,5 @@
#!/bin/sh
source ./virtenv/bin/activate
echo "aktualisiere Übersetzungen..."
unset DJANGO_SETTINGS_MODULE
for dir in *

View File

@@ -11,8 +11,8 @@ from . import models
def content_menus(request):
current_page = None
current_path = request.path_info[1:request.path_info.rfind('.')]
current_top_page = None
current_path = request.path_info[1:request.path_info.rfind('.')]
# erzeuge das Top-Level Menü
top_menu_items = []

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.content\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
"POT-Creation-Date: 2015-01-05 19:23+0100\n"
"PO-Revision-Date: 2014-12-08 16:15+0100\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n"
@@ -214,33 +214,34 @@ msgstr "Auf Twitter teilen"
msgid "Share on Facebook"
msgstr "Auf Facebook teilen"
#: templates/content/article_form.html:22 templates/content/page_form.html:29
#: templates/content/page_form.html:35
#: templates/content/article_form.html:22 templates/content/page_form.html:40
#: templates/content/page_form.html:46
msgid "German"
msgstr "Deutsch"
#: templates/content/article_form.html:23 templates/content/page_form.html:30
#: templates/content/page_form.html:39
#: templates/content/article_form.html:23 templates/content/page_form.html:41
#: templates/content/page_form.html:50
msgid "English"
msgstr "Englisch"
#: templates/content/article_form.html:36 templates/content/page_form.html:50
#: templates/content/article_form.html:36 templates/content/page_form.html:61
msgid "reset"
msgstr "Zurücksetzen"
#: templates/content/article_form.html:37 templates/content/page_form.html:51
#: templates/content/article_form.html:37 templates/content/page_form.html:62
msgid "save"
msgstr "Speichern"
#: templates/content/page_form.html:4 templates/content/page_form.html:24
#: templates/content/page_form.html:5 templates/content/page_form.html:35
msgid "Edit Page"
msgstr "Seite bearbeiten"
#: templates/content/page_form.html:4 templates/content/page_form.html:24
#: templates/content/page_form.html:6 templates/content/page_form.html:20
#: templates/content/page_form.html:35
msgid "Add Page"
msgstr "Seite hinzufügen"
#: templates/content/page_form.html:45
#: templates/content/page_form.html:56
msgid "HTML Specific"
msgstr "HTML spezifisch"

View File

@@ -21,7 +21,7 @@
{% if current_top_page.subpages %}
{% for subpage in current_top_page.subpages.all %}
{% if subpage.content_type > 0 %}
<h2><a href="{{ subpage.get_absolute_url }}">{{subpage.menu_name}}</a></h2>
<h2><a href="{{ subpage.get_absolute_url }}">{{subpage.title}}</a></h2>
<ul class="list">
{% for subpage in subpage.subpages.all %}
<li class="{{subpage.css_class}}"><a href="{{ subpage.get_absolute_url }}">{{ subpage.menu_name }}</a></li>

View File

@@ -1,16 +1,27 @@
{% extends "base.html" %}
{% load i18n fieldset_extras %}
{% block title %}{% if object.pk %}{% trans "Edit Page" %}: {{ page.title }}{% else %}{% trans "Add Page" %}{% endif %}{% endblock %}
{% block title %}
{% if object.pk %}{% trans "Edit Page" %}: {{ page.title }}
{% else %}{% trans "Add Page" %}
{% endif %}
{% endblock %}
{% block extra_head %}
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/language_tabs.js" ></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/ckeditor/ckeditor.js"></script>
{% endblock %}
{% block jumbotron_background %}{{STATIC_URL}}img/teaser/edit_page.jpg{% endblock %}
{% block teaser %}
{% if object.pk %}<h1>{{ page.title }}</h1>
{% else %}<h1>{% trans "Add Page" %}</h1>
{% endif %}
{% endblock %}
{% block maincontent %}
{% get_fieldset "parent, slug, content_type, status" from form as fieldset_common %}

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.events\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
"POT-Creation-Date: 2015-01-05 19:23+0100\n"
"PO-Revision-Date: 2014-12-08 16:06+0100\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -47,7 +47,7 @@
{% endif %}
</p>
<p>{{event.description}}</p>
<p>{{event.description|truncatewords_html:20}}</p>
<ul class="info">
<li><img src="{{ STATIC_URL }}/icons/map.png" alt="{% trans 'Location' %}" title="{% trans 'Location' %}">
{{ event.location }}
@@ -73,4 +73,4 @@
{% if forloop.counter|divisibleby:2 %}<br class="clear"/>{% endif %}
{% endfor %}
{% endfor %}
{% endblock %}
{% endblock %}

View File

@@ -20,7 +20,7 @@
{% block teaser %}
<h1>{{event.name}}</h1>
{% if event.description %}
<div id="teaser_text">{{event.description|markdown}}</div>
<div id="teaser_text">{{event.description|markdown|truncatewords_html:75}}</div>
{% endif %}
{% endblock %}

View File

@@ -20,7 +20,7 @@
{{ event.start|time:'H:i' }}
{% endif %}
</p>
<p>{{event.description}}</p>
<p>{{event.description|truncatewords_html:20}}</p>
<ul class="info">
<li>
<img src="{{ STATIC_URL }}/icons/map.png" alt="{% trans 'Location' %}" title="{% trans 'Location' %}">
@@ -46,4 +46,4 @@
{% if page_obj.has_other_pages %}{% include 'paginator.html' %}{% endif %}
{% endblock %}
{% endblock %}

View File

@@ -95,9 +95,12 @@ def regenerate_image_cache(sender, instance=None, created=False, raw=False,
"""
Reganerate the images.
"""
try:
os.remove(instance.display.path)
os.remove(instance.callout.path)
os.remove(instance.thumbnail.path)
except imagekit.exceptions.MissingSource:
pass
if instance.image:
print instance.image
print instance.display
print instance.callout
for cached_image in (instance.article, instance.callout, instance.display, instance.thumbnail):
try:
os.remove(cached_image.path)
except OSError:
pass

Binary file not shown.

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.utils\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
"POT-Creation-Date: 2015-01-05 19:23+0100\n"
"PO-Revision-Date: 2014-12-14 01:11+0100\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n"
@@ -1047,6 +1047,10 @@ msgstr "Deutsch"
msgid "English"
msgstr "Englisch"
#: templates/404.html:8
msgid "The page your requested does not exist on this server."
msgstr ""
#: templates/base.html:23
msgid "Current News"
msgstr "Aktuelle Neuigkeiten"
@@ -1143,6 +1147,18 @@ msgstr "Registrieren"
msgid "login"
msgstr "anmelden"
#: templates/base.html:166 templates/registration/login.html:58
msgid "Login with Facebook"
msgstr "über Facebook anmelden"
#: templates/base.html:167 templates/registration/login.html:59
msgid "Login with Twitter"
msgstr "über Twitter anmelden"
#: templates/base.html:168 templates/registration/login.html:60
msgid "Login with Google"
msgstr "über Google anmelden"
#: templates/index.html:7
msgid "traditional Asian game culture"
msgstr "traditionelle asiatische Spielkultur"
@@ -1295,7 +1311,9 @@ msgid "Forgot your Password?"
msgstr "Passwort vergessen?"
#: templates/registration/login.html:49
#: templates/registration/password_change_form.html:22
#: templates/registration/password_change_form.html:23
#: templates/registration/password_reset_complete.html:14
#: templates/registration/password_reset_complete.html:15
msgid "Login"
msgstr "Anmelden"
@@ -1303,22 +1321,6 @@ msgstr "Anmelden"
msgid "or login with an existing Account"
msgstr "oder mit einem bestehenden Account anmelden"
#: templates/registration/login.html:57
msgid "Login with Facebook"
msgstr "über Facebook anmelden"
#: templates/registration/login.html:58
msgid "Login with twitter"
msgstr "über Twitter anmelden"
#: templates/registration/login.html:58
msgid "Login with Twitter"
msgstr "über Twitter anmelden"
#: templates/registration/login.html:59
msgid "Login with Google"
msgstr "über Google anmelden"
#: templates/registration/password_change_done.html:4
#: templates/registration/password_change_done.html:7
msgid "Password change successful"
@@ -1329,11 +1331,12 @@ msgid "Your password was changed."
msgstr "Dein Passwort wurde geändert."
#: templates/registration/password_change_form.html:4
#: templates/registration/password_change_form.html:8
#: templates/registration/password_change_form.html:9
#: templates/registration/password_change_form.html:16
msgid "Password change"
msgstr "Passwort ändern"
#: templates/registration/password_change_form.html:9
#: templates/registration/password_change_form.html:10
msgid ""
"Please enter your old password, for security's sake, and then enter your new "
"password twice so we can verify you typed it in correctly."
@@ -1342,34 +1345,27 @@ msgstr ""
"das neue Passwort, so können wir sicher gehen das du es korrekt eingegeben "
"hast."
#: templates/registration/password_change_form.html:22
#: templates/registration/password_change_form.html:23
msgid "Change Password"
msgstr "Passwort ändern"
#: templates/registration/password_reset_complete.html:4
#: templates/registration/password_reset_complete.html:7
#: templates/registration/password_reset_complete.html:6
#: templates/registration/password_reset_complete.html:9
msgid "Password reset complete"
msgstr "Passwort fertig zurückgesetzt"
#: templates/registration/password_reset_complete.html:8
#: templates/registration/password_reset_complete.html:10
msgid "Your password has been set. You may go ahead and log in now."
msgstr "Dein Passwort wurde geändert. Du kannst dich nun damit anmelden."
#: templates/registration/password_reset_complete.html:9
msgid "Log in"
msgstr "Anmelden"
#: templates/registration/password_reset_confirm.html:4
#: templates/registration/password_reset_form.html:4
#: templates/registration/password_reset_form.html:6
msgid "Password reset"
msgstr "Passwort zurücksetzen"
#: templates/registration/password_reset_confirm.html:8
#: templates/registration/password_reset_confirm.html:6
#: templates/registration/password_reset_confirm.html:15
msgid "Enter new password"
msgstr "Neues Passwort eingeben"
#: templates/registration/password_reset_confirm.html:9
#: templates/registration/password_reset_confirm.html:12
msgid ""
"Please enter your new password twice so we can verify you typed it in "
"correctly."
@@ -1377,16 +1373,15 @@ msgstr ""
"Bitte gib das neue Passwort 2x ein, so können wir sicher sein das du es "
"korrekt eingegeben hast."
#: templates/registration/password_reset_confirm.html:13
#: templates/registration/password_reset_confirm.html:22
#: templates/registration/password_reset_confirm.html:18
msgid "Change my password"
msgstr "Mein Passwort ändern"
#: templates/registration/password_reset_confirm.html:28
#: templates/registration/password_reset_confirm.html:26
msgid "Password reset unsuccessful"
msgstr "Passwort nicht erfolgreich zurückgesetzt"
#: templates/registration/password_reset_confirm.html:29
#: templates/registration/password_reset_confirm.html:27
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
@@ -1395,6 +1390,18 @@ msgstr ""
"verwendet wurde. Bitte veranlasse eine erneute Zurücksetzung."
#: templates/registration/password_reset_done.html:4
#: templates/registration/password_reset_done.html:9
#: templates/registration/password_reset_done.html:6
#: templates/registration/password_reset_done.html:12
msgid "Password reset successful"
msgstr "Passwort erfolgreich zurückgesetzt"
#: templates/registration/password_reset_form.html:4
#: templates/registration/password_reset_form.html:6
msgid "Password reset"
msgstr "Passwort zurücksetzen"
#~ msgid "Log in"
#~ msgstr "Anmelden"
#~ msgid "Login with twitter"
#~ msgstr "über Twitter anmelden"

View File

@@ -12,6 +12,14 @@
src: url('../fonts/amerikasans.woff') format('woff'), url('../fonts/amerikasans.ttf') format('truetype');
}
@font-face {
font-family: 'Social Icons';
font-weight: normal;
font-style: normal;
src: url('../fonts/social.woff') format('woff'), url('../fonts/social.ttf') format('truetype');
}
.clear {
clear: both;
display: block;
@@ -384,6 +392,18 @@ ul.tabs li.active a {border-bottom: 3px solid #bc0a19; color: #bc0a19}
width: 100%;
padding: 0;
}
.social, .social:link {
display: inline-block;
font-family: "Social Icons";
font-style: normal;
font-weight: normal;
}
.facebook:before {content: "f";}
.google:before {content: "G";}
.twitter:before {content: "T";}
fieldset.comment {padding: 0}
fieldset.comment legend {margin-left: 15px}

View File

@@ -268,6 +268,7 @@
#usernav {
background: url(../img/usernav-bg.png) top left no-repeat;
font-size: 14pt;
color: #FFF;
height: 50px;
padding: 5px 10px 4px 20px;
@@ -276,13 +277,11 @@
text-align: right;
top: 0;
z-index: 50;
}
#usernav a {
color: #FFF;
font-weight: 700;
a {
color: #FFF;
}
}
#usernav img {
vertical-align: middle;
}

View File

@@ -35,7 +35,8 @@
margin: 0;
padding: 0;
line-height: 1cm;
font-size: 16pt;
font-family: 'Amerika Sans', Helvetica;
font-size: 8pt;
top: 5px;
z-index: 99;
}
@@ -52,7 +53,10 @@
background: #fff;
}
h1, h2, h3, h4, h5, h6 {
h1 {
font-size: 32pt;
}
h2, h3, h4, h5, h6 {
text-shadow: none;
page-break-after: avoid;
}
@@ -65,7 +69,7 @@
page-break-inside: avoid;
}
#comment_form, #navigation, #mainnav, #usernav, #bottom_buttonbar, #footer > form {
#comment_form, #comments, #footer, #navigation, #mainnav, #usernav, #bottom_buttonbar, #footer > form {
display: none;
}

Binary file not shown.

Binary file not shown.

4
kasu/static/js/jquery-2.1.3.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,14 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}404 - Seite nicht gefunden{% endblock %}
{% block maincontent %}
{% block teaser %}
<h1 class="grid_12">404 - Nōten!</h1>
<div id="teaser_text"><p>{% trans 'The page your requested does not exist on this server.' %}</p></div>
{% endblock %}
{% block maincontent %}
<p class="grid_12">Unter der Adresse <em>{{request.path}}</em> wohnt zur Zeit kein Inhalt.<br />
Unsere Empfehlung: Gehe zurück zum <a href="/">Start</a>.</p>

View File

@@ -163,15 +163,9 @@
{% trans "no user logged in" %} -
<a rel="nofollow" href="{% url 'membership-register' %}">{% trans "register" %}</a>
<a rel="nofollow" href="{% url 'login' %}?next={{ request.path_info }}">{% trans "login" %}</a>
<a rel="nofollow" href="{% url 'social:begin' 'facebook' %}"><img src="{{STATIC_URL}}img/facebook.png"
alt="Facebook Login" title="Login with Facebook"
width="26" height="26"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'twitter' %}"><img src="{{STATIC_URL}}img/twitter.png"
alt="Twitter Login" title="Login with Twitter"
width="26" height="26"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'google-oauth2' %}"><img src="{{STATIC_URL}}img/google.png"
alt="Google Login" title="Login with Google"
width="26" height="26"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'facebook' %}" class="social facebook" title="{% trans 'Login with Facebook' %}"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'twitter' %}" class="social twitter" title="{% trans 'Login with Twitter' %}"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'google-oauth2' %}" class="social google" title="{% trans 'Login with Google' %}"/></a>
{% endif %}
</nav>
<script type="text/javascript">{% block javascript %}{% endblock %}</script>

View File

@@ -3,11 +3,12 @@
{% block title %}{% trans "Preview your comment" %}{% endblock %}
{% block teaser %}<h1>{% trans "Preview your comment" %}</h1>{% endblock %}
{% block maincontent %}
{% if form.errors %}
<h2 class="grid_12">{% blocktrans count form.errors|length as counter %}Please correct the error below{% plural %}Please correct the errors below{% endblocktrans %}</h2>
{% else %}
<h2 class="grid_12">{% trans "Preview your comment" %}</h2>
<article id="c{{ comment.id }}" class="comment">
<div class="comment_picture">
<img class="avatar" src="{% if user.get_profile.thumbnail %}
@@ -26,4 +27,4 @@
{% endif %}
{% include "comments/form.html" %}
{% endblock %}
{% endblock %}

View File

@@ -27,7 +27,7 @@
If you don't own such an account, or do not want to use it for authentication,
you can fill out our registration form.</p>
{% endblocktrans %}
<p class="more_link">
<p class="buttonbar">
<a href="{% url 'membership-register' %}" class="button">
<img src="{{STATIC_URL}}icons/user_add.png" alt="{%trans 'register' %}"/>
{%trans "register"%}</a></p>
@@ -52,13 +52,13 @@ you can fill out our registration form.</p>
<div class="grid_5" style="text-align: center;">
<div class="grid_5">
<h2>{% trans "or login with an existing Account" %}</h2>
<a rel="nofollow" href="{% url 'social:begin' 'facebook' %}"><img src="{{STATIC_URL}}/img/facebook.png" alt="{% trans 'Login with Facebook' %}" title="{% trans 'Login with Facebook' %}"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'twitter' %}"><img src="{{STATIC_URL}}/img/twitter.png" alt="{% trans 'Login with twitter' %}" title="{% trans 'Login with Twitter' %}"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'google-oauth2' %}"><img src="{{STATIC_URL}}/img/google.png" width="78" height="78" alt="{% trans 'Login with Google' %}" title="{% trans 'Login with Google' %}"/></a>
<div style="text-align: center; font-size: 72px">
<a rel="nofollow" href="{% url 'social:begin' 'facebook' %}" class="social facebook" title="{% trans 'Login with Facebook' %}"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'twitter' %}" class="social twitter" title="{% trans 'Login with Twitter' %}"/></a>
<a rel="nofollow" href="{% url 'social:begin' 'google-oauth2' %}" class="social google" title="{% trans 'Login with Google' %}"/></a>
</div>
</div>
</form>
{% endblock %}
{% endblock %}

View File

@@ -3,6 +3,7 @@
{% block title %}{% trans 'Password change' %}{% endblock %}
{% block callout %}
<div id="callout">
<h1>{% trans 'Password change' %}</h1>
@@ -12,7 +13,7 @@
{% block content %}
<fieldset>
<legend>Passwort ändern:</legend>
<legend>{% trans 'Password change' %}</legend>
<form method="post" action="" class="cmxform">
{%csrf_token%}
{% if form.errors %}<p class="error"> Es sind Fehler beim ändern des Passwortes aufgetreten</p>{% endif %}

View File

@@ -3,8 +3,17 @@
{% block title %}{% trans 'Password reset complete' %}{% endblock %}
{% block teaser %}<h1>{% trans 'Password reset complete' %}</h1>{% endblock %}
{% block content %}
<h2>{% trans 'Password reset complete' %}</h2>
<p>{% trans "Your password has been set. You may go ahead and log in now." %}</p>
<p class="more"><a href="{{ login_url }}">{% trans 'Log in' %}</a></p>
<p class="more_link">
<a href="{{ login_url }}" class="button">
{% trans 'Login' %}
<img src="{{STATIC_URL}}icons/arrow_right.png" alt="{% trans 'Login' %}" />
</a>
</p>
{% endblock %}

View File

@@ -1,29 +1,27 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}{% trans 'Password reset' %}{% endblock %}
{% block title %}{% trans 'Enter new password' %}{% endblock %}
{% block teaser %}<h1>{% trans 'Enter new password' %}</h1>{% endblock %}
{% block maincontent %}
{% if validlink %}
<h2 class="grid_12">{% trans 'Enter new password' %}</h2>
<p class="grid_6">{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p>
<form action="" method="post" class="grid_5">
<form action="" method="post">
{% csrf_token %}
<fieldset style="margin: -12px 0 0 0">
<legend>{% trans 'Change my password' %}</legend>
<ul>
{%for element in form %}
<p class="required">{{element.label_tag}} {{element}}
{%if element.help_text %} <img src="{{STATIC_URL}}icons/information.png" title="{{element.help_text}}"> {% endif %}
{%if element.errors %}{{element.errors }} {% endif %}
</li>
{% endfor %}
</ul>
<p class="buttonbar"><button type="submit"><img src="{{STATIC_URL}}icons/key.png" /> {% trans 'Change my password' %}</button></p>
</fieldset>
<p class="grid_6">{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p>
<fieldset class="grid_6">
<legend>{% trans 'Enter new password' %}</legend>
{% include 'form.html' %}
<p class="buttonbar">
<button type="submit"><img src="{{STATIC_URL}}icons/key.png" /> {% trans 'Change my password' %}</button>
</p>
</fieldset>
</form>
{% else %}
<h2>{% trans 'Password reset unsuccessful' %}</h2>
<p class="error">{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}</p>

View File

@@ -3,6 +3,9 @@
{% block title %}{% trans 'Password reset successful' %}{% endblock %}
{% block teaser %}<h1>{% trans 'Password reset successful' %}</h1>{% endblock %}
{% block maincontent %}
<div class="grid_12">

View File

@@ -7,13 +7,13 @@ from content.views import * # @UnusedWildImport
from events.views import EventListIcal
from content.feeds import LatestNews, LatestComments
from membership.views import MembershipDetail
from django.views.generic.base import TemplateView
from django.views.generic.base import TemplateView, RedirectView
admin.autodiscover()
urlpatterns = patterns(
'',
url(r'^$', StartPage.as_view(), name='start-page'),
url(r'^$', RedirectView.as_view(url='/index.html')),
url(r'^404/$', TemplateView.as_view(template_name='404.html')),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
@@ -26,7 +26,7 @@ urlpatterns = patterns(
url(r'^gallery/', include('gallery.urls')),
url(r'^google25dabc1a49a9ef03.html$', TemplateView.as_view(template_name='google25dabc1a49a9ef03.html')),
url(r'^grappelli/', include('grappelli.urls')),
url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^i18n/', include('django.conf.urls.i18n'), name='start-page'),
url(r'^index.html$', StartPage.as_view()),
url(r'^markdown/', include('django_markdown.urls')),
url(r'^mahjong/', include('mahjong_ranking.urls')),

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.mahjong_ranking\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
"POT-Creation-Date: 2015-01-05 19:23+0100\n"
"PO-Revision-Date: 2015-01-04 11:58+0100\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n"
"Language: de\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.2\n"
"X-Generator: Poedit 1.6.11\n"
"X-Generator: Poedit 1.7.1\n"
#: admin.py:35
msgid "Recalculate"
@@ -39,7 +39,7 @@ msgstr "Nur Spiele während der Veranstaltung sind erlaubt."
msgid "A valid Hanchan needs 4 players"
msgstr "Eine gültige Hanchan braucht 4 Spieler"
#: models.py:84 models.py:611 templates/mahjong_ranking/hanchan_form.html:30
#: models.py:84 models.py:613 templates/mahjong_ranking/hanchan_form.html:30
#: templates/mahjong_ranking/player_dan_score.html:19
#: templates/mahjong_ranking/player_invalid_score.html:18
msgid "Comment"
@@ -61,7 +61,8 @@ msgstr "Nur gültige und bestätigte Hanchans kommen in die Wertung."
msgid "Players"
msgstr "Spieler"
#: models.py:97 templates/mahjong_ranking/player_dan_score.html:15
#: models.py:97 templates/mahjong_ranking/ladderranking_list.html:8
#: templates/mahjong_ranking/player_dan_score.html:15
#: templates/mahjong_ranking/player_invalid_score.html:14
#: templates/mahjong_ranking/player_kyu_score.html:16
#: templates/mahjong_ranking/player_ladder_score.html:15
@@ -132,34 +133,34 @@ msgstr "Turnierwertung"
#: templates/mahjong_ranking/eventranking_list.html:13
#: templates/mahjong_ranking/kyudanranking_list.html:25
#: templates/mahjong_ranking/ladderranking_list.html:13
#: templates/mahjong_ranking/ladderranking_list.html:20
msgid "Rank"
msgstr "Rang"
#: templates/mahjong_ranking/eventranking_list.html:14
#: templates/mahjong_ranking/kyudanranking_list.html:12
#: templates/mahjong_ranking/ladderranking_list.html:14
#: templates/mahjong_ranking/ladderranking_list.html:21
msgid "Avatar"
msgstr "Avatar"
#: templates/mahjong_ranking/eventranking_list.html:15
#: templates/mahjong_ranking/kyudanranking_list.html:15
#: templates/mahjong_ranking/ladderranking_list.html:15
#: templates/mahjong_ranking/ladderranking_list.html:22
msgid "Nickname"
msgstr "Spitzname"
#: templates/mahjong_ranking/eventranking_list.html:16
#: templates/mahjong_ranking/ladderranking_list.html:16
#: templates/mahjong_ranking/ladderranking_list.html:23
msgid "Name"
msgstr "Name"
#: templates/mahjong_ranking/eventranking_list.html:17
#: templates/mahjong_ranking/ladderranking_list.html:17
#: templates/mahjong_ranking/ladderranking_list.html:24
msgid "Average"
msgstr "Durchschnitt"
#: templates/mahjong_ranking/eventranking_list.html:21
#: templates/mahjong_ranking/ladderranking_list.html:21
#: templates/mahjong_ranking/ladderranking_list.html:28
#: templates/mahjong_ranking/player_dan_score.html:16
#: templates/mahjong_ranking/player_invalid_score.html:16
#: templates/mahjong_ranking/player_kyu_score.html:17
@@ -171,37 +172,37 @@ msgstr "Platzierung"
#: templates/mahjong_ranking/hanchan_form.html:28
#: templates/mahjong_ranking/hanchan_list.html:16
#: templates/mahjong_ranking/kyudanranking_list.html:30
#: templates/mahjong_ranking/ladderranking_list.html:22
#: templates/mahjong_ranking/ladderranking_list.html:29
msgid "Score"
msgstr "Punkte"
#: templates/mahjong_ranking/eventranking_list.html:23
#: templates/mahjong_ranking/ladderranking_list.html:23
#: templates/mahjong_ranking/ladderranking_list.html:30
msgid "count"
msgstr "Anzahl"
#: templates/mahjong_ranking/eventranking_list.html:24
#: templates/mahjong_ranking/ladderranking_list.html:24
#: templates/mahjong_ranking/ladderranking_list.html:31
msgid "good"
msgstr "gut"
#: templates/mahjong_ranking/eventranking_list.html:25
#: templates/mahjong_ranking/ladderranking_list.html:25
#: templates/mahjong_ranking/ladderranking_list.html:32
msgid "won"
msgstr "gewonnen"
#: templates/mahjong_ranking/eventranking_list.html:58
#: templates/mahjong_ranking/ladderranking_list.html:70
#: templates/mahjong_ranking/ladderranking_list.html:77
msgid "Ladder Archive"
msgstr "Ladder Archiv"
#: templates/mahjong_ranking/eventranking_list.html:65
#: templates/mahjong_ranking/ladderranking_list.html:64
#: templates/mahjong_ranking/ladderranking_list.html:71
msgid "Latest Events"
msgstr "Letzte Veranstaltungen"
#: templates/mahjong_ranking/eventranking_list.html:72
#: templates/mahjong_ranking/ladderranking_list.html:54
#: templates/mahjong_ranking/ladderranking_list.html:61
msgid "Latest Hanchans"
msgstr "Letzten Hanchans"
@@ -315,7 +316,15 @@ msgstr "Voller Name"
msgid "Games Total"
msgstr "Spiele total"
#: templates/mahjong_ranking/ladderranking_list.html:72
#: templates/mahjong_ranking/ladderranking_list.html:9
msgid "End"
msgstr "Ende"
#: templates/mahjong_ranking/ladderranking_list.html:10
msgid "Participants"
msgstr "Teilnehmer"
#: templates/mahjong_ranking/ladderranking_list.html:79
#: templates/mahjong_ranking/player_ladder_score.html:51
msgid "Season"
msgstr "Saison"

View File

@@ -164,7 +164,9 @@ class Hanchan(models.Model):
# _('For a Hanchan exactly 4 players are needed.'))
if not self.event_id:
raise ValidationError(_("Hanchan has no event"))
elif self.start and self.start > timezone.now():
elif not self.start:
raise ValidationError(_("Hanchan has no start time set"))
elif self.start > timezone.now():
raise ValidationError(_("It's not allowed to enter future games."))
elif not (self.event.start <= self.start <= self.event.end):
raise ValidationError(_("Only games during the event are allowed"))
@@ -509,7 +511,9 @@ class LadderSeason(models.Model):
"""
return reverse('mahjong-ladder', kwargs={'season': self.pk})
@property
def participants(self):
return self.ladderranking_set.filter(placement__isnull=False).count()
def recalculate(self):
logger.info(u'Recalculate LadderSeason %s', self.name)

View File

@@ -3,6 +3,13 @@
{% block teaser %}
<h2>Mahjong Ranking - {{season.name}}</h2>
<div id="teaser_text">
<ul class="info">
<li class="date">{% trans 'Start' %}: {{season.start}}</li>
<li class="date">{% trans 'End' %}: {{season.end}}</li>
<li class="user">{% trans 'Participants' %}: {{season.participants}}</li>
</ul>
</div>
{% endblock %}
{% block maincontent %}
@@ -76,4 +83,4 @@
{% endfor %}
</select>
</form>
{% endblock %}
{% endblock %}

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.mahjong_ranking\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
"POT-Creation-Date: 2015-01-05 19:23+0100\n"
"PO-Revision-Date: 2014-12-11 22:47+0100\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -145,7 +145,6 @@ class RegistrationForm(forms.ModelForm):
user.is_active = False
if commit:
user.save()
activation = models.ActivationRequest.objects.create_pending_registration(
user)
activation = models.ActivationRequest.objects.create_pending_registration(user) # @IgnorePep8
self.send_email(activation)
return user

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.membership\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
"POT-Creation-Date: 2015-01-05 19:23+0100\n"
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n"

View File

@@ -3,14 +3,16 @@
{% block title %}Account aktivierung fehlgeschlagen{% endblock %}
{% block teaser %}<h1>Account aktivierung fehlgeschlagen</h1>{% endblock %}
{% block maincontent %}
<h2 class="grid_12">Aktivierung fehlgeschlagen</h2>
<p class="grid_12">Leider war die Aktivierung des Schlüssels &ldquo;{{ activation_key }}&rdquo; war nicht erfolgreich, dies könnte mehrere Gründe haben:</p>
<img class="grid_4" src="" alt="" />
<ul class="grid_8">
<li><strong>Der Aktivierungs Link ist nicht korrekt.</strong> Bitte kopiere die ganze Zeile aus der E-Mail in die Adressleiste.</li>
<li><strong>Der Aktivierungs Schlüssel ist abgelaufen.</strong> Dieser ist nur {{ expiration_days }} Tage gültig.In diesem Fall fülle das <a href="{% url 'membership-register' %}">Registrierungs Formular</a> bitte erneut aus.</p></li>
<li><strong>Der Account wurde schon aktiviert.</strong> Dies passiert sehr schnell, veruche zuerst dich mit deinen Daten <a href="{% url 'login' %}">anzumelden</a>. Sollte das nicht funktionieren, kannst du dir ja mal <a href="{% url 'password_reset' %}">neue Zugangsdaten zuschicken</a> lassen.</li>
<li><strong>Ein obskurer Fehler ist aufgetreten.</strong> In diesem Fall, nimm bitte Kontakt mit dem Webadmin auf.</li>
<li><strong>Der Aktivierungs Link ist nicht korrekt.</strong> Bitte kopiere die ganze Zeile aus der E-Mail in die Adressleiste.</li>
<li><strong>Der Aktivierungs Schlüssel ist abgelaufen.</strong> Dieser ist nur {{ expiration_days }} Tage gültig.In diesem Fall fülle das <a href="{% url 'membership-register' %}">Registrierungs Formular</a> bitte erneut aus.</p></li>
<li><strong>Der Account wurde schon aktiviert.</strong> Dies passiert sehr schnell, veruche zuerst dich mit deinen Daten <a href="{% url 'login' %}">anzumelden</a>. Sollte das nicht funktionieren, kannst du dir ja mal <a href="{% url 'password_reset' %}">neue Zugangsdaten zuschicken</a> lassen.</li>
<li><strong>Ein obskurer Fehler ist aufgetreten.</strong> In diesem Fall, nimm bitte Kontakt mit dem Webadmin auf.</li>
</ul>
{% endblock %}

View File

@@ -2,6 +2,8 @@
{% block title %}Bestätigungs E-Mail wurde abgeschickt{% endblock %}
{% block teaser %}<h1>Bestätigungs E-Mail wurde abgeschickt</h1>{% endblock %}
{% block content %}
<div class="left_column">
<h2>Bestätigungs E-Mail wurde abgeschickt</h2>

View File

@@ -2,6 +2,9 @@
{% block title %}Aktivierung erfolgreich{% endblock %}
{% block teaser %}<h1>Aktivierung erfolgreich</h1>{% endblock %}
{% block maincontent %}
<h2 class="grid_12">Aktivierung erfolgreich</h2>

View File

@@ -3,7 +3,7 @@
{% block title %}{{ membership.first_name }} {{membership.last_name}}{% endblock %}
{% block teaser %}<h2>{% trans 'profile for' %} {{membership.user.username|title}}</h2>{% endblock %}
{% block teaser %}<h1>{% trans 'profile for' %} {{membership.user.username|title}}</h1>{% endblock %}
{% block navigation %}
<ul id="navigation">

View File

@@ -1,6 +1,10 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}{% trans "Edit Userprofile" %}{% endblock %}
{% block teaser %}<h1>{% trans "Edit Userprofile" %}</h1>{% endblock %}
{% block extra_head %}
<link rel="stylesheet" href="{{STATIC_URL}}css/jquery-ui-1.8.16.custom.css" type="text/css">
<script type="text/javascript" src="{{STATIC_URL}}js/jquery-ui-1.8.16.custom.min.js"></script>
@@ -28,14 +32,14 @@
{% block javascript %}
$(function() {
$( "#id_birthday" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd',
yearRange: '-50,0',
firstDay: 1
});
});
$( "#id_birthday" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd',
yearRange: '-50,0',
firstDay: 1
});
});
{% endblock %}
{% block buttonbar %}{% endblock %}

View File

@@ -3,11 +3,8 @@
{% load url from future %}
{% block title %}{% trans "Registration"%}{% endblock %}
{% block teaser%}
<h1>{% trans "Registration"%}</h1>
<div id="teaser_text">
</div>
{% endblock %}
{% block teaser%}<h1>{% trans "Registration"%}</h1>{% endblock %}
{% block maincontent %}
<form method="post" action="{% url 'membership-register' %}">

View File

@@ -4,6 +4,8 @@
{% block title %}{% trans "Activation sent"%}{% endblock %}
{% block teaser %}<h1>{% trans "Activation sent"%}</h1>{% endblock %}
{% block content %}
<h2>{% trans "Activation sent"%}</h2>
@@ -11,4 +13,4 @@
Es ist dabei wichtig eine gültige E-Mail Adresse anzugeben, welche du öfters abrufst.</p>
<p>Während der Registrierung schicken wir dir eine E-Mail, diese enthält einen Link zur Aktivierung.
Ohne diesen Schritt ist es nicht Möglich sich mit dem Account anzumelden.</p>
{% endblock %}
{% endblock %}

View File

@@ -1,2 +1,3 @@
-r base.txt
django-debugbar
rosetta

View File

@@ -1,6 +1,7 @@
#!/bin/sh
./cleanup.sh
# ./cleanup.sh
find . -name "*.pyc" -exec rm -rf {} \;
while read dir; do
echo "Syncing Files in $dir..."

4
testserver.sh Executable file
View File

@@ -0,0 +1,4 @@
export DJANGO_SETTINGS_MODULE=kasu.settings.dev
source virtenv/bin/activate
./manage.py runserver 0.0.0.0:8080

View File

@@ -8,7 +8,7 @@ import re
from django.conf import settings
from django.core import validators
from django.core.validators import EMPTY_VALUES
from django.forms import util, Form, ModelForm, ValidationError # @UnusedImport
from django.forms import util, Form, ModelForm, ValidationError # @UnusedImport
import django.forms.fields
from django.utils.translation import gettext as _
@@ -198,7 +198,7 @@ class ReCaptchaField(django.forms.fields.CharField):
self.required = True
super(ReCaptchaField, self).__init__(*args, **kwargs)
def _check_recaptcha(self, challenge_value, response_value, remote_ip):
def _check_recaptcha(self, challenge_value, response_value, remote_ip=None):
"""
Submits a reCAPTCHA request for verification.
Returns RecaptchaResponse for the request

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kasu.utils\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
"POT-Creation-Date: 2015-01-05 19:23+0100\n"
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
"Language-Team: Kasu <verein@kasu.at>\n"