|
|
@ -2,6 +2,7 @@ from django.shortcuts import render_to_response
|
|
|
|
from django.template import RequestContext
|
|
|
|
from django.template import RequestContext
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from django.db.models import Count
|
|
|
|
from django.db.models import Count
|
|
|
|
|
|
|
|
from django.http import HttpResponseRedirect
|
|
|
|
from main.models import Plugin, PluginPermission
|
|
|
|
from main.models import Plugin, PluginPermission
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -12,17 +13,84 @@ def startpage(request):
|
|
|
|
''' Diese Funktion wird wahrscheinlich viel Last erzeugen, da
|
|
|
|
''' Diese Funktion wird wahrscheinlich viel Last erzeugen, da
|
|
|
|
sie ueber mehrere Tabellen joined,filtered und wieder reduced.
|
|
|
|
sie ueber mehrere Tabellen joined,filtered und wieder reduced.
|
|
|
|
'''
|
|
|
|
'''
|
|
|
|
allMost = Purchase.objects.filter(isDeposit=False).values('buyable__name').annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
|
|
|
allMost = Purchase.objects.filter(isDeposit=False).values('buyable__name', 'buyable__id').annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
|
|
|
usersMost = Purchase.objects.filter(isDeposit=False).values('buyable__name').filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
|
|
|
usersMost = Purchase.objects.filter(isDeposit=False).values('buyable__name','buyable__id').filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
|
|
|
usersLast = Purchase.objects.filter(isDeposit=False).values('buyable__name').filter(order__user=request.user.id).order_by('-order__dateTime')
|
|
|
|
usersLast = Purchase.objects.filter(isDeposit=False).values('buyable__name','buyable__id').filter(order__user=request.user.id).order_by('-order__dateTime')
|
|
|
|
return render_to_response("main/startpage.html", {'allMost' : allMost,'usersMost': usersMost, 'usersLast' : usersLast}, RequestContext(request))
|
|
|
|
return render_to_response("main/startpage.html", {'allMost' : allMost,'usersMost': usersMost, 'usersLast' : usersLast}, RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
def register(request):
|
|
|
|
def register(request):
|
|
|
|
return render_to_response("registration/register.html", RequestContext(request))
|
|
|
|
return render_to_response("registration/register.html", RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def settings(request):
|
|
|
|
def getPluginDict(request):
|
|
|
|
plugins = Plugin.objects.all()
|
|
|
|
plugins = Plugin.objects.all()
|
|
|
|
|
|
|
|
allowed = Plugin.objects.filter(pluginpermission__user=request.user)
|
|
|
|
unallowed = Plugin.objects.exclude(pluginpermission__user=request.user)
|
|
|
|
unallowed = Plugin.objects.exclude(pluginpermission__user=request.user)
|
|
|
|
perms = PluginPermission.objects.filter(user=request.user)
|
|
|
|
perms = PluginPermission.objects.filter(user=request.user)
|
|
|
|
return render_to_response("settings/settings.html", {'plugins': plugins, 'unallowedplugins': unallowed, 'pluginpermissions': perms}, RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
return {'plugins': plugins, 'allowed': allowed, 'unallowed': unallowed, 'permissions': perms}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def settings(request):
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", getPluginDict(request), RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def pluginPermission(request, method, pluginId):
|
|
|
|
|
|
|
|
plugin = None
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
plugin = Plugin.objects.get(id=pluginId)
|
|
|
|
|
|
|
|
except Plugin.DoesNotExist:
|
|
|
|
|
|
|
|
d = getPluginDict(request)
|
|
|
|
|
|
|
|
d['pluginerror'] = "Ein Plugin mit der angegebenen ID existiert nicht"
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", d, RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if method == "allow":
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
p = PluginPermission.objects.get(user=request.user, plugin=plugin)
|
|
|
|
|
|
|
|
d = getPluginDict(request)
|
|
|
|
|
|
|
|
d['pluginerror'] = "Dieses Plugin wurde bereits erlaubt"
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", d, RequestContext(request))
|
|
|
|
|
|
|
|
except PluginPermission.DoesNotExist:
|
|
|
|
|
|
|
|
p = PluginPermission(user=request.user, plugin=plugin)
|
|
|
|
|
|
|
|
p.save()
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
p = PluginPermission.objects.get(user=request.user, plugin=plugin)
|
|
|
|
|
|
|
|
p.delete()
|
|
|
|
|
|
|
|
except PluginPermission.DoesNotExist:
|
|
|
|
|
|
|
|
d = getPluginDict(request)
|
|
|
|
|
|
|
|
d['pluginerror'] = "Keine Berechtigungen für dieses Plugin gefunden - kann also auch nicht zurückgezogen werden"
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", d, RequestContext(request))
|
|
|
|
|
|
|
|
return HttpResponseRedirect("/user/settings/")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def pluginAuthblob(request, pluginId):
|
|
|
|
|
|
|
|
if request.method != "POST":
|
|
|
|
|
|
|
|
return HttpResponseRedirect("/user/settings/")
|
|
|
|
|
|
|
|
plugin = None
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
plugin = Plugin.objects.get(id=pluginId)
|
|
|
|
|
|
|
|
except Plugin.DoesNotExist:
|
|
|
|
|
|
|
|
d = getPluginDict(request)
|
|
|
|
|
|
|
|
d['pluginerror'] = "Ein Plugin mit der angegebenen ID existiert nicht"
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", d, RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p = None
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
p = PluginPermission.objects.get(user=request.user, plugin=plugin)
|
|
|
|
|
|
|
|
except PluginPermission.DoesNotExist:
|
|
|
|
|
|
|
|
d = getPluginDict(request)
|
|
|
|
|
|
|
|
d['pluginerror'] = "Vor dem editieren vom Authblob muss das Plugin ersteinmal erlaubt werden"
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", d, RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not p.plugin.userCanWriteAuthblob or not request.POST.has_key("authblob"):
|
|
|
|
|
|
|
|
d = getPluginDict(request)
|
|
|
|
|
|
|
|
d['pluginerror'] = "Der Authblob darf für dieses Plugin nicht vom User verändert werden (oder der Authblob war kaputt)"
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", d, RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p.authblob = request.POST['authblob']
|
|
|
|
|
|
|
|
p.save()
|
|
|
|
|
|
|
|
d = getPluginDict(request)
|
|
|
|
|
|
|
|
d['pluginmsg'] = "Authblob erfolgreich geändert"
|
|
|
|
|
|
|
|
return render_to_response("settings/settings.html", d, RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|