]> git.parisson.com Git - telemeta.git/commitdiff
fix no public_id for copy
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 13 Nov 2014 01:25:15 +0000 (02:25 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 13 Nov 2014 01:25:15 +0000 (02:25 +0100)
telemeta/urls.py
telemeta/views/collection.py
telemeta/views/item.py
telemeta/views/resource.py

index c5a6fea58904bbe3ef3664583324d0b2b813d2b4..bad6eae167a36094cccb43a672b7dee210878d26 100644 (file)
@@ -136,7 +136,6 @@ urlpatterns = patterns('',
     url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/download/$', resource_view.related_download, name="telemeta-resource-related-download"),
     url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', resource_view.related_edit,  dict(template='telemeta/resource_related_edit.html'), name="telemeta-resource-related_edit"),
 
-
     # search
     # url(r'^archives/$', home_view.search, name="telemeta-archives"),
     url(r'^search/$', SearchView.as_view(), name="telemeta-search"),
index 5bab13ff14a4dd015e9d3bcb1115d23de6637b4e..e203eabb4df15218ac07135960a7428b32f07f8a 100644 (file)
@@ -230,7 +230,15 @@ class CollectionViewMixin(object):
     model = MediaCollection
 
     def get_object(self):
-        self.pk = self.model.objects.get(code=self.kwargs['public_id']).pk
+        obj = self.model.objects.filter(code=self.kwargs['public_id'])
+        if not obj:
+            try:
+                obj = self.model.objects.get(id=self.kwargs['public_id'])
+            except:
+                pass
+        else:
+            obj = obj[0]
+        self.pk = obj.pk
         return get_object_or_404(self.model, pk=self.pk)
 
 
@@ -321,8 +329,7 @@ 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)
+        return model_to_dict(self.get_object())
 
     def get_success_url(self):
         return reverse_lazy('telemeta-collections')
index a8e23d6d6126457efe57cd1d38fbadee523ee4b2..6190f31369ea93893f2d5690abdbbf5fc9517007 100644 (file)
@@ -706,7 +706,15 @@ class ItemViewMixin(ItemBaseMixin):
 
     def get_object(self):
         if 'public_id' in self.kwargs.keys():
-            self.pk = self.model.objects.get(code=self.kwargs['public_id']).pk
+            obj = self.model.objects.filter(code=self.kwargs['public_id'])
+            if not obj:
+                try:
+                    obj = self.model.objects.get(id=self.kwargs['public_id'])
+                except:
+                    pass
+            else:
+                obj = obj[0]
+            self.pk = obj.pk
             return get_object_or_404(self.model, pk=self.pk)
         else:
             return get_object_or_404(self.model, pk=self.kwargs['pk'])
@@ -753,8 +761,7 @@ class ItemCopyView(ItemAddView):
     template_name = 'telemeta/mediaitem_add.html'
 
     def get_initial(self):
-        resource = self.model.objects.get(code=self.kwargs['public_id'])
-        return model_to_dict(resource)
+        return model_to_dict(self.get_object())
 
     def get_success_url(self):
         return reverse_lazy('telemeta-items')
index e1393ba969dc07e702d0ae75592c8f9d5a88ae93..d6f0eb077065ead37d93971bf21529f6a0a20021 100644 (file)
@@ -220,7 +220,15 @@ class ResourceMixin(View):
         # super(CorpusDetailView, self).get_object()
         self.type = self.kwargs['type']
         self.setup(self.type)
-        self.pk = self.model.objects.get(code=self.kwargs['public_id']).pk
+        obj = self.model.objects.filter(code=self.kwargs['public_id'])
+        if not obj:
+            try:
+                obj = self.model.objects.get(id=self.kwargs['public_id'])
+            except:
+                pass
+        else:
+            obj = obj[0]
+        self.pk = obj.pk
         return get_object_or_404(self.model, pk=self.pk)
 
     def get_context_data(self, **kwargs):
@@ -240,7 +248,15 @@ class ResourceSingleMixin(ResourceMixin):
         # super(CorpusDetailView, self).get_object()
         self.type = self.kwargs['type']
         self.setup(self.type)
-        self.pk = self.model.objects.get(code=self.kwargs['public_id']).pk
+        obj = self.model.objects.filter(code=self.kwargs['public_id'])
+        if not obj:
+            try:
+                obj = self.model.objects.get(id=self.kwargs['public_id'])
+            except:
+                pass
+        else:
+            obj = obj[0]
+        self.pk = obj.pk
         return get_object_or_404(self.model, pk=self.pk)
 
     def get_context_data(self, **kwargs):
@@ -308,8 +324,7 @@ class ResourceCopyView(ResourceSingleMixin, ResourceAddView):
     template_name = 'telemeta/resource_edit.html'
 
     def get_initial(self):
-        resource = self.model.objects.get(code=self.kwargs['public_id'])
-        return model_to_dict(resource)
+        return model_to_dict(self.get_object())
 
     def get_success_url(self):
         return reverse_lazy('telemeta-resource-list', kwargs={'type':self.kwargs['type']})