Index: telemeta/htdocs/css/telemeta.css
===================================================================
--- telemeta/htdocs/css/telemeta.css	(revision 33b65e386278ae14a10234bc63d6affe996d8c40)
+++ telemeta/htdocs/css/telemeta.css	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -1,6 +1,3 @@
-body {
-    font-family: Verdana;
-    font-size: 80%;
-}
+body { font-family: Verdana; font-size: 80%; }
 
 a:link, a:visited {
@@ -10,42 +7,27 @@
 }
 
-a:link:hover, a:visited:hover {
-    background-color:#EEEEEE;
-    color:#555555;
-}
+a:link:hover, a:visited:hover { background-color:#EEEEEE; color:#555555; }
+a img { border: none; }
 
 #header {
-    border-bottom: solid 1px black;
     padding-bottom: 0.2em;
     padding-top: 0.2em;
 }
-#header a {
-    text-decoration: none;
+
+#logo { padding-top: 1ex; }
+#logo a, #logo a:hover { border: none; background: transparent; }
+
+#menu a, #menu a:hover { border: none;}
+#menu { 
+    text-align: right; 
+    clear: right; 
+    background: #DDDDDD; 
+    padding: 1px;
+    border-bottom: solid 1px black;
 }
-#header a img {
-    border: none;
-}
+#submenu { clear: right; float: right; padding-top: 1em; }
+#submenu a { color: #000066; }
 
-
-#menu {
-    text-align: right;
-    clear: right;
-}
-
-#submenu {
-    clear: right;
-    float: right;
-    padding-top: 1em;
-}
-#submenu a {
-    color: #000066;
-}
-
-#quick_search {
-    position: absolute;
-    top: 2em;
-    right: 1em;
-}
-
+#quick_search { position: absolute; top: 2em; right: 1em; }
 #quick_search input {
     vertical-align: middle;
@@ -53,6 +35,5 @@
 }
 
-#quick_search_pattern {
-}
+#quick_search_pattern { }
 
 .item_visualization {
@@ -62,12 +43,6 @@
   margin-top: 1em;
 }
-.item_visualization select {
-  width: 200px;
-}
-
-.item_visualization img {
-  width: 300px;
-  border: solid 1px black;
-}
+.item_visualization select { width: 200px; }
+.item_visualization img { width: 300px; border: solid 1px black; }
 
 
@@ -164,5 +139,3 @@
 /* HTML dublin core display */
 
-table.dublincore {
-    width: auto;
-}
+table.dublincore { width: auto; }
Index: telemeta/models.py
===================================================================
--- telemeta/models.py	(revision 01bf9f7c60b41e6815bd3cdaaad033f94e6ab2ec)
+++ telemeta/models.py	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -8,10 +8,15 @@
 # Author: Olivier Guilyardi <olivier@samalyse.com>
 
-import telemeta
 from django.db import models
 from django.db.models import Q
+from django.core.exceptions import ObjectDoesNotExist
+from django.core import validators
+
+import telemeta
 from telemeta.core import *
-from django.core.exceptions import ObjectDoesNotExist
 from telemeta import dublincore as dc
+
+# Regular (sub) expression for matching/validating media objects IDs
+media_id_regex = r'[0-9A-Za-z._:%?-]+'
 
 class MediaModel(Component):
@@ -26,25 +31,20 @@
         return fields_dict
 
-#    def dc_elements(self):        
-#        """Return model fields mapped to Dublin Core elements, as a dict of 
-#        the form: {dc_element_name: [value1, value2, ....], ...}
-#        """
-#        fields_dict = {}
-#        for field in self._meta.fields:
-#            if (hasattr(field, 'dc_element')):
-#                if fields_dict.has_key(field.dc_element):
-#                    fields_dict[field.dc_element].append(getattr(self, field.name))
-#                else:
-#                    fields_dict[field.dc_element] = [getattr(self, field.name)]
-#                    
-#        return fields_dict
-
 class PhysicalFormat(models.Model):
     value = models.CharField(maxlength=250)
-    is_dictionary = True
+    is_enumeration = True
     def __str__(self):
         return self.value
     class Meta:
         ordering = ['value']
+        
+class PublishingStatus(models.Model):
+    value = models.CharField(maxlength=250)
+    is_enumeration = True
+    def __str__(self):
+        return self.value
+    class Meta:
+        ordering = ['value']
+        verbose_name_plural = "Publishing status"
         
 class MediaCollectionManager(models.Manager):
