From c89ef81a7dc2e4cb8db091c489b2737025b8d808 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 30 Jan 2012 23:57:06 +0100 Subject: [PATCH] fix related media urls, auto increment item codes --- .../telemeta/inc/resource_related.html | 13 +++++++------ telemeta/views/base.py | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/telemeta/templates/telemeta/inc/resource_related.html b/telemeta/templates/telemeta/inc/resource_related.html index 71ada2c5..a20ae04b 100644 --- a/telemeta/templates/telemeta/inc/resource_related.html +++ b/telemeta/templates/telemeta/inc/resource_related.html @@ -27,7 +27,7 @@ {{ media.url|get_filename }} {% endif %} {% else %} - + {% if media.title %} {{ media.title }} {% else %} @@ -46,8 +46,8 @@ {{ media.url }} {% else %} {% if media.file %} - - {% url telemeta-resource-related type resource.public_id media.id %} + + {% url telemeta-resource-related type resource.code media.id %} {% endif %} {% endif %} @@ -55,13 +55,14 @@ - {% if media.is_image %} + + {% if media.is_image %} {% if media.url %} {% else %} - - + + {% endif %} {% else %} {% if media.url %} diff --git a/telemeta/views/base.py b/telemeta/views/base.py index cbf87132..193f27ed 100644 --- a/telemeta/views/base.py +++ b/telemeta/views/base.py @@ -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}) -- 2.39.5