api stub
[edumed.git] / catalogue / forms.py
diff --git a/catalogue/forms.py b/catalogue/forms.py
new file mode 100644 (file)
index 0000000..834785f
--- /dev/null
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from django.forms import Form, FileField, CharField, ValidationError
+
+from catalogue.models import Lesson
+
+
+class LessonImportForm(Form):
+    lesson_xml_file = FileField(required=False)
+    lesson_xml = CharField(required=False)
+
+    def clean(self):
+        from django.core.files.base import ContentFile
+
+        if not self.cleaned_data['lesson_xml_file']:
+            if self.cleaned_data['lesson_xml']:
+                self.cleaned_data['lesson_xml_file'] = \
+                    ContentFile(self.cleaned_data['lesson_xml'].encode('utf-8'))
+            else:
+                raise ValidationError(u"Proszę dostarczyć XML.")
+        return super(LessonImportForm, self).clean()
+
+    def save(self, commit=True, **kwargs):
+        return Lesson.publish(self.cleaned_data['book_xml_file'])