Aktuelle Fassung der Kasu.at Homepage. Kleine kosmetische Optimierungen.
7
.gitignore
vendored
@@ -66,8 +66,5 @@ target/
|
|||||||
/node_modules/
|
/node_modules/
|
||||||
/static/
|
/static/
|
||||||
/templates/
|
/templates/
|
||||||
.idea/
|
.[a-zA-Z]*
|
||||||
.gitignore
|
/src/kasu/settings/production.py
|
||||||
.project
|
|
||||||
.pydevproject
|
|
||||||
.settings/
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ module.exports = function(grunt) {
|
|||||||
},
|
},
|
||||||
kasu: {
|
kasu: {
|
||||||
src: 'src/kasu/static/less/kasu.less',
|
src: 'src/kasu/static/less/kasu.less',
|
||||||
dest: 'static/css/kasu.css',
|
dest: 'src/kasu/static/css/kasu.css',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
more_css: {
|
more_css: {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
import os
|
import os
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
@@ -10,7 +11,6 @@ from django.utils.timezone import now
|
|||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from ckeditor.fields import RichTextField
|
from ckeditor.fields import RichTextField
|
||||||
from easy_thumbnails.fields import ThumbnailerImageField
|
from easy_thumbnails.fields import ThumbnailerImageField
|
||||||
|
|
||||||
from utils import COUNTRIES, OverwriteStorage
|
from utils import COUNTRIES, OverwriteStorage
|
||||||
|
|
||||||
|
|
||||||
@@ -125,6 +125,12 @@ class Event(models.Model):
|
|||||||
except:
|
except:
|
||||||
return "New Event Model"
|
return "New Event Model"
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
if self.end < self.start:
|
||||||
|
raise ValidationError({
|
||||||
|
'end': _("A event can't end before it had started")
|
||||||
|
})
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'pk': self.id,
|
'pk': self.id,
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>{{event.description|truncatewords_html:20}}</p>
|
<p>{{event.description|truncatewords_html:20|safe}}</p>
|
||||||
<ul class="info">
|
<ul class="info">
|
||||||
<li><span class="fa fa-map-marker" title="{% trans 'Location' %}"></span> {{ event.location }}</li>
|
<li><span class="fa fa-map-marker" title="{% trans 'Location' %}"></span> {{ event.location }}</li>
|
||||||
<li><span class="fa fa-comments" title="{% trans 'Comments' %}"></span> <a href="{{event.get_absolute_url}}#comments">{{ comment_count }}</a></li>
|
<li><span class="fa fa-comments" title="{% trans 'Comments' %}"></span> <a href="{{event.get_absolute_url}}#comments">{{ comment_count }}</a></li>
|
||||||
|
|||||||
BIN
src/kasu/static/img/android-chrome-144x144.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/kasu/static/img/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/kasu/static/img/android-chrome-36x36.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
src/kasu/static/img/android-chrome-48x48.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
src/kasu/static/img/android-chrome-72x72.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
src/kasu/static/img/android-chrome-96x96.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
src/kasu/static/img/apple-touch-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
src/kasu/static/img/apple-touch-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
src/kasu/static/img/apple-touch-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/kasu/static/img/apple-touch-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/kasu/static/img/apple-touch-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/kasu/static/img/apple-touch-icon-57x57.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
src/kasu/static/img/apple-touch-icon-60x60.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
src/kasu/static/img/apple-touch-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
src/kasu/static/img/apple-touch-icon-76x76.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
src/kasu/static/img/apple-touch-icon-precomposed.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/kasu/static/img/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/kasu/static/img/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/kasu/static/img/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
src/kasu/static/img/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
src/kasu/static/img/mstile-144x144.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/kasu/static/img/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src/kasu/static/img/mstile-310x150.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/kasu/static/img/mstile-310x310.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
src/kasu/static/img/mstile-70x70.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
35
src/kasu/static/img/safari-pinned-tab.svg
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="308.000000pt" height="308.000000pt" viewBox="0 0 308.000000 308.000000"
|
||||||
|
preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata>
|
||||||
|
Created by potrace 1.11, written by Peter Selinger 2001-2013
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,308.000000) scale(0.100000,-0.100000)"
|
||||||
|
fill="#000000" stroke="none">
|
||||||
|
<path d="M1210 2949 c-687 -155 -1146 -773 -1089 -1469 28 -342 168 -638 422
|
||||||
|
-894 268 -269 581 -409 947 -423 541 -20 1037 271 1282 752 105 207 151 397
|
||||||
|
150 630 0 293 -75 533 -250 799 -81 123 -243 292 -359 376 -152 109 -365 201
|
||||||
|
-544 235 -122 23 -446 20 -559 -6z m265 -180 c69 -13 109 -31 148 -67 34 -32
|
||||||
|
35 -65 3 -80 -24 -11 -33 -32 -51 -119 -8 -39 -15 -38 158 -19 106 12 121 16
|
||||||
|
147 41 l29 28 49 -32 c105 -67 127 -108 73 -135 -25 -14 -29 -23 -40 -93 -36
|
||||||
|
-227 -94 -424 -153 -516 -44 -69 -137 -129 -193 -125 -38 3 -41 5 -55 50 -11
|
||||||
|
35 -34 67 -87 121 -48 47 -73 80 -73 95 0 44 29 36 130 -33 54 -37 107 -68
|
||||||
|
116 -69 24 -2 78 71 104 141 34 90 67 230 81 341 7 56 11 104 8 106 -4 4 -280
|
||||||
|
-21 -303 -27 -4 -2 -18 -43 -31 -93 -49 -193 -132 -341 -270 -480 -118 -120
|
||||||
|
-309 -246 -349 -231 -9 4 -16 17 -16 30 0 19 16 35 71 71 157 105 300 270 379
|
||||||
|
439 34 72 80 212 80 243 0 18 -188 -13 -240 -40 -55 -28 -77 -22 -133 32 -64
|
||||||
|
61 -85 124 -52 152 12 10 22 6 55 -24 l40 -36 98 0 c88 1 240 15 249 23 8 8
|
||||||
|
24 173 18 194 -3 13 -23 34 -45 48 -50 32 -51 53 -4 75 0 0 27 -5 59 -11z
|
||||||
|
m386 -1361 c60 -47 86 -84 73 -106 -6 -9 -21 -18 -32 -20 -13 -2 -42 -33 -78
|
||||||
|
-85 -31 -45 -79 -111 -106 -145 -27 -35 -48 -64 -46 -65 2 -1 41 -21 88 -43
|
||||||
|
219 -107 364 -287 293 -366 -39 -43 -83 -17 -154 87 -50 75 -115 142 -202 206
|
||||||
|
l-78 59 -88 -78 c-130 -114 -260 -203 -412 -282 -139 -71 -194 -86 -206 -54
|
||||||
|
-8 22 6 34 129 107 283 170 488 362 634 595 44 69 52 88 39 90 -21 5 -271 -35
|
||||||
|
-350 -55 -33 -8 -67 -21 -76 -29 -30 -27 -67 -17 -121 34 -55 51 -80 97 -71
|
||||||
|
130 8 32 31 35 59 7 43 -43 53 -45 195 -35 246 18 389 38 418 60 35 26 43 25
|
||||||
|
92 -12z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -164,7 +164,9 @@ table {
|
|||||||
ul {
|
ul {
|
||||||
list-style: circle outside;
|
list-style: circle outside;
|
||||||
padding-left: 2em;
|
padding-left: 2em;
|
||||||
margin:0.5em 0 0.5em 0
|
margin-top:0.5em;
|
||||||
|
|
||||||
|
li {margin-bottom: 0.5em}
|
||||||
}
|
}
|
||||||
ul.info {
|
ul.info {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
@@ -198,7 +200,6 @@ ul.tabs {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0.5em 1em;
|
padding: 0.5em 1em;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -146,9 +146,10 @@ body {
|
|||||||
background: url(../img/navigation-separator.png) no-repeat right center;
|
background: url(../img/navigation-separator.png) no-repeat right center;
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
line-height:50px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
height: 33px;
|
height: 50px;
|
||||||
padding: 17px 15px 0;
|
padding: 0 15px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,6 +169,9 @@ body {
|
|||||||
width: 280px;
|
width: 280px;
|
||||||
border-radius: 0px 10px 10px 0px;
|
border-radius: 0px 10px 10px 0px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
|
||||||
|
h3 {margin: 0.5em 0;}
|
||||||
|
ul li {line-height: 1em; margin-bottom: 0.5em;}
|
||||||
}
|
}
|
||||||
#usernav {
|
#usernav {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
font: normal small-caps 18px 'Amerika Sans', sans-serif;
|
font: normal small-caps 18px 'Amerika Sans', sans-serif;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
text-shadow: 2px 2px 2px #2e3436;
|
text-shadow: 2px 2px 2px #2e3436;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: #000;
|
color: #000;
|
||||||
|
|||||||
@@ -118,6 +118,8 @@ ul.main_dropdown {
|
|||||||
#redbox {
|
#redbox {
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
display: block;
|
display: block;
|
||||||
|
h3 {margin: 0.5em 0}
|
||||||
|
ul li {margin-bottom: 0.75em}
|
||||||
}
|
}
|
||||||
#teaser {
|
#teaser {
|
||||||
background: none;
|
background: none;
|
||||||
@@ -143,6 +145,8 @@ ul.main_dropdown {
|
|||||||
}
|
}
|
||||||
#toggle:checked ~ .toggle, .toggle:hover {background: #45ABD6}
|
#toggle:checked ~ .toggle, .toggle:hover {background: #45ABD6}
|
||||||
|
|
||||||
|
#usernav a {display: inline-block; margin: 0 0.5em}
|
||||||
|
|
||||||
.comment_picture {
|
.comment_picture {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
padding: 0px 10px;
|
padding: 0px 10px;
|
||||||
|
|||||||
@@ -17,26 +17,17 @@
|
|||||||
document.createElement('hgroup');
|
document.createElement('hgroup');
|
||||||
</script>
|
</script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<link rel="stylesheet" href="{{STATIC_URL}}css/kasu.css">
|
<link rel="stylesheet" href="{{STATIC_URL}}css/kasu.css" />
|
||||||
|
<link rel="manifest" href="/manifest.json" />
|
||||||
<link rel="alternate" type="application/rss+xml" title="{% trans 'Current News' %}"
|
<link rel="alternate" type="application/rss+xml" title="{% trans 'Current News' %}"
|
||||||
href="{% url 'feed-latest-news' %}"/>
|
href="{% url 'feed-latest-news' %}"/>
|
||||||
<link rel="alternate" type="application/rss+xml" title="{% trans 'Recent Comments' %}"
|
<link rel="alternate" type="application/rss+xml" title="{% trans 'Recent Comments' %}"
|
||||||
href="{% url 'feed-latest-comments' %}"/>
|
href="{% url 'feed-latest-comments' %}"/>
|
||||||
<link rel="shortcut icon" href="{{STATIC_URL}}img/favicon.ico">
|
<link rel="shortcut icon" href="{{STATIC_URL}}img/favicon.ico" />
|
||||||
<link rel="apple-touch-icon" sizes="57x57" href="{{STATIC_URL}}img/apple-touch-icon-57x57.png">
|
<link rel="apple-touch-icon" sizes="180x180" href="{{STATIC_URL}}img/apple-touch-icon-180x180.png" />
|
||||||
<link rel="apple-touch-icon" sizes="60x60" href="{{STATIC_URL}}img/apple-touch-icon-60x60.png">
|
<link rel="icon" type="image/png" href="{{STATIC_URL}}img/favicon-96x96.png" sizes="96x96" />
|
||||||
<link rel="apple-touch-icon" sizes="72x72" href="{{STATIC_URL}}img/apple-touch-icon-72x72.png">
|
<link rel="mask-icon" href="{{STATIC_URL}}img/safari-pinned-tab.svg" color="#5bbad5" />
|
||||||
<link rel="apple-touch-icon" sizes="76x76" href="{{STATIC_URL}}img/apple-touch-icon-76x76.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="114x114" href="{{STATIC_URL}}img/apple-touch-icon-114x114.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="120x120" href="{{STATIC_URL}}img/apple-touch-icon-120x120.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="144x144" href="{{STATIC_URL}}img/apple-touch-icon-144x144.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="152x152" href="{{STATIC_URL}}img/apple-touch-icon-152x152.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="{{STATIC_URL}}img/apple-touch-icon-180x180.png">
|
|
||||||
<link rel="icon" type="image/png" href="{{STATIC_URL}}img/favicon-32x32.png" sizes="32x32">
|
|
||||||
<link rel="icon" type="image/png" href="{{STATIC_URL}}img/android-chrome-192x192.png" sizes="192x192">
|
|
||||||
<link rel="icon" type="image/png" href="{{STATIC_URL}}img/favicon-96x96.png" sizes="96x96">
|
|
||||||
<link rel="icon" type="image/png" href="{{STATIC_URL}}img/favicon-16x16.png" sizes="16x16">
|
|
||||||
<link rel="mask-icon" href="{{STATIC_URL}}img/safari-pinned-tab.svg" color="#5bbad5">
|
|
||||||
{% block opengraph %}
|
{% block opengraph %}
|
||||||
<meta property="og:type" content="website"/>
|
<meta property="og:type" content="website"/>
|
||||||
<meta property="og:title" content="Kasu - Verein Japanische Spielekultur"/>
|
<meta property="og:title" content="Kasu - Verein Japanische Spielekultur"/>
|
||||||
|
|||||||
@@ -59,8 +59,8 @@
|
|||||||
<h2>{% trans 'Kasu in the social network' %}</h2>
|
<h2>{% trans 'Kasu in the social network' %}</h2>
|
||||||
|
|
||||||
<p style="text-align: center">
|
<p style="text-align: center">
|
||||||
<a href="https://www.facebook.com/Kasu.at"><span class="fa fa-facebook fa-5x" title="{% trans 'Visit us on' %} Facebook"></span></a>
|
<a href="https://www.facebook.com/Kasu.at" style="margin: 0 2em"><span class="fa fa-facebook fa-5x" title="{% trans 'Visit us on' %} Facebook"></span></a>
|
||||||
<a href="https://twitter.com/KasuAustria"><span
|
<a href="https://twitter.com/KasuAustria" style="margin: 0 2em"><span
|
||||||
class="fa fa-twitter fa-5x"
|
class="fa fa-twitter fa-5x"
|
||||||
title="{% trans 'Visit us on' %} Twitter"></span></a>
|
title="{% trans 'Visit us on' %} Twitter"></span></a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
46
src/kasu/templates/manifest.json
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"name": "Kasu - Verein traditionelle japanische Spielekultur",
|
||||||
|
"short_name": "Kasu",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/static/img/android-chrome-36x36.png",
|
||||||
|
"sizes": "36x36",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "0.75"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/static/img/android-chrome-48x48.png",
|
||||||
|
"sizes": "48x48",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/static/img/android-chrome-72x72.png",
|
||||||
|
"sizes": "72x72",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/static/img/android-chrome-96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/static/img/android-chrome-144x144.png",
|
||||||
|
"sizes": "144x144",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/static/img/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "4.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start_url": "/",
|
||||||
|
"display": "standalone",
|
||||||
|
"background_color": "#424242",
|
||||||
|
"theme_color": "#bc0a19"
|
||||||
|
}
|
||||||
@@ -30,6 +30,7 @@ urlpatterns = patterns(
|
|||||||
url(r'^grappelli/', include('grappelli.urls')),
|
url(r'^grappelli/', include('grappelli.urls')),
|
||||||
url(r'^i18n/', include('django.conf.urls.i18n'), name='start-page'),
|
url(r'^i18n/', include('django.conf.urls.i18n'), name='start-page'),
|
||||||
url(r'^index.html$', StartPage.as_view()),
|
url(r'^index.html$', StartPage.as_view()),
|
||||||
|
url(r'^manifest.json$', TemplateView.as_view(template_name='manifest.json')),
|
||||||
url(r'^membership/', include('membership.urls')),
|
url(r'^membership/', include('membership.urls')),
|
||||||
url(r'^news/', include('content.news_urls')),
|
url(r'^news/', include('content.news_urls')),
|
||||||
url(r'^ranking/', include('mahjong_ranking.urls')),
|
url(r'^ranking/', include('mahjong_ranking.urls')),
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
width="70" height="70" class="avatar" alt=""/></a></td>
|
width="70" height="70" class="avatar" alt=""/></a></td>
|
||||||
<td><a href="{{ player.get_absolute_url }}?season={{season}}">{{player.user}}</a></td>
|
<td><a href="{{ player.get_absolute_url }}?season={{season}}">{{player.user}}</a></td>
|
||||||
<td>{% if user.is_authenticated %}{{player.user.last_name}} {{player.user.first_name}}{% else %}---{% endif %}</td>
|
<td>{% if user.is_authenticated %}{{player.user.last_name}} {{player.user.first_name}}{% else %}---{% endif %}</td>
|
||||||
<td class="center">{{player.avg_placement|ordinal }}</td>
|
<td class="center">{{player.avg_placement|floatformat:2 }}</td>
|
||||||
<td class="right">{{player.avg_score|floatformat:0|intcomma }}</td>
|
<td class="right">{{player.avg_score|floatformat:0|intcomma }}</td>
|
||||||
<td class="right">{{player.hanchan_count}}</td>
|
<td class="right">{{player.hanchan_count}}</td>
|
||||||
<td class="right">{{player.good_hanchans}}</td>
|
<td class="right">{{player.good_hanchans}}</td>
|
||||||
|
|||||||