]> git.parisson.com Git - telemeta.git/commitdiff
add collection and item copy CBV, cleaup urls
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 17 Oct 2014 14:21:52 +0000 (16:21 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 17 Oct 2014 14:21:52 +0000 (16:21 +0200)
telemeta/forms/media.py
telemeta/static/telemeta/css/telemeta.css
telemeta/templates/telemeta/collection_edit.html
telemeta/templates/telemeta/mediaitem_edit.html
telemeta/urls.py
telemeta/views/collection.py
telemeta/views/core.py
telemeta/views/item.py
telemeta/views/resource.py

index a606a5dbeddc04b7c8a9b7c4f5f5c37b158012c6..5e1fb1689353b3a01ca238eecbb2824e74c98c86 100644 (file)
@@ -157,6 +157,12 @@ class CollectionRelatedInline(InlineFormSet):
     model = MediaCollectionRelated
 
 
+class CollectionIdentifierInline(InlineFormSet):
+
+    model = MediaCollectionIdentifier
+    max_num = 1
+
+
 class ItemRelatedInline(InlineFormSet):
 
     model = MediaItemRelated
@@ -176,3 +182,9 @@ class ItemFormatInline(InlineFormSet):
 
     model = Format
 
+
+class ItemIdentifierInline(InlineFormSet):
+
+    model = MediaItemIdentifier
+    max_num = 1
+
index 79000ba135e08c405d17f8655b14ab955ee472b2..03519fce5066147208f6e53a24469765839d8836 100644 (file)
@@ -322,7 +322,7 @@ label.disabled { color: #d7d7d7 }
     top: 1.2em;
     left: 35%;
     background-color: #6a0307;
-    padding: 0.5em;
+    padding: 0.3em;
     -moz-border-radius: 8px 8px 8px 8px;
     -webkit-border-radius: 8px 8px 8px 8px;
     border-radius: 8px 8px 8px 8px;
@@ -340,6 +340,7 @@ label.disabled { color: #d7d7d7 }
     -webkit-border-radius: 5px 0px 0px 5px;
     border-radius: 5px 0px 0px 5px;
     width: 215px;
+    padding-left: 0.5em;
 }
 
 #quick_search_pattern {
index 91a78512e93a5315d27f7d55093955ab5582ad80..cb794b22f20c962127c568768ae57315dda2a79c 100644 (file)
@@ -17,8 +17,9 @@
   <form method="post" id="_editForm" action="">{% csrf_token %}
 
     <ul class="nav nav-tabs" role="tablist">
-      <li class="active"><a href="#general" role="tab" data-toggle="tab">General</a></li>
-      <li><a href="#related" role="tab" data-toggle="tab">Related media</a></li>
+      <li class="active"><a href="#general" role="tab" data-toggle="tab">{% trans "General" %}</a></li>
+      <li><a href="#related" role="tab" data-toggle="tab">{% trans "Related media" %}</a></li>
+      <li><a href="#identifiers" role="tab" data-toggle="tab">{% trans "Identifier" %}</a></li>
     </ul>
 
     <div class="tab-content">
         </div>
       </div>
 
-      <div class="tab-pane" id="related">
-        {% for formset in inlines %}
+      {% for formset in inlines %}
+      <div class="tab-pane" id="{{ formset.prefix }}">
           {{ formset.management_form }}
           {% for form in formset %}
            <div class="block-grey">
-             {% bootstrap_form form %}
-          </div>
-          {# {{ form.as_table }} #}
+           {% bootstrap_form form %}
+           </div>
           {% endfor %}
-        {% endfor %}
       </div>
-
-    </div>
+      {% endfor %}
 
     <div align="center" style="margin-top:3ex;">
       {% block cancel %}
index e1815daac82a790651f0a02541acb5b976cdffda..e17daaa19e701363813d10bce81d18f1127a20c0 100644 (file)
@@ -23,6 +23,7 @@
       <li><a href="#keyword_relations" role="tab" data-toggle="tab">{% trans "Keywords" %}</a></li>
       <li><a href="#performances" role="tab" data-toggle="tab">{% trans "Performance" %}</a></li>
       <li><a href="#format" role="tab" data-toggle="tab">{% trans "Format" %}</a></li>
+      <li><a href="#identifiers" role="tab" data-toggle="tab">{% trans "Identifier" %}</a></li>
     </ul>
 
     <div class="tab-content">
@@ -34,6 +35,8 @@
         {{ form.media }}
         <div class="block-grey">
         {% bootstrap_form form %}
+        {% trans "Collection access status" %} : {% trans item.collection.public_access %}<br />
+        {% trans "Context access status" %} : {% trans access %}<br />
         </div>
       </div>
 
index b7c8698b98bb60f17debefd7a45b1b65c9d57551..9a10e86369b45210865cf7e849b3004146617e6d 100644 (file)
@@ -74,48 +74,29 @@ urlpatterns = patterns('',
     url(r'^archives/items_unpublished/$', ItemUnpublishedListView.as_view(), name="telemeta-items-unpublished"),
     url(r'^archives/items_published/$', ItemPublishedListView.as_view(), name="telemeta-items-published"),
 
-    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/$', item_view.item_detail,
-        name="telemeta-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'^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'^archives/items/download/(?P<public_id>[A-Za-z0-9._-]+)\.(?P<extension>'
-            + export_extensions + ')$',
-        item_view.item_export,
-        name="telemeta-item-export"),
-    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/visualize/(?P<grapher_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'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/analyze/xml/$',
-        item_view.item_analyze_xml,
-        name="telemeta-item-analyze-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'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/$', item_view.item_detail, name="telemeta-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'^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'^archives/items/download/(?P<public_id>[A-Za-z0-9._-]+)\.(?P<extension>' + export_extensions + ')$', item_view.item_export, name="telemeta-item-export"),
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/visualize/(?P<grapher_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'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/analyze/xml/$', item_view.item_analyze_xml, name="telemeta-item-analyze-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'^archives/items/(?P<pk>[A-Za-z0-9._-]+)/edit/$', ItemEditView.as_view(), name="telemeta-item-edit"),
-    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'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', ItemEditView.as_view(), name="telemeta-item-copy"),
     url(r'^archives/item_new/add/$', ItemAddView.as_view(), name="telemeta-item-add"),
-    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'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/simple/$', item_view.item_detail,
-        dict(template='telemeta/mediaitem_player_simple.html'), name="telemeta-item-player-simple"),
-    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/countour/$', item_view.item_detail,
-        dict(template='telemeta/mediaitem_player_contour.html'), name="telemeta-item-player-contour"),
-    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'^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'^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'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/simple/$', item_view.item_detail, dict(template='telemeta/mediaitem_player_simple.html'), name="telemeta-item-player-simple"),
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/countour/$', item_view.item_detail, dict(template='telemeta/mediaitem_player_contour.html'), name="telemeta-item-player-contour"),
+    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'^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'^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._-]+)/view/$', item_view.related_media_item_stream, name="telemeta-item-related"),
     url(r'^archives/items/(?P<item_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/download/$', item_view.related_media_item_download, name="telemeta-item-related-download"),
     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'^archives/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/]+)/$', RedirectView.as_view(), {'url': '/archives/items/%(path)s/', 'permanent': False}, name="telemeta-item-redir"),
 
