PonyConf/proposals/utils.py

16 lines
492 B
Python

from django.db.models import Q, Sum
from django.db.models.functions import Coalesce
from accounts.models import Participation
def query_sum(queryset, field):
return queryset.aggregate(s=Coalesce(Sum(field), 0))['s']
def allowed_talks(talks, request):
participation = Participation.on_site.get(user=request.user)
if not participation.orga:
talks = talks.filter(Q(topics__reviewers=participation) | Q(speakers=request.user) | Q(proposer=request.user))
return talks