From 2f5d6d48713cb398946fdf44767d83fcfaba77fe Mon Sep 17 00:00:00 2001 From: orbitroom Date: Thu, 24 Mar 2016 18:36:46 -0400 Subject: [PATCH 1/3] Added Enhancements to SRP Management --- alliance_auth/urls.py | 4 ++- srp/form.py | 2 +- srp/models.py | 4 +-- srp/views.py | 35 ++++++++++++++++++- stock/templates/registered/srpfleetdata.html | 14 +++++--- stock/templates/registered/srpmanagement.html | 24 +++++++++++-- 6 files changed, 71 insertions(+), 12 deletions(-) diff --git a/alliance_auth/urls.py b/alliance_auth/urls.py index c1067210..f3953611 100755 --- a/alliance_auth/urls.py +++ b/alliance_auth/urls.py @@ -151,7 +151,9 @@ urlpatterns = patterns('', url(r'^srp_all/$', 'srp.views.srp_management_all', name='auth_srp_management_all_view'), url(r'^srp_fleet_view/(\w+)$', 'srp.views.srp_fleet_view', name='auth_srp_fleet_view'), url(r'^srp_fleet_add_view/$', 'srp.views.srp_fleet_add_view', name='auth_srp_fleet_add_view'), - url(r'^srp_fleet_remove/(\w+)$', 'srp.views.srp_fleet_remove', name='auth_srp_flet_remove'), + url(r'^srp_fleet_remove/(\w+)$', 'srp.views.srp_fleet_remove', name='auth_srp_fleet_remove'), + url(r'^srp_fleet_disable/(\w+)$', 'srp.views.srp_fleet_disable', name='auth_srp_fleet_disable'), + url(r'^srp_fleet_enable/(\w+)$', 'srp.views.srp_fleet_enable', name='auth_srp_fleet_enable'), url(r'^srp_fleet_edit/(\w+)$', 'srp.views.srp_fleet_edit_view', name='auth_srp_fleet_edit_view'), url(r'^srp_fleet_mark_completed/(\w+)', 'srp.views.srp_fleet_mark_completed', name='auth_srp_fleet_mark_completed'), diff --git a/srp/form.py b/srp/form.py index fcffe74a..4754d517 100755 --- a/srp/form.py +++ b/srp/form.py @@ -9,7 +9,7 @@ class SrpFleetMainForm(forms.Form): class SrpFleetUserRequestForm(forms.Form): - additional_info = forms.CharField(required=False, label="Additional Info") + additional_info = forms.CharField(required=False, max_length=25, label="Additional Info") killboard_link = forms.CharField( label="zKillboard Link", max_length=255, diff --git a/srp/models.py b/srp/models.py index 58e096e6..8f8f308b 100755 --- a/srp/models.py +++ b/srp/models.py @@ -1,5 +1,5 @@ from django.db import models - +from django.utils import timezone from eveonline.models import EveCharacter @@ -26,7 +26,7 @@ class SrpUserRequest(models.Model): srp_fleet_main = models.ForeignKey(SrpFleetMain) kb_total_loss = models.BigIntegerField(default=0) srp_ship_name = models.CharField(max_length=254, default="") - + post_time = models.DateTimeField(default=timezone.now) def __str__(self): return self.character.character_name + " - SrpUserRequest" diff --git a/srp/views.py b/srp/views.py index 43e42319..63d25819 100755 --- a/srp/views.py +++ b/srp/views.py @@ -17,6 +17,7 @@ from form import SrpFleetUpdateCostForm from form import SrpFleetMainUpdateForm from services.managers.srp_manager import srpManager from notifications import notify +from django.utils import timezone import logging @@ -74,7 +75,7 @@ def srp_fleet_view(request, 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): + for fleet_data in SrpUserRequest.objects.filter(srp_fleet_main=fleet_main).filter(srp_status="Approved"): totalcost = totalcost + fleet_data.srp_total_amount logger.debug("Determiend fleet id %s total cost %s" % (fleet_id, totalcost)) @@ -137,6 +138,31 @@ def srp_fleet_remove(request, fleet_id): logger.error("Unable to delete SRP fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user)) return HttpResponseRedirect("/srp") +@login_required +@permission_required('auth.srp_management') +def srp_fleet_disable(request, fleet_id): + logger.debug("srp_fleet_disable called by user %s for fleet id %s" % (request.user, fleet_id)) + if SrpFleetMain.objects.filter(id=fleet_id).exists(): + srpfleetmain = SrpFleetMain.objects.get(id=fleet_id) + srpfleetmain.fleet_srp_code = "" + srpfleetmain.save() + logger.info("SRP Fleet %s disabled by user %s" % (srpfleetmain.fleet_name, request.user)) + else: + logger.error("Unable to disable SRP fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user)) + return HttpResponseRedirect("/srp") + +@login_required +@permission_required('auth.srp_management') +def srp_fleet_enable(request, fleet_id): + logger.debug("srp_fleet_enable called by user %s for fleet id %s" % (request.user, fleet_id)) + if SrpFleetMain.objects.filter(id=fleet_id).exists(): + srpfleetmain = SrpFleetMain.objects.get(id=fleet_id) + srpfleetmain.fleet_srp_code = random_string(8) + srpfleetmain.save() + logger.info("SRP Fleet %s enable by user %s" % (srpfleetmain.fleet_name, request.user)) + else: + logger.error("Unable to enable SRP fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user)) + return HttpResponseRedirect("/srp") @login_required @permission_required('auth.srp_management') @@ -186,6 +212,7 @@ def srp_request_view(request, fleet_srp): 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) + post_time = timezone.now() srp_request = SrpUserRequest() @@ -205,6 +232,7 @@ def srp_request_view(request, fleet_srp): srp_request.srp_ship_name = srp_ship_name kb_total_loss = ship_value srp_request.kb_total_loss = kb_total_loss + srp_request.post_time = post_time srp_request.save() completed = True logger.info("Created SRP Request on behalf of user %s for fleet name %s" % (request.user, srp_fleet_main.fleet_name)) @@ -243,12 +271,17 @@ def srp_request_approve(request, srp_request_id): logger.debug("srp_request_approve called by user %s for srp request id %s" % (request.user, 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" + if srpuserrequest.srp_total_amount == 0: + srpuserrequest.srp_total_amount = srpuserrequest.kb_total_loss srpuserrequest.save() logger.info("Approved SRP request id %s for character %s by user %s" % (srp_request_id, srpuserrequest.character, request.user)) + if stored_fleet_view is None: logger.error("Unable to approve srp request id %s on behalf of user %s - request matching id not found." % (srp_request_id, request.user)) return HttpResponseRedirect("/srp") diff --git a/stock/templates/registered/srpfleetdata.html b/stock/templates/registered/srpfleetdata.html index 3d1e7201..222f6874 100755 --- a/stock/templates/registered/srpfleetdata.html +++ b/stock/templates/registered/srpfleetdata.html @@ -40,6 +40,7 @@ Ship Type Killboard Loss Amt SRP ISK Cost + Post Time Status {% if perms.auth.srp_management %} Actions @@ -60,6 +61,7 @@ {{ srpfleetrequest.srp_ship_name }} ISK: {{ srpfleetrequest.kb_total_loss | intcomma }} ISK: {{ srpfleetrequest.srp_total_amount | intcomma }} + {{ srpfleetrequest.post_time | date:"Y-m-d H:i" }} {% if srpfleetrequest.srp_status == "Approved" %}
@@ -82,18 +84,22 @@ - + {% if srpfleetrequest.srp_status == "Rejected" %} + - - + + {% else %} + - + + {% endif %} + {% endif %} diff --git a/stock/templates/registered/srpmanagement.html b/stock/templates/registered/srpmanagement.html index 150679e9..70ba97fe 100755 --- a/stock/templates/registered/srpmanagement.html +++ b/stock/templates/registered/srpmanagement.html @@ -46,7 +46,7 @@ {{ srpfleet.fleet_name }}
- {{ srpfleet.fleet_time }} + {{ srpfleet.fleet_time | date:"Y-m-d H:i" }} {{ srpfleet.fleet_doctrine }}
@@ -56,10 +56,16 @@ {{ srpfleet.fleet_srp_aar_link }} + {% if srpfleet.fleet_srp_code %}
{{ srpfleet.fleet_srp_code }} + >{{ srpfleet.fleet_srp_code }}
+ {% else %} +
+ Disabled +
+ {% endif %} {% for key,value in price_pair.items %} @@ -95,8 +101,20 @@ + class="glyphicon glyphicon-trash"> + {% if srpfleet.fleet_srp_code %} + + + + {% else %} + + + + {% endif %} + {% endif %} From ac5ee52ff825b979803627f73b9f329fb290fa1d Mon Sep 17 00:00:00 2001 From: orbitroom Date: Thu, 24 Mar 2016 20:26:08 -0400 Subject: [PATCH 2/3] Fixed Error in Template Rendering --- srp/views.py | 3 ++- stock/templates/registered/srpfleetdata.html | 23 +++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/srp/views.py b/srp/views.py index 63d25819..15c3a9ed 100755 --- a/srp/views.py +++ b/srp/views.py @@ -213,13 +213,14 @@ def srp_request_view(request, fleet_srp): character = EveManager.get_character_by_id(authinfo.main_char_id) srp_fleet_main = SrpFleetMain.objects.get(fleet_srp_code=fleet_srp) post_time = timezone.now() - + srp_status = "Pending" 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.srp_status = srp_status try: srp_kill_link = srpManager.get_kill_id(srp_request.killboard_link) diff --git a/stock/templates/registered/srpfleetdata.html b/stock/templates/registered/srpfleetdata.html index 222f6874..31c78b25 100755 --- a/stock/templates/registered/srpfleetdata.html +++ b/stock/templates/registered/srpfleetdata.html @@ -89,7 +89,28 @@ - {% else %} + {% elif srpfleetrequest.srp_status == "Pending" %} + + + + {% elif srpfleetrequest.srp_status == "" %} + + + + {% endif %} + {% if srpfleetrequest.srp_status == "Approved" %} + + + + {% elif srpfleetrequest.srp_status == "Pending" %} + + + + {% elif srpfleetrequest.srp_status == "" %} From 891bdda9eba6dc369dd0069aebe9b329c66702ab Mon Sep 17 00:00:00 2001 From: Mr McClain Date: Thu, 24 Mar 2016 20:01:35 -0500 Subject: [PATCH 3/3] Update models.py --- srp/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srp/models.py b/srp/models.py index 8f8f308b..c8e05e41 100755 --- a/srp/models.py +++ b/srp/models.py @@ -7,7 +7,7 @@ class SrpFleetMain(models.Model): fleet_name = models.CharField(max_length=254, default="") fleet_doctrine = models.CharField(max_length=254, default="") fleet_time = models.DateTimeField() - fleet_srp_code = models.CharField(max_length=254, default="", unique=True) + fleet_srp_code = models.CharField(max_length=254, default="") fleet_srp_status = models.CharField(max_length=254, default="") fleet_commander = models.ForeignKey(EveCharacter) fleet_srp_aar_link = models.CharField(max_length=254, default="")