@@ -56,18 +56,20 @@
         )
 
-
 class MediaCollection(models.Model, MediaCore):
     "Group related media items"
+
+    id_regex = media_id_regex
+    id_validator = validators.MatchesRegularExpression('^' + id_regex + '$')
 
     publisher_reference = models.CharField(maxlength=250, blank=True)
     physical_format = models.CharField(maxlength=250, blank=True)
     id = models.CharField(maxlength=250, primary_key=True, 
-        verbose_name='identifier')
+        verbose_name='identifier', validator_list=[id_validator])
     title = models.CharField(maxlength=250)
     native_title = models.CharField(maxlength=250, blank=True)
     physical_items_num = models.CharField(maxlength=250, blank=True) 
     publishing_status = models.CharField(maxlength=250, blank=True)
-    is_original = models.CharField(maxlength=250)
-    is_full_copy = models.CharField(maxlength=250)
+    is_original = models.CharField(maxlength=250, blank=True)
+    is_full_copy = models.CharField(maxlength=250, blank=True)
     copied_from = models.ForeignKey('self', null=True, blank=True)
     creator = models.CharField(maxlength=250)
@@ -147,4 +149,7 @@
     "Describe a item with metadata" 
 
+    id_regex = media_id_regex
+    id_validator = validators.MatchesRegularExpression('^' + id_regex + '$')
+
     ref = models.CharField(maxlength=250, blank=True)
     format = models.CharField(maxlength=250, blank=True)
@@ -152,5 +157,5 @@
     face_plage = models.CharField(maxlength=250, blank=True)
     id = models.CharField(maxlength=250, primary_key=True, 
-        verbose_name='identifier')
+        verbose_name='identifier', validator_list=[id_validator])
     duree = models.CharField(maxlength=250, blank=True)
     dates_enregistr = models.CharField(maxlength=250, blank=True)
Index: telemeta/templates/admin.html
===================================================================
--- telemeta/templates/admin.html	(revision 7b2ff59beed06bc4607868bead2c9c9c7606a14a)
+++ telemeta/templates/admin.html	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -11,12 +11,13 @@
 <li>Users</li>
 
-{% if dictionaries %}
-    <li>Dictionaries
+{% if enumerations %}
+    <li>Enumerations
     <ul>
-    {% for d in dictionaries %}
-        {%ifequal d.id dictionary_id %}
-            <li class="active">{{ d.name|capfirst }}</li>
+    {% for enum in enumerations %}
+        {%ifequal enum.id enumeration_id %}
+            <li class="active">{{ enum.name|capfirst }}</li>
         {%else%}
-            <li><a href="{% url telemeta-dictionary-edit d.id %}">{{ d.name|capfirst }}</a></li>
+            <li><a href="{% url telemeta-enumeration-edit enum.id %}">
+                {{ enum.name|capfirst }}</a></li>
         {%endifequal%}
     {% endfor %}
@@ -28,9 +29,4 @@
 <div class="tabcontents">
     {% block tabcontents %}
-    
-    
-    
-    
-    
     {% endblock %}
 </div>
Index: telemeta/templates/base.html
===================================================================
--- telemeta/templates/base.html	(revision 01bf9f7c60b41e6815bd3cdaaad033f94e6ab2ec)
+++ telemeta/templates/base.html	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -14,5 +14,7 @@
 -->
 <div id="header">
-<a href="/"><img src="/images/logo.png"></a>
+<div id="logo">
+<a href="{% url telemeta-home %}"><img src="/images/logo.png"></a>
+</div>
 
 <div id="quick_search">
