from django import template
from django.db import models
+from django.db.models.functions import Lower
+from django.utils.encoding import force_text, python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from ckeditor.fields import RichTextField
(1, _('Future')),
(2, _('Past'))))
+ template_name = 'panikombo/episode_auto_selection.html'
+
class Meta:
verbose_name = _('Automatic Episode Selection')
where=['''datetime = (SELECT MIN(datetime) FROM emissions_diffusion
WHERE episode_id = emissions_episode.id)'''],
tables=['emissions_diffusion'])
+ episodes_queryset = episodes_queryset.order_by('first_diffusion').distinct()
elif self.period == 1:
episodes_queryset = episodes_queryset.extra(
select={ 'first_diffusion': 'emissions_diffusion.datetime', },
WHERE episode_id = emissions_episode.id) AND
datetime >= CURRENT_TIMESTAMP'''],
tables=['emissions_diffusion'])
+ episodes_queryset = episodes_queryset.order_by('-first_diffusion').distinct()
elif self.period == 2:
episodes_queryset = episodes_queryset.extra(
select={ 'first_diffusion': 'emissions_diffusion.datetime', },
WHERE episode_id = emissions_episode.id) AND
datetime < CURRENT_TIMESTAMP'''],
tables=['emissions_diffusion'])
+ episodes_queryset = episodes_queryset.order_by('-first_diffusion').distinct()
return episodes_queryset
- def render(self, context):
- tmpl = template.loader.get_template('panikombo/episode_auto_selection.html')
- context['title'] = self.title
+ def get_cell_extra_context(self, context):
+ ctx = super(EpisodeAutoSelectionCell, self).get_cell_extra_context(context)
+ ctx['title'] = self.title
if (self.category or self.period or self.tags.count()):
- episodes_queryset = self.get_included_items()
- episodes_queryset = episodes_queryset.order_by('-first_diffusion').distinct()
- context['episodes'] = episodes_queryset
+ ctx['episodes'] = self.get_included_items()
else:
- context['episodes'] = []
- return tmpl.render(context)
+ ctx['episodes'] = []
+
+ return ctx
def get_default_form_class(self):
from .forms import EpisodeAutoSelectionCellForm
category = models.ForeignKey('emissions.NewsCategory',
verbose_name=_('Category'), null=True, blank=True)
+ template_name = 'panikombo/newsitem_auto_selection.html'
+
class Meta:
verbose_name = _('Automatic Newsitem Selection')
newsitems_queryset = newsitems_queryset.order_by('-event_date', '-creation_timestamp')
return newsitems_queryset
- def render(self, context):
- tmpl = template.loader.get_template('panikombo/newsitem_auto_selection.html')
- context['title'] = self.title
+ def get_cell_extra_context(self, context):
+ ctx = super(NewsItemAutoSelectionCell, self).get_cell_extra_context(context)
+ ctx['title'] = self.title
+
if self.tags.count() or self.future or self.category:
- context['newsitems'] = self.get_included_items()
+ ctx['newsitems'] = self.get_included_items()
else:
- context['newsitems'] = []
- return tmpl.render(context)
+ ctx['newsitems'] = []
+
+ return ctx
def get_default_form_class(self):
from .forms import NewsItemAutoSelectionCellForm
return os.path.join('images', 'topik', instance.page.slug,
os.path.basename(filename))
+@python_2_unicode_compatible
class Topik(models.Model):
page = models.ForeignKey('data.Page')
image = models.ImageField(_('Image'),
got_focus = models.DateTimeField(default=None, null=True, blank=True)
has_focus = models.BooleanField(default=False)
- def __unicode__(self):
+ def __str__(self):
if not self.page:
- return super(Topik, self).__unicode__()
- return unicode(self.page)
+ return super(Topik, self).__str__()
+ return force_text(self.page)
class ItemTopik(models.Model):
null=True, blank=True)
episode = models.ForeignKey('emissions.Episode', verbose_name=_('Episode'),
null=True, blank=True)
- topik = models.ForeignKey('Topik', verbose_name='Topik',
- null=True, blank=True)
+ page = models.ForeignKey('data.Page', null=True, blank=True)
@register_cell_class