qrurls/admin.py
changeset 89 187e874f770c
parent 66 8ca335eab457
child 90 a193a8dd737c
equal deleted inserted replaced
88:06ef4789a353 89:187e874f770c
     1 import datetime
     1 import datetime
       
     2 import random
     2 import urllib
     3 import urllib
     3 
     4 
     4 from django import http, shortcuts, forms
     5 from django import http, shortcuts, forms
     5 from django.conf import settings, urls
     6 from django.conf import settings, urls
     6 from django.contrib import admin
     7 from django.contrib import admin
   147     ## Import
   148     ## Import
   148     class ImportForm (forms.Form) :
   149     class ImportForm (forms.Form) :
   149         shorturl = forms.ModelChoiceField(URL.objects)
   150         shorturl = forms.ModelChoiceField(URL.objects)
   150         publishing_date = forms.DateField(widget=admin.widgets.AdminDateWidget)
   151         publishing_date = forms.DateField(widget=admin.widgets.AdminDateWidget)
   151         publishing_time = forms.TimeField(widget=admin.widgets.AdminTimeWidget)
   152         publishing_time = forms.TimeField(widget=admin.widgets.AdminTimeWidget)
       
   153         
   152         # Django forms doesn't really understand multi-value fields, so we just hack this ourselves.
   154         # Django forms doesn't really understand multi-value fields, so we just hack this ourselves.
   153         #image = forms.ImageField()
   155         #image = forms.ImageField()
   154 
   156 
       
   157         # Existing URLImages
       
   158         url_images = forms.ModelMultipleChoiceField(queryset=URLImage.objects.all())
       
   159 
   155     def import_images_handler (self, url_feed, data, images=()) :
   160     def import_images_handler (self, url_feed, data, images=()) :
   156         """Custom for backend for mass-importing images into a feed."""
   161         """Custom for backend for mass-importing images into a feed."""
   157         
   162         
   158         # series of datetimes
   163         # series of datetimes
   159         publishing = url_feed.apply_publishing_schedule(
   164         publishing = url_feed.apply_publishing_schedule(
   160             data['publishing_date'], data['publishing_time'], url_feed.publishing_offset, len(images))
   165             data['publishing_date'], data['publishing_time'], url_feed.publishing_offset)
   161 
   166 
   162         for image, publish in zip(images, publishing) :
   167         url_images = list(data['url_images'])
       
   168         
       
   169         for image in images:
   163             url_image = URLImage(image=image)
   170             url_image = URLImage(image=image)
   164             url_image.save()
   171             url_image.save()
   165 
   172 
       
   173             url_images.append(url_image)
       
   174         
       
   175         # randomize
       
   176         random.shuffle(url_images)
       
   177 
       
   178         for url_image, publish in zip(url_images, publishing) :
   166             url_item = URLItem(shorturl=url_feed, published=publish, image=url_image)
   179             url_item = URLItem(shorturl=url_feed, published=publish, image=url_image)
   167             url_item.save()
   180             url_item.save()
   168 
   181 
   169         return http.HttpResponseRedirect(reverse('admin:qrurls_url_change', args=(url_feed.id, )))
   182         return http.HttpResponseRedirect(reverse('admin:qrurls_url_change', args=(url_feed.id, )))
   170 
   183