from django.db.models import Func, F from django.utils.timezone import now from paymentwall.pingback import Pingback from apps.config.models import Config from apps.content.models import Baner from apps.payment.models import SchoolPayment def config(request): return {"config": Config.load()} def baner(request): return {'baner': Baner.objects.filter(use=True).first()} def school_purchased(request): if request.user.is_authenticated: n = now().date() school_payment = SchoolPayment.objects.filter( user=request.user, status__in=[ Pingback.PINGBACK_TYPE_REGULAR, Pingback.PINGBACK_TYPE_GOODWILL, Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED, ], date_start__lte=n, date_end__gte=n ) school_schedules_purchased = school_payment.annotate( joined_weekdays=Func(F('weekdays'), function='unnest', ) ).values_list('joined_weekdays', flat=True).distinct() return { 'is_school_purchased': school_payment.exists(), 'school_schedules_purchased': school_schedules_purchased, } return { 'is_school_purchased': False, 'school_schedules_purchased': [], }