diff --git a/srp/migrations/0002_srpuserrequest_srp_status_choices.py b/srp/migrations/0002_srpuserrequest_srp_status_choices.py new file mode 100644 index 00000000..d6e16371 --- /dev/null +++ b/srp/migrations/0002_srpuserrequest_srp_status_choices.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2017-01-18 20:21 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('srp', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='srpuserrequest', + name='srp_status', + field=models.CharField(choices=[('Pending', 'Pending'), ('Approved', 'Approved'), ('Rejected', 'Rejected')], default='Pending', max_length=8), + ), + ] diff --git a/srp/models.py b/srp/models.py index c57fa2ce..65b4836b 100755 --- a/srp/models.py +++ b/srp/models.py @@ -16,15 +16,29 @@ class SrpFleetMain(models.Model): fleet_srp_aar_link = models.CharField(max_length=254, default="") def __str__(self): - return self.fleet_name + " - SrpFleetMain" + return self.fleet_name + + @property + def total_cost(self): + return sum([int(r.srp_total_amount) for r in self.srpuserrequest_set.all()]) + + @property + def pending_requests(self): + return self.srpuserrequest_set.filter(srp_status='Pending').count() @python_2_unicode_compatible class SrpUserRequest(models.Model): + SRP_STATUS_CHOICES = ( + ('Pending', 'Pending'), + ('Approved', 'Approved'), + ('Rejected', 'Rejected'), + ) + killboard_link = models.CharField(max_length=254, default="") 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_status = models.CharField(max_length=8, default="Pending", choices=SRP_STATUS_CHOICES) srp_total_amount = models.BigIntegerField(default=0) character = models.ForeignKey(EveCharacter) srp_fleet_main = models.ForeignKey(SrpFleetMain) @@ -33,4 +47,4 @@ class SrpUserRequest(models.Model): post_time = models.DateTimeField(default=timezone.now) def __str__(self): - return self.character.character_name + " - SrpUserRequest" + return self.character.character_name + ' SRP request for ' + self.srp_ship_name diff --git a/srp/views.py b/srp/views.py index adc4a4cc..2d286642 100755 --- a/srp/views.py +++ b/srp/views.py @@ -36,20 +36,9 @@ def random_string(string_length=10): @members_and_blues() def srp_management(request): logger.debug("srp_management called by user %s" % request.user) - 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 - logger.debug("Determined SRP fleet %s costs %s" % (fleet_main.id, runningcost)) - runningcost = 0 - logger.debug("Determined total outstanding SRP cost %s" % totalcost) - - context = {"srpfleets": SrpFleetMain.objects.filter(fleet_srp_status=""), "totalcost": totalcost, - "price_pair": price_pair} + fleets = SrpFleetMain.objects.filter(fleet_srp_status="") + totalcost = sum([int(fleet.total_cost) for fleet in fleets]) + context = {"srpfleets": fleets, "totalcost": totalcost} return render(request, 'registered/srpmanagement.html', context=context) @@ -57,19 +46,9 @@ def srp_management(request): @members_and_blues() def srp_management_all(request): logger.debug("srp_management_all called by user %s" % request.user) - 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 - logger.debug("Determined SRP fleet %s costs %s" % (fleet_main.id, runningcost)) - runningcost = 0 - logger.debug("Determined all-time total SRP cost %s" % totalcost) - - context = {"srpfleets": SrpFleetMain.objects.all(), "totalcost": totalcost, "price_pair": price_pair} + fleets = SrpFleetMain.objects.all() + totalcost = sum([int(fleet.total_cost) for fleet in fleets]) + context = {"srpfleets": SrpFleetMain.objects.all(), "totalcost": totalcost} return render(request, 'registered/srpmanagement.html', context=context) @@ -79,14 +58,9 @@ def srp_fleet_view(request, fleet_id): logger.debug("srp_fleet_view called by user %s for fleet id %s" % (request.user, 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).filter(srp_status="Approved"): - totalcost = totalcost + fleet_data.srp_total_amount - logger.debug("Determiend fleet id %s total cost %s" % (fleet_id, totalcost)) - context = {"fleet_id": fleet_id, "fleet_status": fleet_main.fleet_srp_status, - "srpfleetrequests": SrpUserRequest.objects.filter(srp_fleet_main=fleet_main), - "totalcost": totalcost} + "srpfleetrequests": fleet_main.srpuserrequest_set.all(), + "totalcost": fleet_main.total_cost} return render(request, 'registered/srpfleetdata.html', context=context) else: @@ -237,14 +211,12 @@ 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 aa1ac88a..dfbb6a6a 100755 --- a/stock/templates/registered/srpfleetdata.html +++ b/stock/templates/registered/srpfleetdata.html @@ -51,14 +51,10 @@ {% for srpfleetrequest in srpfleetrequests %} - -
- {{ srpfleetrequest.character.character_name }} -
- + {{ srpfleetrequest.character.character_name }} {{ srpfleetrequest.killboard_link }} + target="_blank" class="label label-warning">Link {{ srpfleetrequest.additional_info }} {{ srpfleetrequest.srp_ship_name }} @@ -83,36 +79,28 @@ {% if perms.auth.srp_management %} - - + + - {% if srpfleetrequest.srp_status == "Rejected" %} - - - - {% elif srpfleetrequest.srp_status == "Pending" %} - + {% if srpfleetrequest.srp_status in "RejectedPending" %} + {% elif srpfleetrequest.srp_status == "" %} - + {% endif %} - {% if srpfleetrequest.srp_status == "Approved" %} - - - - {% elif srpfleetrequest.srp_status == "Pending" %} - + {% if srpfleetrequest.srp_status in "ApprovedPending" %} + {% elif srpfleetrequest.srp_status == "" %} - + {% endif %} - + diff --git a/stock/templates/registered/srpmanagement.html b/stock/templates/registered/srpmanagement.html index 7eb7ae4d..188ca656 100755 --- a/stock/templates/registered/srpmanagement.html +++ b/stock/templates/registered/srpmanagement.html @@ -40,6 +40,7 @@ {% trans "Fleet SRP Code" %} {% trans "Fleet ISK Cost" %} {% trans "SRP Status" %} + {% trans "Pending Requests" %} {% trans "Actions" %} {% for srpfleet in srpfleets %} @@ -56,27 +57,21 @@ {{ srpfleet.fleet_commander.character_name }} - {{ srpfleet.fleet_srp_aar_link }} - + + {% if srpfleet.fleet_srp_aar_link %} + {% trans 'Link' %} + {% endif %} + + {% if srpfleet.fleet_srp_code %} -
- {{ srpfleet.fleet_srp_code }} -
+ {{ srpfleet.fleet_srp_code }} {% else %}
{% trans "Disabled" %}
{% endif %} - - - {% for key,value in price_pair.items %} - {% if key == srpfleet.id %} - ISK: {{ value | intcomma }} - {% endif %} - {% endfor %} + ISK: {{ srpfleet.total_cost | intcomma }} {% if srpfleet.fleet_srp_status == "" %} @@ -89,26 +84,29 @@ {% endif %} + +
{{ srpfleet.pending_requests }}
+ - + {% if perms.auth.srp_management %} - + - + {% if srpfleet.fleet_srp_code %} - + {% else %} - + {% endif %}