Aktuelle Fassung der Kasu.at Homepage. Kleine kosmetische Optimierungen.
7
.gitignore
vendored
@@ -66,8 +66,5 @@ target/
|
||||
/node_modules/
|
||||
/static/
|
||||
/templates/
|
||||
.idea/
|
||||
.gitignore
|
||||
.project
|
||||
.pydevproject
|
||||
.settings/
|
||||
.[a-zA-Z]*
|
||||
/src/kasu/settings/production.py
|
||||
|
||||
@@ -13,7 +13,7 @@ module.exports = function(grunt) {
|
||||
},
|
||||
kasu: {
|
||||
src: 'src/kasu/static/less/kasu.less',
|
||||
dest: 'static/css/kasu.css',
|
||||
dest: 'src/kasu/static/css/kasu.css',
|
||||
}
|
||||
},
|
||||
more_css: {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import os
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.template.defaultfilters import slugify
|
||||
@@ -10,7 +11,6 @@ from django.utils.timezone import now
|
||||
from django.utils.translation import ugettext as _
|
||||
from ckeditor.fields import RichTextField
|
||||
from easy_thumbnails.fields import ThumbnailerImageField
|
||||
|
||||
from utils import COUNTRIES, OverwriteStorage
|
||||
|
||||
|
||||
@@ -125,6 +125,12 @@ class Event(models.Model):
|
||||
except:
|
||||
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):
|
||||
kwargs = {
|
||||
'pk': self.id,
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<p>{{event.description|truncatewords_html:20}}</p>
|
||||
<p>{{event.description|truncatewords_html:20|safe}}</p>
|
||||
<ul class="info">
|
||||
<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>
|
||||
|
||||
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 {
|
||||
list-style: circle outside;
|
||||
padding-left: 2em;
|
||||
margin:0.5em 0 0.5em 0
|
||||
margin-top:0.5em;
|
||||
|
||||
li {margin-bottom: 0.5em}
|
||||
}
|
||||
ul.info {
|
||||
list-style: none;
|
||||
@@ -198,7 +200,6 @@ ul.tabs {
|
||||
display: inline-block;
|
||||
padding: 0.5em 1em;
|
||||
text-decoration: none;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -146,9 +146,10 @@ body {
|
||||
background: url(../img/navigation-separator.png) no-repeat right center;
|
||||
color: #FFF;
|
||||
display: inline-block;
|
||||
line-height:50px;
|
||||
font-weight: bold;
|
||||
height: 33px;
|
||||
padding: 17px 15px 0;
|
||||
height: 50px;
|
||||
padding: 0 15px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -168,6 +169,9 @@ body {
|
||||
width: 280px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
z-index: 100;
|
||||
|
||||
h3 {margin: 0.5em 0;}
|
||||
ul li {line-height: 1em; margin-bottom: 0.5em;}
|
||||
}
|
||||
#usernav {
|
||||
position: absolute;
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
font: normal small-caps 18px 'Amerika Sans', sans-serif;
|
||||
text-align: center;
|
||||
text-shadow: 2px 2px 2px #2e3436;
|
||||
margin: 0;
|
||||
|
||||
a {
|
||||
color: #000;
|
||||
@@ -101,4 +102,4 @@
|
||||
}
|
||||
ul.main_menu li:hover > ul {display: block; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,6 +118,8 @@ ul.main_dropdown {
|
||||
#redbox {
|
||||
margin-top: 1em;
|
||||
display: block;
|
||||
h3 {margin: 0.5em 0}
|
||||
ul li {margin-bottom: 0.75em}
|
||||
}
|
||||
#teaser {
|
||||
background: none;
|
||||
@@ -143,6 +145,8 @@ ul.main_dropdown {
|
||||
}
|
||||
#toggle:checked ~ .toggle, .toggle:hover {background: #45ABD6}
|
||||
|
||||
#usernav a {display: inline-block; margin: 0 0.5em}
|
||||
|
||||
.comment_picture {
|
||||
display: table-cell;
|
||||
padding: 0px 10px;
|
||||
@@ -292,4 +296,4 @@ ul.main_dropdown {
|
||||
height: 70px;
|
||||
width: 70px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,26 +17,17 @@
|
||||
document.createElement('hgroup');
|
||||
</script>
|
||||
<![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' %}"
|
||||
href="{% url 'feed-latest-news' %}"/>
|
||||
<link rel="alternate" type="application/rss+xml" title="{% trans 'Recent Comments' %}"
|
||||
href="{% url 'feed-latest-comments' %}"/>
|
||||
<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="60x60" href="{{STATIC_URL}}img/apple-touch-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="{{STATIC_URL}}img/apple-touch-icon-72x72.png">
|
||||
<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">
|
||||
<link rel="shortcut icon" href="{{STATIC_URL}}img/favicon.ico" />
|
||||
<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-96x96.png" sizes="96x96" />
|
||||
<link rel="mask-icon" href="{{STATIC_URL}}img/safari-pinned-tab.svg" color="#5bbad5" />
|
||||
|
||||
{% block opengraph %}
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:title" content="Kasu - Verein Japanische Spielekultur"/>
|
||||
|
||||
@@ -59,8 +59,8 @@
|
||||
<h2>{% trans 'Kasu in the social network' %}</h2>
|
||||
|
||||
<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://twitter.com/KasuAustria"><span
|
||||
<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" style="margin: 0 2em"><span
|
||||
class="fa fa-twitter fa-5x"
|
||||
title="{% trans 'Visit us on' %} Twitter"></span></a>
|
||||
</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'^i18n/', include('django.conf.urls.i18n'), name='start-page'),
|
||||
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'^news/', include('content.news_urls')),
|
||||
url(r'^ranking/', include('mahjong_ranking.urls')),
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
width="70" height="70" class="avatar" alt=""/></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 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.hanchan_count}}</td>
|
||||
<td class="right">{{player.good_hanchans}}</td>
|
||||
|
||||