Author: zain Date: 2009-06-07 02:05:27 -0500 (Sun, 07 Jun 2009) New Revision: 10939
Modified: django/branches/soc2009/admin-ui/django/contrib/admin/media/css/forms.css django/branches/soc2009/admin-ui/django/contrib/admin/options.py django/branches/soc2009/admin-ui/django/contrib/admin/templates/admin/edit_inline/stacked.html Log: [soc2009/admin-ui] First steps to dynamically add stacked inlines. Upon loading the change list page, all extra inline fields are hidden and an "Add" link is shown at the bottom. Currently, clicking on the link will only re-show the hidden extra inlines; it won't add any new ones. Proper addition is going to be in the next check-in. Modified: django/branches/soc2009/admin-ui/django/contrib/admin/media/css/forms.css =================================================================== --- django/branches/soc2009/admin-ui/django/contrib/admin/media/css/forms.css 2009-06-07 07:01:22 UTC (rev 10938) +++ django/branches/soc2009/admin-ui/django/contrib/admin/media/css/forms.css 2009-06-07 07:05:27 UTC (rev 10939) @@ -325,3 +325,6 @@ padding-left: 14px; } +.add_inline { + display: none; +} \ No newline at end of file Modified: django/branches/soc2009/admin-ui/django/contrib/admin/options.py =================================================================== --- django/branches/soc2009/admin-ui/django/contrib/admin/options.py 2009-06-07 07:01:22 UTC (rev 10938) +++ django/branches/soc2009/admin-ui/django/contrib/admin/options.py 2009-06-07 07:05:27 UTC (rev 10939) @@ -868,6 +868,7 @@ 'root_path': self.admin_site.root_path, 'app_label': opts.app_label, } + #import ipdb; ipdb.set_trace() context.update(extra_context or {}) return self.render_change_form(request, context, change=True, obj=obj) change_view = transaction.commit_on_success(change_view) @@ -1122,7 +1123,7 @@ def _media(self): from django.conf import settings - js = [] + js = ['js/jquery.js'] if self.prepopulated_fields: js.append('js/urlify.js') if self.filter_vertical or self.filter_horizontal: Modified: django/branches/soc2009/admin-ui/django/contrib/admin/templates/admin/edit_inline/stacked.html =================================================================== --- django/branches/soc2009/admin-ui/django/contrib/admin/templates/admin/edit_inline/stacked.html 2009-06-07 07:01:22 UTC (rev 10938) +++ django/branches/soc2009/admin-ui/django/contrib/admin/templates/admin/edit_inline/stacked.html 2009-06-07 07:05:27 UTC (rev 10939) @@ -5,7 +5,7 @@ {{ inline_admin_formset.formset.non_form_errors }} {% for inline_admin_form in inline_admin_formset %} -<div class="inline-related{% if forloop.last %} last-related{% endif %}"> +<div class="inline-related{% if forloop.last %} last-related{% endif %}" id="{{ inline_admin_formset.opts.verbose_name}}{{ forloop.counter }}"> <h3><b>{{ inline_admin_formset.opts.verbose_name|title }}:</b> {% if inline_admin_form.original %}{{ inline_admin_form.original }}{% else %} #{{ forloop.counter }}{% endif %} {% if inline_admin_formset.formset.can_delete and inline_admin_form.original %}<span class="delete">{{ inline_admin_form.deletion_field.field }} {{ inline_admin_form.deletion_field.label_tag }}</span>{% endif %} </h3> @@ -22,7 +22,33 @@ </div> {% endfor %} -{# <ul class="tools"> #} -{# <li><a class="add" href="">Add another {{ inline_admin_formset.opts.verbose_name|title }}</a></li> #} -{# </ul> #} +<ul class="tools add_inline"> + <li><a id="{{ inline_admin_formset.opts.verbose_name }}-add" class="add" href="#">Add a {{ inline_admin_formset.opts.verbose_name }}</a></li> +</ul> + </div> + +<script type="text/javascript"> +$(function() { + {# TODO Zain: properly set the TOTAL_FORMS hidden input field #} + + var id_prefix = "{{ inline_admin_formset.opts.verbose_name }}"; + var total_forms = {{ inline_admin_formset.formset.management_form.initial.TOTAL_FORMS }}; + var initial_forms = {{ inline_admin_formset.formset.management_form.initial.INITIAL_FORMS }}; + + // since javascript is turned on, unhide the "add new <inline>" link and hide the extras + $('.add_inline').show(); + + for(var i = initial_forms + 1; i <= total_forms; i++) { + $('#' + id_prefix + i).hide(); + } + + total_forms = initial_forms; + + // clicking on the "add" link will add a blank form to add a new inline object + $('#' + id_prefix + "-add").click(function() { + total_forms++; + $('#' + id_prefix + (total_forms)).show(); + }); +}); +</script> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-updates?hl=en -~----------~----~----~----~------~----~------~--~---