else:
return ''
- def last_revision(self):
- revisions = Revision.objects.filter(element_type=self.element_type, element_id = self.id)
- if revisions:
- return revisions[0]
- else:
- return Revision()
-
def to_dict_with_more(self):
metadata = self.to_dict()
metadata['url'] = get_full_url(reverse('telemeta-collection-detail', kwargs={'public_id':self.pk}))
metadata['doc_status'] = self.document_status()
metadata['countries'] = ';'.join([location.name for location in self.main_countries()])
metadata['ethnic_groups'] = ';'.join([group.value for group in self.ethnic_groups()])
- metadata['last_modification_date'] = unicode(self.last_revision().time)
+ metadata['last_modification_date'] = unicode(self.get_revision().time)
metadata['computed_duration'] = unicode(self.computed_duration())
metadata['computed_size'] = unicode(self.computed_size())
metadata['number_of_items'] = unicode(self.items.all().count())
def keywords(self):
return ContextKeyword.objects.filter(item_relations__item = self)
-
keywords.verbose_name = _('keywords')
@property
def to_dict_with_more(self):
metadata = self.to_dict()
- metadata['url'] = reverse_lazy('telemeta-item-detail', kwargs={'public_id':self.pk})
+ metadata['url'] = get_full_url(reverse('telemeta-item-detail', kwargs={'public_id':self.pk}))
+ metadata['last_modification_date'] = unicode(self.get_revision().time)
+ # metadata['computed_duration'] = unicode(self.computed_duration())
+ metadata['computed_size'] = unicode(self.size())
+
+ keywords = []
+ for keyword in self.keywords():
+ keywords.append(keyword.name)
+ metadata['keywords'] = ';'.join(keywords)
+
+ i = 0
+ for media in self.related.all():
+ metadata['related_media_title' + '_' + str(i)] = media.title
+ if media.url:
+ metadata['related_media_url' + '_' + str(i)] = media.url
+ elif media.url:
+ metadata['related_media_url' + '_' + str(i)] = get_full_url(reverse('telemeta-collection-related',
+ kwargs={'public_id': self.public_id, 'media_id': media.id}))
+ i += 1
+
+ i = 0
+ for performance in self.performances.all():
+ metadata['instrument_name' + '_' + str(i)] = performance.instrument.name
+ metadata['vernacular_name' + '_' + str(i)] = performance.alias.name
+ metadata['musicians' + '_' + str(i)] = performance.musicians
+ i += 1
+
+ i = 0
+ for indentifier in self.identifiers.all():
+ metadata['identifier' + '_' + str(i)] = identifier.identifier
+ metadata['identifier_type' + '_' + str(i)] = identifier.type
+ metadata['identifier_date_last' + '_' + str(i)] = unicode(identifier.date_last)
+ metadata['identifier_notes' + '_' + str(i)] = identifier.notes
+ i += 1
return metadata
+
class MediaItemRelated(MediaRelated):
"Item related media"
template_name = 'telemeta/collection_edit.html'
inlines = [CollectionRelatedInline, CollectionIdentifierInline]
- def form_valid(self, form):
- messages.info(self.request, _("You have successfully updated your collection."))
- return super(CollectionEditView, self).form_valid(form)
+ def forms_valid(self, form, inlines):
+ messages.info(self.request, ugettext_lazy("You have successfully updated your collection."))
+ obj = form.save()
+ obj.set_revision(self.request.user)
+ return super(CollectionEditView, self).forms_valid(form, inlines)
def get_success_url(self):
- #FIXME should be in form_valid but doesn't work with extra_views
- self.get_object().set_revision(self.request.user)
return reverse_lazy('telemeta-collection-detail', kwargs={'public_id':self.kwargs['public_id']})
def get_context_data(self, **kwargs):
template_name = 'telemeta/collection_add.html'
inlines = [CollectionRelatedInline, CollectionIdentifierInline]
+ def forms_valid(self, form, inlines):
+ messages.info(self.request, ugettext_lazy("You have successfully added your collection."))
+ obj = form.save()
+ obj.set_revision(self.request.user)
+ return super(CollectionAddView, self).forms_valid(form, inlines)
+
def get_success_url(self):
return reverse_lazy('telemeta-collection-detail', kwargs={'public_id':self.object.code})
def get_initial(self):
return model_to_dict(self.get_object())
- def get_success_url(self):
- return reverse_lazy('telemeta-collection-detail', kwargs={'public_id':self.object.code})
-
def get_context_data(self, **kwargs):
context = super(CollectionCopyView, self).get_context_data(**kwargs)
collection = self.get_object()
from django.contrib.contenttypes.models import ContentType
from django.views.decorators.http import condition
from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ugettext_lazy
from django.forms.models import model_to_dict
from django.views.generic.edit import DeletionMixin, BaseDeleteView
from django.contrib.sites.models import Site
form_class = MediaItemForm
template_name = 'telemeta/mediaitem_edit.html'
- def form_valid(self, form):
- messages.info(self.request, _("You have successfully updated your item."))
- return super(ItemEditView, self).form_valid(form)
+ def forms_valid(self, form, inlines):
+ messages.info(self.request, ugettext_lazy("You have successfully updated your item."))
+ obj = form.save()
+ obj.set_revision(self.request.user)
+ return super(ItemEditView, self).forms_valid(form, inlines)
def get_success_url(self):
+ #FIXME should be in form_valid but doesn't work with extra_views
+ self.get_object().set_revision(self.request.user)
return reverse_lazy('telemeta-item-detail', kwargs={'public_id':self.object.code})
def get_context_data(self, **kwargs):
item.code = auto_code(collection)
return model_to_dict(item)
+ def forms_valid(self, form, inlines):
+ messages.info(self.request, ugettext_lazy("You have successfully added your item."))
+ obj = form.save()
+ obj.set_revision(self.request.user)
+ return super(ItemAddView, self).forms_valid(form, inlines)
+
def get_success_url(self):
+ #FIXME should be in form_valid but doesn't work with extra_views
+ self.get_object().set_revision(self.request.user)
return reverse_lazy('telemeta-item-detail', kwargs={'public_id':self.object.code})
@method_decorator(permission_required('telemeta.add_mediaitem'))
return model_to_dict(self.get_object())
def get_success_url(self):
+ #FIXME should be in form_valid but doesn't work with extra_views
+ self.get_object().set_revision(self.request.user)
return reverse_lazy('telemeta-item-detail', kwargs={'public_id':self.object.code})
def get_context_data(self, **kwargs):