-from datetime import datetime
+import datetime
from django.forms import fields
from django.core.urlresolvers import reverse
datetime = models.DateTimeField()
rerun = models.BooleanField(default=False)
+ def is_on_weekday(self, day): # day is [1..7]
+ if self.datetime >= datetime.datetime(2007, 1, day, 5, 0) and \
+ self.datetime < datetime.datetime(2007, 1, day+1, 5, 0):
+ return True
+ if day == 7 and self.datetime < datetime.datetime(2007, 1, 1, 5, 0):
+ # special case for Sunday nights
+ return True
+ return False
+
class Episode(models.Model):
emission = models.ForeignKey('Emission', verbose_name=u'Emission')
{% extends "panikdb/base.html" %}
+{% block appbar %}
+<h2>Émissions</h2>
+<span><a href=".">Par ordre alphabétique</a> - <a href="days">Par jour</a> - <a href="categories">Par genre</a></span>
+{% endblock %}
+
{% block content %}
{% for category in object_list %}
--- /dev/null
+{% extends "panikdb/base.html" %}
+
+{% block appbar %}
+<h2>Émissions</h2>
+<span><a href=".">Par ordre alphabétique</a> - <a href="days">Par jour</a> - <a href="categories">Par genre</a></span>
+{% endblock %}
+
+{% block content %}
+
+{% for day in days %}
+<h3>{{ day.datetime|date:"D" }}</h3>
+
+<ul class="emission-list">
+{% for schedule in day.schedules %}
+<li>{{ schedule.datetime|date:"G:i" }} <a href="{{ schedule.emission.slug }}/">{{ schedule.emission.title }}</a></li>
+{% endfor %}
+</ul>
+
+{% endfor %}
+
+{% endblock %}
<small><i>{{ category.title }} </i></small>
{% endfor %}
</h2>
-<a href="../">Retourner à la liste des émissions</a>
+<span><a href="../">Retourner à la liste des émissions</a></span>
{% endblock %}
{% block content %}
{% extends "panikdb/base.html" %}
-{% block content %}
+{% block appbar %}
+<h2>Émissions</h2>
+<span><a href=".">Par ordre alphabétique</a> - <a href="days">Par jour</a> - <a href="categories">Par genre</a></span>
+{% endblock %}
-<h3>Émissions actuelles</h3>
+{% block content %}
<ul class="emission-list">
{% for emission in object_list %}
{% block appbar %}
<h2>{{ episode.emission.title }} — {{ episode.title }}</h2>
-<a href="../">Retourner à l'émission</a>
+<span><a href="../">Retourner à l'émission</a></span>
{% endblock %}
{% block content %}
urlpatterns = patterns('',
url(r'^$', EmissionListView.as_view(), name='emission-list'),
url(r'^categories$', CategoryListView.as_view(), name='category-list'),
+ url(r'^days$', DaysView.as_view(), name='days'),
url(r'^add$', EmissionCreateView.as_view(), name='emission-add'),
url(r'^(?P<slug>[\w,-]+)/$', EmissionDetailView.as_view(), name='emission-view'),
url(r'^(?P<slug>[\w,-]+)/edit/$', EmissionUpdateView.as_view(), name='emission-update'),
+import datetime
+
from django.core.urlresolvers import reverse, reverse_lazy
from django.views.generic.base import TemplateView, RedirectView
'EmissionUpdateView', 'EmissionDeleteView',
'EpisodeCreateView', 'EpisodeDetailView', 'EpisodeUpdateView',
'EpisodeDeleteView', 'EmissionAddScheduleView',
- 'ScheduleDeleteView', 'CategoryListView']
+ 'ScheduleDeleteView', 'CategoryListView', 'DaysView']
class EmissionListView(ListView):
def get_redirect_url(self, emission_slug, pk):
Schedule.objects.filter(id=pk).delete()
return reverse('emission-view', kwargs={'slug': str(emission_slug)})
+
+
+class DaysView(TemplateView):
+ template_name = 'emissions/days.html'
+
+ def get_context_data(self, **kwargs):
+ context = super(DaysView, self).get_context_data(**kwargs)
+ schedules = Schedule.objects.all().order_by('datetime')
+ days = []
+ for day in range(7):
+ days.append({'schedules': [x for x in schedules if x.is_on_weekday(day+1)],
+ 'datetime': datetime.datetime(2007, 1, day+1)})
+ context['days'] = days
+ return context
}
div#appbar button,
-div#appbar a {
+div#appbar span {
position: absolute;
padding-left: 15px;
padding-right: 15px;