allianceauth/srp/views.py
2014-11-26 22:58:07 -07:00

197 lines
6.9 KiB
Python
Executable File

from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import permission_required
from django.contrib.auth.decorators import user_passes_test
from util import random_string
from eveonline.managers import EveManager
from authentication.managers import AuthServicesInfoManager
from util import check_if_user_has_permission
from models import SrpFleetMain
from models import SrpUserRequest
from form import SrpFleetMainForm
from form import SrpFleetUserRequestForm
def srp_util_test(user):
return check_if_user_has_permission(user, 'alliance_member') or check_if_user_has_permission(user, 'blue_member')
@login_required
@user_passes_test(srp_util_test)
def srp_management(request):
context = {"srpfleets": SrpFleetMain.objects.filter(fleet_srp_status="")}
return render_to_response('registered/srpmanagement.html', context, context_instance=RequestContext(request))
@login_required
@user_passes_test(srp_util_test)
def srp_management_all(request):
context = {"srpfleets": SrpFleetMain.objects.all()}
return render_to_response('registered/srpmanagement.html', context, context_instance=RequestContext(request))
@login_required
@user_passes_test(srp_util_test)
def srp_fleet_view(request, fleet_id):
if SrpFleetMain.objects.filter(id=fleet_id):
fleet_main = SrpFleetMain.objects.get(id=fleet_id)
context = {"fleet_id": fleet_id, "fleet_status": fleet_main.fleet_srp_status,
"srpfleetrequests": SrpUserRequest.objects.filter(srp_fleet_main=fleet_main)}
return render_to_response('registered/srpfleetdata.html', context, context_instance=RequestContext(request))
else:
return HttpResponseRedirect("/srp")
@login_required
@permission_required('auth.srp_management')
def srp_fleet_add_view(request):
completed = False
completed_srp_code = ""
if request.method == 'POST':
form = SrpFleetMainForm(request.POST)
if form.is_valid():
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
character = EveManager.get_character_by_id(authinfo.main_char_id)
srp_fleet_main = SrpFleetMain()
srp_fleet_main.fleet_name = form.cleaned_data['fleet_name']
srp_fleet_main.fleet_doctrine = form.cleaned_data['fleet_doctrine']
srp_fleet_main.fleet_time = form.cleaned_data['fleet_time']
srp_fleet_main.fleet_srp_code = random_string(8)
srp_fleet_main.fleet_commander = character
srp_fleet_main.save()
completed = True
completed_srp_code = srp_fleet_main.fleet_srp_code
else:
form = SrpFleetMainForm()
render_items = {'form': form, "completed": completed, "completed_srp_code": completed_srp_code}
return render_to_response('registered/srpfleetadd.html', render_items, context_instance=RequestContext(request))
@login_required
@permission_required('auth.srp_management')
def srp_fleet_remove(request, fleet_id):
if SrpFleetMain.objects.filter(id=fleet_id).exists():
srpfleetmain = SrpFleetMain.objects.get(id=fleet_id)
srpfleetmain.delete()
return HttpResponseRedirect("/srp")
@login_required
@permission_required('auth.srp_management')
def srp_fleet_mark_completed(request, fleet_id):
if SrpFleetMain.objects.filter(id=fleet_id).exists():
srpfleetmain = SrpFleetMain.objects.get(id=fleet_id)
srpfleetmain.fleet_srp_status = "Completed"
srpfleetmain.save()
return HttpResponseRedirect("/srp_fleet_view/" + str(fleet_id))
@login_required
@permission_required('auth.srp_management')
def srp_fleet_mark_uncompleted(request, fleet_id):
if SrpFleetMain.objects.filter(id=fleet_id).exists():
srpfleetmain = SrpFleetMain.objects.get(id=fleet_id)
srpfleetmain.fleet_srp_status = ""
srpfleetmain.save()
return HttpResponseRedirect("/srp_fleet_view/" + str(fleet_id))
@login_required
@user_passes_test(srp_util_test)
def srp_request_view(request, fleet_srp):
completed = False
no_srp_code = False
srp_code = ""
if SrpFleetMain.objects.filter(fleet_srp_code=fleet_srp).exists() is False:
no_srp_code = True
if request.method == 'POST':
form = SrpFleetUserRequestForm(request.POST)
if form.is_valid():
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
character = EveManager.get_character_by_id(authinfo.main_char_id)
srp_fleet_main = SrpFleetMain.objects.get(fleet_srp_code=fleet_srp)
srp_request = SrpUserRequest()
srp_request.killboard_link = form.cleaned_data['killboard_link']
srp_request.additional_info = form.cleaned_data['additional_info']
srp_request.character = character
srp_request.srp_fleet_main = srp_fleet_main
srp_request.save()
completed = True
else:
form = SrpFleetUserRequestForm()
render_items = {'form': form, "completed": completed, "no_srp_code": no_srp_code}
return render_to_response('registered/srpfleetrequest.html', render_items, context_instance=RequestContext(request))
@login_required
@permission_required('auth.srp_management')
def srp_request_remove(request, srp_request_id):
stored_fleet_view = None
if SrpUserRequest.objects.filter(id=srp_request_id).exists():
srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id)
stored_fleet_view = srpuserrequest.srp_fleet_main.id
srpuserrequest.delete()
if stored_fleet_view is None:
return HttpResponseRedirect("/srp")
else:
return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view))
@login_required
@permission_required('auth.srp_management')
def srp_request_approve(request, srp_request_id):
stored_fleet_view = None
if SrpUserRequest.objects.filter(id=srp_request_id).exists():
srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id)
stored_fleet_view = srpuserrequest.srp_fleet_main.id
srpuserrequest.srp_status = "Approved"
srpuserrequest.save()
if stored_fleet_view is None:
return HttpResponseRedirect("/srp")
else:
return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view))
@login_required
@permission_required('auth.srp_management')
def srp_request_reject(request, srp_request_id):
stored_fleet_view = None
if SrpUserRequest.objects.filter(id=srp_request_id).exists():
srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id)
stored_fleet_view = srpuserrequest.srp_fleet_main.id
srpuserrequest.srp_status = "Rejected"
srpuserrequest.save()
if stored_fleet_view is None:
return HttpResponseRedirect("/srp")
else:
return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view))