diff --git a/alliance_auth/settings.py.example b/alliance_auth/settings.py.example index d6c11364..9350a067 100755 --- a/alliance_auth/settings.py.example +++ b/alliance_auth/settings.py.example @@ -41,6 +41,7 @@ INSTALLED_APPS = ( 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'django.contrib.humanize', 'django_evolution', 'djcelery', 'celerytask', diff --git a/alliance_auth/urls.py b/alliance_auth/urls.py index 2ecc97a8..ac31bee0 100755 --- a/alliance_auth/urls.py +++ b/alliance_auth/urls.py @@ -150,5 +150,7 @@ urlpatterns = patterns('', url(r'srp_request_approve/(\w+)', 'srp.views.srp_request_approve', name='auth_srp_request_approve'), url(r'srp_request_reject/(\w+)', 'srp.views.srp_request_reject', name='auth_srp_request_reject'), + url(r'srp_request_amount_update/(\w+)', 'srp.views.srp_request_update_amount_view', + name="auth_srp_request_update_amount_view") ) \ No newline at end of file diff --git a/srp/form.py b/srp/form.py index 9bef65a9..0833466f 100755 --- a/srp/form.py +++ b/srp/form.py @@ -9,4 +9,8 @@ class SrpFleetMainForm(forms.Form): class SrpFleetUserRequestForm(forms.Form): killboard_link = forms.CharField(required=True, label="Killboard Link") - additional_info = forms.CharField(required=False, label="Additional Info") \ No newline at end of file + additional_info = forms.CharField(required=False, label="Additional Info") + + +class SrpFleetUpdateCostForm(forms.Form): + srp_total_amount = forms.IntegerField(required=True, label="Total SRP Amount") \ No newline at end of file diff --git a/srp/models.py b/srp/models.py index a7fe3ab9..f42df466 100755 --- a/srp/models.py +++ b/srp/models.py @@ -20,6 +20,7 @@ class SrpUserRequest(models.Model): after_action_report_link = models.CharField(max_length=254, default="") additional_info = models.CharField(max_length=254, default="") srp_status = models.CharField(max_length=254, default="") + srp_total_amount = models.BigIntegerField(default=0) character = models.ForeignKey(EveCharacter) srp_fleet_main = models.ForeignKey(SrpFleetMain) diff --git a/srp/views.py b/srp/views.py index c5ebe8a2..55e95bb8 100755 --- a/srp/views.py +++ b/srp/views.py @@ -13,6 +13,7 @@ from models import SrpFleetMain from models import SrpUserRequest from form import SrpFleetMainForm from form import SrpFleetUserRequestForm +from form import SrpFleetUpdateCostForm def srp_util_test(user): @@ -22,24 +23,50 @@ def srp_util_test(user): @login_required @user_passes_test(srp_util_test) def srp_management(request): - context = {"srpfleets": SrpFleetMain.objects.filter(fleet_srp_status="")} + totalcost = 0 + runningcost = 0 + price_pair = {} + for fleet_main in SrpFleetMain.objects.filter(fleet_srp_status="").iterator(): + for fleet_data in SrpUserRequest.objects.filter(srp_fleet_main=fleet_main).iterator(): + totalcost = totalcost + fleet_data.srp_total_amount + runningcost = runningcost + fleet_data.srp_total_amount + price_pair[fleet_main.id] = runningcost + runningcost = 0 + + context = {"srpfleets": SrpFleetMain.objects.filter(fleet_srp_status=""), "totalcost": totalcost, + "price_pair": price_pair} 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()} + totalcost = 0 + runningcost = 0 + price_pair = {} + for fleet_main in SrpFleetMain.objects.all().iterator(): + for fleet_data in SrpUserRequest.objects.filter(srp_fleet_main=fleet_main).iterator(): + totalcost = totalcost + fleet_data.srp_total_amount + runningcost = runningcost + fleet_data.srp_total_amount + price_pair[fleet_main.id] = runningcost + runningcost = 0 + + context = {"srpfleets": SrpFleetMain.objects.all(), "totalcost": totalcost, "price_pair": price_pair} 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): + if SrpFleetMain.objects.filter(id=fleet_id).exists(): fleet_main = SrpFleetMain.objects.get(id=fleet_id) + totalcost = 0 + for fleet_data in SrpUserRequest.objects.filter(srp_fleet_main=fleet_main): + totalcost = totalcost + fleet_data.srp_total_amount + context = {"fleet_id": fleet_id, "fleet_status": fleet_main.fleet_srp_status, - "srpfleetrequests": SrpUserRequest.objects.filter(srp_fleet_main=fleet_main)} + "srpfleetrequests": SrpUserRequest.objects.filter(srp_fleet_main=fleet_main), + "totalcost": totalcost} return render_to_response('registered/srpfleetdata.html', context, context_instance=RequestContext(request)) @@ -194,4 +221,31 @@ def srp_request_reject(request, srp_request_id): if stored_fleet_view is None: return HttpResponseRedirect("/srp") else: - return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view)) \ No newline at end of file + return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view)) + + +@login_required +@permission_required('auth.srp_management') +def srp_request_update_amount_view(request, fleet_srp_request_id): + no_srp_code = False + srp_code = "" + + if SrpUserRequest.objects.filter(id=fleet_srp_request_id).exists() is False: + no_srp_code = True + + if request.method == 'POST': + form = SrpFleetUpdateCostForm(request.POST) + + if form.is_valid(): + srp_request = SrpUserRequest.objects.get(id=fleet_srp_request_id) + srp_request.srp_total_amount = form.cleaned_data['srp_total_amount'] + srp_request.save() + + return HttpResponseRedirect("/srp_fleet_view/" + str(srp_request.srp_fleet_main.id)) + else: + form = SrpFleetUpdateCostForm() + + render_items = {'form': form, "no_srp_code": no_srp_code} + + return render_to_response('registered/srpfleetrequestamount.html', render_items, + context_instance=RequestContext(request)) diff --git a/templates/registered/srpfleetdata.html b/templates/registered/srpfleetdata.html index 5b8ac9ac..596bc457 100755 --- a/templates/registered/srpfleetdata.html +++ b/templates/registered/srpfleetdata.html @@ -1,7 +1,7 @@ {% extends "public/base.html" %} {% load bootstrap %} {% load staticfiles %} - +{% load humanize %} {% block title %}Alliance Auth{% endblock %} {% block page_title %}Srp Fleet Data{% endblock page_title %} @@ -25,11 +25,19 @@ {% endif %} +