mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-05 06:36:19 +01:00
Move templates and urls to apps.
Implement url hooks. Many apps are now removable. Default to assuming services have been migrated.
This commit is contained in:
22
services/auth_hooks.py
Normal file
22
services/auth_hooks.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from services.hooks import MenuItemHook
|
||||
from alliance_auth import hooks
|
||||
from services.hooks import ServicesHook
|
||||
|
||||
|
||||
class Services(MenuItemHook):
|
||||
def __init__(self):
|
||||
MenuItemHook.__init__(self,
|
||||
'Services',
|
||||
'fa fa-cogs fa-fw grayiconecolor',
|
||||
'auth_services', 100)
|
||||
|
||||
def render(self, request):
|
||||
for svc in ServicesHook.get_services():
|
||||
if svc.service_active_for_user(request.user):
|
||||
return MenuItemHook.render(self, request)
|
||||
return ''
|
||||
|
||||
|
||||
@hooks.register('menu_item_hook')
|
||||
def register_menu():
|
||||
return Services()
|
||||
@@ -1,7 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
from django.conf.urls import include, url
|
||||
from alliance_auth.hooks import get_hooks
|
||||
|
||||
|
||||
@@ -104,14 +104,22 @@ class ServicesHook:
|
||||
|
||||
|
||||
class MenuItemHook:
|
||||
def __init__(self, text, classes, url_name, order=None):
|
||||
def __init__(self, text, classes, url_name, order=None, navactive=list([])):
|
||||
self.text = text
|
||||
self.classes = classes
|
||||
self.url_name = url_name
|
||||
self.template = 'public/menuitem.html'
|
||||
self.order = order if order is not None else 9999
|
||||
navactive = navactive or []
|
||||
navactive.append(url_name)
|
||||
self.navactive = navactive
|
||||
|
||||
def render(self, request):
|
||||
return render_to_string(self.template,
|
||||
{'item': self},
|
||||
request=request)
|
||||
|
||||
|
||||
class UrlHook:
|
||||
def __init__(self, urls, namespace, base_url):
|
||||
self.include_pattern = url(base_url, include(urls, namespace=namespace))
|
||||
|
||||
@@ -81,11 +81,29 @@ class JabberBroadcast(MenuItemHook):
|
||||
'auth_jabber_broadcast_view')
|
||||
|
||||
def render(self, request):
|
||||
if request.user.has_perm('auth.jabber_broadcast'):
|
||||
if request.user.has_perm('auth.jabber_broadcast') or request.user.has_perm('auth.jabber_broadcast_all'):
|
||||
return MenuItemHook.render(self, request)
|
||||
return ''
|
||||
|
||||
|
||||
@hooks.register('menu_util_hook')
|
||||
class FleetBroadcastFormatter(MenuItemHook):
|
||||
def __init__(self):
|
||||
MenuItemHook.__init__(self,
|
||||
'Fleet Broadcast Formatter',
|
||||
'fa fa-lock fa-fw fa-space-shuttle grayiconecolor',
|
||||
'auth_fleet_format_tool_view')
|
||||
|
||||
def render(self, request):
|
||||
if request.user.has_perm('auth.jabber_broadcast') or request.user.has_perm('auth.jabber_broadcast_all'):
|
||||
return MenuItemHook.render(self, request)
|
||||
return ''
|
||||
|
||||
|
||||
@hooks.register('menu_item_hook')
|
||||
def register_formatter():
|
||||
return FleetBroadcastFormatter()
|
||||
|
||||
|
||||
@hooks.register('menu_item_hook')
|
||||
def register_menu():
|
||||
return JabberBroadcast()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{% load navactive %}
|
||||
|
||||
<li>
|
||||
<a class="{% navactive request item.url_name %}" href="{% url item.url_name %}">
|
||||
<a class="{% navactive request item.navactive|join:" " %}" href="{% url item.url_name %}">
|
||||
<i class="{{ item.classes }}"></i> {% trans item.text %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -17,27 +17,9 @@ def process_menu_items(hooks, request):
|
||||
|
||||
|
||||
@register.inclusion_tag('public/menublock.html', takes_context=True)
|
||||
def menu_main(context):
|
||||
def menu_items(context):
|
||||
request = context['request']
|
||||
|
||||
return {
|
||||
'menu_items': process_menu_items(get_hooks('menu_main_hook'), request),
|
||||
}
|
||||
|
||||
|
||||
@register.inclusion_tag('public/menublock.html', takes_context=True)
|
||||
def menu_aux(context):
|
||||
request = context['request']
|
||||
|
||||
return {
|
||||
'menu_items': process_menu_items(get_hooks('menu_aux_hook'), request),
|
||||
}
|
||||
|
||||
|
||||
@register.inclusion_tag('public/menublock.html', takes_context=True)
|
||||
def menu_util(context):
|
||||
request = context['request']
|
||||
|
||||
return {
|
||||
'menu_items': process_menu_items(get_hooks('menu_util_hook'), request),
|
||||
'menu_items': process_menu_items(get_hooks('menu_item_hook'), request),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user