Index: lemeta/templates/dictionary_edit.html
===================================================================
--- telemeta/templates/dictionary_edit.html	(revision 7b2ff59beed06bc4607868bead2c9c9c7606a14a)
+++ 	(revision )
@@ -1,48 +1,0 @@
-{% extends "admin.html" %}
-
-{% block tabcontents %}
-    <h4>Manage {{ dictionary_name_plural|capfirst }}</h4>
-
-
-
- <form class="addnew" id="addenum" method="post"
-        action="{% url telemeta-dictionary-add dictionary_id %}">
-  <fieldset>
-   <legend>Add {{ dictionary_name|capfirst }}</legend>
-   <div class="field">
-    <label>Value: <input type="text" name="value"></label>
-
-   </div>
-   <div class="buttons">
-    <input type="submit" name="add" value="Add">
-   </div>
-  </fieldset>
- </form>
- {% if dictionary_values %}
- <form method="POST" action="{% url telemeta-dictionary-update dictionary_id %}">
-  <table class="listing">
-   <thead>
-    <tr><th class="sel">&nbsp;</th><th>Value</th>
-
-    </tr>
-   </thead><tbody>
-    {% for record in dictionary_values %}
-    <tr>
-     <td><input type="checkbox" name="sel" value="{{record.id}}" /></td>
-     <td><a href="{% url telemeta-dictionary-record-edit dictionary_id,record.id %}">
-        {{record.value}}</a></td>
-    </tr>
-    {% endfor %}
-    </tbody>
-  </table>
-  <div class="buttons">
-   <input type="submit" name="remove" value="Remove selected items" />
-  </div>
- </form>
- {% else %}
-    <p class="help">This dictionary is empty.</p>
- {% endif %}
-
-  <br style="clear: right"/>
-
-{% endblock %}
Index: lemeta/templates/dictionary_edit_value.html
===================================================================
--- telemeta/templates/dictionary_edit_value.html	(revision 7b2ff59beed06bc4607868bead2c9c9c7606a14a)
+++ 	(revision )
@@ -1,22 +1,0 @@
-{% extends "admin.html" %}
-
-{% block tabcontents %}
-    <h4>Manage {{ dictionary_name_plural|capfirst }}</h4>
-
- <form class="mod" id="addenum" method="post"
-        action="{% url telemeta-dictionary-record-update dictionary_id,dictionary_record.id %}">
-  <fieldset>
-   <legend>Modify {{ dictionary_name|capfirst }}</legend>
-   <div class="field">
-    <label>Value: <input type="text" name="value" value="{{dictionary_record.value}}" /></label>
-
-   </div>
-   <div class="buttons">
-    <input type="submit" name="save" value="Save">
-    <input type="submit" name="cancel" value="Cancel">
-   </div>
-  </fieldset>
- </form>
-  <br style="clear: right"/>
-
-{% endblock %}
Index: telemeta/templates/enumeration_edit.html
===================================================================
--- telemeta/templates/enumeration_edit.html	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
+++ telemeta/templates/enumeration_edit.html	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -0,0 +1,47 @@
+{% extends "admin.html" %}
+
+{% block tabcontents %}
+    <h4>Manage {{ enumeration_name_plural|capfirst }}</h4>
+
+
+
+ <form class="addnew" id="addenum" method="post"
+        action="{% url telemeta-enumeration-add enumeration_id %}">
+  <fieldset>
+   <legend>Add {{ enumeration_name|capfirst }}</legend>
+   <div class="field">
+    <label>Value: <input type="text" name="value"></label>
+
+   </div>
+   <div class="buttons">
+    <input type="submit" name="add" value="Add">
+   </div>
+  </fieldset>
+ </form>
+ {% if enumeration_values %}
+ <form method="POST" action="{% url telemeta-enumeration-update enumeration_id %}">
+  <table class="listing">
+   <thead>
+    <tr><th class="sel">&nbsp;</th><th>Value</th>
+
+    </tr>
+   </thead><tbody>
+    {% for record in enumeration_values %}
+    <tr>
+     <td><input type="checkbox" name="sel" value="{{record.id}}" /></td>
+     <td><a href="{% url telemeta-enumeration-record-edit enumeration_id,record.id %}">
+        {{record.value}}</a></td>
+    </tr>
+    {% endfor %}
+    </tbody>
+  </table>
+  <div class="buttons">
+   <input type="submit" name="remove" value="Remove selected items" />
+  </div>
+ </form>
+ {% else %}
+    <p class="help">This enumeration is empty.</p>
+ {% endif %}
+
+  <br style="clear: right"/>
+{% endblock %}
Index: telemeta/templates/enumeration_edit_value.html
===================================================================
--- telemeta/templates/enumeration_edit_value.html	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
+++ telemeta/templates/enumeration_edit_value.html	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -0,0 +1,22 @@
+{% extends "admin.html" %}
+
+{% block tabcontents %}
+    <h4>Manage {{ enumeration_name_plural|capfirst }}</h4>
+
+ <form class="mod" id="addenum" method="post"
+    action="{% url telemeta-enumeration-record-update enumeration_id,enumeration_record.id %}">
+  <fieldset>
+   <legend>Modify {{ enumeration_name|capfirst }}</legend>
+   <div class="field">
+    <label>Value: <input type="text" name="value" value="{{enumeration_record.value}}" /></label>
+
+   </div>
+   <div class="buttons">
+    <input type="submit" name="save" value="Save">
+    <input type="submit" name="cancel" value="Cancel">
+   </div>
+  </fieldset>
+ </form>
+  <br style="clear: right"/>
+
+{% endblock %}
Index: telemeta/urls.py
===================================================================
--- telemeta/urls.py	(revision 01bf9f7c60b41e6815bd3cdaaad033f94e6ab2ec)
+++ telemeta/urls.py	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -21,6 +21,10 @@
 all_collections = { 'queryset': MediaCollection.objects.all(), }
 
