"""
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):
'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):
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):
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):