mirror of https://github.com/interlegis/sigi.git
Sesostris Vieira
3 years ago
7 changed files with 194 additions and 3 deletions
@ -0,0 +1,6 @@ |
|||||
|
{% extends "admin/cart/change_list_cart_export.html" %} |
||||
|
|
||||
|
{% block object-tools-items %} |
||||
|
{% include "admin/import_export/change_list_import_item.html" %} |
||||
|
{{ block.super }} |
||||
|
{% endblock %} |
@ -0,0 +1 @@ |
|||||
|
{% extends "admin/change_list.html" %} |
@ -0,0 +1,10 @@ |
|||||
|
{% load i18n %} |
||||
|
{% load admin_urls %} |
||||
|
|
||||
|
{% if has_import_permission %} |
||||
|
<li> |
||||
|
<a class="btn-floating tooltipped waves-effect waves-light" href="{% url opts|admin_urlname:'import' %}{{cl.get_query_string}}" data-position="left" data-tooltip="{% trans "Import" %}"> |
||||
|
<i class="material-icons">file_upload</i> |
||||
|
</a> |
||||
|
</li> |
||||
|
{% endif %} |
@ -0,0 +1,165 @@ |
|||||
|
{% extends "admin/base_site.html" %} |
||||
|
{% load i18n %} |
||||
|
{% load admin_urls %} |
||||
|
{% load import_export_tags %} |
||||
|
{% load static %} |
||||
|
|
||||
|
{% block extrastyle %} |
||||
|
{{ block.super }} |
||||
|
<link rel="stylesheet" type="text/css" href="{% static "import_export/import.css" %}" /> |
||||
|
<style> |
||||
|
#content { |
||||
|
display: block; |
||||
|
} |
||||
|
.submit-row>a { |
||||
|
color: #fff; |
||||
|
} |
||||
|
</style> |
||||
|
{% endblock %} |
||||
|
{% block breadcrumbs %}{% endblock %} |
||||
|
{% block content_title %}<h4>{% blocktrans with name=opts.verbose_name_plural %}Importar {{ name }}{% endblocktrans %}</h4>{% endblock %} |
||||
|
{% block content %} |
||||
|
{% if confirm_form %} |
||||
|
<form action="{% url opts|admin_urlname:"process_import" %}" method="POST">{% csrf_token %} |
||||
|
{{ confirm_form.as_p }} |
||||
|
<p> |
||||
|
{% trans "Below is a preview of data to be imported. If you are satisfied with the results, click 'Confirm import'" %} |
||||
|
</p> |
||||
|
<div class="submit-row"> |
||||
|
<input type="submit" class="default" name="confirm" value="{% trans "Confirm import" %}"> |
||||
|
</div> |
||||
|
</form> |
||||
|
{% else %} |
||||
|
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %} |
||||
|
<p> |
||||
|
{% trans "This importer will import the following fields: " %} |
||||
|
<code>{{ fields|join:", " }}</code> |
||||
|
</p> |
||||
|
|
||||
|
<fieldset class="module aligned"> |
||||
|
{% for field in form %} |
||||
|
<div class="form-row"> |
||||
|
{{ field.errors }} |
||||
|
{{ field.label_tag }} |
||||
|
{{ field }} |
||||
|
{% if field.field.help_text %} |
||||
|
<p class="help">{{ field.field.help_text|safe }}</p> |
||||
|
{% endif %} |
||||
|
</div> |
||||
|
{% endfor %} |
||||
|
</fieldset> |
||||
|
<div class="submit-row"> |
||||
|
<button type="submit" class="btn waves-effect waves-light" value="{% trans "Submit" %}"> |
||||
|
<i class="material-icons left">done</i> |
||||
|
{% trans "Import" %} |
||||
|
</button> |
||||
|
<a class="btn waves-effect waves-light" href="{% url opts|admin_urlname:'changelist' %}"> |
||||
|
<i class="material-icons left">navigate_before</i> |
||||
|
{% trans "Voltar" %} |
||||
|
</a> |
||||
|
</div> |
||||
|
</form> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% if result %} |
||||
|
{% if result.has_errors %} |
||||
|
<h5>{% trans "Errors" %}</h5> |
||||
|
{% for error in result.base_errors %} |
||||
|
<blockquote> |
||||
|
{{ error.error }} |
||||
|
<div class="traceback">{{ error.traceback|linebreaks }}</div> |
||||
|
</blockquote> |
||||
|
{% endfor %} |
||||
|
{% for line, errors in result.row_errors %} |
||||
|
{% for error in errors %} |
||||
|
<blockquote> |
||||
|
{% trans "Line number" %}: {{ line }} - {{ error.error }} |
||||
|
<div><code>{{ error.row.values|join:", " }}</code></div> |
||||
|
<div class="traceback">{{ error.traceback|linebreaks }}</div> |
||||
|
</blockquote> |
||||
|
{% endfor %} |
||||
|
{% endfor %} |
||||
|
{% elif result.has_validation_errors %} |
||||
|
<h5>{% trans "Some rows failed to validate" %}</h5> |
||||
|
<p>{% trans "Please correct these errors in your data where possible, then reupload it using the form above." %}</p> |
||||
|
<table class="striped import-preview"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Row" %}</th> |
||||
|
<th>{% trans "Errors" %}</th> |
||||
|
{% for field in result.diff_headers %} |
||||
|
<th>{{ field }}</th> |
||||
|
{% endfor %} |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for row in result.invalid_rows %} |
||||
|
<tr> |
||||
|
<td>{{ row.number }} </td> |
||||
|
<td class="errors"> |
||||
|
<span class="validation-error-count">{{ row.error_count }}</span> |
||||
|
<div class="validation-error-container"> |
||||
|
<ul class="validation-error-list"> |
||||
|
{% for field_name, error_list in row.field_specific_errors.items %} |
||||
|
<li> |
||||
|
<span class="validation-error-field-label">{{ field_name }}</span> |
||||
|
<ul> |
||||
|
{% for error in error_list %} |
||||
|
<li>{{ error }}</li> |
||||
|
{% endfor %} |
||||
|
</ul> |
||||
|
</li> |
||||
|
{% endfor %} |
||||
|
{% if row.non_field_specific_errors %} |
||||
|
<li> |
||||
|
<span class="validation-error-field-label">{% trans "Non field specific" %}</span> |
||||
|
<ul> |
||||
|
{% for error in row.non_field_specific_errors %} |
||||
|
<li>{{ error }}</li> |
||||
|
{% endfor %} |
||||
|
</ul> |
||||
|
</li> |
||||
|
{% endif %} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</td> |
||||
|
{% for field in row.values %} |
||||
|
<td>{{ field }}</td> |
||||
|
{% endfor %} |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
{% else %} |
||||
|
<h5>{% trans "Preview" %}</h5> |
||||
|
<table class="striped import-preview"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th></th> |
||||
|
{% for field in result.diff_headers %} |
||||
|
<th>{{ field }}</th> |
||||
|
{% endfor %} |
||||
|
</tr> |
||||
|
</thead> |
||||
|
{% for row in result.valid_rows %} |
||||
|
<tr class="{{ row.import_type }}"> |
||||
|
<td class="import-type"> |
||||
|
{% if row.import_type == 'new' %} |
||||
|
{% trans "New" %} |
||||
|
{% elif row.import_type == 'skip' %} |
||||
|
{% trans "Skipped" %} |
||||
|
{% elif row.import_type == 'delete' %} |
||||
|
{% trans "Delete" %} |
||||
|
{% elif row.import_type == 'update' %} |
||||
|
{% trans "Update" %} |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
{% for field in row.diff %} |
||||
|
<td>{{ field }}</td> |
||||
|
{% endfor %} |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
{% endif %} |
||||
|
{% endif %} |
||||
|
{% endblock %} |
Loading…
Reference in new issue