lang switcher set to main on 404
[prawokultury.git] / migdal / __init__.py
index ae94f9e..fe90406 100644 (file)
@@ -3,4 +3,50 @@
 Migdal (מִגְדָּל) is a multilingual blog Django app.
 
 Author: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
 Migdal (מִגְדָּל) is a multilingual blog Django app.
 
 Author: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
-"""
\ No newline at end of file
+"""
+from django.conf import settings
+from fnpdjango.utils.app import AppSettings
+from django.utils.translation import ugettext_lazy as _
+from migdal.helpers import EntryType
+
+
+class Settings(AppSettings):
+    # Types of entries:
+    # (slug, commentable, on main)
+    TYPES = (
+            EntryType('news', _('news'), commentable=True, on_main=True, promotable=True),
+            EntryType('publications', _('publications')),
+            EntryType('info', _('info')),
+        )
+    TYPE_SUBMIT = 'news'
+    TAXONOMIES = (
+        ('topics', _('topics')),
+        ('types', _('types')),
+    )
+    LAST_COMMENTS = 5
+
+    MAIN_PAGE_ENTRY = None
+
+    TYPES_DICT = None
+    def _more_TYPES_DICT(self, value):
+        return dict((t.db, t) for t in self.TYPES)
+
+    TYPES_ON_MAIN = None
+    def _more_TYPES_ON_MAIN(self, value):
+        return tuple(t.db for t in self.TYPES if t.on_main)
+
+    TYPES_PROMOTABLE = None
+    def _more_TYPES_PROMOTABLE(self, value):
+        return tuple(t.db for t in self.TYPES if t.promotable)
+
+    OBLIGATORY_LANGUAGES = None
+    def _more_OBLIGATORY_LANGUAGES(self, value):
+        return value or tuple(lang for lang in settings.LANGUAGES
+                        if lang[0] == settings.LANGUAGE_CODE)
+
+    OPTIONAL_LANGUAGES = None
+    def _more_OPTIONAL_LANGUAGES(self, value):
+        return tuple(lang for lang in settings.LANGUAGES
+                        if lang not in self.OBLIGATORY_LANGUAGES)
+
+app_settings = Settings('MIGDAL')