csv_import: remove modify import form (#53463)
This commit is contained in:
parent
08ece07bb2
commit
8faea5022c
|
@ -737,31 +737,6 @@ class UserNewImportForm(UserImportForm):
|
|||
return new_import
|
||||
|
||||
|
||||
class UserEditImportForm(UserImportForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.user_import = kwargs.pop('user_import')
|
||||
initial = kwargs.setdefault('initial', {})
|
||||
initial['encoding'] = self.user_import.encoding
|
||||
initial['ou'] = self.user_import.ou
|
||||
super(UserEditImportForm, self).__init__(*args, **kwargs)
|
||||
del self.fields['import_file']
|
||||
|
||||
def clean(self):
|
||||
from authentic2.csv_import import CsvImporter
|
||||
|
||||
encoding = self.cleaned_data['encoding']
|
||||
with self.user_import.import_file as fd:
|
||||
importer = CsvImporter()
|
||||
if not importer.run(fd, encoding):
|
||||
self.raise_validation_error(importer.error.description or importer.error.code)
|
||||
self.cleaned_data['rows_count'] = len(importer.rows)
|
||||
|
||||
def save(self):
|
||||
with self.user_import.meta_update as meta:
|
||||
meta['ou'] = self.cleaned_data['ou']
|
||||
meta['encoding'] = self.cleaned_data['encoding']
|
||||
|
||||
|
||||
class RolesCsvImportForm(LimitQuerysetFormMixin, forms.Form):
|
||||
import_file = forms.FileField(
|
||||
label=_('Roles file'),
|
||||
|
|
|
@ -20,22 +20,21 @@
|
|||
{% block sidebar %}
|
||||
<aside id="sidebar">
|
||||
<div>
|
||||
<h3>{% trans "Modify import" %}</h3>
|
||||
<h3>{% trans "Actions" %}</h3>
|
||||
<form method="post" id="action-form">
|
||||
{% csrf_token %}
|
||||
{{ form|with_template }}
|
||||
<div class="buttons">
|
||||
<button name="modify">{% trans "Modify" %}</button>
|
||||
<button name="simulate">{% trans "Simulate" %}</button>
|
||||
<button name="execute">{% trans "Execute" %}</button>
|
||||
<button name="simulate">{% trans "Simulate import" %}</button>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<button name="execute">{% trans "Execute import" %}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div>
|
||||
<h3>{% trans "Download" %}</h3>
|
||||
<form action="download/{{ user_import.filename }}" id="download-form">
|
||||
<div class="buttons">
|
||||
<button>{% trans "Download" %}</button>
|
||||
<button>{% trans "Download CSV file" %}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -43,7 +42,9 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<p>{% trans "Encoding:" %} {{ encoding }}</p>
|
||||
<p>{% trans "Rows count:" %} {{ user_import.rows_count }}</p>
|
||||
<p>{% trans "Target Organizational Unit:" %} {{ user_import.ou }}</p>
|
||||
<h2>{% trans "Reports" %}</h2>
|
||||
<table class="main">
|
||||
<thead>
|
||||
|
|
|
@ -55,6 +55,7 @@ from django_rbac.utils import get_ou_model, get_role_model, get_role_parenting_m
|
|||
|
||||
from . import app_settings
|
||||
from .forms import (
|
||||
ENCODINGS,
|
||||
ChooseUserAuthorizationsForm,
|
||||
ChooseUserRoleForm,
|
||||
UserAddChooseOUForm,
|
||||
|
@ -62,7 +63,6 @@ from .forms import (
|
|||
UserChangeEmailForm,
|
||||
UserChangePasswordForm,
|
||||
UserEditForm,
|
||||
UserEditImportForm,
|
||||
UserNewImportForm,
|
||||
UserRoleSearchForm,
|
||||
UserSearchForm,
|
||||
|
@ -831,8 +831,7 @@ class UserImportsView(MediaMixin, PermissionMixin, FormView):
|
|||
user_imports = UserImportsView.as_view()
|
||||
|
||||
|
||||
class UserImportView(MediaMixin, PermissionMixin, FormView):
|
||||
form_class = UserEditImportForm
|
||||
class UserImportView(MediaMixin, PermissionMixin, TemplateView):
|
||||
permissions = ['custom_user.admin_user']
|
||||
permissions_global = True
|
||||
template_name = 'authentic2/manager/user_import.html'
|
||||
|
@ -850,11 +849,6 @@ class UserImportView(MediaMixin, PermissionMixin, FormView):
|
|||
return FileResponse(self.user_import.import_file, content_type='text/csv')
|
||||
return super(UserImportView, self).get(request, uuid=uuid, filename=filename)
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(UserImportView, self).get_form_kwargs()
|
||||
kwargs['user_import'] = self.user_import
|
||||
return kwargs
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
from authentic2.manager import user_import
|
||||
|
||||
|
@ -868,23 +862,13 @@ class UserImportView(MediaMixin, PermissionMixin, FormView):
|
|||
report.delete()
|
||||
return redirect(request, 'a2-manager-users-import', kwargs={'uuid': self.user_import.uuid})
|
||||
|
||||
simulate = 'simulate' in request.POST
|
||||
execute = 'execute' in request.POST
|
||||
if simulate or execute:
|
||||
report = user_import.Report.new(self.user_import)
|
||||
report.run(simulate=simulate)
|
||||
return redirect(request, 'a2-manager-users-import', kwargs={'uuid': self.user_import.uuid})
|
||||
return super(UserImportView, self).post(request, *args, **kwargs)
|
||||
|
||||
def form_valid(self, form):
|
||||
form.save()
|
||||
return super(UserImportView, self).form_valid(form)
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('a2-manager-users-import', kwargs={'uuid': self.user_import.uuid})
|
||||
report = user_import.Report.new(self.user_import)
|
||||
report.run(simulate=bool('simulate' in request.POST))
|
||||
return redirect(request, 'a2-manager-users-import', kwargs={'uuid': self.user_import.uuid})
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super(UserImportView, self).get_context_data(**kwargs)
|
||||
ctx['encoding'] = [encoding for id, encoding in ENCODINGS if id == self.user_import.encoding][0]
|
||||
ctx['user_import'] = self.user_import
|
||||
ctx['reports'] = sorted(self.user_import.reports, key=operator.attrgetter('created'), reverse=True)
|
||||
return ctx
|
||||
|
@ -894,7 +878,6 @@ user_import = UserImportView.as_view()
|
|||
|
||||
|
||||
class UserImportReportView(MediaMixin, PermissionMixin, TemplateView):
|
||||
form_class = UserEditImportForm
|
||||
permissions = ['custom_user.admin_user']
|
||||
permissions_global = True
|
||||
|
||||
|
|
|
@ -490,8 +490,6 @@ x,x,x,x'''.encode(
|
|||
|
||||
response = response.follow()
|
||||
|
||||
response = response.forms['action-form'].submit(name='modify').follow()
|
||||
|
||||
response = response.forms['action-form'].submit(name='simulate')
|
||||
|
||||
reports = list(_import.reports)
|
||||
|
@ -634,6 +632,9 @@ def import_csv(csv_content, app):
|
|||
|
||||
start = time.time()
|
||||
response = response.click('Users Import')
|
||||
assert 'Encoding: Unicode (UTF-8)' in response.text
|
||||
assert 'Target Organizational Unit: Default organizational unit' in response.text
|
||||
|
||||
while 'Running' in response.text:
|
||||
response = response.click('Users Import')
|
||||
assert time.time() - start < 2
|
||||
|
|
Loading…
Reference in New Issue