From: Guillaume Pellerin Date: Wed, 8 Jul 2015 12:03:25 +0000 (+0200) Subject: exclude item.public_access for non staff, prepare 1.6 info X-Git-Tag: 1.6a^2~8^2 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=21fd79c3a290d67626197094a0cb5230538684fd;p=telemeta.git exclude item.public_access for non staff, prepare 1.6 info --- diff --git a/README.rst b/README.rst index 0a768974..e6fa287e 100644 --- a/README.rst +++ b/README.rst @@ -55,6 +55,11 @@ The processing engine of Telemeta is a separate project called `TimeSide ` that is compatible with all platforms and facilitate the install and deployement procedures. * Add an EPUB3 audio book generator for corpus and collection * Add more 404 pages exceptions diff --git a/telemeta/forms/media.py b/telemeta/forms/media.py index 3d37995b..d41aa13f 100644 --- a/telemeta/forms/media.py +++ b/telemeta/forms/media.py @@ -93,11 +93,20 @@ class MediaItemForm(ModelForm): class Meta: model = MediaItem exclude = model.exclude + # print exclude def clean_code(self): return self.cleaned_data['code'] or None +class RestrictedMediaItemForm(MediaItemForm): + + class Meta: + model = MediaItem + exclude = model.restricted + print exclude + + class PlaylistForm(ModelForm): class Meta: diff --git a/telemeta/models/item.py b/telemeta/models/item.py index cabe28ec..317579ca 100644 --- a/telemeta/models/item.py +++ b/telemeta/models/item.py @@ -132,6 +132,13 @@ class MediaItem(MediaResource): 'publishing_date', 'scientist', 'topic', 'summary', 'contributor', ] + restricted = ['copied_from_item', 'mimetype', + 'organization', 'depositor', 'rights', + 'recordist', 'digitalist', 'digitization_date', + 'publishing_date', 'scientist', 'topic', + 'summary', 'contributor', 'public_access'] + + def keywords(self): return ContextKeyword.objects.filter(item_relations__item = self) keywords.verbose_name = _('keywords') diff --git a/telemeta/views/item.py b/telemeta/views/item.py index 8b79878d..eba649a7 100644 --- a/telemeta/views/item.py +++ b/telemeta/views/item.py @@ -458,9 +458,14 @@ class ItemViewMixin(ItemBaseMixin): class ItemEditView(ItemViewMixin, UpdateWithInlinesView): - form_class = MediaItemForm template_name = 'telemeta/mediaitem_edit.html' + def get_form_class(self): + if self.request.user.is_staff: + return MediaItemForm + else: + return RestrictedMediaItemForm + def forms_valid(self, form, inlines): messages.info(self.request, ugettext_lazy("You have successfully updated your item.")) item = form.save()