+# ID's regular expressions
+i_ex = MediaItem.id_regex
+c_ex = MediaCollection.id_regex
+
 urlpatterns = patterns('',
-    (r'^$', web_view.index),
+    url(r'^$', web_view.index, name="telemeta-home"),
 
     # items
@@ -28,16 +32,16 @@
         dict(all_items, paginate_by=20, template_name="mediaitem_list.html"),
         name="telemeta-items"),
-    url(r'^items/(?P<item_id>[0-9A-Z._:%?-]+)/$', web_view.item_detail, 
+    url(r'^items/(?P<item_id>' + i_ex + ')/$', web_view.item_detail, 
         name="telemeta-item-detail"),
-    url(r'^items/(?P<item_id>[0-9A-Z._:%?-]+)/dc/$', web_view.item_detail, 
+    url(r'^items/(?P<item_id>' + i_ex + ')/dc/$', web_view.item_detail, 
         {'template': 'mediaitem_detail_dc.html'},
         name="telemeta-item-dublincore"),
-    url(r'^items/(?P<item_id>[0-9A-Z._:%?-]+)/dc/xml/$', web_view.item_detail, 
+    url(r'^items/(?P<item_id>' + i_ex + ')/dc/xml/$', web_view.item_detail, 
         {'format': 'dublin_core_xml'},
         name="telemeta-item-dublincore-xml"),
-    url(r'^items/(?P<item_id>[0-9A-Z._:%?-]+)/download/(?P<format>[0-9A-Z]+)/$', 
+    url(r'^items/(?P<item_id>' + i_ex + ')/download/(?P<format>[0-9A-Z]+)/$', 
         web_view.item_export,
         name="telemeta-item-export"),
-    url(r'^items/(?P<item_id>[0-9A-Z._:%?-]+)/visualize/(?P<visualizer_id>[0-9a-z]+)/$', 
+    url(r'^items/(?P<item_id>' + i_ex + ')/visualize/(?P<visualizer_id>[0-9a-z]+)/$', 
         web_view.item_visualize,
         name="telemeta-item-visualize"),
@@ -51,9 +55,9 @@
         'django.views.generic.list_detail.object_list',
         dict(all_collections, paginate_by=20)),
-    url(r'^collections/(?P<object_id>[0-9A-Z._%?-]+)/$', 
+    url(r'^collections/(?P<object_id>' + c_ex + ')/$', 
         'django.views.generic.list_detail.object_detail',
         dict(all_collections, template_name="collection_detail.html"),
         name="telemeta-collection-detail"),
-    url(r'^collections/(?P<object_id>[0-9A-Z._%?-]+)/dc/$', 
+    url(r'^collections/(?P<object_id>' + c_ex + ')/dc/$', 
         'django.views.generic.list_detail.object_detail',
         dict(all_collections, template_name="collection_detail_dc.html"),
@@ -66,22 +70,22 @@
     url(r'^admin/$', web_view.admin_index, name="telemeta-admin"),        
 
-    # dictionaries administration
-    url(r'^admin/dictionaries/(?P<dictionary_id>[0-9a-z]+)/$', 
-        web_view.edit_dictionary ,
-        name="telemeta-dictionary-edit"),        
-    url(r'^admin/dictionaries/(?P<dictionary_id>[0-9a-z]+)/add/$', 
-        web_view.add_to_dictionary,
-        name="telemeta-dictionary-add"),        
-    url(r'^admin/dictionaries/(?P<dictionary_id>[0-9a-z]+)/update/$', 
-        web_view.update_dictionary,
-        name="telemeta-dictionary-update"),        
-    url(r'^admin/dictionaries/(?P<dictionary_id>[0-9a-z]+)/(?P<value_id>[0-9]+)/$',
-        web_view.edit_dictionary_value,
-        name="telemeta-dictionary-record-edit"),   
-
-    url(r'^admin/dictionaries/(?P<dictionary_id>[0-9a-z]+)/(?P<value_id>[0-9]+)/update/$',
-        web_view.update_dictionary_value, 
-        name="telemeta-dictionary-record-update"),   
-
+    # enumerations administration
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/$', 
+        web_view.edit_enumeration ,
+        name="telemeta-enumeration-edit"),        
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/add/$', 
+        web_view.add_to_enumeration,
+        name="telemeta-enumeration-add"),        
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/update/$', 
+        web_view.update_enumeration,
+        name="telemeta-enumeration-update"),        
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/'
+        + r'(?P<value_id>[0-9]+)/$',
+        web_view.edit_enumeration_value,
+        name="telemeta-enumeration-record-edit"),   
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/'
+        + r'(?P<value_id>[0-9]+)/update/$',
+        web_view.update_enumeration_value, 
+        name="telemeta-enumeration-record-update"),   
 
     # CSS+Images (FIXME: for developement only)
Index: telemeta/views/web.py
===================================================================
--- telemeta/views/web.py	(revision 01bf9f7c60b41e6815bd3cdaaad033f94e6ab2ec)
+++ telemeta/views/web.py	(revision 3815c512493ac017e7c62e8aa0ce1ab5e01f73e3)
@@ -102,22 +102,22 @@
                      'items': items})
 
