##// END OF EJS Templates
fix(caching): fixed problems with Cache query for users....
fix(caching): fixed problems with Cache query for users. The old way of querying caused the user get query to be always cached, and returning old results even in 2fa forms. The new limited query doesn't cache the user object resolving issues

File last commit:

r5088:8f6d1ed6 default
r5365:ae8a165b default
Show More
translation.py
78 lines | 2.5 KiB | text/x-python | PythonLexer
copyrights: updated for 2023
r5088 # Copyright (C) 2016-2023 RhodeCode GmbH
i18n: Add module that creates a translation string factory.
r50 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
translations: fixed code for python3 and gevent imports of threadglobals
r5043 from translationstring import TranslationString
i18n: Add module that creates a translation string factory.
r50
# Create a translation string factory for the 'rhodecode' domain.
translations: fixed code for python3 and gevent imports of threadglobals
r5043 # This is extracted from pyramid.i18n and uses its code to be gevent safe
def TranslationStringFactory(factory_domain): # noqa
def create(msgid, mapping=None, default=None, context=None):
if isinstance(msgid, TranslationString):
domain = msgid.domain or factory_domain
else:
domain = factory_domain
return TranslationString(msgid, domain=domain, default=default,
mapping=mapping, context=context)
return create
pylons: remove pylons as dependency...
r2351
i18n: Add module that creates a translation string factory.
r50 _ = TranslationStringFactory('rhodecode')
dan
integrations: add integration support...
r411
pylons: remove pylons as dependency...
r2351
class _LazyString(object):
dan
integrations: add integration support...
r411 def __init__(self, *args, **kw):
self.args = args
self.kw = kw
translations: fixed code for python3 and gevent imports of threadglobals
r5043 self._request = kw.pop('request', None)
def _get_request(self):
from pyramid.threadlocal import get_current_request
return self._request or get_current_request()
dan
integrations: add integration support...
r411
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168 def eval(self):
translations: fixed code for python3 and gevent imports of threadglobals
r5043 req = self._get_request()
pylons: remove pylons as dependency...
r2351 translator = _
if req:
translation: fix wrong argument call on request
r2353 translator = req.translate
pylons: remove pylons as dependency...
r2351 return translator(*self.args, **self.kw)
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168
dan
integrations: add integration support...
r411 def __str__(self):
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168 return self.eval()
pylons: remove pylons as dependency...
r2351 def __repr__(self):
return self.__str__()
pull-requests: trigger merge simulation during PR creation. Fixes #5396
r2168 def __mod__(self, other):
return self.eval() % other
def format(self, *args):
return self.eval().format(*args)
dan
integrations: add integration support...
r411
def lazy_ugettext(*args, **kw):
""" Lazily evaluated version of _() """
pylons: remove pylons as dependency...
r2351 return _LazyString(*args, **kw)
utils: switched age function to use lazy translated pyramid translation mechanism.
r1317
def _pluralize(msgid1, msgid2, n, mapping=None):
if n == 1:
return _(msgid1, mapping=mapping)
else:
return _(msgid2, mapping=mapping)