From 7ed402ed0a7fcbb051a948e42dd33b06347c6849 Mon Sep 17 00:00:00 2001 From: yomguy Date: Mon, 20 Feb 2012 16:58:37 +0100 Subject: [PATCH] add Format (LAM) and various enumerations, add last revision to item detail --- README.rst | 2 +- telemeta/admin.py | 4 ++ telemeta/models/enum.py | 38 ++++++++++++++++--- telemeta/models/media.py | 30 +++++++++++++++ .../templates/telemeta/mediaitem_detail.html | 5 +++ telemeta/views/base.py | 3 +- tools/dev/pypi.sh | 5 +++ 7 files changed, 80 insertions(+), 7 deletions(-) create mode 100755 tools/dev/pypi.sh diff --git a/README.rst b/README.rst index ca6fa92e..716704bb 100644 --- a/README.rst +++ b/README.rst @@ -85,7 +85,7 @@ To get the lastest development version, you need subversion and run:: $ git clone http://vcs.parisson.com/git/telemeta.git -Licence +License ======= CeCILL v2 (see LICENSE) diff --git a/telemeta/admin.py b/telemeta/admin.py index d9951728..880fa092 100644 --- a/telemeta/admin.py +++ b/telemeta/admin.py @@ -73,6 +73,8 @@ class RevisionAdmin(admin.ModelAdmin): search_fields = ['element_id', 'user'] ordering = ['-time'] +class FormatAdmin(admin.ModelAdmin): + search_fields = ['code', 'vendor'] admin.site.register(MediaFonds, MediaFondsAdmin) admin.site.register(MediaCorpus, MediaCorpusAdmin) @@ -96,3 +98,5 @@ admin.site.register(LocationRelation, LocationRelationAdmin) admin.site.register(Language, LanguageAdmin) admin.site.register(Revision, RevisionAdmin) + +admin.site.register(Format, FormatAdmin) diff --git a/telemeta/models/enum.py b/telemeta/models/enum.py index 49921f52..4efdf873 100644 --- a/telemeta/models/enum.py +++ b/telemeta/models/enum.py @@ -39,7 +39,7 @@ from django.utils.translation import ugettext_lazy as _ class Enumeration(ModelCore): "Abstract enumerations base class" value = CharField(_('value'), required=True, unique=True) - + def __unicode__(self): return self.value @@ -77,7 +77,7 @@ class MetadataAuthor(Enumeration): db_table = 'metadata_authors' verbose_name = _("record author") -class MetadataWriter(Enumeration): +class MetadataWriter(Enumeration): "Collection metadata writer" class Meta(MetaEnumeration): @@ -85,7 +85,7 @@ class MetadataWriter(Enumeration): verbose_name = _("record writer") class LegalRight(Enumeration): - "Collection legal rights" + "Collection legal rights" class Meta(MetaEnumeration): db_table = 'legal_rights' @@ -126,7 +126,7 @@ class ContextKeyword(Enumeration): db_table = 'context_keywords' verbose_name = _("keyword") -class Publisher(Enumeration): +class Publisher(Enumeration): "Collection publisher" class Meta(MetaEnumeration): @@ -153,7 +153,7 @@ class EthnicGroup(Enumeration): verbose_name = _('population / social group') class EthnicGroupAlias(ModelCore): - "Item ethnic group other name" + "Item ethnic group other name" ethnic_group = ForeignKey('EthnicGroup', related_name="aliases", verbose_name=_('population / social group')) value = CharField(_('name'), required=True) @@ -162,4 +162,32 @@ class EthnicGroupAlias(ModelCore): unique_together = (('ethnic_group', 'value'),) ordering = ['ethnic_group__value'] +# Tape formats +class TapeLength(Enumeration): + "Tape length (cm)" + + class Meta(MetaEnumeration): + db_table = 'tape_length' + verbose_name = _("tape length (cm)") + +class TapeWidth(Enumeration): + "Tape width (inch)" + + class Meta(MetaEnumeration): + db_table = 'tape_width' + verbose_name = _("tape width (inch)") + +class TapeSpeed(Enumeration): + "Tape speed (m/s)" + + class Meta(MetaEnumeration): + db_table = 'tape_speed' + verbose_name = _("tape speed (m/s)") + +class TapeVendor(Enumeration): + "Tape vendor" + + class Meta(MetaEnumeration): + db_table = 'tape_vendor' + verbose_name = _("tape vendor") diff --git a/telemeta/models/media.py b/telemeta/models/media.py index fbbd65d2..59257e49 100644 --- a/telemeta/models/media.py +++ b/telemeta/models/media.py @@ -675,3 +675,33 @@ class MediaFondsRelated(MediaRelated): verbose_name = _('fonds related media') verbose_name_plural = _('fonds related media') + +class Format(ModelCore): + """ Physical format object as proposed by the LAM""" + + item = ForeignKey(MediaItem, related_name="formats", verbose_name=_('item')) + original_code = CharField(_('original code'), required=True) + support_number = CharField(_('support number')) + status = CharField(_('status')) + conservation_state = CharField(_('conservation state')) + comments = TextField(_('comments')) + + tape_length = WeakForeignKey(TapeLength, related_name="formats", verbose_name = _("tape length (cm)")) + tape_width = WeakForeignKey(TapeWidth, related_name="formats", verbose_name = _("tape width (inch)")) + tape_speed = WeakForeignKey(TapeSpeed, related_name="formats", verbose_name = _("tape speed (m/s)")) + tape_vendor = WeakForeignKey(TapeVendor, related_name="formats") + tape_thickness = CharField(_('tape thickness (um)')) + tape_diameter = CharField(_('tape diameter (mm)')) + tape_reference = CharField(_('tape reference')) + + class Meta(MetaCore): + db_table = 'media_formats' + verbose_name = _('format') + + def __unicode__(self): + return self.original_code + + @property + def public_id(self): + return self.original_code + diff --git a/telemeta/templates/telemeta/mediaitem_detail.html b/telemeta/templates/telemeta/mediaitem_detail.html index 2a625c03..0c585c75 100644 --- a/telemeta/templates/telemeta/mediaitem_detail.html +++ b/telemeta/templates/telemeta/mediaitem_detail.html @@ -195,6 +195,11 @@ Item : {{ item }}
{% if item.recorded_from_date %}{{ item.recorded_from_date }}{% endif %}{% if item.recorded_from_date and item.recorded_to_date%} - {% endif %}{% if item.recorded_to_date %}{{ item.recorded_to_date}}{% endif %}
+ {% if last_revision %} +
{% trans "Last modification" %}
+
{{ last_revision.time }}
+ {% endif %} + {% endblock general_info %} diff --git a/telemeta/views/base.py b/telemeta/views/base.py index 9d5d10a8..82d42c8c 100644 --- a/telemeta/views/base.py +++ b/telemeta/views/base.py @@ -629,6 +629,7 @@ class ItemView(object): related_media = MediaItemRelated.objects.filter(item=item) check_related_media(related_media) + last_revision = Revision.objects.filter(element_type='item', element_id=item.id).order_by('-time')[0] return render(request, template, {'item': item, 'export_formats': formats, @@ -636,7 +637,7 @@ class ItemView(object): 'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), 'previous' : previous, 'next' : next, 'marker': marker_id, 'playlists' : playlists, 'public_access': public_access, 'width': width, 'height': height, - 'related_media': related_media, 'mime_type': mime_type, + 'related_media': related_media, 'mime_type': mime_type, 'last_revision': last_revision, }) @method_decorator(permission_required('telemeta.change_mediaitem')) diff --git a/tools/dev/pypi.sh b/tools/dev/pypi.sh new file mode 100755 index 00000000..12be642d --- /dev/null +++ b/tools/dev/pypi.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +python setup.py register +python setup.py sdist upload + -- 2.39.5