From 000ad140832819ea091e23e64136e49bbfa1fa47 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Tue, 20 Dec 2011 03:24:53 +0530 Subject: [PATCH] add channel for all items --- pandora/tv/models.py | 9 +++++++-- pandora/tv/views.py | 15 ++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/pandora/tv/models.py b/pandora/tv/models.py index 38d70a9c..d0e0c1b1 100644 --- a/pandora/tv/models.py +++ b/pandora/tv/models.py @@ -7,20 +7,25 @@ from random import randint from django.db import models from django.db.models import Max +from item.models import Item + class Channel(models.Model): created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) run = models.IntegerField(default=0) - list = models.ForeignKey('itemlist.List', related_name='channel') + list = models.ForeignKey('itemlist.List', related_name='channel', null=True, unique=True, blank=True) def __unicode__(self): return u"%s %s" % (self.list, self.run) def json(self, user): now = datetime.now() - items = self.list.get_items().filter(rendered=True) + if self.list: + items = self.list.get_items().filter(rendered=True) + else: + items = Item.objects.filter(rendered=True) if items.count() == 0: return {} diff --git a/pandora/tv/views.py b/pandora/tv/views.py index fc283cb0..0e8ed80e 100644 --- a/pandora/tv/views.py +++ b/pandora/tv/views.py @@ -11,12 +11,17 @@ from api.actions import actions def tv(request): data = json.loads(request.POST['data']) - list = get_list_or_404_json(data['list']) - if list.accessible(request.user): - channel, created = models.Channel.objects.get_or_create(list=list) + if 'list' in data and data['list']: + list = get_list_or_404_json(data['list']) + if list.accessible(request.user): + channel, created = models.Channel.objects.get_or_create(list=list) + response = json_response(status=200, text='created') + response['data'] = channel.json(request.user) + else: + response = json_response(status=404, text='list not found') + else: + channel, created = models.Channel.objects.get_or_create(list=None) response = json_response(status=200, text='created') response['data'] = channel.json(request.user) - else: - response = json_response(status=404, text='list not found') return render_to_json_response(response) actions.register(tv, cache=False)