--- a/qrurls/admin.py Wed Aug 14 23:25:29 2013 +0300
+++ b/qrurls/admin.py Wed Aug 14 23:26:00 2013 +0300
@@ -1,9 +1,46 @@
+import datetime
+
from django.contrib import admin
+import django.utils.html
+import django.forms.models
+
from qrurls.models import URL, URLItem
-import django.utils.html
+
+class URLItemFormset (django.forms.models.BaseInlineFormSet) :
+ def __init__ (self, *args, **kwargs) :
+ urlfeed = kwargs.get('instance')
+
+ publishing_date = None
+ publishing_time = datetime.time()
+
+ if urlfeed :
+ publishing_date = urlfeed.last_item().published.date()
+ publishing_time = urlfeed.publishing_schedule
+
+ def publishing_schedule (count) :
+ if not publishing_date :
+ # starting today
+ start_date = datetime.date.today()
+ offset = 0
+ else :
+ # starting from the following day
+ start_date = publishing_date
+ offset = 1
+
+ for days in xrange(offset, count + offset) :
+ yield datetime.datetime.combine(
+ publishing_date + datetime.timedelta(days=days),
+ publishing_time
+ )
+
+ kwargs.update(initial=[
+ dict(published=publish) for publish in publishing_schedule(count=5)
+ ])
+ super(URLItemFormset, self).__init__(*args, **kwargs)
class URLItemInline (admin.TabularInline) :
model = URLItem
+ formset = URLItemFormset
class URLAdmin (admin.ModelAdmin) :
def qrcode_url (self, obj) :
@@ -37,7 +74,7 @@
)
fieldsets = (
(None, {
- 'fields': ('shorturl', 'active_item', 'upcoming_item')
+ 'fields': ('shorturl', 'active_item', 'upcoming_item', 'publishing_schedule')
}),
("QRCode", {
'fields': ('qrcode_url', 'qrcode_img'),