]> git.parisson.com Git - telemeta.git/commitdiff
fix related media urls, auto increment item codes
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 30 Jan 2012 22:57:06 +0000 (23:57 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 30 Jan 2012 22:57:06 +0000 (23:57 +0100)
telemeta/templates/telemeta/inc/resource_related.html
telemeta/views/base.py

index 71ada2c50327c8a6ee8260ba67a9c15a50d93a24..a20ae04bb12eb5613bde8b4ceb8f2ccd7a57dbf2 100644 (file)
@@ -27,7 +27,7 @@
                                             {{ media.url|get_filename }}</a>
                                         {% endif %}
                                     {% else %}
-                                        <a href="{% url telemeta-resource-related type resource.public_id media.id %}">
+                                        <a href="{% url telemeta-resource-related type resource.code media.id %}">
                                         {% if media.title %}
                                             {{ media.title }}</a>
                                         {% else %}
@@ -46,8 +46,8 @@
                                     <a href="{{ media.urlĀ }}" target="_blank">{{ media.url }}</a>
                                 {% else %}
                                     {% if media.file %}
-                                    <a href="{% url telemeta-resource-related type resource.public_id media.id %}" target="_blank">
-                                    {% url telemeta-resource-related type resource.public_id media.id %}
+                                    <a href="{% url telemeta-resource-related type resource.code media.id %}" target="_blank">
+                                    {% url telemeta-resource-related type resource.code media.id %}
                                     </a>
                                     {% endif %}
                                 {% endif %}
                             </dl>
                             </td>
 
-                            <td style="padding-bottom: 1em;">{% if media.is_image %}
+                            <td style="padding-bottom: 1em;">
+                                {% if media.is_image %}
                                   {% if media.url %}
                                    <a href="{{ media.url }}">
                                    <img src="{{ media.url }}" style="max-width: 420px; max-height: 200px;" /></a>
                                   {% else %}
-                                   <a href="{% url telemeta-resource-related type resource.public_id media.id %}">
-                                   <img src="{% url telemeta-resource-related type resource.public_id media.id %}" style="max-width: 420px; max-height: 200px;" /></a>
+                                   <a href="{% url telemeta-resource-related type resource.code media.id %}">
+                                   <img src="{% url telemeta-resource-related type resource.code media.id %}" style="max-width: 420px; max-height: 200px;" /></a>
                                    {% endif %}
                                 {% else %}
                                 {% if media.url %}
index cbf87132d6f1c3b6bc8ee4339c7daee62be86d34..193f27edea4f2fbd823179a65855555da5b47a52 100644 (file)
@@ -78,6 +78,8 @@ import telemeta.views.pages as pages
 from telemeta.forms import *
 
 
+# TOOLS
+
 def render(request, template, data = None, mimetype = None):
     return render_to_response(template, data, context_instance=RequestContext(request),
                               mimetype=mimetype)
@@ -195,6 +197,18 @@ def check_related_media(medias):
             media.title = title.replace('\n', '').strip()
             media.save()
 
+def auto_code(resources, base_code):
+    index = 1
+    while True:
+        code = base_code + '_' + str(index)
+        r = resources.filter(code=code)
+        if not r:
+            break
+        if index == 100:
+            break
+        index += 1
+    return code
+
 
 class GeneralView(object):
     """Provide general web UI methods"""
@@ -654,7 +668,9 @@ class ItemView(object):
         """Add an item"""
         if public_id:
             collection = MediaCollection.objects.get(public_id=public_id)
-            item = MediaItem(collection=collection)
+            items = MediaItem.objects.filter(collection=collection)
+            code = auto_code(items, collection.code)
+            item = MediaItem(collection=collection, code=code)
         else:
             item = MediaItem()
         if request.method == 'POST':
@@ -668,6 +684,7 @@ class ItemView(object):
                 return HttpResponseRedirect('/archives/items/'+code)
         else:
             form = MediaItemForm(instance=item)
+            
 
         return render(request, template, {'item': item, 'form': form})