@@ -126,26 +107,18 @@ urlpatterns = patterns('',
     url(r'^archives/collections_sound/$', CollectionSoundListView.as_view(), name="telemeta-collections-sound"),
 
     url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/$', CollectionDetailView.as_view(), name="telemeta-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'^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'^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'^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'^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'^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'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', CollectionEditView.as_view(), name="telemeta-collection-edit"),
-    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'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', CollectionCopyView.as_view(), name="telemeta-collection-copy"),
     url(r'^archives/collection_new/add/$', CollectionAddView.as_view(), name="telemeta-collection-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'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/add_item/$', ItemAddView.as_view(), name="telemeta-collection-additem"),
     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._-]+)/view/$', collection_view.related_media_collection_stream, name="telemeta-collection-related"),
     url(r'^archives/collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/download/$', collection_view.related_media_collection_download, name="telemeta-collection-related-download"),
     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"),
+
     # FIXME: need all paths
     url(r'^collections/(?P<path>[A-Za-z0-9._-s/]+)/$', RedirectView.as_view(), {'url': '/archives/collections/%(path)s/', 'permanent': False}, name="telemeta-collection-redir"),
     url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/package/$', CollectionPackageView.as_view(),
@@ -167,14 +140,10 @@ urlpatterns = patterns('',
     # search
     # url(r'^archives/$', home_view.search, name="telemeta-archives"),
     url(r'^search/$', home_view.search, name="telemeta-search"),
-    url(r'^search/collections/$', home_view.search, {'type': 'collections'},
-        name="telemeta-search-collections"),
-    url(r'^search/items/$', home_view.search, {'type': 'items'},
-        name="telemeta-search-items"),
-    url(r'^search/corpus/$', home_view.search, {'type': 'corpus'},
-        name="telemeta-search-corpus"),
-    url(r'^search/fonds/$', home_view.search, {'type': 'fonds'},
-        name="telemeta-search-fonds"),
+    url(r'^search/collections/$', home_view.search, {'type': 'collections'}, name="telemeta-search-collections"),
+    url(r'^search/items/$', home_view.search, {'type': 'items'}, name="telemeta-search-items"),
+    url(r'^search/corpus/$', home_view.search, {'type': 'corpus'}, name="telemeta-search-corpus"),
+    url(r'^search/fonds/$', home_view.search, {'type': 'fonds'}, name="telemeta-search-fonds"),
 
     url(r'^search/criteria/$', home_view.edit_search, name="telemeta-search-criteria"),
     url(r'^complete_location/$', home_view.complete_location, name="telemeta-complete-location"),
@@ -186,86 +155,35 @@ urlpatterns = patterns('',
     url(r'^admin/users/$', admin_view.admin_users, name="telemeta-admin-users"),
 
     # instruments administration
-    url(r'^admin/instruments/$',
-        instrument_view.edit_instrument ,
-        name="telemeta-instrument-edit"),
-    url(r'^admin/instruments/add/$',
-        instrument_view.add_to_instrument,
-        name="telemeta-instrument-add"),
-    url(r'^admin/instruments/update/$',
-        instrument_view.update_instrument,
-        name="telemeta-instrument-update"),
-    url(r'^admin/instruments/'
-        + r'(?P<value_id>[0-9]+)/$',
-        instrument_view.edit_instrument_value,
-        name="telemeta-instrument-record-edit"),
-    url(r'^admin/instruments/'
-        + r'(?P<value_id>[0-9]+)/update/$',
-        instrument_view.update_instrument_value,
-        name="telemeta-instrument-record-update"),
-    url(r'^admin/instruments/'
-        + r'(?P<value_id>[0-9]+)/replace/$',
-        instrument_view.replace_instrument_value,
-        name="telemeta-instrument-record-replace"),
+    url(r'^admin/instruments/$', instrument_view.edit_instrument , name="telemeta-instrument-edit"),
+    url(r'^admin/instruments/add/$', instrument_view.add_to_instrument, name="telemeta-instrument-add"),
+    url(r'^admin/instruments/update/$', instrument_view.update_instrument, name="telemeta-instrument-update"),
+    url(r'^admin/instruments/' + r'(?P<value_id>[0-9]+)/$', instrument_view.edit_instrument_value, name="telemeta-instrument-record-edit"),
+    url(r'^admin/instruments/' + r'(?P<value_id>[0-9]+)/update/$', instrument_view.update_instrument_value, name="telemeta-instrument-record-update"),
+    url(r'^admin/instruments/' + r'(?P<value_id>[0-9]+)/replace/$', instrument_view.replace_instrument_value, name="telemeta-instrument-record-replace"),
 
     # instruments aliases administration
-    url(r'^admin/instrument_aliases/$',
-        instrument_alias_view.edit_instrument ,
-        name="telemeta-instrument-alias-edit"),
-    url(r'^admin/instrument_aliases/add/$',
-        instrument_alias_view.add_to_instrument,
-        name="telemeta-instrument-alias-add"),
-    url(r'^admin/instrument_aliases/update/$',
-        instrument_alias_view.update_instrument,
-        name="telemeta-instrument-alias-update"),
-    url(r'^admin/instrument_aliases/'
-        + r'(?P<value_id>[0-9]+)/$',
-        instrument_alias_view.edit_instrument_value,
-        name="telemeta-instrument-alias-record-edit"),
-    url(r'^admin/instrument_aliases/'
-        + r'(?P<value_id>[0-9]+)/update/$',
-        instrument_alias_view.update_instrument_value,
-        name="telemeta-instrument-alias-record-update"),
-    url(r'^admin/instrument_aliases/'
-        + r'(?P<value_id>[0-9]+)/replace/$',
-        instrument_alias_view.replace_instrument_value,
-        name="telemeta-instrument-alias-record-replace"),
+    url(r'^admin/instrument_aliases/$', instrument_alias_view.edit_instrument, name="telemeta-instrument-alias-edit"),
+    url(r'^admin/instrument_aliases/add/$', instrument_alias_view.add_to_instrument, name="telemeta-instrument-alias-add"),
+    url(r'^admin/instrument_aliases/update/$', instrument_alias_view.update_instrument, name="telemeta-instrument-alias-update"),
+    url(r'^admin/instrument_aliases/' + r'(?P<value_id>[0-9]+)/$', instrument_alias_view.edit_instrument_value, name="telemeta-instrument-alias-record-edit"),
+    url(r'^admin/instrument_aliases/' + r'(?P<value_id>[0-9]+)/update/$', instrument_alias_view.update_instrument_value, name="telemeta-instrument-alias-record-update"),
+    url(r'^admin/instrument_aliases/' + r'(?P<value_id>[0-9]+)/replace/$', instrument_alias_view.replace_instrument_value, name="telemeta-instrument-alias-record-replace"),
 
     # enumerations administration
-    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/$',
-        admin_view.edit_enumeration ,
-        name="telemeta-enumeration-edit"),
-    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/add/$',
-        admin_view.add_to_enumeration,
-        name="telemeta-enumeration-add"),
-    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/update/$',
-        admin_view.update_enumeration,
-        name="telemeta-enumeration-update"),
-    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/'
-        + r'(?P<value_id>[0-9]+)/$',
-        admin_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/$',
-        admin_view.update_enumeration_value,
-        name="telemeta-enumeration-record-update"),
-    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/'
-        + r'(?P<value_id>[0-9]+)/replace/$',
-        admin_view.replace_enumeration_value,
-        name="telemeta-enumeration-replace"),
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/$', admin_view.edit_enumeration , name="telemeta-enumeration-edit"),
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/add/$', admin_view.add_to_enumeration, name="telemeta-enumeration-add"),
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/update/$', admin_view.update_enumeration, name="telemeta-enumeration-update"),
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/' + r'(?P<value_id>[0-9]+)/$', admin_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/$', admin_view.update_enumeration_value, name="telemeta-enumeration-record-update"),
+    url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/' + r'(?P<value_id>[0-9]+)/replace/$', admin_view.replace_enumeration_value, name="telemeta-enumeration-replace"),
 
     # Geographic browsing
     url(r'^geo/$', geo_view.list_continents, name="telemeta-geo-continents"),
