Cleanud up unused navbar template tags, restored active state on navbar main links
This commit is contained in:
@@ -30,11 +30,11 @@
|
|||||||
<div class="collapse navbar-collapse" id="navbar-collapse">
|
<div class="collapse navbar-collapse" id="navbar-collapse">
|
||||||
<ul class="nav navbar-nav navbar-left">
|
<ul class="nav navbar-nav navbar-left">
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<li class="dropdown">
|
<li class="dropdown {% active namespace="maraudes" append=True %}">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% bootstrap_icon "road" %} Maraudes</span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% bootstrap_icon "road" %} Maraudes</span></a>
|
||||||
{% include "maraudes/menu.html" %}
|
{% include "maraudes/menu.html" %}
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown {% active namespace="notes" append=True %}">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% bootstrap_icon "pencil" %} Notes</span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% bootstrap_icon "pencil" %} Notes</span></a>
|
||||||
{% include "notes/menu.html" %}
|
{% include "notes/menu.html" %}
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -8,56 +8,16 @@ from django.utils.safestring import mark_safe
|
|||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
|
|
||||||
class NavbarNode(template.Node):
|
|
||||||
|
|
||||||
_apps = None
|
|
||||||
|
|
||||||
def get_menus(self, view, user):
|
|
||||||
if not self._apps:
|
|
||||||
from website.navbar import registered
|
|
||||||
if not registered:
|
|
||||||
print('WARNING: No app registered into "navbar" module')
|
|
||||||
self._apps = registered.copy()
|
|
||||||
return [app_menu(view, user) for app_menu in self._apps]
|
|
||||||
|
|
||||||
def get_template(self):
|
|
||||||
return template.loader.get_template('navbar/layout.html')
|
|
||||||
|
|
||||||
def render(self, context):
|
|
||||||
request = context.get('request')
|
|
||||||
user, view = context.get('user'), context.get('view')
|
|
||||||
apps = self.get_menus(view, user)
|
|
||||||
# Add user menu
|
|
||||||
context = template.Context({
|
|
||||||
'apps': apps,
|
|
||||||
'user': user,
|
|
||||||
'user_group': context.get('user_group', None),
|
|
||||||
'next': context.get('next', None),
|
|
||||||
|
|
||||||
})
|
|
||||||
return self.get_template().render(context, request)
|
|
||||||
|
|
||||||
@register.tag
|
|
||||||
def navbar(parser, token):
|
|
||||||
return NavbarNode()
|
|
||||||
|
|
||||||
@register.inclusion_tag("navbar/app-menu.html")
|
|
||||||
def navbar_menu(app_menu):
|
|
||||||
return {
|
|
||||||
'active': app_menu.is_active,
|
|
||||||
'header': app_menu.header,
|
|
||||||
'links': app_menu.links,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@register.simple_tag(takes_context=True)
|
@register.simple_tag(takes_context=True)
|
||||||
def active(context, namespace=None, viewname=None):
|
def active(context, namespace=None, viewname=None, append=False):
|
||||||
try:
|
try:
|
||||||
(cur_namespace, cur_viewname) = context.request.resolver_match.view_name.split(":")
|
(cur_namespace, cur_viewname) = context.request.resolver_match.view_name.split(":")
|
||||||
except:
|
except:
|
||||||
(cur_namespace, cur_viewname) = (None, context.request.resolver_match.view_name)
|
(cur_namespace, cur_viewname) = (None, context.request.resolver_match.view_name)
|
||||||
|
|
||||||
|
string = "class=\"active\"" if not append else "active"
|
||||||
|
|
||||||
if namespace == cur_namespace:
|
if namespace == cur_namespace:
|
||||||
if not viewname or viewname == cur_viewname:
|
if not viewname or viewname == cur_viewname:
|
||||||
return mark_safe("class=\"active\"")
|
return mark_safe(string)
|
||||||
return ""
|
return ""
|
||||||
|
|||||||
Reference in New Issue
Block a user