Compare commits
1 Commits
ab28c31b2d
...
1282779c1d
Author | SHA1 | Date |
---|---|---|
Agate | 1282779c1d |
|
@ -4,9 +4,9 @@ import logging
|
|||
import django.db
|
||||
import django.template.exceptions
|
||||
from django.apps import AppConfig
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from . import utils
|
||||
from django.template import engines
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -14,17 +14,18 @@ logger = logging.getLogger(__name__)
|
|||
def get_full_name(user):
|
||||
from hobo.agent.common.models import UserExtraAttributes
|
||||
|
||||
try:
|
||||
return utils.get_full_name_from_template(user)
|
||||
except (
|
||||
# There may have been an issue during provisionning
|
||||
UserExtraAttributes.DoesNotExist,
|
||||
# In case some templates are missing or invalid
|
||||
django.template.exceptions.TemplateDoesNotExist,
|
||||
django.template.exceptions.TemplateSyntaxError,
|
||||
) as e:
|
||||
logger.exception('hobo.user_name: cannot render user "%s" name', user)
|
||||
return user.original_get_full_name()
|
||||
context = {}
|
||||
context['user'] = user
|
||||
template_vars = getattr(settings, 'TEMPLATE_VARS', {})
|
||||
if 'user_full_name_template' in template_vars:
|
||||
try:
|
||||
template = engines['django'].from_string(template_vars['user_full_name_template'])
|
||||
return template.render(context)
|
||||
except django.template.exceptions.TemplateSyntaxError:
|
||||
logger.exception('hobo.user_name: syntax error in inline user name template var')
|
||||
except UserExtraAttributes.DoesNotExist:
|
||||
logger.exception('hobo.user_name: inline user name template refers to nonexistent attribute')
|
||||
return user.original_get_full_name()
|
||||
|
||||
|
||||
def cached_extra_attributes(user):
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
from django.conf import settings
|
||||
from django.template import engines
|
||||
from django.template.exceptions import TemplateDoesNotExist
|
||||
|
||||
|
||||
def get_full_name_from_template(user):
|
||||
context = {}
|
||||
context['user'] = user
|
||||
template_vars = getattr(settings, 'TEMPLATE_VARS', {})
|
||||
if 'user_full_name_template' not in template_vars:
|
||||
raise TemplateDoesNotExist('user full name inline template var does not exist')
|
||||
template = engines['django'].from_string(template_vars['user_full_name_template'])
|
||||
return template.render(context)
|
|
@ -3,7 +3,7 @@ from django.contrib.auth.models import User
|
|||
from django.test import override_settings
|
||||
|
||||
from hobo.agent.common.models import UserExtraAttributes
|
||||
from hobo.user_name.utils import get_full_name_from_template
|
||||
from hobo.user_name.apps import get_full_name
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -34,7 +34,7 @@ def test_user_get_full_name_from_template(user):
|
|||
with override_settings(
|
||||
TEMPLATE_VARS={'user_full_name_template': '{{ user.first_name }} {{ user.attributes.foo }}'}
|
||||
):
|
||||
assert get_full_name_from_template(user) == 'Jane bar'
|
||||
assert get_full_name(user) == 'Jane bar'
|
||||
|
||||
|
||||
def test_user_get_full_name(user):
|
||||
|
|
|
@ -3,7 +3,7 @@ from django.contrib.auth import get_user_model
|
|||
from django.test import override_settings
|
||||
from tenant_schemas.utils import tenant_context
|
||||
|
||||
from hobo.user_name.utils import get_full_name_from_template
|
||||
from hobo.user_name.apps import get_full_name
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
@ -40,14 +40,14 @@ def test_get_full_name_from_template_utils_from_multiple_attrs(db, tenant, setti
|
|||
with override_settings(
|
||||
TEMPLATE_VARS={'user_full_name_template': '{{ user.first_name }} {{ user.attributes.foo }}'}
|
||||
):
|
||||
assert get_full_name_from_template(user) == 'Jane bar'
|
||||
assert get_full_name(user) == 'Jane bar'
|
||||
|
||||
with override_settings(
|
||||
TEMPLATE_VARS={
|
||||
'user_full_name_template': '{{ user.first_name }} {{ user.attributes.nicknames.0 }} {{ user.attributes.nicknames.2 }}'
|
||||
}
|
||||
):
|
||||
assert get_full_name_from_template(user) == 'Jane Milly Minnie'
|
||||
assert get_full_name(user) == 'Jane Milly Minnie'
|
||||
|
||||
|
||||
def test_get_full_name_from_template_accessor_from_multiple_attrs(db, tenant, settings):
|
||||
|
|
Loading…
Reference in New Issue