hashing out more general modules
This commit is contained in:
24
django-openstack/django_openstack/signals.py
Normal file
24
django-openstack/django_openstack/signals.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import django.dispatch
|
||||
from django.dispatch import receiver
|
||||
|
||||
dash_apps_ping = django.dispatch.Signal()
|
||||
dash_apps_urls = django.dispatch.Signal()
|
||||
|
||||
|
||||
def dash_apps_detection():
|
||||
"""
|
||||
Sends a pinging signal to the app, all listening modules will reply with
|
||||
items for the sidebar.
|
||||
"""
|
||||
return dash_apps_ping.send(sender=dash_apps_ping)
|
||||
|
||||
|
||||
def dash_app_setup_urls():
|
||||
"""
|
||||
Adds urls from modules
|
||||
"""
|
||||
response = dash_apps_urls.send(senter=dash_apps_urls)
|
||||
|
||||
return response
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
from django import template
|
||||
from django_openstack import signals
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
|
||||
@register.inclusion_tag('_sidebar_module.html')
|
||||
def initiate_module_sidebar():
|
||||
return {'modules': [module[1] for module in signals.dash_apps_detection()] }
|
||||
@@ -1,14 +0,0 @@
|
||||
from django import template
|
||||
from django.dispatch import receiver
|
||||
import django.dispatch
|
||||
|
||||
register = template.Library()
|
||||
|
||||
sidebar_init = django.dispatch.Signal()
|
||||
|
||||
|
||||
@register.inclusion_tag('_sidebar_module.html')
|
||||
def initiate_module_sidebar():
|
||||
response = sidebar_init.send(sender=sidebar_init)[0][1]
|
||||
|
||||
return response
|
||||
@@ -20,9 +20,14 @@
|
||||
|
||||
from django.conf.urls.defaults import *
|
||||
from django.conf import settings
|
||||
from django_openstack.signals import *
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^auth/', include('django_openstack.auth.urls')),
|
||||
url(r'^dash/', include('django_openstack.dash.urls')),
|
||||
url(r'^syspanel/', include('django_openstack.syspanel.urls')),
|
||||
)
|
||||
|
||||
# import urls from modules
|
||||
for module_urls in dash_apps_urls.send(sender=dash_apps_urls):
|
||||
urlpatterns += module_urls[1].urlpatterns
|
||||
|
||||
@@ -84,7 +84,6 @@ INSTALLED_APPS = (
|
||||
'django_openstack',
|
||||
'django_openstack.templatetags',
|
||||
'mailer',
|
||||
'dashboard.osdash_module_iframer'
|
||||
)
|
||||
|
||||
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
{% load sidebar_modules %}
|
||||
|
||||
<div id='sidebar'>
|
||||
<h3>Manage Compute</h3>
|
||||
<ul class='sub_nav'>
|
||||
@@ -12,4 +14,7 @@
|
||||
<li><a {% if current_sidebar == "containers" %} class="active" {% endif %} href="{% url dash_containers request.user.tenant %}">Containers</a></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{% initiate_module_sidebar %}
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<h3>{{title}}</h3>
|
||||
|
||||
{{request.view}}
|
||||
|
||||
<ul class="sub_nav">
|
||||
{% for link in links %}
|
||||
<li><a {% if request.view == link.active_text %} class="active" {% endif %} href="{{link.url}}">{{link.text}}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% for module in modules %}
|
||||
<h3>{{module.title}}</h3>
|
||||
|
||||
<ul class="sub_nav">
|
||||
{% for link in module.links %}
|
||||
<li><a {% if request.view == link.active_text %} class="active" {% endif %} href="{{link.url}}">{{link.text}}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endfor %}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% load sidebar_signals %}
|
||||
{% load sidebar_modules %}
|
||||
|
||||
<div id='sidebar'>
|
||||
<h3>System Panel</h3>
|
||||
|
||||
@@ -28,7 +28,6 @@ from django.views import generic as generic_views
|
||||
import django.views.i18n
|
||||
|
||||
from django_openstack import urls as django_openstack_urls
|
||||
from osdash_module_iframer import urls as osdash_module_iframer_urls
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^$', 'dashboard.views.splash', name='splash'),
|
||||
@@ -39,7 +38,6 @@ urlpatterns = patterns('',
|
||||
|
||||
# NOTE(termie): just append them since we want the routes at the root
|
||||
urlpatterns += django_openstack_urls.urlpatterns
|
||||
urlpatterns += osdash_module_iframer_urls.urlpatterns
|
||||
|
||||
urlpatterns += patterns('',
|
||||
(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:],
|
||||
|
||||
Reference in New Issue
Block a user