PonyConf/proposals/utils.py

16 lines
565 B
Python
Raw Normal View History

2016-07-11 19:33:34 +00:00
from django.contrib.sites.shortcuts import get_current_site
2016-07-03 20:39:29 +00:00
from django.db.models import Q, Sum
from django.db.models.functions import Coalesce
2016-07-03 20:39:29 +00:00
from accounts.models import Participation
def query_sum(queryset, field):
return queryset.aggregate(s=Coalesce(Sum(field), 0))['s']
2016-07-03 20:39:29 +00:00
def allowed_talks(talks, request):
2016-07-11 19:33:34 +00:00
if not Participation.objects.get(site=get_current_site(request), user=request.user).is_orga():
talks = talks.filter(Q(topics__reviewers=request.user) | Q(speakers=request.user) | Q(proposer=request.user))
return talks.distinct()