]> git.parisson.com Git - telemeta.git/commitdiff
add 'Archives' tab, make a drop down menu for resources, *WARNING* change media resou...
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 27 Jan 2012 13:58:45 +0000 (14:58 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 27 Jan 2012 13:58:45 +0000 (14:58 +0100)
telemeta/htdocs/css/telemeta.css
telemeta/htdocs/js/application.js
telemeta/templates/telemeta_default/base.html
telemeta/templates/telemeta_default/inc/module_revisions.html
telemeta/urls.py
telemeta/views/base.py

index 6409121bcbe1d032086bf9fcef72a07e3afc27c1..7d78fe0239a5a40360ad7bb57822f61ac3592588 100644 (file)
@@ -201,6 +201,12 @@ a img { border: none; }
     max-height: 500px;
     overflow-y: scroll;
 }
+
+.vscroll {
+    max-height: 500px;
+    overflow-y: scroll;
+    width: 100%;
+}
     
 
 .analyzer-title {
@@ -476,6 +482,86 @@ form.login .submit {
 
 * html #menu :link, * html #menu :visited { background-position: 1px 0 }
 
+
+/* Drop Down Menus */
+.clear {clear:both} 
+
+#nav {
+    margin:0;
+    padding:0;
+    list-style:none;
+}  
+
+/* make the LI display inline */
+/* it's position relative so that position absolute */
+/* can be used in submenu */
+
+#nav li {
+display:inline-block; 
+position:relative;
+z-index:500;
+}
+    
+/* this is the parent menu */
+#nav li a {
+display:block;
+text-align:center;
+}
+
+/* you can make a different style for default selected value */
+#nav a.selected {
+color:#f00;
+}
+
+/* submenu, it's hidden by default */
+#nav ul {
+    position:absolute;
+    left:0;
+    display:none;
+    margin:0 0 0 -1px;
+    padding:0;
+    list-style:none;
+    border-left:2px solid #6a0307;
+    border-right:2px solid #6a0307;
+    border-bottom:2px solid #6a0307;
+    background-color: #6a0307;
+    color: #FFF;
+}
+    
+#nav ul li {
+    width:100px;
+    float:left;
+    border-bottom:0px solid #fff;
+}
+    
+/* display block will make the link fill the whole area of LI */
+#nav ul a {
+    display:block; 
+    height:15px;
+    padding: 5px 5px;
+    font-size: 11px;
+    text-align:left;
+    -webkit-border-top-left-radius:0px 0px;
+    moz-border-radius-topleft: 0px 0px;
+    border-top-left-radius: 0px 0px;
+    -webkit-border-top-right-radius:0px 0px;
+    moz-border-radius-topright: 0px 0px;
+    border-top-right-radius: 0px 0px;
+    border-bottom-width: 0px;
+}
+    
+#nav ul a:hover {
+    background-color: #FFF ;
+    color: #6a0307 ;
+}
+
+#nav ul a:active{
+    background-color: #FFF;
+    color: #6a0307 ;
+}
+
+
+
 /* Footer (borrowed from Trac) */
 #footer {
     background: #6a0307;
@@ -1178,3 +1264,5 @@ a:focus,div:focus{
 input,textarea{
     outline: none !important;
 }
+
+
index 7d3e07d9a78a49a72e8a0220669ed8d6badf73fb..9ddf1971e2b1a0d38bed8975c57a6b718af8d263 100644 (file)
@@ -219,3 +219,21 @@ function consolelog(text){
         }\r
     }\r
 }\r
