This commit is contained in:
Adarnof 2016-03-25 05:32:09 +00:00
commit 0431b8d0f3
6 changed files with 95 additions and 14 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_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_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_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_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', url(r'^srp_fleet_mark_completed/(\w+)', 'srp.views.srp_fleet_mark_completed',
name='auth_srp_fleet_mark_completed'), name='auth_srp_fleet_mark_completed'),

View File

@ -9,7 +9,7 @@ class SrpFleetMainForm(forms.Form):
class SrpFleetUserRequestForm(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( killboard_link = forms.CharField(
label="zKillboard Link", label="zKillboard Link",
max_length=255, max_length=255,

View File

@ -1,5 +1,5 @@
from django.db import models from django.db import models
from django.utils import timezone
from eveonline.models import EveCharacter from eveonline.models import EveCharacter
@ -7,7 +7,7 @@ class SrpFleetMain(models.Model):
fleet_name = models.CharField(max_length=254, default="") fleet_name = models.CharField(max_length=254, default="")
fleet_doctrine = models.CharField(max_length=254, default="") fleet_doctrine = models.CharField(max_length=254, default="")
fleet_time = models.DateTimeField() 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_srp_status = models.CharField(max_length=254, default="")
fleet_commander = models.ForeignKey(EveCharacter) fleet_commander = models.ForeignKey(EveCharacter)
fleet_srp_aar_link = models.CharField(max_length=254, default="") fleet_srp_aar_link = models.CharField(max_length=254, default="")
@ -26,7 +26,7 @@ class SrpUserRequest(models.Model):
srp_fleet_main = models.ForeignKey(SrpFleetMain) srp_fleet_main = models.ForeignKey(SrpFleetMain)
kb_total_loss = models.BigIntegerField(default=0) kb_total_loss = models.BigIntegerField(default=0)
srp_ship_name = models.CharField(max_length=254, default="") srp_ship_name = models.CharField(max_length=254, default="")
post_time = models.DateTimeField(default=timezone.now)
def __str__(self): def __str__(self):
return self.character.character_name + " - SrpUserRequest" return self.character.character_name + " - SrpUserRequest"

View File

@ -17,6 +17,7 @@ from form import SrpFleetUpdateCostForm
from form import SrpFleetMainUpdateForm from form import SrpFleetMainUpdateForm
from services.managers.srp_manager import srpManager from services.managers.srp_manager import srpManager
from notifications import notify from notifications import notify
from django.utils import timezone
import logging import logging
@ -74,7 +75,7 @@ def srp_fleet_view(request, fleet_id):
if SrpFleetMain.objects.filter(id=fleet_id).exists(): if SrpFleetMain.objects.filter(id=fleet_id).exists():
fleet_main = SrpFleetMain.objects.get(id=fleet_id) fleet_main = SrpFleetMain.objects.get(id=fleet_id)
totalcost = 0 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 totalcost = totalcost + fleet_data.srp_total_amount
logger.debug("Determiend fleet id %s total cost %s" % (fleet_id, totalcost)) 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)) logger.error("Unable to delete SRP fleet id %s for user %s - fleet matching id not found." % (fleet_id, request.user))
return HttpResponseRedirect("/srp") 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 @login_required
@permission_required('auth.srp_management') @permission_required('auth.srp_management')
@ -186,13 +212,15 @@ def srp_request_view(request, fleet_srp):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user) authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
character = EveManager.get_character_by_id(authinfo.main_char_id) character = EveManager.get_character_by_id(authinfo.main_char_id)
srp_fleet_main = SrpFleetMain.objects.get(fleet_srp_code=fleet_srp) srp_fleet_main = SrpFleetMain.objects.get(fleet_srp_code=fleet_srp)
post_time = timezone.now()
srp_status = "Pending"
srp_request = SrpUserRequest() srp_request = SrpUserRequest()
srp_request.killboard_link = form.cleaned_data['killboard_link'] srp_request.killboard_link = form.cleaned_data['killboard_link']
srp_request.additional_info = form.cleaned_data['additional_info'] srp_request.additional_info = form.cleaned_data['additional_info']
srp_request.character = character srp_request.character = character
srp_request.srp_fleet_main = srp_fleet_main srp_request.srp_fleet_main = srp_fleet_main
srp_request.srp_status = srp_status
try: try:
srp_kill_link = srpManager.get_kill_id(srp_request.killboard_link) srp_kill_link = srpManager.get_kill_id(srp_request.killboard_link)
@ -205,6 +233,7 @@ def srp_request_view(request, fleet_srp):
srp_request.srp_ship_name = srp_ship_name srp_request.srp_ship_name = srp_ship_name
kb_total_loss = ship_value kb_total_loss = ship_value
srp_request.kb_total_loss = kb_total_loss srp_request.kb_total_loss = kb_total_loss
srp_request.post_time = post_time
srp_request.save() srp_request.save()
completed = True completed = True
logger.info("Created SRP Request on behalf of user %s for fleet name %s" % (request.user, srp_fleet_main.fleet_name)) logger.info("Created SRP Request on behalf of user %s for fleet name %s" % (request.user, srp_fleet_main.fleet_name))
@ -243,12 +272,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)) logger.debug("srp_request_approve called by user %s for srp request id %s" % (request.user, srp_request_id))
stored_fleet_view = None stored_fleet_view = None
if SrpUserRequest.objects.filter(id=srp_request_id).exists(): if SrpUserRequest.objects.filter(id=srp_request_id).exists():
srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id) srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id)
stored_fleet_view = srpuserrequest.srp_fleet_main.id stored_fleet_view = srpuserrequest.srp_fleet_main.id
srpuserrequest.srp_status = "Approved" srpuserrequest.srp_status = "Approved"
if srpuserrequest.srp_total_amount == 0:
srpuserrequest.srp_total_amount = srpuserrequest.kb_total_loss
srpuserrequest.save() srpuserrequest.save()
logger.info("Approved SRP request id %s for character %s by user %s" % (srp_request_id, srpuserrequest.character, request.user)) 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: 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)) 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") return HttpResponseRedirect("/srp")

View File

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

View File

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