{% load i18n adminmedia admin_modify %}

<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>
        <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 }}
                </th>
              {% endif %}
            {% endfor %}
            <th>Details</th>
            {% 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="{% 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_form.original or inline_admin_form.show_url %}
                  <p>
                    {% 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 %}
                  {{ 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 class="{{ field.field.name }}">
                    {% if field.is_readonly %}
                        <p>{{ field.contents }}</p>
                    {% else %}
                        {{ field.field.errors.as_ul }}
                        {{ field.field }}
                    {% endif %}
                    </td>
                  {% endfor %}
                {% endfor %}
              {% endfor %}
              <td>
                {% if inline_admin_form.original %}
                  <a href="/admin/{{ app_label }}/{{ inline_admin_formset.opts.admin_model_path }}/{% firstof inline_admin_form.original.id 'add' %}/" onclick="return showAddAnotherPopup(this);">
                    <img src="/admin_media/img/admin/icon_changelink.gif" alt="Details">Add/view details
                  </a>
                {% else %}
                  <span class="help">(Save to add details.)</span>
                {% endif %}
              </td>
        
              {% 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 %}
        </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, "{% admin_media_prefix %}");
                });
                $(".selectfilterstacked").each(function(index, value){
                  var namearr = value.name.split('-');
                  SelectFilter.init(value.id, namearr[namearr.length-1], true, "{% admin_media_prefix %}");
                });
            }
        }
        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_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 inline_admin_formset.opts.verbose_name|title as verbose_name %}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);
</script>
