mirror of https://github.com/interlegis/sigi.git
Sesostris Vieira
4 years ago
3 changed files with 175 additions and 10 deletions
@ -0,0 +1,164 @@ |
|||||
|
{% load i18n admin_static admin_modify bootstrapped_goodies_tags %} |
||||
|
<div class="_inline-group" id="{{ inline_admin_formset.formset.prefix }}-group"> |
||||
|
<div class="tabular inline-related {% if forloop.last %}last-related{% endif %}"> |
||||
|
{{ inline_admin_formset.formset.management_form }} |
||||
|
<fieldset class="module"> |
||||
|
<h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2> |
||||
|
{{ inline_admin_formset.formset.non_form_errors }} |
||||
|
<table class="table table-striped table-bordered"> |
||||
|
<thead><tr> |
||||
|
{% for field in inline_admin_formset.fields %} |
||||
|
{% if not field.widget.is_hidden %} |
||||
|
<th{% if forloop.first %} colspan="2"{% endif %}{% if field.required %} class="required"{% endif %}>{{ field.label|capfirst }} |
||||
|
{% if field.help_text %}<i class="glyphicon glyphicon-comment help help-tooltip" style="margin-left: 4px;" alt="({{ field.help_text|striptags }})" title="{{ field.help_text|striptags }}"></i>{% endif %} |
||||
|
</th> |
||||
|
{% endif %} |
||||
|
{% endfor %} |
||||
|
{% if inline_admin_formset.formset.can_delete %}<th>{% trans "Delete?" %}</th>{% endif %} |
||||
|
</tr></thead> |
||||
|
|
||||
|
<tbody> |
||||
|
{% for inline_admin_form in inline_admin_formset %} |
||||
|
{% if inline_admin_form.form.non_field_errors %} |
||||
|
<tr><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr> |
||||
|
{% endif %} |
||||
|
<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 %}" |
||||
|
id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}"> |
||||
|
<td class="original"> |
||||
|
{% if inline_admin_formset.opts.sortable_field_name %} |
||||
|
<span class="btn btn-default btn-xs drag-handler pull-left"><i class="glyphicon glyphicon-move"></i></span> |
||||
|
{% endif %} |
||||
|
{% if inline_admin_form.original or inline_admin_form.show_url %}<p> |
||||
|
{% if inline_admin_form.original %} {{ inline_admin_form.original }}{% endif %} |
||||
|
{% 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 %} |
||||
|
</p>{% endif %} |
||||
|
{% if inline_admin_form.has_auto_field or inline_admin_form.needs_explicit_pk_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 %} |
||||
|
</td> |
||||
|
{% for fieldset in inline_admin_form %} |
||||
|
{% for line in fieldset %} |
||||
|
{% for field in line %} |
||||
|
<td{% if field.field.name %} class="field-{{ field.field.name }}"{% endif %}> |
||||
|
{% if field.is_readonly %} |
||||
|
<p>{{ field.contents }}</p> |
||||
|
{% else %} |
||||
|
{% if field.errors %} |
||||
|
<div class="alert alert-danger">{{ field.errors|striptags }}</div> |
||||
|
{% endif %} |
||||
|
{% dab_field_rendering field.field %} |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
{% endfor %} |
||||
|
{% endfor %} |
||||
|
{% endfor %} |
||||
|
{% if inline_admin_formset.formset.can_delete %} |
||||
|
<td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td> |
||||
|
{% endif %} |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
<tr><td colspan="100"> |
||||
|
<a href="{% url 'admin:ocorrencias_ocorrencia_add' %}?casa_legislativa={{original.pk|safe}}"> |
||||
|
<span class="glyphicon glyphicon-plus"></span>{% blocktrans with inline_admin_formset.opts.verbose_name|capfirst as verbose_name %}Add another {{ verbose_name }}{% endblocktrans %} |
||||
|
</a> |
||||
|
</td></tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</fieldset> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
(function($) { |
||||
|
$(document).ready(function($) { |
||||
|
var rows = "#{{ inline_admin_formset.formset.prefix }}-group .tabular.inline-related tbody tr"; |
||||
|
var alternatingRows = function(row) { |
||||
|
$(rows).not(".add-row").removeClass("row1 row2") |
||||
|
.filter(":even").addClass("row1").end() |
||||
|
.filter(rows + ":odd").addClass("row2"); |
||||
|
} |
||||
|
var reinitDateTimeShortCuts = function() { |
||||
|
// Reinitialize the calendar and clock widgets by force |
||||
|
if (typeof DateTimeShortcuts != "undefined") { |
||||
|
$(".datetimeshortcuts").remove(); |
||||
|
DateTimeShortcuts.init(); |
||||
|
} |
||||
|
} |
||||
|
var updateSelectFilter = function() { |
||||
|
// If any SelectFilter widgets are a part of the new form, |
||||
|
// instantiate a new SelectFilter instance for it. |
||||
|
if (typeof SelectFilter != "undefined"){ |
||||
|
$(".selectfilter").each(function(index, value){ |
||||
|
var namearr = value.name.split('-'); |
||||
|
SelectFilter.init(value.id, namearr[namearr.length-1], false, "{% static "admin/" %}"); |
||||
|
}); |
||||
|
$(".selectfilterstacked").each(function(index, value){ |
||||
|
var namearr = value.name.split('-'); |
||||
|
SelectFilter.init(value.id, namearr[namearr.length-1], true, "{% static "admin/" %}"); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var initPrepopulatedFields = function(row) { |
||||
|
row.find('.prepopulated_field').each(function() { |
||||
|
var field = $(this); |
||||
|
var input = field.find('input, select, textarea'); |
||||
|
var dependency_list = input.data('dependency_list') || []; |
||||
|
var dependencies = []; |
||||
|
$.each(dependency_list, function(i, field_name) { |
||||
|
dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id')); |
||||
|
}); |
||||
|
if (dependencies.length) { |
||||
|
input.prepopulate(dependencies, input.attr('maxlength')); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
$(rows).formset({ |
||||
|
prefix: "{{ inline_admin_formset.formset.prefix }}", |
||||
|
addText: "{% blocktrans with verbose_name=inline_admin_formset.opts.verbose_name|title %}Add another {{ verbose_name }}{% endblocktrans %}", |
||||
|
formCssClass: "dynamic-{{ inline_admin_formset.formset.prefix }}", |
||||
|
deleteCssClass: "inline-deletelink", |
||||
|
deleteText: "{% trans "Remove" %}", |
||||
|
emptyCssClass: "empty-form", |
||||
|
removed: alternatingRows, |
||||
|
added: (function(row) { |
||||
|
initPrepopulatedFields(row); |
||||
|
reinitDateTimeShortCuts(); |
||||
|
updateSelectFilter(); |
||||
|
alternatingRows(row); |
||||
|
}) |
||||
|
}); |
||||
|
}); |
||||
|
})(django.jQuery); |
||||
|
|
||||
|
// listener for jquery 1.7.2 |
||||
|
(function($) { |
||||
|
{% if inline_admin_formset.opts.sortable_field_name %} |
||||
|
$('tbody').sortable({ |
||||
|
// items: '.dynamic-{{ inline_admin_formset.formset.prefix }}', |
||||
|
handle: '.drag-handler', |
||||
|
items: ".form-row" |
||||
|
}); |
||||
|
$("#{{ opts.model_name }}_form").submit(function(e) { |
||||
|
var sortable_field_name = "{{ inline_admin_formset.opts.sortable_field_name }}", |
||||
|
i = 0; |
||||
|
var initial_form_count = $('#id_{{ inline_admin_formset.formset.prefix }}-INITIAL_FORMS').val(); |
||||
|
|
||||
|
$('#{{ inline_admin_formset.formset.prefix }}-group table > tbody').find(".form-row").each(function(i, e) { |
||||
|
// make sure we don't assign a position unless extra has been moved |
||||
|
if ($(this).find("input[name$='" + sortable_field_name + "']").val() || (i <= initial_form_count - 1 )) { |
||||
|
$(this).find("input[name$='" + sortable_field_name + "']").val(i); |
||||
|
i++; |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
{% endif %} |
||||
|
})(jQuery); |
||||
|
</script> |
Loading…
Reference in new issue