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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+10 −1
Original line number Diff line number Diff line
@@ -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
+10 −1
Original line number Diff line number Diff line
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()
+12 −4
Original line number Diff line number Diff line
@@ -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'),