Compare commits
3 Commits
a97004ddc7
...
c0db8cf71c
Author | SHA1 | Date |
---|---|---|
Ales (Shagi) Zabala Alava | c0db8cf71c | |
Ales (Shagi) Zabala Alava | 3a89537a0c | |
Ales (Shagi) Zabala Alava | 40946be0e6 |
|
@ -1,6 +1,11 @@
|
|||
Changelog
|
||||
=========
|
||||
|
||||
0.8.6
|
||||
-----
|
||||
|
||||
* Allow overriding home url
|
||||
|
||||
0.8.5
|
||||
-----
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
{% if not is_popup %}
|
||||
<nav id="navbar-main" role="navigation">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="{% url "gas:index" %}"><img id="logo" src="{% static logo_static_url %}"></a>
|
||||
<a class="navbar-brand" href="{{ home_url }}"><img id="logo" src="{% static logo_static_url %}"></a>
|
||||
</div>
|
||||
<ul id="main-navigation">
|
||||
<li>{{ user }}</li>
|
||||
|
@ -41,7 +41,7 @@
|
|||
{% if not is_popup %}
|
||||
<nav class="breadcrumb">
|
||||
<ol>
|
||||
<li><a href="{% url "gas:index" %}" title="{% trans "Home" %}"><i class="fas fa-home fa-fw"></i></a></li>
|
||||
<li><a href="{{ home_url }}" title="{% trans "Home" %}"><i class="fas fa-home fa-fw"></i></a></li>
|
||||
{% for bc_url, bc_label in breadcrumbs %}
|
||||
{% if bc_url %}
|
||||
<li><a href="{{ bc_url }}">{{ bc_label }}</a></li>
|
||||
|
|
|
@ -228,10 +228,14 @@ class GASMixinTestCase(TestCase):
|
|||
]
|
||||
template_name = 'gas/base.html'
|
||||
|
||||
def get_home_url(self):
|
||||
return 'home_url'
|
||||
|
||||
view = SampleView.as_view()
|
||||
request = self.request_factory.get('some_url')
|
||||
request.user = self.admin_user
|
||||
response = view(request)
|
||||
self.assertEqual(response.context_data['home_url'], 'home_url')
|
||||
self.assertEqual(response.context_data['title'], SampleView.title)
|
||||
self.assertEqual(response.context_data['header_title'], SampleView.header_title)
|
||||
self.assertEqual(response.context_data['help_text'], SampleView.help_text)
|
||||
|
|
12
gas/views.py
12
gas/views.py
|
@ -83,7 +83,7 @@ class GASMixin:
|
|||
breadcrumbs = []
|
||||
actions = None
|
||||
|
||||
def dispatch(self, *args, **kwargs):
|
||||
def check_user_forbidden(self):
|
||||
user = self.request.user
|
||||
roles = set(self.roles)
|
||||
roles.add(self.base_role)
|
||||
|
@ -93,7 +93,10 @@ class GASMixin:
|
|||
and user.user_roles.filter(role__in=roles).count() == 0
|
||||
)
|
||||
)
|
||||
if access_denied:
|
||||
return access_denied
|
||||
|
||||
def dispatch(self, *args, **kwargs):
|
||||
if self.check_user_forbidden():
|
||||
return HttpResponseRedirect(reverse('gas:login') + '?next={}'.format(self.request.path))
|
||||
return super().dispatch(*args, **kwargs)
|
||||
|
||||
|
@ -107,6 +110,10 @@ class GASMixin:
|
|||
def get_success_message(self):
|
||||
return self.success_message
|
||||
|
||||
def get_home_url(self):
|
||||
""" Url for the home of the control panel """
|
||||
return reverse('gas:index')
|
||||
|
||||
def get_cancel_url(self):
|
||||
if self.cancel_url:
|
||||
# Forcing possible reverse_lazy evaluation
|
||||
|
@ -151,6 +158,7 @@ class GASMixin:
|
|||
js = js + gas_settings.EXTRA_MEDIA.get('js', [])
|
||||
ctx.update({
|
||||
'base_template': self.base_template,
|
||||
'home_url': self.get_home_url(),
|
||||
'header_title': self.get_header_title(),
|
||||
'title': self.get_title(),
|
||||
'help_text': self.get_help_text(),
|
||||
|
|
|
@ -10,6 +10,7 @@ def runtests():
|
|||
if not settings.configured:
|
||||
# Configure test environment
|
||||
settings.configure(
|
||||
SECRET_KEY="test-secret",
|
||||
DATABASES={
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
|
|
Loading…
Reference in New Issue