Auto create live lessons list

remotes/origin/hasaccess temp
Ivlev Denis 8 years ago
parent 5f569cdb1e
commit 0ac9e39a71
  1. 23
      apps/school/views.py

@ -2,7 +2,8 @@ from datetime import datetime, timedelta
from django.contrib.auth import get_user_model
from django.contrib.auth.decorators import login_required, user_passes_test
from django.db.models import Min, F, Func
from django.db.utils import IntegrityError
from django.db.models import Min, F, Func, Q
from django.http import Http404
from django.shortcuts import get_object_or_404
from django.utils.decorators import method_decorator
@ -31,6 +32,26 @@ class LiveLessonsView(ListView):
model = LiveLesson
template_name = 'school/livelessons_list.html'
def get_queryset(self):
date_range = Q(
date__range=[
(now() - timedelta(days=7)).date(),
(now() + timedelta(days=10)).date(),
]
)
queryset = LiveLesson.objects.filter(date_range)
if queryset.count() < 17:
start_date = now() - timedelta(days=7)
for i in range(18):
try:
LiveLesson.objects.create(
date=(start_date + timedelta(days=i)).date(),
)
except IntegrityError:
pass
queryset = LiveLesson.objects.filter(date_range)
return queryset
@method_decorator(login_required, name='dispatch')
class LiveLessonsDetailView(DetailView):

Loading…
Cancel
Save