]> git.parisson.com Git - telemeta.git/commitdiff
Add MediaItemAnalysis object to store TimeSide analysis (controller to come)
authoryomguy <yomguy@parisson.com>
Tue, 7 Jun 2011 09:24:41 +0000 (11:24 +0200)
committeryomguy <yomguy@parisson.com>
Tue, 7 Jun 2011 09:24:41 +0000 (11:24 +0200)
DC URI of an element is now its URL. Need 2 MORE settings :

TELEMETA_OAI_HOST =             the default host name to provide dublin core identifier through the OAI data provider
TELEMETA_OAI_REPOSITORY_NAME =  the description of the OAI data provider

INSTALL.rst
telemeta/interop/oai.py
telemeta/models/dublincore.py
telemeta/models/media.py
telemeta/web/base.py

index fe3f402ea0b901fd03c92e4bd57554c9bdd03905..bb28cbfc103a6ace2d853a91e1c903f41eaf0c33 100644 (file)
@@ -155,6 +155,9 @@ Add the following variables:
     EMAIL_HOST =                    your default SMTP server
     DEFAULT_FROM_EMAIL =            the default sending email address 
     
+    TELEMETA_OAI_HOST =             the default host name to provide dublin core identifier through the OAI data provider
+    TELEMETA_OAI_REPOSITORY_NAME =  the description of the OAI data provider
+    
 Just paste the lines below::
 
     LOGIN_URL = '/login'
index 3316e92d06a6580d108909a4fc8728debc8f896e..90e464e505932ad4dab90da6e0144b3e23633ec3 100644 (file)
@@ -400,9 +400,9 @@ class Response(object):
             dc_id, dc = self.parse_dc(dc)
             if dc_id == None:
                 raise Exception("DataSource.get_record() didn't provide an 'identifier' dublin core element")
-            elif dc_id != id:
-                raise Exception("DataSource.get_record() returned an 'identifier' dublin core element "
-                                "which is different from the requested identifier")
+#            elif dc_id != id:
+#                raise Exception("DataSource.get_record() returned an 'identifier' dublin core element "
+#                                "which is different from the requested identifier")
 
             self.set_attributes(self.request, {'identifier': id, 'metadataPrefix': 'oai_dc'})
             container = self.root.appendChild(self.doc.createElement(self.verb))
index 439e7c414e4911feb14bf2a85fe577d434df153f..5fd723ef4bc53949b7915d48e33d11c867523785 100644 (file)
@@ -118,9 +118,11 @@ class Date(Element):
     def __init__(self, start, end=None, refinement=None):
         value = ''
         if start:
-            value = str(start) 
-            if end and start != end:
-                value = 'start=' + value + '; end=' + unicode(end) + ';'
+            value = unicode(start) 
+        elif end:
+            value = unicode(end)
+        else:
+            value = ''
         super(Date, self).__init__('date', value, refinement)            
 
 def media_access_rights(media):
@@ -131,11 +133,7 @@ def media_access_rights(media):
     return 'private'
 
 def media_identifier(media):
-    if media.code:
-        return media.element_type + ':' + media.code
-    elif media.old_code:
-        return media.element_type + ':' + media.old_code
-    return None
+    return 'http://' + settings.TELEMETA_OAI_HOST + '/' + media.element_type + 's/' + unicode(media.id)
 
 def express_collection(collection):
     "Express a collection as a Dublin Core resource"
index 09ae77d348be5ae47fa05543909e78096690ae74..ad922f35b1b9e9f39d927639cbf7bf99eeb05511 100644 (file)
@@ -362,6 +362,20 @@ class MediaItemPerformanceForm(ModelForm):
         super(MediaItemPerformanceForm, self).__init__(*args, **kwds)
         self.fields['instrument'].queryset = Instrument.objects.order_by('name')
         self.fields['alias'].queryset = InstrumentAlias.objects.order_by('name')
+
+class MediaItemAnalysis(ModelCore):
+    "Item analysis result computed by TimeSide"
+
+    element_type = 'analysis'    
+    item  = ForeignKey('MediaItem', related_name="analysis", verbose_name=_('item'))
+    analyzer_id = CharField(_('id'), required=True)
+    analyzer_name = CharField(_('name'))
+    analyzer_value = CharField(_('value'))
+    analyzer_unit = CharField(_('unit'))
+    
+    class Meta(MetaCore):
+        db_table = 'media_analysis'
+        
         
 class MediaPart(MediaResource):
     "Describe an item part"
@@ -378,7 +392,7 @@ class MediaPart(MediaResource):
         return self.title
 
 class Playlist(ModelCore):
-    "Item or collection playlist"
+    "Item, collection or marker playlist"
     element_type = 'playlist'
     public_id      = CharField(_('public_id'), required=True)
     author         = ForeignKey(User, related_name="playlists", db_column="author")
index b744c83253d87a54b25c81a66a658d2b85cec303..6e5a8f608bf62e92004671f9786de331c098480e 100644 (file)
@@ -864,7 +864,7 @@ class WebView(object):
         url         = 'http://' + request.META['HTTP_HOST'] + request.path
         datasource  = TelemetaOAIDataSource()
         admin       = settings.ADMINS[0][1]
-        provider    = oai.DataProvider(datasource, "Telemeta", url, admin)
+        provider    = oai.DataProvider(datasource, settings.TELEMETA_OAI_REPOSITORY_NAME, url, admin)
         args        = request.GET.copy()
         args.update(request.POST)
         return HttpResponse(provider.handle(args), mimetype='text/xml')