From 9f41c3f56e7ecd5742b0070946560080a07ea187 Mon Sep 17 00:00:00 2001 From: Andrew Ingram Date: Sun, 26 May 2013 01:55:43 +0100 Subject: [PATCH 1/3] Initial stab at breadcrumbs There's currently a lot of copy-pasting of breadcrumbs, this can be revisited once we have a better understanding of how we're going to handle navigation. I've also tried to make template context variables more logical and consistent throughout. --- djadmin2/core.py | 24 ++++++++++-- .../templates/admin2/bootstrap/app_index.html | 17 +++++++++ djadmin2/templates/admin2/bootstrap/base.html | 6 +++ .../bootstrap/includes/app_model_list.html | 35 ++++++++++++++++++ .../templates/admin2/bootstrap/index.html | 37 +------------------ .../bootstrap/model_confirm_delete.html | 12 +++++- .../admin2/bootstrap/model_detail.html | 9 +++++ .../admin2/bootstrap/model_list.html | 16 +++++--- .../admin2/bootstrap/model_update_form.html | 18 ++++++++- djadmin2/templatetags/admin2_tags.py | 8 ++++ djadmin2/tests/test_core.py | 2 +- djadmin2/tests/test_utils.py | 12 ++++++ djadmin2/utils.py | 7 ++++ djadmin2/viewmixins.py | 5 ++- djadmin2/views.py | 20 +++++++++- 15 files changed, 176 insertions(+), 52 deletions(-) create mode 100644 djadmin2/templates/admin2/bootstrap/app_index.html create mode 100644 djadmin2/templates/admin2/bootstrap/includes/app_model_list.html diff --git a/djadmin2/core.py b/djadmin2/core.py index 18c0fa3..4940ade 100644 --- a/djadmin2/core.py +++ b/djadmin2/core.py @@ -23,6 +23,7 @@ class Admin2(object): It also provides an index view that serves as an entry point to the admin site. """ index_view = views.IndexView + app_index_view = views.AppIndexView api_index_view = apiviews.IndexAPIView def __init__(self, name='admin2'): @@ -98,6 +99,12 @@ class Admin2(object): 'apps': self.apps, } + def get_app_index_kwargs(self): + return { + 'registry': self.registry, + 'apps': self.apps, + } + def get_api_index_kwargs(self): return { 'registry': self.registry, @@ -106,9 +113,20 @@ class Admin2(object): def get_urls(self): urlpatterns = patterns('', - url(r'^$', self.index_view.as_view(**self.get_index_kwargs()), name='dashboard'), - url(r'^api/v0/$', - self.api_index_view.as_view(**self.get_api_index_kwargs()), name='api-index'), + url(regex=r'^$', + view=self.index_view.as_view(**self.get_index_kwargs()), + name='dashboard' + ), + url( + regex=r'^(?P\w+)/$', + view=self.app_index_view.as_view(**self.get_app_index_kwargs()), + name='app-index' + ), + url( + regex=r'^api/v0/$', + view=self.api_index_view.as_view(**self.get_api_index_kwargs()), + name='api-index' + ), ) for model, model_admin in self.registry.iteritems(): model_options = utils.model_options(model) diff --git a/djadmin2/templates/admin2/bootstrap/app_index.html b/djadmin2/templates/admin2/bootstrap/app_index.html new file mode 100644 index 0000000..f6a7a36 --- /dev/null +++ b/djadmin2/templates/admin2/bootstrap/app_index.html @@ -0,0 +1,17 @@ +{% extends "admin2/bootstrap/base.html" %} +{% load admin2_tags i18n %} + +{% block breadcrumbs %} +
  • Home /
  • +
  • {{ app_label|title }}
  • +{% endblock %} + +{% block page_title %}{% blocktrans with app_label=app_label|title %}{{ app_label }} administration{% endblocktrans %}{% endblock %} + +{% block content %} +
    +
    + {% include 'admin2/bootstrap/includes/app_model_list.html' %} +
    +
    +{% endblock content %} diff --git a/djadmin2/templates/admin2/bootstrap/base.html b/djadmin2/templates/admin2/bootstrap/base.html index 40f3b38..bbe98b1 100644 --- a/djadmin2/templates/admin2/bootstrap/base.html +++ b/djadmin2/templates/admin2/bootstrap/base.html @@ -44,6 +44,12 @@ + + {% if messages %}