X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/ad478bb4b54260bec0a1e0d669dd36a903721373..58d4aaf62aad7d19d2fb26176afd083c8f75f82a:/apps/wiki/forms.py diff --git a/apps/wiki/forms.py b/apps/wiki/forms.py index d8f425ab..d5c0ed54 100644 --- a/apps/wiki/forms.py +++ b/apps/wiki/forms.py @@ -23,7 +23,7 @@ class DocumentCreateForm(forms.Form): Form used for creating new documents. """ title = forms.CharField() - id = forms.RegexField(regex=ur"\w+") + id = forms.RegexField(regex=ur"^[-\wąćęłńóśźżĄĆĘŁŃÓŚŹŻ]+$") file = forms.FileField(required=False) text = forms.CharField(required=False, widget=forms.Textarea) @@ -42,6 +42,26 @@ class DocumentCreateForm(forms.Form): return self.cleaned_data +class DocumentsUploadForm(forms.Form): + """ + Form used for uploading new documents. + """ + file = forms.FileField(required=True, label=_('ZIP file')) + + def clean(self): + file = self.cleaned_data['file'] + + import zipfile + try: + z = self.cleaned_data['zip'] = zipfile.ZipFile(file) + except zipfile.BadZipfile: + raise forms.ValidationError("Should be a ZIP file.") + if z.testzip(): + raise forms.ValidationError("ZIP file corrupt.") + + return self.cleaned_data + + class DocumentTextSaveForm(forms.Form): """ Form for saving document's text: