--- a/qrurls/admin.py Thu Aug 22 02:00:03 2013 +0300
+++ b/qrurls/admin.py Thu Aug 22 02:12:13 2013 +0300
@@ -157,17 +157,16 @@
shorturl = forms.ModelChoiceField(URL.objects)
publishing_date = forms.DateField(widget=admin.widgets.AdminDateWidget)
publishing_time = forms.TimeField(widget=admin.widgets.AdminTimeWidget)
- image = forms.ImageField()
+ # Django forms doesn't really understand multi-value fields, so we just hack this ourselves.
+ #image = forms.ImageField()
- def import_images_handler (self, url_feed, data) :
+ def import_images_handler (self, url_feed, data, images=()) :
"""Custom for backend for mass-importing images into a feed."""
- images = [data['image']]
publishing = self.publishing_schedule(data['publishing_date'], data['publishing_time'], len(images))
for image, publish in zip(images, publishing) :
- # XXX: move title default elsewhere
- url_image = URLImage(image=image, title=image.name)
+ url_image = URLImage(image=image)
url_image.save()
url_item = URLItem(shorturl=url_feed, published=publish, image=url_image)
@@ -180,10 +179,11 @@
url_feed = URL.objects.get(id=int(shorturl_id))
if request.method == 'POST' :
- form = self.ImportForm(request.POST, request.FILES)
+ form = self.ImportForm(request.POST)
+ images = request.FILES.getlist('image')
if form.is_valid() :
- return self.import_images_handler(url_feed, form.cleaned_data)
+ return self.import_images_handler(url_feed, form.cleaned_data, images)
else :
publishing_date, publishing_time = self.publish_scheduling(url_feed)
--- a/qrurls/templates/admin/qrurls_import_images.html Thu Aug 22 02:00:03 2013 +0300
+++ b/qrurls/templates/admin/qrurls_import_images.html Thu Aug 22 02:12:13 2013 +0300
@@ -45,10 +45,10 @@
</div>
<div class="form-row">
<div class="field-box field-image">
- {{ form.image.errors }}
- {{ form.image.label_tag }}
- {{ form.image }}
+ <label for="image">Images</label>
+ <input type="file" name="image" id="image" multiple="multiple">
</div>
+ <p class="help">Selecting multiple image files is possible.</p>
</div>
</fieldset>