Files
caminus/local/context.py

49 lines
1.5 KiB
Python

import models
import forums.models
from django.contrib.auth.forms import AuthenticationForm
from django.db.models import Sum
from donate.models import Donation
from datetime import datetime
from django.conf import settings
from notification.models import Notice
from django.core.urlresolvers import reverse
def random_quote(request):
quote = models.Quote.objects.order_by('?')
if len(quote) > 0:
return {'quote': quote[0]}
return {}
def forum_activity(request):
latestPosts = forums.models.Post.objects.all().order_by('-updated')[0:5]
return {'latestForumPosts': latestPosts}
def login_form(request):
return {'login_form': AuthenticationForm()}
def donation_info(request):
now = datetime.now()
monthStart = datetime(now.year, now.month, 1)
donations = Donation.objects.filter(created__gt=monthStart).aggregate(Sum('quantity'))
goal = getattr(settings, 'CAMINUS_DONATION_GOAL', 0)
donationTotal = donations['quantity__sum']
if donationTotal is None:
progress = 0
donationTotal = 0
if donationTotal > goal or goal == 0:
progress = 100
else:
progress = donationTotal/goal*100
return {'donation_month_total': donationTotal, 'donation_month_goal': goal, 'donation_goal_progress': progress}
def notifications(request):
if request.user.is_authenticated():
return {'notices': Notice.objects.filter(unseen=True, recipient=request.user, on_site=True)}
return {}
def javascript_uris(request):
return {'js_uris': (
'local.views.mark_notifications_read',
)}