-    url(r'^geo/(?P<continent>[a-z_]+)/$', geo_view.list_countries,
-        name="telemeta-geo-countries"),
-    url(r'^geo/collections/(?P<continent>[a-z_]+)/(?P<country>[a-z_]+)/$',
-        geo_view.list_country_collections,
-        name="telemeta-geo-country-collections"),
-    url(r'^geo/items/(?P<continent>[a-z_]+)/(?P<country>[a-z_]+)/$',
-        geo_view.list_country_items,
-        name="telemeta-geo-country-items"),
-    url(r'^geo/country_info/(?P<id>[0-9a-z]+)/$',
-        geo_view.country_info, name="telemeta-country-info"),
+    url(r'^geo/(?P<continent>[a-z_]+)/$', geo_view.list_countries, name="telemeta-geo-countries"),
+    url(r'^geo/collections/(?P<continent>[a-z_]+)/(?P<country>[a-z_]+)/$', geo_view.list_country_collections, name="telemeta-geo-country-collections"),
+    url(r'^geo/items/(?P<continent>[a-z_]+)/(?P<country>[a-z_]+)/$', geo_view.list_country_items, name="telemeta-geo-country-items"),
+    url(r'^geo/country_info/(?P<id>[0-9a-z]+)/$', geo_view.country_info, name="telemeta-country-info"),
 
     # Flat pages
     url(r'^pages/(?P<path>.*)$', home_view.render_flatpage, name="telemeta-flatpage"),
