root / env / lib / python2.7 / site-packages / django / contrib / admin / templates / admin / edit_inline / tabular.html @ 1a305335
History | View | Annotate | Download (6.17 KB)
1 | 1a305335 | officers | {% load i18n admin_static admin_modify %} |
---|---|---|---|
2 | <div class="inline-group" id="{{ inline_admin_formset.formset.prefix }}-group"> |
||
3 | <div class="tabular inline-related {% if forloop.last %}last-related{% endif %}"> |
||
4 | {{ inline_admin_formset.formset.management_form }} |
||
5 | <fieldset class="module"> |
||
6 | <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2> |
||
7 | {{ inline_admin_formset.formset.non_form_errors }} |
||
8 | <table>
|
||
9 | <thead><tr> |
||
10 | {% for field in inline_admin_formset.fields %} |
||
11 | {% if not field.widget.is_hidden %} |
||
12 | <th{% if forloop.first %} colspan="2"{% endif %}{% if field.required %} class="required"{% endif %}>{{ field.label|capfirst }} |
||
13 | {% if field.help_text %} <img src="{% static "admin/img/icon-unknown.gif" %}" class="help help-tooltip" width="10" height="10" alt="({{ field.help_text|striptags }})" title="{{ field.help_text|striptags }}" />{% endif %} |
||
14 | </th>
|
||
15 | {% endif %} |
||
16 | {% endfor %} |
||
17 | {% if inline_admin_formset.formset.can_delete %}<th>{% trans "Delete?" %}</th>{% endif %} |
||
18 | </tr></thead> |
||
19 | |||
20 | <tbody>
|
||
21 | {% for inline_admin_form in inline_admin_formset %} |
||
22 | {% if inline_admin_form.form.non_field_errors %} |
||
23 | <tr><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr> |
||
24 | {% endif %} |
||
25 | <tr class="form-row {% cycle "row1" "row2" %} {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last %} empty-form{% endif %}" |
||
26 | id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}"> |
||
27 | <td class="original"> |
||
28 | {% if inline_admin_form.original or inline_admin_form.show_url %}<p>
|
||
29 | {% if inline_admin_form.original %} {{ inline_admin_form.original }}{% endif %} |
||
30 | {% if inline_admin_form.show_url %}<a href="../../../r/{{ inline_admin_form.original_content_type_id }}/{{ inline_admin_form.original.id }}/">{% trans "View on site" %}</a>{% endif %} |
||
31 | </p>{% endif %}
|
||
32 | {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} |
||
33 | {{ inline_admin_form.fk_field.field }} |
||
34 | {% spaceless %} |
||
35 | {% for fieldset in inline_admin_form %} |
||
36 | {% for line in fieldset %} |
||
37 | {% for field in line %} |
||
38 | {% if field.is_hidden %} {{ field.field }} {% endif %} |
||
39 | {% endfor %} |
||
40 | {% endfor %} |
||
41 | {% endfor %} |
||
42 | {% endspaceless %} |
||
43 | </td>
|
||
44 | {% for fieldset in inline_admin_form %} |
||
45 | {% for line in fieldset %} |
||
46 | {% for field in line %} |
||
47 | <td{% if field.field.name %} class="field-{{ field.field.name }}"{% endif %}> |
||
48 | {% if field.is_readonly %} |
||
49 | <p>{{ field.contents }}</p> |
||
50 | {% else %} |
||
51 | {{ field.field.errors.as_ul }} |
||
52 | {{ field.field }} |
||
53 | {% endif %} |
||
54 | </td>
|
||
55 | {% endfor %} |
||
56 | {% endfor %} |
||
57 | {% endfor %} |
||
58 | {% if inline_admin_formset.formset.can_delete %} |
||
59 | <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td> |
||
60 | {% endif %} |
||
61 | </tr>
|
||
62 | {% endfor %} |
||
63 | </tbody>
|
||
64 | </table>
|
||
65 | </fieldset>
|
||
66 | </div>
|
||
67 | </div>
|
||
68 | |||
69 | <script type="text/javascript"> |
||
70 | (function($) {
|
||
71 | $(document).ready(function($) {
|
||
72 | var rows = "#{{ inline_admin_formset.formset.prefix }}-group .tabular.inline-related tbody tr";
|
||
73 | var alternatingRows = function(row) {
|
||
74 | $(rows).not(".add-row").removeClass("row1 row2")
|
||
75 | .filter(":even").addClass("row1").end()
|
||
76 | .filter(rows + ":odd").addClass("row2");
|
||
77 | }
|
||
78 | var reinitDateTimeShortCuts = function() {
|
||
79 | // Reinitialize the calendar and clock widgets by force
|
||
80 | if (typeof DateTimeShortcuts != "undefined") {
|
||
81 | $(".datetimeshortcuts").remove();
|
||
82 | DateTimeShortcuts.init();
|
||
83 | }
|
||
84 | }
|
||
85 | var updateSelectFilter = function() {
|
||
86 | // If any SelectFilter widgets are a part of the new form,
|
||
87 | // instantiate a new SelectFilter instance for it.
|
||
88 | if (typeof SelectFilter != "undefined"){
|
||
89 | $(".selectfilter").each(function(index, value){
|
||
90 | var namearr = value.name.split('-');
|
||
91 | SelectFilter.init(value.id, namearr[namearr.length-1], false, "{% static "admin/" %}");
|
||
92 | });
|
||
93 | $(".selectfilterstacked").each(function(index, value){
|
||
94 | var namearr = value.name.split('-');
|
||
95 | SelectFilter.init(value.id, namearr[namearr.length-1], true, "{% static "admin/" %}");
|
||
96 | });
|
||
97 | }
|
||
98 | }
|
||
99 | var initPrepopulatedFields = function(row) {
|
||
100 | row.find('.prepopulated_field').each(function() {
|
||
101 | var field = $(this);
|
||
102 | var input = field.find('input, select, textarea');
|
||
103 | var dependency_list = input.data('dependency_list') || [];
|
||
104 | var dependencies = [];
|
||
105 | $.each(dependency_list, function(i, field_name) {
|
||
106 | dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id'));
|
||
107 | });
|
||
108 | if (dependencies.length) {
|
||
109 | input.prepopulate(dependencies, input.attr('maxlength'));
|
||
110 | }
|
||
111 | });
|
||
112 | }
|
||
113 | $(rows).formset({
|
||
114 | prefix: "{{ inline_admin_formset.formset.prefix }}",
|
||
115 | addText: "{% blocktrans with verbose_name=inline_admin_formset.opts.verbose_name|title %}Add another {{ verbose_name }}{% endblocktrans %}",
|
||
116 | formCssClass: "dynamic-{{ inline_admin_formset.formset.prefix }}",
|
||
117 | deleteCssClass: "inline-deletelink",
|
||
118 | deleteText: "{% trans "Remove" %}",
|
||
119 | emptyCssClass: "empty-form",
|
||
120 | removed: alternatingRows,
|
||
121 | added: (function(row) {
|
||
122 | initPrepopulatedFields(row);
|
||
123 | reinitDateTimeShortCuts();
|
||
124 | updateSelectFilter();
|
||
125 | alternatingRows(row);
|
||
126 | })
|
||
127 | });
|
||
128 | });
|
||
129 | })(django.jQuery);
|
||
130 | </script> |