]> git.parisson.com Git - telemeta.git/commitdiff
add Format (LAM) and various enumerations, add last revision to item detail
authoryomguy <yomguy@parisson.com>
Mon, 20 Feb 2012 15:58:37 +0000 (16:58 +0100)
committeryomguy <yomguy@parisson.com>
Mon, 20 Feb 2012 15:58:37 +0000 (16:58 +0100)
README.rst
telemeta/admin.py
telemeta/models/enum.py
telemeta/models/media.py
telemeta/templates/telemeta/mediaitem_detail.html
telemeta/views/base.py
tools/dev/pypi.sh [new file with mode: 0755]

index ca6fa92e52814d4eb0f3b40733e81f51a0df6cab..716704bb122011c9f970ca933538193a7eb45e09 100644 (file)
@@ -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)
index d99517285fdd6639e4b47bd67ea1b07c1ada057f..880fa092532d4568e568dd4bfaa4a6da1ec38806 100644 (file)
@@ -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)
index 49921f527fcbb230a279ea875682a98e685113e0..4efdf87378316e48b386cb6c307d520f3c2ddd65 100644 (file)
@@ -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")
 
index fbbd65d2fd45a3e6342f4ea320ea5229e25a2329..59257e49846a454997c7527adf43570ecd64464e 100644 (file)
@@ -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
+
index 2a625c036949de0e9786e7f4821bdfcb6fb81b43..0c585c7554e8e06be211a024e81879911052e4f9 100644 (file)
@@ -195,6 +195,11 @@ Item : <a href="{% url telemeta-item-detail item.public_id %}">{{ item }}</a>
 
             <dd>{% 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 %}</dd>
 
+            {% if last_revision %}
+            <dt>{% trans "Last modification" %}</dt>
+            <dd>{{ last_revision.time }}</dd>
+            {% endif %}
+            
         </dl>
         {% endblock general_info %}
     </div>
index 9d5d10a84f2fc5f2d2d844dc9d195027b1c20540..82d42c8c7f476e548ad34184ccde7d8e9b5edeca 100644 (file)
@@ -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 (executable)
index 0000000..12be642
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+python setup.py register
+python setup.py sdist upload
+