Skip to content
Snippets Groups Projects
Commit 7a2eb96c authored by Dmitry Shelepnev's avatar Dmitry Shelepnev
Browse files

Create Language select from django-constance config by new opds_catalog.middeleware

parent f0b71aa1
Branches
Tags
No related merge requests found
......@@ -12,7 +12,7 @@ from django.db.models import Count, Min
from opds_catalog.models import Book, Catalog, Author, Genre, Series, bookshelf, Counter, lang_menu
from opds_catalog import models
from opds_catalog import settings
from opds_catalog.opds_middleware import BasicAuthMiddleware
from opds_catalog.middleware import BasicAuthMiddleware
from opds_catalog.opds_paginator import Paginator as OPDS_Paginator
from constance import config
......
......@@ -4,10 +4,12 @@ from django.http import HttpResponse
from django.contrib import auth
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import resolve
from django.utils import translation
#from opds_catalog import settings
from constance import config
class BasicAuthMiddleware(object):
header = "HTTP_AUTHORIZATION"
......@@ -48,3 +50,10 @@ class BasicAuthMiddleware(object):
return None
return self.unauthed()
class SOPDSLocaleMiddleware:
def process_request(self, request):
request.LANG = config.SOPDS_LANGUAGE
translation.activate(request.LANG)
request.LANGUAGE_CODE = request.LANG
\ No newline at end of file
import logging
import os
from django.conf import settings
from django.utils import translation
from constance import config
loglevels={'debug':logging.DEBUG,'info':logging.INFO,'warning':logging.WARNING,'error':logging.ERROR,'critical':logging.CRITICAL,'none':logging.NOTSET}
......@@ -16,13 +17,21 @@ if loglevel.lower() in loglevels:
else:
LOGLEVEL=logging.NOTSET
from django.dispatch import receiver
#from constance.signals import config_updated
#
#@receiver(config_updated)
#def constance_updated(sender, updated_key, new_value, **kwargs):
# if updated_key == 'SOPDS_LANGUAGE':
# translation.activate(new_value)
# print(new_value)
def constance_update_all():
pass
# Переопределяем некоторые функции для SQLite, которые работают неправлено
from django.db.backends.signals import connection_created
from django.dispatch import receiver
def sopds_upper(s):
return s.upper()
......
......@@ -51,7 +51,7 @@ MIDDLEWARE_CLASSES = [
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
#'opds_catalog.opds_middleware.BasicAuthMiddleware',
'opds_catalog.middleware.SOPDSLocaleMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
......@@ -134,7 +134,7 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/1.9/topics/i18n/
LANGUAGE_CODE = 'en-US'
#LANGUAGE_CODE = 'en-US'
#LANGUAGE_CODE = 'ru-RU'
LOCALE_PATHS = (
......@@ -153,7 +153,15 @@ STATIC_ROOT = 'static'
CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
CONSTANCE_ADDITIONAL_FIELDS = {
'language_select': ['django.forms.fields.ChoiceField', {
'widget': 'django.forms.Select',
'choices': (("ru-RU", "Russian"), ("en-US", "English"))
}],
}
CONSTANCE_CONFIG = OrderedDict([
('SOPDS_LANGUAGE', ('en-US',_('Select language'),'language_select')),
('SOPDS_ROOT_LIB', ('books/',_('Absolute path to books collection directory'))),
('SOPDS_BOOK_EXTENSIONS', ('.pdf .djvu .fb2 .epub', _('List of managed book files extensions'))),
('SOPDS_SCAN_START_DIRECTLY', (False,_('Turn once scanning directly'))),
......@@ -194,7 +202,7 @@ CONSTANCE_CONFIG = OrderedDict([
])
CONSTANCE_CONFIG_FIELDSETS = {
'1. General Options': ('SOPDS_ROOT_LIB', 'SOPDS_BOOK_EXTENSIONS','SOPDS_SCAN_START_DIRECTLY'),
'1. General Options': ('SOPDS_LANGUAGE', 'SOPDS_ROOT_LIB', 'SOPDS_BOOK_EXTENSIONS','SOPDS_SCAN_START_DIRECTLY'),
'2. Server Options': ('SOPDS_AUTH', 'SOPDS_ALPHABET_MENU', 'SOPDS_DOUBLES_HIDE', 'SOPDS_COVER_SHOW', 'SOPDS_SPLITITEMS', 'SOPDS_MAXITEMS', 'SOPDS_TITLE_AS_FILENAME', 'SOPDS_NOCOVER_PATH'),
'3. Scanner Options': ('SOPDS_FB2PARSE','SOPDS_ZIPSCAN','SOPDS_ZIPCODEPAGE', 'SOPDS_INPX_ENABLE', 'SOPDS_INPX_SKIP_UNCHANGED', 'SOPDS_INPX_TEST_ZIP', 'SOPDS_INPX_TEST_FILES', 'SOPDS_DELETE_LOGICAL'),
'4. Scanner Shedule': ('SOPDS_SCAN_SHED_MIN', 'SOPDS_SCAN_SHED_HOUR', 'SOPDS_SCAN_SHED_DAY','SOPDS_SCAN_SHED_DOW'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment