|
|
|
|
@ -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): |
|
|
|
|
|