# HG changeset patch # User Tero Marttila # Date 1415179621 -3600 # Node ID 187e874f770c3ea95776be303ec76e87a51e4649 # Parent 06ef4789a353fafbe0725272c272249460529d71 qrurls.admin: URLAdmin: support use of existing URLImages in import diff -r 06ef4789a353 -r 187e874f770c qrurls/admin.py --- a/qrurls/admin.py Wed Nov 05 10:26:23 2014 +0100 +++ b/qrurls/admin.py Wed Nov 05 10:27:01 2014 +0100 @@ -1,4 +1,5 @@ import datetime +import random import urllib from django import http, shortcuts, forms @@ -149,20 +150,32 @@ shorturl = forms.ModelChoiceField(URL.objects) publishing_date = forms.DateField(widget=admin.widgets.AdminDateWidget) publishing_time = forms.TimeField(widget=admin.widgets.AdminTimeWidget) + # Django forms doesn't really understand multi-value fields, so we just hack this ourselves. #image = forms.ImageField() + # Existing URLImages + url_images = forms.ModelMultipleChoiceField(queryset=URLImage.objects.all()) + def import_images_handler (self, url_feed, data, images=()) : """Custom for backend for mass-importing images into a feed.""" # series of datetimes publishing = url_feed.apply_publishing_schedule( - data['publishing_date'], data['publishing_time'], url_feed.publishing_offset, len(images)) + data['publishing_date'], data['publishing_time'], url_feed.publishing_offset) - for image, publish in zip(images, publishing) : + url_images = list(data['url_images']) + + for image in images: url_image = URLImage(image=image) url_image.save() + url_images.append(url_image) + + # randomize + random.shuffle(url_images) + + for url_image, publish in zip(url_images, publishing) : url_item = URLItem(shorturl=url_feed, published=publish, image=url_image) url_item.save() diff -r 06ef4789a353 -r 187e874f770c qrurls/templates/admin/qrurls_import_images.html --- a/qrurls/templates/admin/qrurls_import_images.html Wed Nov 05 10:26:23 2014 +0100 +++ b/qrurls/templates/admin/qrurls_import_images.html Wed Nov 05 10:27:01 2014 +0100 @@ -50,6 +50,10 @@

Selecting multiple image files is possible.

+
+ {{ form.url_images.label_tag }} + {{ form.url_images }} +