environment: factorize get_setting_variable from franceconnect (#29240)

This commit is contained in:
Benjamin Dauvergne 2019-03-08 02:16:13 +01:00
parent 12ea459888
commit 9635e4c8f5
2 changed files with 29 additions and 9 deletions

View File

@ -18,6 +18,7 @@ from django.conf import settings
from django.core.urlresolvers import reverse
from django.db import connection
from django.utils.six.moves.urllib.parse import urlparse
from django.utils.encoding import force_text
from hobo.middleware.utils import StoreRequestMiddleware
@ -81,6 +82,7 @@ def get_variable(name):
})
return variable
def create_base_url(hostname, service):
"""
Distinguish mutualised domains (matching a "-" in the first part of the netloc)
@ -93,3 +95,24 @@ def create_base_url(hostname, service):
else:
netloc = '%s.%s' % (service, '.'.join(parts[1:]))
return '%s://%s' % (ph.scheme, netloc)
def get_setting_variable(setting_name, label=None, service=None):
from .models import Variable, ContentType
kwargs = {
'name': 'SETTING_' + setting_name,
'defaults': {
'auto': True,
}
}
if label:
kwargs['defaults']['label'] = force_text(label)
if service:
kwargs['service_type'] = ContentType.objects.get_for_model(service)
kwargs['service_pk'] = service.pk
else:
kwargs['service_type__isnull'] = True
kwargs['service_pk__isnull'] = True
variable, created = Variable.objects.get_or_create(**kwargs)
return variable

View File

@ -17,18 +17,15 @@
from django.core.urlresolvers import reverse_lazy
from django.views.generic import FormView
from hobo.environment.models import Variable, Authentic
from hobo.environment.models import Authentic
from hobo.environment.utils import get_setting_variable
from .forms import SettingsForm, EnableForm
def get_variable(name):
variable, created = Variable.objects.get_or_create(
name='SETTING_' + name,
defaults={
'auto': True,
'service': Authentic.objects.get(secondary=False),
})
return variable
def get_variable(setting_name):
return get_setting_variable(
setting_name,
service=Authentic.objects.get(secondary=False))
class HomeView(FormView):