summaryrefslogtreecommitdiff
path: root/lib/grappelli/templates/admin_tools/dashboard
diff options
context:
space:
mode:
Diffstat (limited to 'lib/grappelli/templates/admin_tools/dashboard')
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/css.html2
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/dashboard.html79
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/dashboard.txt141
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/dashboard_app_index.txt29
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/dummy.html1
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/module.html7
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/app_list.html58
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/column.html9
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/feed.html21
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/group.html33
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/link_list.html21
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/model_list.html26
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/module_group.html10
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/modules/recent_actions.html26
-rw-r--r--lib/grappelli/templates/admin_tools/dashboard/preferences_form.html10
15 files changed, 473 insertions, 0 deletions
diff --git a/lib/grappelli/templates/admin_tools/dashboard/css.html b/lib/grappelli/templates/admin_tools/dashboard/css.html
new file mode 100644
index 0000000..0c69fd1
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/css.html
@@ -0,0 +1,2 @@
+{% for css in css_files %}
+<link rel="stylesheet" href="{{ media_url }}/{{ css }}" type="text/css" media="screen, projection"/>{% endfor %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/dashboard.html b/lib/grappelli/templates/admin_tools/dashboard/dashboard.html
new file mode 100644
index 0000000..76aaa1e
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/dashboard.html
@@ -0,0 +1,79 @@
+{% load i18n admin_tools_dashboard_tags %}
+
+<script type="text/javascript" src="{{ media_url }}/admin_tools/js/utils.js"></script>
+
+<script type="text/javascript" charset="utf-8">
+ // Load js files syncronously and conditionally
+
+ var js_files = [
+ {
+ src : '{{ media_url }}/admin_tools/js/jquery/jquery.min.js',
+ test: function() { return typeof(jQuery) == 'undefined'; }
+ },
+ {
+ src : '{{ media_url }}/admin_tools/js/jquery/jquery-ui.min.js',
+ test: function() { return typeof(jQuery.ui) == 'undefined'; }
+ },
+ {
+ src : '{{ media_url }}/admin_tools/js/json.min.js',
+ test: function() { return typeof(JSON.stringify) == 'undefined'; }
+ },
+ {
+ src : '{{ media_url }}/admin_tools/js/jquery/jquery.cookie.min.js',
+ test: function() { return typeof(jQuery.cookie) == 'undefined'; }
+ },
+ {
+ src : '{{ media_url }}/admin_tools/js/jquery/jquery.dashboard.js',
+ test: function() { return true; }
+ },
+ {
+ src : '{{ media_url }}/admin_tools/js/dashboard.js',
+ test: function() { return true; }
+ }{% for js in dashboard.Media.js %},
+ {
+ src : '{{ media_url }}/{{ js }}',
+ test: function() { return true; }
+ }{% endfor %}
+ ];
+
+ loadScripts(js_files, function(){
+ jQuery(function($) {
+ init_dashboard(
+ '{{ dashboard.get_id }}',
+ {{ dashboard.columns }},
+ {% autoescape off %}{{ dashboard_preferences }}{% endautoescape %},
+ '{% url admin-tools-dashboard-set-preferences %}'
+ );
+ });
+ });
+</script>
+
+{% if dashboard.Media.js %}
+ {% for js in dashboard.Media.js %}
+ <script type="text/javascript" src="{{ media_url }}/{{ js }}"></script>
+ {% endfor %}
+{% endif %}
+
+<div class="container-grid">
+ <div class="column span-12">
+ {% for module in dashboard.children %}
+ {% if "column_1" in module.css_classes %}
+ {% admin_tools_render_dashboard_module module forloop.counter %}
+ {% endif %}
+ {% endfor %}
+ </div>
+ <div class="column span-6">
+ {% for module in dashboard.children %}
+ {% if "column_2" in module.css_classes %}
+ {% admin_tools_render_dashboard_module module forloop.counter %}
+ {% endif %}
+ {% endfor %}
+ </div>
+ <div class="column span-6 last">
+ {% for module in dashboard.children %}
+ {% if "column_3" in module.css_classes %}
+ {% admin_tools_render_dashboard_module module forloop.counter %}
+ {% endif %}
+ {% endfor %}
+ </div>
+</div>
diff --git a/lib/grappelli/templates/admin_tools/dashboard/dashboard.txt b/lib/grappelli/templates/admin_tools/dashboard/dashboard.txt
new file mode 100644
index 0000000..4417070
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/dashboard.txt
@@ -0,0 +1,141 @@
+from django.utils.translation import ugettext_lazy as _
+from django.core.urlresolvers import reverse
+from admin_tools.dashboard import modules, Dashboard, AppIndexDashboard
+
+# to activate your index dashboard add the following to your settings.py:
+#
+# ADMIN_TOOLS_INDEX_DASHBOARD = '{{ project }}.{{ file }}.CustomIndexDashboard'
+
+class CustomIndexDashboard(Dashboard):
+ """
+ Custom index dashboard for {{ project }}.
+ """
+ def __init__(self, **kwargs):
+ Dashboard.__init__(self, **kwargs)
+
+ # append a link list module for "quick links"
+ #self.children.append(modules.LinkList(
+ # title=_('Quick links'),
+ # layout='inline',
+ # draggable=False,
+ # deletable=False,
+ # collapsible=False,
+ # children=[
+ # {
+ # 'title': _('Return to site'),
+ # 'url': '/',
+ # },
+ # {
+ # 'title': _('Change password'),
+ # 'url': reverse('admin:password_change'),
+ # },
+ # {
+ # 'title': _('Log out'),
+ # 'url': reverse('admin:logout')
+ # },
+ # ]
+ #))
+
+ self.children.append(modules.LinkList(
+ column=1,
+ title=_('Media Management'),
+ children=[
+ {
+ 'title': _('Django FileBrowser'),
+ 'url': '/admin/filebrowser/browse/',
+ 'external': False,
+ },
+ ]
+ ))
+
+ # append an app list module for "Administration"
+ self.children.append(modules.AppList(
+ title=_('Administration'),
+ include_list=('django.contrib',),
+ css_classes=['collapse', 'open'],
+ ))
+
+ # append an app list module for "Applications"
+ self.children.append(modules.AppList(
+ title=_('Applications'),
+ exclude_list=('django.contrib',),
+ css_classes=['collapse', 'open'],
+ ))
+
+ # append a recent actions module
+ self.children.append(modules.RecentActions(
+ column=2,
+ title=_('Recent Actions'),
+ limit=5
+ ))
+
+ # append a feed module
+ self.children.append(modules.Feed(
+ column=2,
+ title=_('Latest Django News'),
+ feed_url='http://www.djangoproject.com/rss/weblog/',
+ limit=5
+ ))
+
+ # append another link list module for "support".
+ self.children.append(modules.LinkList(
+ column=2,
+ title=_('Support'),
+ children=[
+ {
+ 'title': _('Django documentation'),
+ 'url': 'http://docs.djangoproject.com/',
+ 'external': True,
+ },
+ {
+ 'title': _('Django "django-users" mailing list'),
+ 'url': 'http://groups.google.com/group/django-users',
+ 'external': True,
+ },
+ {
+ 'title': _('Django irc channel'),
+ 'url': 'irc://irc.freenode.net/django',
+ 'external': True,
+ },
+ ]
+ ))
+
+ def init_with_context(self, context):
+ """
+ Use this method if you need to access the request context.
+ """
+ pass
+
+
+# to activate your app index dashboard add the following to your settings.py:
+#
+# ADMIN_TOOLS_APP_INDEX_DASHBOARD = '{{ project }}.{{ file }}.CustomAppIndexDashboard'
+
+class CustomAppIndexDashboard(AppIndexDashboard):
+ """
+ Custom app index dashboard for {{ project }}.
+ """
+ def __init__(self, *args, **kwargs):
+ AppIndexDashboard.__init__(self, *args, **kwargs)
+
+ # we disable title because its redundant with the model list module
+ self.title = ''
+
+ # append a model list module
+ self.children.append(modules.ModelList(
+ title=_(self.app_title),
+ models=self.models,
+ ))
+
+ # append a recent actions module
+ self.children.append(modules.RecentActions(
+ column=2,
+ title=_('Recent Actions'),
+ include_list=self.get_app_content_types(),
+ ))
+
+ def init_with_context(self, context):
+ """
+ Use this method if you need to access the request context.
+ """
+ pass
diff --git a/lib/grappelli/templates/admin_tools/dashboard/dashboard_app_index.txt b/lib/grappelli/templates/admin_tools/dashboard/dashboard_app_index.txt
new file mode 100644
index 0000000..0574dfc
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/dashboard_app_index.txt
@@ -0,0 +1,29 @@
+from django.utils.translation import ugettext_lazy as _
+from django.core.urlresolvers import reverse
+from admin_tools.dashboard import modules, AppIndexDashboard
+
+# create your custom modules here if you want, for example:
+#
+# class CustomDashboardModule(modules.DashboardModule):
+# pass
+#
+{% if warning %}
+# WARNING: you've changed the default file name 'dashboard.py' to '{{ file }}.py',
+# so, you will need to tell django-admin-tools about this, just add this line
+# to your settings.py file:
+# ADMIN_TOOLS_APP_INDEX_DASHBOARD_MODULE = '{{ file }}'
+{% endif %}
+# Your {{ app }} dashboard class
+class {{ app|capfirst }}Dashboard(AppIndexDashboard):
+ """
+ Document your custom app index dashboard.
+ """
+ def __init__(self, app_title, models, *args, **kwargs):
+ super(CustomAppIndexDashboard, self).__init__(*args, **kwargs)
+
+ # append your modules here, example:
+ # self.append(modules.RecentActionsDashboardModule(
+ # title=_('Recent Actions'),
+ # limit=5,
+ # include_list=models,
+ # ))
diff --git a/lib/grappelli/templates/admin_tools/dashboard/dummy.html b/lib/grappelli/templates/admin_tools/dashboard/dummy.html
new file mode 100644
index 0000000..f04fcf5
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/dummy.html
@@ -0,0 +1 @@
+{% extends template %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/module.html b/lib/grappelli/templates/admin_tools/dashboard/module.html
new file mode 100644
index 0000000..85f55f8
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/module.html
@@ -0,0 +1,7 @@
+{% if not module.is_empty %}
+ {% block module_content %}
+ {% for child in module.children %}
+ {{ child }}
+ {% endfor %}
+ {% endblock %}
+{% endif %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/app_list.html b/lib/grappelli/templates/admin_tools/dashboard/modules/app_list.html
new file mode 100644
index 0000000..8cbd4a7
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/app_list.html
@@ -0,0 +1,58 @@
+{% extends "admin_tools/dashboard/module.html" %}
+{% load i18n %}
+{% block module_content %}
+ <div class="module {% for item in module.css_classes %}{{ item }} {% endfor %}"{% if index %} id="module_{{ index }}{% if subindex %}_{{ subindex }}{% endif %}"{% endif %}>
+
+ {% if module.title %}
+ {% if subindex %}
+ <h3>{{ module.title }}</h3>
+ {% else %}
+ <h2>{{ module.title }}</h2>
+ {% endif %}
+ {% endif %}
+
+{% spaceless %}
+ {% if module.pre_content %}
+ <p>{{ module.pre_content }}</p>
+ {% endif %}
+ {% for child in module.children %}
+
+ <div class="module">
+ {% if subindex %}
+ <h4><a href="{{ child.url }}">{{ child.title }}</a></h4>
+ {% else %}
+ <h3><a href="{{ child.url }}">{{ child.title }}</a></h3>
+ {% endif %}
+
+ {% for model in child.models %}
+ <div class="row">
+ {% if model.change_url %}
+ <a href="{{ model.change_url }}">{{ model.title }}</a>
+ {% else %}
+ {{ model.title }}
+ {% endif %}
+ {% if model.add_url or model.change_url %}
+ <ul class="actions">
+ {% if model.add_url %}
+ <li class="add-link">
+ <a href="{{ model.add_url }}">{% trans "Add" %}</a>
+ </li>
+ {% endif %}
+ {% if model.change_url %}
+ <li class="change-link">
+ <a href="{{ model.change_url }}">{% trans "Change" %}</a>
+ </li>
+ {% endif %}
+ </ul>
+ {% endif %}
+ </div>
+ {% endfor %}
+
+ </div>
+ {% endfor %}
+ {% if module.post_content %}
+ <p>{{ module.post_content }}</p>
+ {% endif %}
+{% endspaceless %}
+</div>
+{% endblock %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/column.html b/lib/grappelli/templates/admin_tools/dashboard/modules/column.html
new file mode 100644
index 0000000..8df8268
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/column.html
@@ -0,0 +1,9 @@
+{% extends "dashboard/module.html" %}
+{% load i18n admin_tools_dashboard_tags %}
+{% block module_content %}
+ <div class="column {{ module.className }}">
+ {% for child in module.children %}
+ {% admin_tools_render_dashboard_module child forloop.counter %}
+ {% endfor %}
+ </div>
+{% endblock %} \ No newline at end of file
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/feed.html b/lib/grappelli/templates/admin_tools/dashboard/modules/feed.html
new file mode 100644
index 0000000..3deec4e
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/feed.html
@@ -0,0 +1,21 @@
+{% extends "admin_tools/dashboard/module.html" %}
+{% block module_content %}
+{% if subindex %}
+ <div class="module feed {% for item in module.css_classes %}{{ item }} {% endfor %}">
+ <h3>{{ module.title }}</h2>
+{% else %}
+ <div class="module feed {% for item in module.css_classes %}{{ item }} {% endfor %}">
+ <h2>{{ module.title }}</h2>
+{% endif %}
+ <ul>
+ {% spaceless %}
+ {% for child in module.children %}
+ <li>
+ {% if child.date %}<span class="date mini quiet">{{ child.date|date }}&nbsp;</span>{% endif %}
+ {% if child.warning %}<span class="warning">{{ child.title }}</span>{% else %}<a class="external" href="{{ child.url }}">{{ child.title }}</a>{% endif %}
+ </li>
+ {% endfor %}
+ {% endspaceless %}
+ </ul>
+</div>
+{% endblock %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/group.html b/lib/grappelli/templates/admin_tools/dashboard/modules/group.html
new file mode 100644
index 0000000..144c82f
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/group.html
@@ -0,0 +1,33 @@
+{% extends "admin_tools/dashboard/module.html" %}
+{% load admin_tools_dashboard_tags %}
+{% block module_content %}
+<div class="group group-{{ module.display }} {% for item in module.css_classes %}{{ item }} {% endfor %}">
+ {% spaceless %}
+ {% if module.title %}
+ <h2>{{ module.title }}</h2>
+ {% endif %}
+ {% ifequal module.display "tabs" %}
+ <div class="group-{{ module.display }}-container">
+ <ul>
+ {% for sub_module in module.children %}
+ {% if not sub_module.is_empty %}<li class="group-tabs-link"><a href="#module_{{ index }}_{{ forloop.counter }}">{{ sub_module.title }}</a></li>{% endif %}
+ {% endfor %}
+ </ul>
+ {% for sub_module in module.children %}
+ {% admin_tools_render_dashboard_module sub_module index forloop.counter %}
+ {% endfor %}
+ </div>
+ {% endifequal %}
+ {% ifequal module.display "accordion" %}
+ {% for sub_module in module.children %}
+ {% if not sub_module.is_empty %}<span class="group-accordion-header"><a href="#">{{ sub_module.title }}</a></span>{% endif %}
+ {% admin_tools_render_dashboard_module sub_module index forloop.counter %}
+ {% endfor %}
+ {% else %}
+
+ {% endifequal %}
+
+
+ {% endspaceless %}
+</div>
+{% endblock %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/link_list.html b/lib/grappelli/templates/admin_tools/dashboard/modules/link_list.html
new file mode 100644
index 0000000..97b357e
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/link_list.html
@@ -0,0 +1,21 @@
+{% extends "admin_tools/dashboard/module.html" %}
+{% block module_content %}
+ <div class="module link-list {% for item in module.css_classes %}{{ item }} {% endfor %}">
+{% if module.title %}
+ {% if subindex %}
+ <h3>{{ module.title }}</h3>
+ {% else %}
+ <h2>{{ module.title }}</h2>
+ {% endif %}
+{% endif %}
+ <ul>
+ {% spaceless %}
+ {% for child in module.children %}
+ <li>
+ <a class="{% if child.external %}external{% else %}internal{% endif %}" href="{{ child.url }}" {% if child.description %} title="{{ child.description }}"{% endif %}>{{ child.title }}</a>
+ </li>
+ {% endfor %}
+ {% endspaceless %}
+ </ul>
+ </div>
+{% endblock %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/model_list.html b/lib/grappelli/templates/admin_tools/dashboard/modules/model_list.html
new file mode 100644
index 0000000..7431f8f
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/model_list.html
@@ -0,0 +1,26 @@
+{% extends "admin_tools/dashboard/module.html" %}
+{% load i18n %}
+{% block module_content %}
+ <div class="module {% for item in module.css_classes %}{{ item }} {% endfor %}">
+ {% if module.title %}
+ {% if subindex %}
+ <h3>{{ module.title }}</h3>
+ {% else %}
+ <h2>{{ module.title }}</h2>
+ {% endif %}
+ {% endif %}
+
+ {% for child in module.children %}
+ <div class="row">
+ {% if child.change_url %}<a href="{{ child.change_url }}">{{ child.title }}</a>{% else %}{{ child.title }}{% endif %}
+
+ {% if child.add_url or child.change_url %}
+ <ul class="actions">
+ {% if child.add_url %}<li class="add-link"><a href="{{ child.add_url }}">{% trans "Add" %}</a></li>{% endif %}
+ {% if child.change_url %}<li class="change-link"><a href="{{ child.change_url }}">{% trans "Change" %}</a></li>{% endif %}
+ </ul>
+ {% endif %}
+ </div>
+ {% endfor %}
+ </div>
+{% endblock %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/module_group.html b/lib/grappelli/templates/admin_tools/dashboard/modules/module_group.html
new file mode 100644
index 0000000..8e0f256
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/module_group.html
@@ -0,0 +1,10 @@
+{% extends "dashboard/module.html" %}
+{% load i18n admin_tools_dashboard_tags %}
+{% block module_content %}
+ <div class="group collapsible open">
+ <h2 class="collapsible-handler">{{ module.title }}</h2>
+ {% for sub_module in module.children %}
+ {% admin_tools_render_dashboard_module sub_module forloop.counter %}
+ {% endfor %}
+ </div>
+{% endblock %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/modules/recent_actions.html b/lib/grappelli/templates/admin_tools/dashboard/modules/recent_actions.html
new file mode 100644
index 0000000..0b7bb9e
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/modules/recent_actions.html
@@ -0,0 +1,26 @@
+{% extends "admin_tools/dashboard/module.html" %}
+{% load i18n %}
+{% block module_content %}
+{% if subindex %}
+ <div class="module actions {% for item in module.css_classes %}{{ item }} {% endfor %}">
+ <h3>{% trans 'Recent Actions' %}</h2>
+ <div class="module">
+ <h4>{% trans 'My Actions' %}</h3>
+{% else %}
+ <div class="module actions {% for item in module.css_classes %}{{ item }} {% endfor %}">
+ <h2>{% trans 'Recent Actions' %}</h2>
+ <div class="module">
+ <h3>{% trans 'My Actions' %}</h3>
+{% endif %}
+ {% if module.children %}
+ <ul>
+ {% for entry in module.children %}
+ <li class="{% if entry.is_addition %}add-link{% endif %}{% if entry.is_change %}change-link{% endif %}{% if entry.is_deletion %}delete-link{% endif %}">{% if not entry.is_deletion %}<a href="{{ entry.get_admin_url }}">{% endif %}{{ entry.object_repr }}{% if not entry.is_deletion %}</a>{% endif %}<br /><span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span></li>
+ {% endfor %}
+ </ul>
+ {% else %}
+ <p>{% trans 'None Available' %}</p>
+ {% endif %}
+ </div>
+</div>
+{% endblock %}
diff --git a/lib/grappelli/templates/admin_tools/dashboard/preferences_form.html b/lib/grappelli/templates/admin_tools/dashboard/preferences_form.html
new file mode 100644
index 0000000..7da463a
--- /dev/null
+++ b/lib/grappelli/templates/admin_tools/dashboard/preferences_form.html
@@ -0,0 +1,10 @@
+{% extends "admin/base_site.html" %}
+
+{% block content %}
+
+<form action="." method="POST">
+ {{ form.as_p }}
+ <p><input type="submit" value="Save" /></p>
+</form>
+
+{% endblock %}