diff --git a/modoboa/admin/forms/__init__.py b/modoboa/admin/forms/__init__.py index e5cc34c9d..3637c3637 100644 --- a/modoboa/admin/forms/__init__.py +++ b/modoboa/admin/forms/__init__.py @@ -6,7 +6,7 @@ from .alias import AliasForm from .domain import ( DomainForm, DomainFormGeneral, DomainFormOptions, DomainWizard ) -from .export import ExportDataForm, ExportDomainsForm, ExportIdentitiesForm +from .export import ExportDataForm from .forward import ForwardForm from .import_ import ImportDataForm, ImportIdentitiesForm @@ -14,6 +14,6 @@ __all__ = [ "DomainFormGeneral", "DomainFormOptions", "DomainForm", "AccountFormGeneral", "AccountFormMail", "AccountPermissionsForm", "AccountForm", "AliasForm", "ImportDataForm", "ImportIdentitiesForm", - "ExportDataForm", "ExportDomainsForm", "ExportIdentitiesForm", + "ExportDataForm", "ForwardForm", "DomainWizard", "AccountWizard" ] diff --git a/modoboa/admin/forms/export.py b/modoboa/admin/forms/export.py index ca1a46c14..234bbd9d4 100644 --- a/modoboa/admin/forms/export.py +++ b/modoboa/admin/forms/export.py @@ -1,14 +1,10 @@ +"""Export related forms.""" + from django import forms from django.utils.translation import ugettext_lazy class ExportDataForm(forms.Form): - filename = forms.CharField( - label=ugettext_lazy("File name"), - max_length=100, - required=False, - widget=forms.TextInput(attrs={"class": "form-control"}) - ) sepchar = forms.CharField( label=ugettext_lazy("Separator"), max_length=1, @@ -24,22 +20,3 @@ class ExportDataForm(forms.Form): if self.cleaned_data["sepchar"] == "": return ";" return self.cleaned_data["sepchar"] - - def clean_filename(self): - if self.cleaned_data["filename"] == "": - return self.fields["filename"].initial - return self.cleaned_data["filename"] - - -class ExportDomainsForm(ExportDataForm): - - def __init__(self, *args, **kwargs): - super(ExportDomainsForm, self).__init__(*args, **kwargs) - self.fields["filename"].initial = "modoboa-domains.csv" - - -class ExportIdentitiesForm(ExportDataForm): - - def __init__(self, *args, **kwargs): - super(ExportIdentitiesForm, self).__init__(*args, **kwargs) - self.fields["filename"].initial = "modoboa-identities.csv" diff --git a/modoboa/admin/views/export.py b/modoboa/admin/views/export.py index 5d1764a87..183206f2a 100644 --- a/modoboa/admin/views/export.py +++ b/modoboa/admin/views/export.py @@ -3,8 +3,6 @@ import csv from io import StringIO -from rfc6266 import build_header - from django.contrib.auth.decorators import ( login_required, permission_required, user_passes_test ) @@ -13,7 +11,7 @@ from django.shortcuts import render from django.urls import reverse from django.utils.translation import ugettext as _ -from ..forms import ExportDomainsForm, ExportIdentitiesForm +from ..forms import ExportDataForm from ..lib import get_domains, get_identities @@ -27,7 +25,7 @@ def _export(content, filename): resp = HttpResponse(content) resp["Content-Type"] = "text/csv" resp["Content-Length"] = len(content) - resp["Content-Disposition"] = build_header(filename) + resp["Content-Disposition"] = 'attachment; filename="{}"'.format(filename) return resp @@ -45,7 +43,7 @@ def export_identities(request): } if request.method == "POST": - form = ExportIdentitiesForm(request.POST) + form = ExportDataForm(request.POST) form.is_valid() fp = StringIO() csvwriter = csv.writer(fp, delimiter=form.cleaned_data["sepchar"]) @@ -55,9 +53,9 @@ def export_identities(request): ident.to_csv(csvwriter) content = fp.getvalue() fp.close() - return _export(content, form.cleaned_data["filename"]) + return _export(content, "modoboa-identities.csv") - ctx["form"] = ExportIdentitiesForm() + ctx["form"] = ExportDataForm() return render(request, "common/generic_modal_form.html", ctx) @@ -73,7 +71,7 @@ def export_domains(request): } if request.method == "POST": - form = ExportDomainsForm(request.POST) + form = ExportDataForm(request.POST) form.is_valid() fp = StringIO() csvwriter = csv.writer(fp, delimiter=form.cleaned_data["sepchar"]) @@ -82,7 +80,7 @@ def export_domains(request): dom.to_csv(csvwriter) content = fp.getvalue() fp.close() - return _export(content, form.cleaned_data["filename"]) + return _export(content, "modoboa-domains.csv") - ctx["form"] = ExportDomainsForm() + ctx["form"] = ExportDataForm() return render(request, "common/generic_modal_form.html", ctx) diff --git a/requirements.txt b/requirements.txt index ce5d03256..edb49f792 100644 --- a/requirements.txt +++ b/requirements.txt @@ -22,6 +22,5 @@ py-dateutil==2.2 cryptography pytz requests -rfc6266 lxml chardet