From 2b5ce98a189f8e69495ade8fc4bef89311e4922b Mon Sep 17 00:00:00 2001 From: Stephen Burrows Date: Tue, 26 Oct 2010 09:50:51 -0400 Subject: [PATCH] Added grappelli inlines for contentlets and attributes which become active if grappelli is installed. --- admin/base.py | 8 +- admin/pages.py | 13 +- .../grappelli_tabular_attribute.html | 215 ++++++++++++++++++ .../grappelli_tabular_container.html | 43 ++++ 4 files changed, 275 insertions(+), 4 deletions(-) create mode 100644 templates/admin/philo/edit_inline/grappelli_tabular_attribute.html create mode 100644 templates/admin/philo/edit_inline/grappelli_tabular_container.html diff --git a/admin/base.py b/admin/base.py index f4a5f2f..cb814b7 100644 --- a/admin/base.py +++ b/admin/base.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.contrib import admin from django.contrib.contenttypes import generic from philo.models import Tag, Attribute @@ -12,12 +13,15 @@ class AttributeInline(generic.GenericTabularInline): ct_fk_field = 'entity_object_id' model = Attribute extra = 1 - template = 'admin/philo/edit_inline/tabular_attribute.html' allow_add = True classes = COLLAPSE_CLASSES form = AttributeForm formset = AttributeInlineFormSet - exclude = ['value_object_id'] + fields = ['key', 'value_content_type'] + if 'grappelli' in settings.INSTALLED_APPS: + template = 'admin/philo/edit_inline/grappelli_tabular_attribute.html' + else: + template = 'admin/philo/edit_inline/tabular_attribute.html' class EntityAdmin(admin.ModelAdmin): diff --git a/admin/pages.py b/admin/pages.py index 234b9d8..15b06d9 100644 --- a/admin/pages.py +++ b/admin/pages.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.contrib import admin from django import forms from philo.admin.base import COLLAPSE_CLASSES @@ -13,7 +14,11 @@ class ContentletInline(admin.StackedInline): formset = ContentletInlineFormSet form = ContentletForm can_delete = False - template = 'admin/philo/edit_inline/tabular_container.html' + classes = ('collapse-open', 'collapse','open') + if 'grappelli' in settings.INSTALLED_APPS: + template = 'admin/philo/edit_inline/grappelli_tabular_container.html' + else: + template = 'admin/philo/edit_inline/tabular_container.html' class ContentReferenceInline(admin.StackedInline): @@ -23,7 +28,11 @@ class ContentReferenceInline(admin.StackedInline): formset = ContentReferenceInlineFormSet form = ContentReferenceForm can_delete = False - template = 'admin/philo/edit_inline/tabular_container.html' + classes = ('collapse-open', 'collapse','open') + if 'grappelli' in settings.INSTALLED_APPS: + template = 'admin/philo/edit_inline/grappelli_tabular_container.html' + else: + template = 'admin/philo/edit_inline/tabular_container.html' class PageAdmin(ViewAdmin): diff --git a/templates/admin/philo/edit_inline/grappelli_tabular_attribute.html b/templates/admin/philo/edit_inline/grappelli_tabular_attribute.html new file mode 100644 index 0000000..4760397 --- /dev/null +++ b/templates/admin/philo/edit_inline/grappelli_tabular_attribute.html @@ -0,0 +1,215 @@ +{% load i18n adminmedia %} + + +
+

{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}

+ + {{ inline_admin_formset.formset.management_form }} + {{ inline_admin_formset.formset.non_form_errors }} + +
+
+
+ {% for field in inline_admin_formset.fields %} + {% if not field.widget.is_hidden %} +
{{ field.label|capfirst }}
+ {% endif %} + {% endfor %} +
Content type
+
Value
+ {% if inline_admin_formset.formset.can_delete %}
 
{% endif %} +
+
+ {% for inline_admin_form in inline_admin_formset %} + +
+ {% if inline_admin_form.form.non_field_errors %} +
  • {{ inline_admin_form.form.non_field_errors }}
+ {% endif %} +

{{ inline_admin_formset.opts.verbose_name|title }} #{{ forloop.counter }}  {% if inline_admin_form.original %} {{ inline_admin_form.original }}{% endif %}

+ {% spaceless %} + {% for fieldset in inline_admin_form %} + {% for line in fieldset %} + {% for field in line %} + {% if field.is_hidden %} {{ field.field }} {% endif %} + {% endfor %} + {% endfor %} + {% endfor %} + {% endspaceless %} +
+ {% for fieldset in inline_admin_form %} + {% for line in fieldset %} + {% for field in line %} +
+ {% if field.is_readonly %} +

{{ field.contents }}

+ {% else %} + {{ field.field }} + {{ field.field.errors.as_ul }} + {% endif %} +
+ {% endfor %} + {% endfor %} + {% endfor %} + {% with inline_admin_form.form.content_type as field %}
{{ field }}{{ field.errors.as_ul }}
{% endwith %} + {% with inline_admin_form.form.value as field %}
{{ field }}{{ field.errors.as_ul }}
{% endwith %} +
+ {% spaceless %} +
    + {% if inline_admin_form.show_url %}{% endif %} + {% if inline_admin_formset.opts.sortable_field_name %} +
  • + {% endif %} + {% if inline_admin_formset.formset.can_delete %}
  • {{ inline_admin_form.deletion_field.field }} {% endif %} +
+ {% endspaceless %} +
+ {{ inline_admin_form.fk_field.field }} + {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} +
+
+ {% endfor %} +
+ +
+ + + diff --git a/templates/admin/philo/edit_inline/grappelli_tabular_container.html b/templates/admin/philo/edit_inline/grappelli_tabular_container.html new file mode 100644 index 0000000..5602a38 --- /dev/null +++ b/templates/admin/philo/edit_inline/grappelli_tabular_container.html @@ -0,0 +1,43 @@ +{% load i18n adminmedia %} + + +{{ inline_admin_formset.formset.management_form }} +{% comment %}Don't render the formset at all if there aren't any forms.{% endcomment %} +{% if inline_admin_formset.formset.forms %} +
+

{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}

+ {{ inline_admin_formset.formset.non_form_errors }} + {% for inline_admin_form in inline_admin_formset %} + {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} + {{ inline_admin_form.fk_field.field }} + {% spaceless %} + {% for fieldset in inline_admin_form %} + {% for line in fieldset %} + {% for field in line %} + {% if field.is_hidden %} {{ field.field }} {% endif %} + {% endfor %} + {% endfor %} + {% endfor %}{% endspaceless %} +
+ +
{{ inline_admin_form.form.name.as_hidden }}
+ {% for fieldset in inline_admin_form %}{% for line in fieldset %}{% for field in line %} + {% if field.field.name != 'name' %} +
+ {% if field.is_readonly %} +

{{ field.contents }}

+ {% else %} + {{ field.field }} + {% endif %} + {{ inline_admin_form.errors }} + {% if field.field.field.help_text %} +

{{ field.field.field.help_text|safe }}

+ {% endif %} +
+ {% endif %} + {% endfor %}{% endfor %}{% endfor %} +
+ + {% endfor %} +
+{% endif %} -- 2.20.1