+\r
+// Drop down menus\r
+\r
+$(document).ready(function () {\r
+     \r
+    $('#nav li').hover(\r
+        function () {\r
+            //show its submenu\r
+            $('ul', this).slideDown(200);\r
\r
+        },\r
+        function () {\r
+            //hide its submenu\r
+            $('ul', this).slideUp(100);        \r
+        }\r
+    );\r
+     \r
+});
\ No newline at end of file
index 3f3d1010bef58a4f46d743d065e17804c956654e..12959fa2abc216dd0bac2cb0e36cc9e5d78c4702 100644 (file)
 {% block menu %}
 
 {# spaces between li and a elements breaks layout #}
+
+<!--<ul id="nav">
  <a href="{% url telemeta-home %}" class="darkblue">{% trans "Home" %}</a>
  <a href="{% url telemeta-collections %}" class="blue">{% trans "Collections" %}</a>
- <a href="{% url telemeta-items %}" class="green">{% trans "Items" %}</a>
+ <a href="{% url telemeta-items %}" class="green">{% trans "Items" %}</a></li>
  <a href="{% url telemeta-geo-continents %}" class="yellow">{% trans "Geo Navigator" %}</a>
  <a href="{% url telemeta-search-criteria %}" class="orange">{% trans "Advanced search" %}</a>
  {% if user.is_authenticated %}
  {% endif %}
  {% if user.is_staff %}
  <a href="{% url telemeta-admin %}" class="violet">{% trans "Admin" %}</a>
+{% endif %}
+</ul>-->
+
+<ul id="nav">
+ <li><a href="{% url telemeta-home %}" class="blue">{% trans "Home" %}</a></li>
+
+ <li><a href="{% url telemeta-archives %}" class="green">{% trans "Archives" %}</a>
+  <ul>
+     <li><a href="/funds">{% trans "Funds" %}</a></li>
+     <li><a href="/corpus">{% trans "Corpus" %}</a></li>
+     <li><a href="{% url telemeta-collections %}">{% trans "Collections" %}</a></li>
+     <li><a href="{% url telemeta-items %}">{% trans "Items" %}</a></li>
+  </ul>
+  <div class="clear"></div>
+ </li>
+ <li><a href="{% url telemeta-geo-continents %}" class="yellow">{% trans "Geo Navigator" %}</a></li>
+ <li><a href="{% url telemeta-search-criteria %}" class="orange">{% trans "Advanced search" %}</a></li>
+ {% if user.is_authenticated %}
+ <li><a href="{% url telemeta-users %}" class="red">{% trans "Users" %}</a></li>
  {% endif %}
+ {% if user.is_staff %}
+ <li><a href="{% url telemeta-admin %}" class="violet">{% trans "Admin" %}</a></li>
+{% endif %}
+</ul>
+<div class="clear"></div>
 
 {% endblock %}
 </div>
index 3e9f97a3928ebde866e1f4099a50285ef52fc644..5df16154424442beba19e2aac3d11f825870276b 100644 (file)
@@ -6,6 +6,7 @@
       <img src="{% url telemeta-images "rss.png" %}" alt="rss" style="vertical-align:middle" /></a>
       {% trans "Last changes" %}</h3>
       <a href="/rss" style="float:right" class="icon_rss">&nbsp;&nbsp;</a>
+    <div class="vscroll">
     <table class="listing" bgcolor="#FFFFFF" style="width: 100%">
       <tr>
         <th class="highlight">{% trans "Date" %}</th>
@@ -37,4 +38,5 @@
       </tr>
     {% endfor %}
     </table>
+    </div>
    </div>
\ No newline at end of file
index e13f466708c7202cc0c0742b8632c80477e58e44..7b5be5264bc6da3a26b716019d3511f831e2d6d4 100644 (file)
@@ -35,7 +35,8 @@
 #          Guillaume Pellerin <yomguy@parisson.com>
 
 from django.conf.urls.defaults import *
-from telemeta.models import MediaItem, MediaCollection, MediaItemMarker
+from django.views.generic.simple import redirect_to
+from telemeta.models import MediaItem, MediaCollection, MediaItemMarker, MediaCorpus, MediaFund
 from telemeta.views.base import GeneralView, AdminView, CollectionView, ItemView, \
                                 InstrumentView, PlaylistView, ProfileView, GeoView, \
                                 LastestRevisionsFeed
@@ -62,6 +63,8 @@ all_collections = { 'queryset': MediaCollection.objects.enriched(), }
 all_collections_unpublished = { 'queryset': MediaCollection.objects.filter(code__contains='_I_'), }
 all_collections_published = { 'queryset': MediaCollection.objects.filter(code__contains='_E_'), }
 all_collections_sound = { 'queryset': MediaCollection.objects.sound().order_by('code', 'old_code') }
+all_corpus = { 'queryset': MediaCorpus.objects.all().order_by('title') }
+all_funds = { 'queryset': MediaFund.objects.all().order_by('title') }
 
 # ID's regular expressions
 export_extensions = "|".join(item_view.list_export_extensions())
@@ -71,87 +74,104 @@ htdocs = os.path.dirname(__file__) + '/htdocs'
 urlpatterns = patterns('',
     url(r'^$', general_view.index, name="telemeta-home"),
 
+    # archives
+    # TODO: make a real archives tree view
+    url(r'^archives/$', redirect_to, {'url': '/archives/collections/'},
+        name="telemeta-archives"),
+        
     # items
-    url(r'^items/$', 'django.views.generic.list_detail.object_list', 
+    url(r'^archives/items/$', 'django.views.generic.list_detail.object_list', 
         dict(all_items, paginate_by=20, template_name="telemeta/mediaitem_list.html"),
         name="telemeta-items"),
-    url(r'^items_sound/$', 'django.views.generic.list_detail.object_list',
+    url(r'^archives/items_sound/$', 'django.views.generic.list_detail.object_list',
         dict(all_items_sound, paginate_by=20, template_name="telemeta/mediaitem_list.html"), name="telemeta-items-sound"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/$', item_view.item_detail, 
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/$', item_view.item_detail, 
         name="telemeta-item-detail"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', item_view.item_detail, 
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', item_view.item_detail, 
         {'template': 'telemeta/mediaitem_detail_dc.html'},
         name="telemeta-item-dublincore"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/dc/xml/$', item_view.item_detail, 
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/dc/xml/$', item_view.item_detail, 
         {'format': 'dublin_core_xml'},
         name="telemeta-item-dublincore-xml"),
-    url(r'^items/download/(?P<public_id>[A-Za-z0-9._-]+)\.(?P<extension>' 
+    url(r'^archives/items/download/(?P<public_id>[A-Za-z0-9._-]+)\.(?P<extension>' 
             + export_extensions + ')$', 
         item_view.item_export,
         name="telemeta-item-export"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/visualize/(?P<visualizer_id>[0-9a-z_]+)/(?P<width>[0-9A-Z]+)x(?P<height>[0-9A-Z]+)/$', 
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/visualize/(?P<visualizer_id>[0-9a-z_]+)/(?P<width>[0-9A-Z]+)x(?P<height>[0-9A-Z]+)/$', 
         item_view.item_visualize,
         name="telemeta-item-visualize"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/analyze/xml/$', 
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/analyze/xml/$', 
         item_view.item_analyze_xml,
         name="telemeta-item-analyze-xml"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/item_xspf.xml$', 
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/item_xspf.xml$', 
         item_view.item_playlist, 
         dict(template="telemeta/mediaitem_xspf.xml", mimetype="application/xspf+xml"),
         name="telemeta-item-xspf"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', item_view.item_edit,
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', item_view.item_edit,
         dict(template='telemeta/mediaitem_edit.html'), name="telemeta-item-edit"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', item_view.item_copy,
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', item_view.item_copy,
         dict(template='telemeta/mediaitem_copy.html'), name="telemeta-item-copy"),
     url(r'^item/add/$', item_view.item_add,
         dict(template='telemeta/mediaitem_add.html'), name="telemeta-item-add"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/$', item_view.item_detail,
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/$', item_view.item_detail,
         dict(template='telemeta/mediaitem_player.html'), name="telemeta-item-player"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/performances/$', item_view.item_performances_edit,
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/performances/$', item_view.item_performances_edit,
         dict(template='telemeta/mediaitem_performances_edit.html'), name="telemeta-item-performances_edit"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/keywords/$', item_view.item_keywords_edit,
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/keywords/$', item_view.item_keywords_edit,
         dict(template='telemeta/mediaitem_keywords_edit.html'), name="telemeta-item-keywords_edit"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', item_view.item_delete, name="telemeta-item-delete"),
-    url(r'^items/(?P<item_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)$', item_view.related_media_item_stream, name="telemeta-item-related"),
-    url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', item_view.related_media_edit,  dict(template='telemeta/mediaitem_related_edit.html'), name="telemeta-item-related_edit"),
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', item_view.item_delete, name="telemeta-item-delete"),
+    url(r'^archives/items/(?P<item_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)$', item_view.related_media_item_stream, name="telemeta-item-related"),
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', item_view.related_media_edit,  dict(template='telemeta/mediaitem_related_edit.html'), name="telemeta-item-related_edit"),
     # Markers
     url(r'^markers/(?P<marker_id>[A-Za-z0-9]+)/$', item_view.item_detail, name="telemeta-item-detail-marker"),
+    # FIXME: need all paths
+    url(r'^items/(?P<path>[A-Za-z0-9._-s/]+)/$', redirect_to, {'url': '/archives/items/%(path)s/', 'permanent': False}, name="telemeta-item-redir"),
         
     # collections
-    url(r'^collections/$', 'django.views.generic.list_detail.object_list',
+    url(r'^archives/collections/$', 'django.views.generic.list_detail.object_list',
         dict(all_collections, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections"),
     url(r'^collections_unpublished/$', 'django.views.generic.list_detail.object_list',
         dict(all_collections_unpublished, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-unpublished"),
     url(r'^collections_published/$', 'django.views.generic.list_detail.object_list',
         dict(all_collections_published, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-published"),
-    url(r'^collections/?page=(?P<page>[0-9]+)$', 
+    url(r'^archives/collections/?page=(?P<page>[0-9]+)$', 
         'django.views.generic.list_detail.object_list',
         dict(all_collections, paginate_by=20)),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/$', collection_view.collection_detail,
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/$', collection_view.collection_detail,
         dict(template="telemeta/collection_detail.html"), name="telemeta-collection-detail"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', collection_view.collection_detail,
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', collection_view.collection_detail,
         dict(template="telemeta/collection_detail_dc.html"), name="telemeta-collection-dublincore"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/collection_xspf.xml$', 
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/collection_xspf.xml$', 
         collection_view.collection_playlist, 
         dict(template="telemeta/collection_xspf.xml", mimetype="application/xspf+xml"),
         name="telemeta-collection-xspf"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/collection.m3u$',
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/collection.m3u$',
         collection_view.collection_playlist, 
         dict(template="telemeta/collection.m3u", mimetype="audio/mpegurl"),
         name="telemeta-collection-m3u"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', collection_view.collection_edit,
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', collection_view.collection_edit,
         dict(template='telemeta/collection_edit.html'), name="telemeta-collection-edit"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', collection_view.collection_copy,
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', collection_view.collection_copy,
         dict(template='telemeta/collection_edit.html'), name="telemeta-collection-copy"),
     url(r'^collection/add/$', collection_view.collection_add,
         dict(template='telemeta/collection_add.html'), name="telemeta-collection-add"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/add_item/$', item_view.item_add,
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/add_item/$', item_view.item_add,
         dict(template='telemeta/mediaitem_add.html'), name="telemeta-collection-additem"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', collection_view.collection_delete, name="telemeta-collection-delete"),
-    url(r'^collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)$', collection_view.related_media_collection_stream, name="telemeta-collection-related"),
-    url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', collection_view.related_media_edit,  dict(template='telemeta/collection_related_edit.html'), name="telemeta-collection-related_edit"),
-    url(r'^collections_sound/$', 'django.views.generic.list_detail.object_list',
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', collection_view.collection_delete, name="telemeta-collection-delete"),
+    url(r'^archives/collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)$', collection_view.related_media_collection_stream, name="telemeta-collection-related"),
+    url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', collection_view.related_media_edit,  dict(template='telemeta/collection_related_edit.html'), name="telemeta-collection-related_edit"),
+    url(r'^archives/collections_sound/$', 'django.views.generic.list_detail.object_list',
         dict(all_collections_sound, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-sound"),
+    # FIXME: need all paths
+    url(r'^collections/(?P<path>[A-Za-z0-9._-s/]+)/$', redirect_to, {'url': '/archives/collections/%(path)s/', 'permanent': False}, name="telemeta-collection-redir"),
+    
+    # Corpus
+    url(r'^archives/corpus/$', 'django.views.generic.list_detail.object_list',
+        dict(all_corpus, paginate_by=20, template_name="telemeta/corpus_list.html"), name="telemeta-corpus"),
+        
+    # Funds
+    url(r'^archives/funds/$', 'django.views.generic.list_detail.object_list',
+        dict(all_funds, paginate_by=20, template_name="telemeta/fund_list.html"), name="telemeta-fund"),
         
     # search
     url(r'^search/$', general_view.search, name="telemeta-search"),
index 6948d02ac023af1cc8ce4f156cb6341298bc89b7..188de05a1b9dbb75d2a1c39b29c4028033305d1a 100644 (file)
@@ -225,7 +225,7 @@ class GeneralView(object):
         else:
             template='telemeta/home.html'
             playlists = get_playlists(request)
-            revisions = get_revisions(15)
+            revisions = get_revisions(50)
             searches = Search.objects.filter(username=request.user)
             return render(request, template, {'playlists': playlists, 'searches': searches,
                                               'revisions': revisions,})
@@ -397,7 +397,7 @@ class CollectionView(object):
                     code = public_id
                 form.save()
                 collection.set_revision(request.user)
-                return HttpResponseRedirect('/collections/'+code)
+                return HttpResponseRedirect('/archives/collections/'+code)
         else:
             form = MediaCollectionForm(instance=collection)
 
@@ -414,7 +414,7 @@ class CollectionView(object):
                     code = public_id
                 form.save()
                 collection.set_revision(request.user)
-                return HttpResponseRedirect('/collections/'+code)
+                return HttpResponseRedirect('/archives/collections/'+code)
         else:
             form = MediaCollectionForm(instance=collection)
 
@@ -431,7 +431,7 @@ class CollectionView(object):
                     code = public_id
                 form.save()
                 collection.set_revision(request.user)
-                return HttpResponseRedirect('/collections/'+code)
+                return HttpResponseRedirect('/archives/collections/'+code)
         else:
             collection = MediaCollection.objects.get(public_id=public_id)
             form = MediaCollectionForm(instance=collection)
@@ -453,7 +453,7 @@ class CollectionView(object):
         """Delete a given collection"""
         collection = MediaCollection.objects.get(public_id=public_id)
         collection.delete()
-        return HttpResponseRedirect('/collections/')
+        return HttpResponseRedirect('/archives/collections/')
 
     def related_media_collection_stream(self, request, collection_public_id, media_id):
         collection = MediaCollection.objects.get(public_id=collection_public_id)
@@ -471,7 +471,7 @@ class CollectionView(object):
             if formset.is_valid():
                 formset.save()
                 collection.set_revision(request.user)
-                return HttpResponseRedirect('/collections/'+public_id)
+                return HttpResponseRedirect('/archives/collections/'+public_id)
         else:
             formset = MediaCollectionRelatedFormSet(instance=collection)
 
@@ -609,7 +609,7 @@ class ItemView(object):
                     for analysis in analyses:
                         analysis.delete()
                 item.set_revision(request.user)
-                return HttpResponseRedirect('/items/'+code)
+                return HttpResponseRedirect('/archives/items/'+code)
         else:
             form = MediaItemForm(instance=item)
 
@@ -636,7 +636,7 @@ class ItemView(object):
             if formset.is_valid():
                 formset.save()
                 item.set_revision(request.user)
-                return HttpResponseRedirect('/items/'+public_id)
+                return HttpResponseRedirect('/archives/items/'+public_id)
         else:
             formset = MediaItemRelatedFormSet(instance=item)
 
@@ -658,7 +658,7 @@ class ItemView(object):
                 code = form.cleaned_data['code']
                 if not code:
                     code = str(item.id)
-                return HttpResponseRedirect('/items/'+code)
+                return HttpResponseRedirect('/archives/items/'+code)
         else:
             form = MediaItemForm(instance=item)
 
@@ -692,7 +692,7 @@ class ItemView(object):
                     keyword.save()
 
                 item.set_revision(request.user)
-                return HttpResponseRedirect('/items/'+code)
+                return HttpResponseRedirect('/archives/items/'+code)
         else:
             item = MediaItem.objects.get(public_id=public_id)
             form = MediaItemForm(instance=item)
@@ -706,7 +706,7 @@ class ItemView(object):
         item = MediaItem.objects.get(public_id=public_id)
         collection = item.collection
         item.delete()
-        return HttpResponseRedirect('/collections/'+collection.code)
+        return HttpResponseRedirect('/archives/collections/'+collection.code)
 
     def item_analyze(self, item):
         analyses = MediaItemAnalysis.objects.filter(item=item)
@@ -908,7 +908,7 @@ class ItemView(object):
             formset = PerformanceFormSet(data=request.POST, instance=item)
             if formset.is_valid():
                 formset.save()
-                return HttpResponseRedirect('/items/'+public_id)
+                return HttpResponseRedirect('/archives/items/'+public_id)
         else:
             formset = PerformanceFormSet(instance=item)
         return render(request, template, {'item': item, 'formset': formset,})
@@ -921,7 +921,7 @@ class ItemView(object):
             formset = FormSet(data=request.POST, instance=item)
             if formset.is_valid():
                 formset.save()
-                return HttpResponseRedirect('/items/'+public_id)
+                return HttpResponseRedirect('/archives/items/'+public_id)
         else:
             formset = FormSet(instance=item)
         return render(request, template, {'item': item, 'formset': formset,})
@@ -1443,16 +1443,6 @@ class CorpusView(object):
 
         return render(request, template, {'corpus': corpus, "form": form,})
 
-    def corpus_playlist(self, request, public_id, template, mimetype):
-        try:
-            corpus = MediaCorpus.objects.get(public_id=public_id)
-        except ObjectDoesNotExist:
-            raise Http404
-
-        template = loader.get_template(template)
-        context = RequestContext(request, {'corpus': corpus, 'host': request.META['HTTP_HOST']})
-        return HttpResponse(template.render(context), mimetype=mimetype)
-
     @method_decorator(permission_required('telemeta.delete_mediacorpus'))
     def corpus_delete(self, request, public_id):
         """Delete a given corpus"""