From 5270d4d3d3999c90e7420f6767c108717d5c5b21 Mon Sep 17 00:00:00 2001 From: derfenix Date: Tue, 20 Feb 2018 19:31:36 +0300 Subject: [PATCH 1/3] Add localization activation ability --- django_rq/settings.py | 5 +++++ django_rq/workers.py | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/django_rq/settings.py b/django_rq/settings.py index 57bc78de..09edd321 100644 --- a/django_rq/settings.py +++ b/django_rq/settings.py @@ -25,3 +25,8 @@ # Token for querying statistics API_TOKEN = getattr(settings, 'RQ_API_TOKEN', '') + +# Activate locale for each task +RQ_USE_LOCALIZATION = getattr(settings, 'RQ_USE_LOCALIZATION', False) +# Use specified language code to activate locale +RQ_LANGUAGE_CODE = getattr(settings, 'RQ_LANGUAGE_CODE', settings.LANGUAGE_CODE) diff --git a/django_rq/workers.py b/django_rq/workers.py index 0686e102..ff8737c4 100644 --- a/django_rq/workers.py +++ b/django_rq/workers.py @@ -1,3 +1,4 @@ +from django.utils.translation import activate from rq import Worker from rq.utils import import_attribute @@ -38,6 +39,11 @@ def get_worker_class(worker_class=None): return worker_class +def activate_localization(): + if getattr(settings, 'RQ_USE_LOCALIZATION', False): + activate(getattr(settings, 'RQ_LANGUAGE_CODE', settings.LANGUAGE_CODE)) + + def get_worker(*queue_names, **kwargs): """ Returns a RQ worker for all queues or specified ones. @@ -49,6 +55,7 @@ def get_worker(*queue_names, **kwargs): # normalize queue_class to what get_queues returns queue_class = queues[0].__class__ worker_class = get_worker_class(kwargs.pop('worker_class', None)) + activate_localization() return worker_class(queues, connection=queues[0].connection, exception_handlers=get_exception_handlers() or None, From f85573d9879f96cf38cf46eb1f8c7f04a94de427 Mon Sep 17 00:00:00 2001 From: derfenix Date: Mon, 5 Mar 2018 14:22:21 +0300 Subject: [PATCH 2/3] Use DjangoRQ's settings --- django_rq/workers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/django_rq/workers.py b/django_rq/workers.py index ff8737c4..6743658d 100644 --- a/django_rq/workers.py +++ b/django_rq/workers.py @@ -1,10 +1,10 @@ +from django.conf import settings as django_settings +from django.utils import six from django.utils.translation import activate from rq import Worker from rq.utils import import_attribute -from django.conf import settings -from django.utils import six - +from . import settings from .jobs import get_job_class from .queues import filter_connection_params, get_connection, get_queues @@ -41,7 +41,7 @@ def get_worker_class(worker_class=None): def activate_localization(): if getattr(settings, 'RQ_USE_LOCALIZATION', False): - activate(getattr(settings, 'RQ_LANGUAGE_CODE', settings.LANGUAGE_CODE)) + activate(getattr(settings, 'RQ_LANGUAGE_CODE', django_settings.LANGUAGE_CODE)) def get_worker(*queue_names, **kwargs): From 0d20f3477268bf2076cabda3ebf749f4e54b3ef0 Mon Sep 17 00:00:00 2001 From: derfenix Date: Tue, 3 Apr 2018 12:28:08 +0300 Subject: [PATCH 3/3] Rename setting name and simplify activation --- django_rq/settings.py | 2 +- django_rq/workers.py | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/django_rq/settings.py b/django_rq/settings.py index 09edd321..fa50ace3 100644 --- a/django_rq/settings.py +++ b/django_rq/settings.py @@ -27,6 +27,6 @@ API_TOKEN = getattr(settings, 'RQ_API_TOKEN', '') # Activate locale for each task -RQ_USE_LOCALIZATION = getattr(settings, 'RQ_USE_LOCALIZATION', False) +RQ_USE_L10N = getattr(settings, 'RQ_USE_L10N', settings.USE_L10N) # Use specified language code to activate locale RQ_LANGUAGE_CODE = getattr(settings, 'RQ_LANGUAGE_CODE', settings.LANGUAGE_CODE) diff --git a/django_rq/workers.py b/django_rq/workers.py index 6743658d..e31b4663 100644 --- a/django_rq/workers.py +++ b/django_rq/workers.py @@ -39,11 +39,6 @@ def get_worker_class(worker_class=None): return worker_class -def activate_localization(): - if getattr(settings, 'RQ_USE_LOCALIZATION', False): - activate(getattr(settings, 'RQ_LANGUAGE_CODE', django_settings.LANGUAGE_CODE)) - - def get_worker(*queue_names, **kwargs): """ Returns a RQ worker for all queues or specified ones. @@ -55,7 +50,8 @@ def get_worker(*queue_names, **kwargs): # normalize queue_class to what get_queues returns queue_class = queues[0].__class__ worker_class = get_worker_class(kwargs.pop('worker_class', None)) - activate_localization() + if settings.RQ_USE_L10N: + activate(getattr(settings, 'RQ_LANGUAGE_CODE', django_settings.LANGUAGE_CODE)) return worker_class(queues, connection=queues[0].connection, exception_handlers=get_exception_handlers() or None,