From 1b97de98f9d2907bedc3dc15ab24b239e895e93e Mon Sep 17 00:00:00 2001 From: Jan Szejko Date: Thu, 13 Apr 2017 16:55:19 +0200 Subject: [PATCH] save tags for new resource --- apps/catalogue/forms.py | 18 ++++++++++-------- apps/catalogue/views.py | 7 ++++--- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/apps/catalogue/forms.py b/apps/catalogue/forms.py index e286a1d5..dc811ab4 100644 --- a/apps/catalogue/forms.py +++ b/apps/catalogue/forms.py @@ -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): @@ -58,10 +54,11 @@ class TagForm(forms.Form): if self.instance: self.field().initial = self.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' + instance.tags.remove(*instance.tags.filter(category=self.category)) + instance.tags.add(*self.cleaned_tags()) def field(self): raise NotImplementedError @@ -72,6 +69,11 @@ class TagForm(forms.Form): def cleaned_tags(self): raise NotImplementedError + def metadata_rows(self): + return '\n'.join( + '%(value)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): diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 4c1a21ce..86dc74db 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -94,6 +94,9 @@ def create_missing(request): doc = Document.objects.create(**kwargs) + for tag_form in tag_forms: + tag_form.save(instance=doc) + cover = request.FILES.get('cover') if cover: uppath = 'uploads/%d/' % doc.pk @@ -116,9 +119,7 @@ def create_missing(request): ''' + form.cleaned_data['publisher'] + ''' ''' + form.cleaned_data['description'] + ''' - ''' + form.cleaned_data['language'] + ''' - ''' + form.cleaned_data['rights'] + ''' - ''' + form.cleaned_data['audience'] + ''' + ''' + '\n'.join(tag_form.metadata_rows() for tag_form in tag_forms) + ''' ''' + cover_url + '''
''' + title + '''
-- 2.20.1