@@ -274,10 +192,8 @@ urlpatterns = patterns('',
     url(r'^oai/.*$', home_view.handle_oai_request, name="telemeta-oai"),
 
     # Authentication
-    url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'},
-        name="telemeta-login"),
-    url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'},
-        name="telemeta-login"),
+    url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'}, name="telemeta-login"),
+    url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'}, name="telemeta-login"),
     #url(r'^login/$', 'ipauth.views.login', {'template_name': 'telemeta/login.html'},
     #    name="telemeta-login"),
     url(r'^logout/$', home_view.logout, name="telemeta-logout"),
@@ -319,8 +235,7 @@ urlpatterns = patterns('',
 
     # Static media
     # FIXME:need to move export dir from the cache
-    url(r'^media/cache/(?P<path>.*)$', 'django.views.static.serve', {
-            'document_root': settings.TELEMETA_CACHE_DIR,}),
+    url(r'^media/cache/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.TELEMETA_CACHE_DIR,}),
 
     url(r'^', include('jqchat.urls')),
 
index 34b981d111c95979fdda544425f4dd4c6daae73f..5bab13ff14a4dd015e9d3bcb1115d23de6637b4e 100644 (file)
@@ -297,7 +297,7 @@ class CollectionDetailView(CollectionViewMixin, DetailView):
 class CollectionEditView(CollectionViewMixin, UpdateWithInlinesView):
 
     template_name = 'telemeta/collection_edit.html'
-    inlines = [CollectionRelatedInline, ]
+    inlines = [CollectionRelatedInline, CollectionIdentifierInline]
 
     def form_valid(self, form):
         messages.info(self.request, _("You have successfully updated your collection."))
@@ -310,9 +310,19 @@ class CollectionEditView(CollectionViewMixin, UpdateWithInlinesView):
 class CollectionAddView(CollectionViewMixin, CreateWithInlinesView):
 
     template_name = 'telemeta/collection_add.html'
-    inlines = [CollectionRelatedInline, ]
+    inlines = [CollectionRelatedInline, CollectionIdentifierInline]
 
     def get_success_url(self):
         return reverse_lazy('telemeta-collections')
 
 
+class CollectionCopyView(CollectionAddView):
+
+    template_name = 'telemeta/collection_add.html'
+
+    def get_initial(self):
+        resource = self.model.objects.get(code=self.kwargs['public_id'])
+        return model_to_dict(resource)
+
+    def get_success_url(self):
+        return reverse_lazy('telemeta-collections')
index 89954036dd184fd26c3ef6c0376dca30aeae3745..cc17efd3639daed20649b269fd4af4f467d3f105 100644 (file)
@@ -71,6 +71,10 @@ from django.core.servers.basehttp import FileWrapper
 from django.core.urlresolvers import reverse, reverse_lazy
 from django.contrib.contenttypes.models import ContentType
 from django.views.decorators.http import condition
+from django.utils.translation import ugettext_lazy as _
+from django.forms.models import model_to_dict
+from django.views.generic.edit import DeletionMixin, BaseDeleteView
+
 
 from telemeta.models import *
 import telemeta.models
index 9015eaf6ec772880762fc0b97286c3e74601ab7c..6a67ef23cd9d6d3d38a381136abe0deba9b1b74f 100644 (file)
@@ -713,7 +713,8 @@ class ItemEditView(ItemViewMixin, UpdateWithInlinesView):
 
     form_class = MediaItemForm
     template_name = 'telemeta/mediaitem_edit.html'
-    inlines = [ItemRelatedInline, ItemPerformanceInline, ItemKeywordInline, ItemFormatInline]
+    inlines = [ItemRelatedInline, ItemPerformanceInline, ItemKeywordInline,
+                ItemFormatInline, ItemIdentifierInline]
 
     def form_valid(self, form):
         messages.info(self.request, _("You have successfully updated your item."))
@@ -740,7 +741,23 @@ class ItemAddView(ItemViewMixin, CreateWithInlinesView):
 
     form_class = MediaItemForm
     template_name = 'telemeta/mediaitem_add.html'
-    inlines = [ItemRelatedInline, ItemPerformanceInline, ItemKeywordInline, ItemFormatInline]
+    inlines = [ItemRelatedInline, ItemPerformanceInline, ItemKeywordInline,
+                ItemFormatInline, ItemIdentifierInline]
+
+    def get_success_url(self):
+        return reverse_lazy('telemeta-items')
+
+
+class ItemCopyView(ItemAddView):
+
+    form_class = MediaItemForm
+    template_name = 'telemeta/mediaitem_add.html'
+    inlines = [ItemRelatedInline, ItemPerformanceInline, ItemKeywordInline,
+                ItemFormatInline, ItemIdentifierInline]
+
+    def get_initial(self):
+        resource = self.model.objects.get(code=self.kwargs['public_id'])
+        return model_to_dict(resource)
 
     def get_success_url(self):
         return reverse_lazy('telemeta-items')
index b342f42b9c667f1c3267e32f49eb7ad7984810cb..e1393ba969dc07e702d0ae75592c8f9d5a88ae93 100644 (file)
@@ -36,9 +36,6 @@
 
 
 from telemeta.views.core import *
-from django.utils.translation import ugettext_lazy as _
-from django.forms.models import model_to_dict
-from django.views.generic.edit import DeletionMixin, BaseDeleteView
 
 
 class ResourceView(object):