Merge pull request #327 from orbitroom/master

Added SRP Enhancements
This commit is contained in:
Mr McClain 2016-03-24 17:42:30 -05:00
commit 3f487cb92e
6 changed files with 71 additions and 12 deletions

View File

@ -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'),

View File

@ -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,

View File

@ -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"

View File

@ -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")

View File

@ -40,6 +40,7 @@
<th class="text-center">Ship Type</th>
<th class="text-center">Killboard Loss Amt</th>
<th class="text-center">SRP ISK Cost</th>
<th class="text-center">Post Time</th>
<th class="text-center">Status</th>
{% if perms.auth.srp_management %}
<th class="text-center">Actions</th>
@ -60,6 +61,7 @@
<td class="text-center">{{ srpfleetrequest.srp_ship_name }}</td>
<td class="text-center">ISK: {{ srpfleetrequest.kb_total_loss | intcomma }}</td>
<td class="text-center">ISK: {{ srpfleetrequest.srp_total_amount | intcomma }}</td>
<td class="text-center">{{ srpfleetrequest.post_time | date:"Y-m-d H:i" }}</td>
<td class="text-center">
{% if srpfleetrequest.srp_status == "Approved" %}
<div class="label label-success">
@ -82,18 +84,22 @@
<button type="button" class="btn btn-info"><span
class="glyphicon glyphicon-pencil"></span></button>
</a>
{% if srpfleetrequest.srp_status == "Rejected" %}
<a href="/srp_request_approve/{{ srpfleetrequest.id }}">
<button type="button" class="btn btn-success"><span
class="glyphicon glyphicon-ok"></span></button>
</a>
{% else %}
<a href="/srp_request_reject/{{ srpfleetrequest.id }}">
<button type="button" class="btn btn-warning"><span
class="glyphicon glyphicon-remove"></span></button>
</a>
{% endif %}
<a href="/srp_request_remove/{{ srpfleetrequest.id }}">
<button type="button" class="btn btn-danger"><span
class="glyphicon glyphicon-trash"></span></button>
</a>
</td>
{% endif %}
</tr>

View File

@ -46,7 +46,7 @@
{{ srpfleet.fleet_name }}
</div>
</td>
<td class="text-center">{{ srpfleet.fleet_time }}</td>
<td class="text-center">{{ srpfleet.fleet_time | date:"Y-m-d H:i" }}</td>
<td class="text-center">{{ srpfleet.fleet_doctrine }}</td>
<td class="text-center">
<div class="label label-success">
@ -56,10 +56,16 @@
<th class="text-center"><a href="{{ srpfleet.fleet_srp_aar_link }}"
target="_blank">{{ srpfleet.fleet_srp_aar_link }}</a></th>
<th class="text-center">
{% if srpfleet.fleet_srp_code %}
<div class="label label-warning">
<a href="/srp_request/{{ srpfleet.fleet_srp_code }}"
target="_blank">{{ srpfleet.fleet_srp_code }}</a>
>{{ srpfleet.fleet_srp_code }}</a>
</div>
{% else %}
<div class="label label-danger">
Disabled
</div>
{% endif %}
</th>
<td class="text-center">
{% for key,value in price_pair.items %}
@ -95,8 +101,20 @@
<a href="/srp_fleet_remove/{{ srpfleet.id }}">
<button type="button" class="btn btn-danger"><span
class="glyphicon glyphicon-remove"></span></button>
class="glyphicon glyphicon-trash"></span></button>
</a>
{% if srpfleet.fleet_srp_code %}
<a href="/srp_fleet_disable/{{ srpfleet.id }}">
<button type="button" class="btn btn-warning"><span
class="glyphicon glyphicon-remove-sign"></span></button>
</a>
{% else %}
<a href="/srp_fleet_enable/{{ srpfleet.id }}">
<button type="button" class="btn btn-success"><span
class="glyphicon glyphicon-ok-sign"></span></button>
</a>
{% endif %}
{% endif %}
</td>
</tr>