Poprawiony blad w zapisywaniu DC.
[redakcja.git] / apps / explorer / forms.py
index e648aa5..af1534e 100644 (file)
@@ -3,13 +3,16 @@ from django import forms
 from lxml import etree
 from librarian import dcparser
 
 from lxml import etree
 from librarian import dcparser
 
+
 from explorer import models
 
 
 class BookForm(forms.Form):
 from explorer import models
 
 
 class BookForm(forms.Form):
-    text = forms.CharField(widget=forms.Textarea)
-    commit_message = forms.CharField()
-    user = forms.CharField()
+    content = forms.CharField(widget=forms.Textarea)
+    commit_message = forms.CharField(required=False)
+
+class BookUploadForm(forms.Form):
+    file = forms.FileField()
 
 class ImageFoldersForm(forms.Form):
     folders = forms.ChoiceField(required=False)
 
 class ImageFoldersForm(forms.Form):
     folders = forms.ChoiceField(required=False)
@@ -38,6 +41,8 @@ class DublinCoreForm(forms.Form):
     license = forms.CharField(required=False)
     license_description = forms.CharField(widget=forms.Textarea, required=False)
     
     license = forms.CharField(required=False)
     license_description = forms.CharField(widget=forms.Textarea, required=False)
     
+    commit_message = forms.CharField(required=False)
+    
     def __init__(self, *args, **kwargs):
         text = None
         if 'text' in kwargs:
     def __init__(self, *args, **kwargs):
         text = None
         if 'text' in kwargs:
@@ -48,20 +53,4 @@ class DublinCoreForm(forms.Form):
         if text is not None:
             book_info = dcparser.BookInfo.from_string(text)
             for name, value in book_info.to_dict().items():
         if text is not None:
             book_info = dcparser.BookInfo.from_string(text)
             for name, value in book_info.to_dict().items():
-                self.fields[name].initial = value
-    
-    def save(self, repository, path):
-        file_contents = repository.get_file(path).data()
-        doc = etree.fromstring(file_contents)
-                
-        book_info = dcparser.BookInfo()
-        for name, value in self.cleaned_data.items():
-            if value is not None and value != '':
-                setattr(book_info, name, value)
-        rdf = etree.XML(book_info.to_xml())
-        
-        old_rdf = doc.getroottree().find('//{http://www.w3.org/1999/02/22-rdf-syntax-ns#}RDF')
-        old_rdf.getparent().remove(old_rdf)
-        doc.insert(0, rdf)
-        repository.add_file(path, unicode(etree.tostring(doc), 'utf-8'))
-
+                self.fields[name].initial = value
\ No newline at end of file