+class DublinCoreForm(forms.Form):
+ about = forms.URLField(verify_exists=False)
+ author = PersonField()
+ title = forms.CharField()
+ epochs = ListField()
+ kinds = ListField()
+ genres = ListField()
+ created_at = forms.DateField()
+ released_to_public_domain_at = forms.DateField()
+ 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)
+ url = forms.URLField(verify_exists=False)
+ parts = 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, widget=forms.HiddenInput)
+
+ def __init__(self, *args, **kwargs):
+ info = kwargs.pop('info', None)
+ super(DublinCoreForm, self).__init__(*args, **kwargs)
+
+ if isinstance(info, dcparser.BookInfo):
+ 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