diff --git a/requirements/base.txt b/requirements/base.txt index 8449e82..36c4668 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,6 +4,7 @@ django-appconf django-compressor django-contrib-comments django-ckeditor +django-csp django-extra-views django-grappelli django-markdown @@ -17,4 +18,4 @@ PyJWT python-social-auth pytz==2013d requests -requests-oauthlib \ No newline at end of file +requests-oauthlib diff --git a/src/content/locale/de/LC_MESSAGES/django.po b/src/content/locale/de/LC_MESSAGES/django.po index 4fabe15..bd3a534 100644 --- a/src/content/locale/de/LC_MESSAGES/django.po +++ b/src/content/locale/de/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: kasu.content\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-16 18:07+0200\n" -"PO-Revision-Date: 2016-09-15 23:07+0200\n" +"POT-Creation-Date: 2016-09-28 00:25+0200\n" +"PO-Revision-Date: 2016-09-28 00:24+0200\n" "Last-Translator: Christian Berg \n" "Language-Team: Deutsch <>\n" "Language: de\n" @@ -18,7 +18,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: Gtranslator 2.91.7\n" +"X-Generator: Poedit 1.8.9\n" #: src/content/feeds.py:14 msgid "Current news from Kasu" diff --git a/src/content/sitemaps.py b/src/content/sitemaps.py new file mode 100644 index 0000000..9b82a47 --- /dev/null +++ b/src/content/sitemaps.py @@ -0,0 +1,25 @@ +from django.contrib.sitemaps import Sitemap +from .models import Article, Page + +class ArticleSitemap(Sitemap): + changefreq = "never" + priority = 0.6 + protocol = 'https' + + def items(self): + return Article.objects.published() + + def lastmod(self, article): + return article.date_modified + + +class PageSitemap(Sitemap): + changefreq = "monthly" + priority = 0.4 + protocol = 'https' + + def items(self): + return Page.objects.all() #filter(status__gt=0) + + def location(self, page): + return page.get_absolute_url() diff --git a/src/events/locale/de/LC_MESSAGES/django.po b/src/events/locale/de/LC_MESSAGES/django.po index f797a80..19936a0 100644 --- a/src/events/locale/de/LC_MESSAGES/django.po +++ b/src/events/locale/de/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: kasu.events\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-16 18:07+0200\n" -"PO-Revision-Date: 2016-09-15 23:13+0200\n" +"POT-Creation-Date: 2016-09-28 00:25+0200\n" +"PO-Revision-Date: 2016-09-28 00:24+0200\n" "Last-Translator: Christian Berg \n" "Language-Team: Kasu \n" "Language: de\n" diff --git a/src/events/sitemaps.py b/src/events/sitemaps.py new file mode 100644 index 0000000..e7203ad --- /dev/null +++ b/src/events/sitemaps.py @@ -0,0 +1,22 @@ +from django.contrib.sitemaps import Sitemap +from django.utils import timezone +from .models import Event, Photo + + +class EventSitemap(Sitemap): + changefreq = "never" + priority = 0.6 + protocol = 'https' + + def items(self): + return Event.objects.all() + + def priority(self, event): + delta = timezone.now() - event.start + delta = abs(delta.days / 300.0 ) + return max(1 - delta, 0.1) + + def lastmod(self, event): + return event.end + return min(event.end, timezone.now()) + diff --git a/src/kasu/locale/de/LC_MESSAGES/django.po b/src/kasu/locale/de/LC_MESSAGES/django.po index a72edf0..4119c0c 100644 --- a/src/kasu/locale/de/LC_MESSAGES/django.po +++ b/src/kasu/locale/de/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: kasu.utils\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-16 18:07+0200\n" -"PO-Revision-Date: 2015-08-16 11:38+0200\n" +"POT-Creation-Date: 2016-09-28 00:25+0200\n" +"PO-Revision-Date: 2016-09-28 00:24+0200\n" "Last-Translator: Christian Berg \n" "Language-Team: Kasu \n" "Language: de\n" @@ -16,14 +16,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.8.3\n" +"X-Generator: Poedit 1.8.9\n" "X-Translated-Using: django-rosetta 0.7.6\n" -#: src/kasu/settings.py:147 +#: src/kasu/settings.py:160 msgid "German" msgstr "Deutsch" -#: src/kasu/settings.py:147 +#: src/kasu/settings.py:160 msgid "English" msgstr "Englisch" diff --git a/src/kasu/settings.py b/src/kasu/settings.py index 3ce8757..12b96fa 100644 --- a/src/kasu/settings.py +++ b/src/kasu/settings.py @@ -11,9 +11,6 @@ INTERNAL_IPS = ('127.0.0.1',) MANAGERS = ADMINS ROOT_URLCONF = 'kasu.urls' SECRET_KEY = 'set in local_settings' -SESSION_COOKIE_DOMAIN = 'kasu.at' # Die ganze Domain Kasu -SESSION_COOKIE_AGE = 15768000 # Session dauer: 4 Wochen -SESSION_COOKIE_SECURE = True SITE_ID = 1 # Path Info @@ -40,6 +37,7 @@ PREREQ_APPS = [ 'django.contrib.messages', 'django.contrib.sessions', 'django.contrib.sites', + 'django.contrib.sitemaps', 'django.contrib.staticfiles', 'django_comments', 'ckeditor', @@ -66,6 +64,7 @@ CACHES = { # Request Middleware MIDDLEWARE_CLASSES = [ + 'csp.middleware.CSPMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', @@ -110,6 +109,20 @@ TEMPLATES = [ }, ] +#Settings for Security Middleware +CSP_DEFAULT_SRC = ("'self'",) +CSP_IMG_SRC = CSP_DEFAULT_SRC +CSP_SCRIPT_SRC = CSP_DEFAULT_SRC +CSP_STYLE_SRC = ("'self'", "'unsafe-inline'") +SECURE_BROWSER_XSS_FILTER = True +SECURE_CONTENT_TYPE_NOSNIFF = True +SECURE_HSTS_INCLUDE_SUBDOMAINS = True +SECURE_HSTS_SECONDS = 31536000 +SECURE_SSL_REDIRECT = True +SESSION_COOKIE_DOMAIN = 'kasu.at' # Die ganze Domain Kasu +SESSION_COOKIE_AGE = 15768000 # Session dauer: 4 Wochen +SESSION_COOKIE_SECURE = True + # E-Mail Settings (set in local_settings) EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = "" diff --git a/src/kasu/static/js/piwik.js b/src/kasu/static/js/piwik.js new file mode 100644 index 0000000..4003a58 --- /dev/null +++ b/src/kasu/static/js/piwik.js @@ -0,0 +1,8 @@ +var idSite = 1; +var piwikTrackingApiUrl = 'https://kasu.at/piwik/piwik.php'; + +var _paq = _paq || []; +_paq.push(['setTrackerUrl', piwikTrackingApiUrl]); +_paq.push(['setSiteId', idSite]); +_paq.push(['trackPageView']); +_paq.push(['enableLinkTracking']); diff --git a/src/kasu/templates/base.html b/src/kasu/templates/base.html index a62e581..302843e 100644 --- a/src/kasu/templates/base.html +++ b/src/kasu/templates/base.html @@ -6,6 +6,7 @@ + - + + @@ -27,7 +29,8 @@ - + + {% block opengraph %} @@ -167,7 +170,7 @@ -