default sort order for documents
[redakcja.git] / apps / catalogue / forms.py
index e286a1d..36dbef7 100644 (file)
@@ -26,12 +26,8 @@ class DocumentCreateForm(forms.Form):
     """
     owner_organization = forms.CharField(required=False)
     title = forms.CharField()
-    language = forms.CharField()
     publisher = forms.CharField(required=False)
     description = forms.CharField(required=False)
-    rights = forms.CharField(required=False)
-    audience = forms.CharField()
-    
     cover = forms.FileField(required=False)
 
     def clean_cover(self):
@@ -56,22 +52,27 @@ class TagForm(forms.Form):
                 'data-content': category.tutorial,
             })
         if self.instance:
-            self.field().initial = self.initial()
+            self.field().initial = self.get_initial()
 
-    def save(self):
-        assert self.instance, 'No instance provided'
-        self.instance.tags.remove(*self.instance.tags.filter(category=self.category))
-        self.instance.tags.add(self.cleaned_tags())
+    def save(self, instance=None):
+        instance = instance or self.instance
+        assert instance, 'No instance provided'
+        self.category.set_tags_for(instance, self.cleaned_tags())
 
     def field(self):
         raise NotImplementedError
 
-    def initial(self):
+    def get_initial(self):
         raise NotImplementedError
 
     def cleaned_tags(self):
         raise NotImplementedError
 
+    def metadata_rows(self):
+        return '\n'.join(
+            '<dc:%(name)s>%(value)s</dc:%(name)s>' % {'name': tag.category.dc_tag, 'value': tag.dc_value}
+            for tag in self.cleaned_tags())
+
 
 class TagSelect(forms.Select):
     def render_option(self, selected_choices, option_value, option_label):
@@ -106,7 +107,7 @@ class TagSingleForm(TagForm):
     def field(self):
         return self.fields['tag']
 
-    def initial(self):
+    def get_initial(self):
         return self.instance.tags.get(category=self.category)
 
     def cleaned_tags(self):
@@ -124,7 +125,7 @@ class TagMultipleForm(TagForm):
     def field(self):
         return self.fields['tags']
 
-    def initial(self):
+    def get_initial(self):
         return self.instance.tags.filter(category=self.category)
 
     def cleaned_tags(self):