-    def __get_dictionary_list(self):
+    def __get_enumerations_list(self):
         from django.db.models import get_models
         models = get_models(telemeta.models)
 
-        dictionaries = []
+        enumerations = []
         for model in models:
-            if getattr(model, "is_dictionary", False):
-                dictionaries.append({"name": model._meta.verbose_name_plural, 
+            if getattr(model, "is_enumeration", False):
+                enumerations.append({"name": model._meta.verbose_name_plural, 
                     "id": model._meta.module_name})
-        return dictionaries                    
+        return enumerations                    
     
     def __get_admin_context_vars(self):
-        return {"dictionaries": self.__get_dictionary_list()}
+        return {"enumerations": self.__get_enumerations_list()}
 
     def admin_index(self, request):
         return render_to_response('admin.html', self. __get_admin_context_vars())
 
-    def __get_dictionary(self, id):
+    def __get_enumeration(self, id):
         from django.db.models import get_models
         models = get_models(telemeta.models)
@@ -130,111 +130,67 @@
 
         return model
-        
 
-    def edit_dictionary(self, request, dictionary_id):        
+    def edit_enumeration(self, request, enumeration_id):        
 
-        dictionary  = self.__get_dictionary(dictionary_id)
-        if dictionary == None:
+        enumeration  = self.__get_enumeration(enumeration_id)
+        if enumeration == None:
             raise Http404
 
         vars = self.__get_admin_context_vars()
-        vars["dictionary_id"] = dictionary._meta.module_name
-        vars["dictionary_name"] = dictionary._meta.verbose_name            
-        vars["dictionary_name_plural"] = dictionary._meta.verbose_name_plural
-        vars["dictionary_values"] = dictionary.objects.all()
-        return render_to_response('dictionary_edit.html', vars)
+        vars["enumeration_id"] = enumeration._meta.module_name
+        vars["enumeration_name"] = enumeration._meta.verbose_name            
+        vars["enumeration_name_plural"] = enumeration._meta.verbose_name_plural
+        vars["enumeration_values"] = enumeration.objects.all()
+        return render_to_response('enumeration_edit.html', vars)
 
-    def add_to_dictionary(self, request, dictionary_id):        
+    def add_to_enumeration(self, request, enumeration_id):        
 
-        dictionary  = self.__get_dictionary(dictionary_id)
-        if dictionary == None:
+        enumeration  = self.__get_enumeration(enumeration_id)
+        if enumeration == None:
             raise Http404
 
-        dictionary_value = dictionary(value=request.POST['value'])
-        dictionary_value.save()
+        enumeration_value = enumeration(value=request.POST['value'])
+        enumeration_value.save()
 
-        return self.edit_dictionary(request, dictionary_id)
+        return self.edit_enumeration(request, enumeration_id)
 
-    def update_dictionary(self, request, dictionary_id):        
+    def update_enumeration(self, request, enumeration_id):        
         
-        dictionary  = self.__get_dictionary(dictionary_id)
-        if dictionary == None:
+        enumeration  = self.__get_enumeration(enumeration_id)
+        if enumeration == None:
             raise Http404
 
         if request.POST.has_key("remove"):
-            dictionary.objects.filter(id__in=request.POST['sel']).delete()
+            enumeration.objects.filter(id__in=request.POST.getlist('sel')).delete()
 
-        return self.edit_dictionary(request, dictionary_id)
+        return self.edit_enumeration(request, enumeration_id)
 
-    def edit_dictionary_value(self, request, dictionary_id, value_id):        
+    def edit_enumeration_value(self, request, enumeration_id, value_id):        
 
-        dictionary  = self.__get_dictionary(dictionary_id)
-        if dictionary == None:
+        enumeration  = self.__get_enumeration(enumeration_id)
+        if enumeration == None:
             raise Http404
         
         vars = self.__get_admin_context_vars()
-        vars["dictionary_id"] = dictionary._meta.module_name
-        vars["dictionary_name"] = dictionary._meta.verbose_name            
-        vars["dictionary_name_plural"] = dictionary._meta.verbose_name_plural
-        vars["dictionary_record"] = dictionary.objects.get(id__exact=value_id)
-        return render_to_response('dictionary_edit_value.html', vars)
+        vars["enumeration_id"] = enumeration._meta.module_name
+        vars["enumeration_name"] = enumeration._meta.verbose_name            
+        vars["enumeration_name_plural"] = enumeration._meta.verbose_name_plural
+        vars["enumeration_record"] = enumeration.objects.get(id__exact=value_id)
+        return render_to_response('enumeration_edit_value.html', vars)
 
-    def update_dictionary_value(self, request, dictionary_id, value_id):        
+    def update_enumeration_value(self, request, enumeration_id, value_id):        
 
         if request.POST.has_key("save"):
-            dictionary  = self.__get_dictionary(dictionary_id)
-            if dictionary == None:
+            enumeration  = self.__get_enumeration(enumeration_id)
+            if enumeration == None:
                 raise Http404
        
-            record = dictionary.objects.get(id__exact=value_id)
+            record = enumeration.objects.get(id__exact=value_id)
             record.value = request.POST["value"]
             record.save()
 
-        return self.edit_dictionary(request, dictionary_id)
+        return self.edit_enumeration(request, enumeration_id)
 
         
-def media_item_edit(request, media_item_id):
-    "Provide MediaItem object edition"
-
-    media_item = MediaItem.objects.get(pk=media_item_id)
-    dynprops = media_item.get_dynamic_properties()
-    return render_to_response('media_item.html', {'media_item': media_item, 'dynprops' : dynprops})
-
-def media_item_update(request, media_item_id):
-    "Handle MediaItem object edition form submission"
-
-    media_item = MediaItem.objects.get(pk=media_item_id)
-    media_item.author = request.POST['author']
-    media_item.title = request.POST['title']
-    media_item.save()
-
-    pattern = re.compile(r'^dynprop_(\d+)$')
-    for name, value in request.POST.items():
-        match = pattern.search(name)
-        if match:
-            prop_id = match.groups()[0]
-            prop = MediaItemPropertyDefinition.objects.get(pk=prop_id)
-            telemeta.logger.debug("prop_id: " + prop_id + " ; " + "media_item_id: " + 
-                                    media_item_id + " ; value: " + value + 
-                                    " ; type:" + prop.type)
-            media_item = MediaItem.objects.get(pk=media_item_id)
-            property, created = MediaItemProperty.objects.get_or_create(
-                                    media_item=media_item, definition=prop)
-
-            if prop.type == 'text':
-                property.value = value
-            else:
-                value = int(value)
-
-                if value > 0:
-                    enum_item = MediaItemPropertyEnumerationItem.objects.get(pk=value)
-                    property.enum_item = enum_item
-                else:
-                    property.enum_item = 0
-
-            property.save()
-
-    return media_item_edit(request, media_item_id)
-    
     
     
