Konwersja HTML do XML przed zapisaniem XML na serwer.
[redakcja.git] / apps / explorer / forms.py
index da8a117..33585bc 100644 (file)
@@ -1,11 +1,14 @@
-from django import forms
-
-from lxml import etree
+# -*- coding: utf-8 -*-
+import os
 from librarian import dcparser
+
+from django import forms
+from django.conf import settings
 import django.utils
 
 from explorer import models
 
+
 class PersonField(forms.CharField):
     def clean(self, value):
         try:
@@ -60,8 +63,9 @@ class MergeForm(forms.Form):
 
 class BookUploadForm(forms.Form):
     file = forms.FileField(label='Source OCR file')
-    bookname = forms.RegexField(regex='[\w-]+',  \
+    bookname = forms.RegexField(regex=r'[0-9\.\w_-]+',  \
         label='Publication name', help_text='Example: slowacki-beniowski')
+    autoxml = forms.BooleanField(required=False, initial=True, label=u"Generate DublinCore template")
 
 class ImageFoldersForm(forms.Form):
     folders = forms.ChoiceField(required=False)
@@ -70,6 +74,24 @@ class ImageFoldersForm(forms.Form):
         super(ImageFoldersForm, self).__init__(*args, **kwargs)
         self.fields['folders'].choices = [('', '-- Wybierz folder z obrazkami --')] + [(fn, fn) for fn in models.get_image_folders()]
 
+class SplitForm(forms.Form):
+    partname = forms.RegexField(regex='[0-9\.\w_-]+',  \
+        label='Part name', help_text='Example: rozdziaƂ-2')
+    autoxml = forms.BooleanField(required=False, initial=False, label=u"Split as new publication")
+    fulltext = forms.CharField(widget=forms.HiddenInput(), required=False)
+    splittext = forms.CharField(widget=forms.HiddenInput(), required=False)
+
+class GalleryChoiceForm(forms.ModelForm):
+    subpath = forms.ChoiceField(choices=())
+
+    def __init__(self, *args, **kwargs):
+        super(GalleryChoiceForm, self).__init__(*args, **kwargs)
+        self.fields['subpath'].choices = [(settings.IMAGE_DIR + '/' + x, x) for x in os.listdir(settings.MEDIA_ROOT + settings.IMAGE_DIR)]
+
+    class Meta:
+        model = models.GalleryForDocument
+        fields = ('document', 'subpath',)
+
 class DublinCoreForm(forms.Form):
     about = forms.URLField(verify_exists=False)
     author = PersonField()
@@ -78,15 +100,15 @@ class DublinCoreForm(forms.Form):
     kinds = ListField()
     genres = ListField()
     created_at = forms.DateField()
-    released_to_public_domain_at = forms.DateField()
+    released_to_public_domain_at = forms.DateField(required=False)
     editors = ListField(widget=forms.Textarea, required=False, converter=person_conv)
     translators = ListField(widget=forms.Textarea, required=False, converter=person_conv)
     technical_editors = ListField(widget=forms.Textarea, required=False, converter=person_conv)
     publisher = forms.CharField()
-    source_name = forms.CharField(widget=forms.Textarea)
-    source_url = forms.URLField(verify_exists=False)
+    source_name = forms.CharField(widget=forms.Textarea, required=False)
+    source_url = forms.URLField(verify_exists=False, required=False)
     url = forms.URLField(verify_exists=False)
-    parts = forms.CharField(widget=forms.Textarea, required=False)
+    parts = ListField(required=False)
     license = forms.CharField(required=False)
     license_description = forms.CharField(widget=forms.Textarea, required=False)
     
@@ -100,4 +122,5 @@ class DublinCoreForm(forms.Form):
             vdict = info.to_dict()
             for name in self.fields.keys():
                 if vdict.has_key(name):
-                    self.fields[name].initial = vdict[name]
\ No newline at end of file
+                    self.fields[name].initial = vdict[name]
+