mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 20:40:17 +02:00
Add missing titles to SRP buttons (#654)
Add pending request counter. Restrict SRP status to choices. Closes #643
This commit is contained in:
parent
d186088a8f
commit
cf81f59fa6
20
srp/migrations/0002_srpuserrequest_srp_status_choices.py
Normal file
20
srp/migrations/0002_srpuserrequest_srp_status_choices.py
Normal file
@ -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),
|
||||||
|
),
|
||||||
|
]
|
@ -16,15 +16,29 @@ class SrpFleetMain(models.Model):
|
|||||||
fleet_srp_aar_link = models.CharField(max_length=254, default="")
|
fleet_srp_aar_link = models.CharField(max_length=254, default="")
|
||||||
|
|
||||||
def __str__(self):
|
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
|
@python_2_unicode_compatible
|
||||||
class SrpUserRequest(models.Model):
|
class SrpUserRequest(models.Model):
|
||||||
|
SRP_STATUS_CHOICES = (
|
||||||
|
('Pending', 'Pending'),
|
||||||
|
('Approved', 'Approved'),
|
||||||
|
('Rejected', 'Rejected'),
|
||||||
|
)
|
||||||
|
|
||||||
killboard_link = models.CharField(max_length=254, default="")
|
killboard_link = models.CharField(max_length=254, default="")
|
||||||
after_action_report_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="")
|
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)
|
srp_total_amount = models.BigIntegerField(default=0)
|
||||||
character = models.ForeignKey(EveCharacter)
|
character = models.ForeignKey(EveCharacter)
|
||||||
srp_fleet_main = models.ForeignKey(SrpFleetMain)
|
srp_fleet_main = models.ForeignKey(SrpFleetMain)
|
||||||
@ -33,4 +47,4 @@ class SrpUserRequest(models.Model):
|
|||||||
post_time = models.DateTimeField(default=timezone.now)
|
post_time = models.DateTimeField(default=timezone.now)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.character.character_name + " - SrpUserRequest"
|
return self.character.character_name + ' SRP request for ' + self.srp_ship_name
|
||||||
|
44
srp/views.py
44
srp/views.py
@ -36,20 +36,9 @@ def random_string(string_length=10):
|
|||||||
@members_and_blues()
|
@members_and_blues()
|
||||||
def srp_management(request):
|
def srp_management(request):
|
||||||
logger.debug("srp_management called by user %s" % request.user)
|
logger.debug("srp_management called by user %s" % request.user)
|
||||||
totalcost = 0
|
fleets = SrpFleetMain.objects.filter(fleet_srp_status="")
|
||||||
runningcost = 0
|
totalcost = sum([int(fleet.total_cost) for fleet in fleets])
|
||||||
price_pair = {}
|
context = {"srpfleets": fleets, "totalcost": totalcost}
|
||||||
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}
|
|
||||||
return render(request, 'registered/srpmanagement.html', context=context)
|
return render(request, 'registered/srpmanagement.html', context=context)
|
||||||
|
|
||||||
|
|
||||||
@ -57,19 +46,9 @@ def srp_management(request):
|
|||||||
@members_and_blues()
|
@members_and_blues()
|
||||||
def srp_management_all(request):
|
def srp_management_all(request):
|
||||||
logger.debug("srp_management_all called by user %s" % request.user)
|
logger.debug("srp_management_all called by user %s" % request.user)
|
||||||
totalcost = 0
|
fleets = SrpFleetMain.objects.all()
|
||||||
runningcost = 0
|
totalcost = sum([int(fleet.total_cost) for fleet in fleets])
|
||||||
price_pair = {}
|
context = {"srpfleets": SrpFleetMain.objects.all(), "totalcost": totalcost}
|
||||||
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}
|
|
||||||
return render(request, 'registered/srpmanagement.html', context=context)
|
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))
|
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():
|
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
|
|
||||||
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,
|
context = {"fleet_id": fleet_id, "fleet_status": fleet_main.fleet_srp_status,
|
||||||
"srpfleetrequests": SrpUserRequest.objects.filter(srp_fleet_main=fleet_main),
|
"srpfleetrequests": fleet_main.srpuserrequest_set.all(),
|
||||||
"totalcost": totalcost}
|
"totalcost": fleet_main.total_cost}
|
||||||
|
|
||||||
return render(request, 'registered/srpfleetdata.html', context=context)
|
return render(request, 'registered/srpfleetdata.html', context=context)
|
||||||
else:
|
else:
|
||||||
@ -237,14 +211,12 @@ def srp_request_view(request, fleet_srp):
|
|||||||
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()
|
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)
|
||||||
|
@ -51,14 +51,10 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{% for srpfleetrequest in srpfleetrequests %}
|
{% for srpfleetrequest in srpfleetrequests %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">
|
<td class="text-center">{{ srpfleetrequest.character.character_name }}</td>
|
||||||
<div class="label label-info">
|
|
||||||
{{ srpfleetrequest.character.character_name }}
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<a href="{{ srpfleetrequest.killboard_link }}"
|
<a href="{{ srpfleetrequest.killboard_link }}"
|
||||||
target="_blank">{{ srpfleetrequest.killboard_link }}</a>
|
target="_blank" class="label label-warning">Link</a>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">{{ srpfleetrequest.additional_info }}</td>
|
<td class="text-center">{{ srpfleetrequest.additional_info }}</td>
|
||||||
<td class="text-center">{{ srpfleetrequest.srp_ship_name }}</td>
|
<td class="text-center">{{ srpfleetrequest.srp_ship_name }}</td>
|
||||||
@ -83,36 +79,28 @@
|
|||||||
{% if perms.auth.srp_management %}
|
{% if perms.auth.srp_management %}
|
||||||
|
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<a href="{% url 'auth_srp_request_update_amount_view' srpfleetrequest.id %}" class="btn btn-info">
|
<a href="{% url 'auth_srp_request_update_amount_view' srpfleetrequest.id %}" class="btn btn-info" title="Update Value">
|
||||||
<span class="glyphicon glyphicon-pencil"></span>
|
<span class="glyphicon glyphicon-usd"></span>
|
||||||
</a>
|
</a>
|
||||||
{% if srpfleetrequest.srp_status == "Rejected" %}
|
{% if srpfleetrequest.srp_status in "RejectedPending" %}
|
||||||
<a href="{% url 'auth_srp_request_approve' srpfleetrequest.id %}" class="btn btn-success">
|
<a href="{% url 'auth_srp_request_approve' srpfleetrequest.id %}" class="btn btn-success" title="Approve">
|
||||||
<span class="glyphicon glyphicon-ok"></span>
|
|
||||||
</a>
|
|
||||||
{% elif srpfleetrequest.srp_status == "Pending" %}
|
|
||||||
<a href="{% url 'auth_srp_request_approve' srpfleetrequest.id %}" class="btn btn-success">
|
|
||||||
<span class="glyphicon glyphicon-ok"></span>
|
<span class="glyphicon glyphicon-ok"></span>
|
||||||
</a>
|
</a>
|
||||||
{% elif srpfleetrequest.srp_status == "" %}
|
{% elif srpfleetrequest.srp_status == "" %}
|
||||||
<a href="{% url 'auth_srp_request_approve' srpfleetrequest.id %}" class="btn btn-success">
|
<a href="{% url 'auth_srp_request_approve' srpfleetrequest.id %}" class="btn btn-success" title="Approve">
|
||||||
<span class="glyphicon glyphicon-ok"></span>
|
<span class="glyphicon glyphicon-ok"></span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if srpfleetrequest.srp_status == "Approved" %}
|
{% if srpfleetrequest.srp_status in "ApprovedPending" %}
|
||||||
<a href="{% url 'auth_srp_request_reject' srpfleetrequest.id %}" class="btn btn-warning">
|
<a href="{% url 'auth_srp_request_reject' srpfleetrequest.id %}" class="btn btn-warning" title="Reject">
|
||||||
<span class="glyphicon glyphicon-remove"></span>
|
|
||||||
</a>
|
|
||||||
{% elif srpfleetrequest.srp_status == "Pending" %}
|
|
||||||
<a href="{% url 'auth_srp_request_reject' srpfleetrequest.id %}" class="btn btn-warning">
|
|
||||||
<span class="glyphicon glyphicon-remove"></span>
|
<span class="glyphicon glyphicon-remove"></span>
|
||||||
</a>
|
</a>
|
||||||
{% elif srpfleetrequest.srp_status == "" %}
|
{% elif srpfleetrequest.srp_status == "" %}
|
||||||
<a href="{% url 'auth_srp_request_reject' srpfleetrequest.id %}" class="btn btn-warning">
|
<a href="{% url 'auth_srp_request_reject' srpfleetrequest.id %}" class="btn btn-warning" title="Reject">
|
||||||
<span class="glyphicon glyphicon-remove"></span>
|
<span class="glyphicon glyphicon-remove"></span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="{% url 'auth_srp_request_remove' srpfleetrequest.id %}" class="btn btn-danger">
|
<a href="{% url 'auth_srp_request_remove' srpfleetrequest.id %}" class="btn btn-danger" title="Remove">
|
||||||
<span class="glyphicon glyphicon-trash"></span>
|
<span class="glyphicon glyphicon-trash"></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
<th class="text-center">{% trans "Fleet SRP Code" %}</th>
|
<th class="text-center">{% trans "Fleet SRP Code" %}</th>
|
||||||
<th class="text-center">{% trans "Fleet ISK Cost" %}</th>
|
<th class="text-center">{% trans "Fleet ISK Cost" %}</th>
|
||||||
<th class="text-center">{% trans "SRP Status" %}</th>
|
<th class="text-center">{% trans "SRP Status" %}</th>
|
||||||
|
<th class="text-center">{% trans "Pending Requests" %}</th>
|
||||||
<th class="text-center">{% trans "Actions" %}</th>
|
<th class="text-center">{% trans "Actions" %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
{% for srpfleet in srpfleets %}
|
{% for srpfleet in srpfleets %}
|
||||||
@ -56,27 +57,21 @@
|
|||||||
{{ srpfleet.fleet_commander.character_name }}
|
{{ srpfleet.fleet_commander.character_name }}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th class="text-center"><a href="{{ srpfleet.fleet_srp_aar_link }}"
|
<td class="text-center">
|
||||||
target="_blank">{{ srpfleet.fleet_srp_aar_link }}</a></th>
|
{% if srpfleet.fleet_srp_aar_link %}
|
||||||
<th class="text-center">
|
<a href="{{ srpfleet.fleet_srp_aar_link }}" target="_blank" class="label label-primary">{% trans 'Link' %}</a>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
{% if srpfleet.fleet_srp_code %}
|
{% if srpfleet.fleet_srp_code %}
|
||||||
<div class="label label-warning">
|
<a class="label label-warning" href="{% url 'auth_srp_request_view' srpfleet.fleet_srp_code %}">{{ srpfleet.fleet_srp_code }}</a>
|
||||||
<a href="{% url 'auth_srp_request_view' srpfleet.fleet_srp_code %}"
|
|
||||||
>{{ srpfleet.fleet_srp_code }}</a>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="label label-danger">
|
<div class="label label-danger">
|
||||||
{% trans "Disabled" %}
|
{% trans "Disabled" %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</th>
|
|
||||||
<td class="text-center">
|
|
||||||
{% for key,value in price_pair.items %}
|
|
||||||
{% if key == srpfleet.id %}
|
|
||||||
ISK: {{ value | intcomma }}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</td>
|
</td>
|
||||||
|
<td class="text-center">ISK: {{ srpfleet.total_cost | intcomma }}</td>
|
||||||
|
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
{% if srpfleet.fleet_srp_status == "" %}
|
{% if srpfleet.fleet_srp_status == "" %}
|
||||||
@ -89,26 +84,29 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="label label-warning">{{ srpfleet.pending_requests }}</div>
|
||||||
|
</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
|
|
||||||
<a href="{% url 'auth_srp_fleet_view' srpfleet.id %}" class="btn btn-primary">
|
<a href="{% url 'auth_srp_fleet_view' srpfleet.id %}" class="btn btn-primary" title="View">
|
||||||
<span class="glyphicon glyphicon-eye-open"></span>
|
<span class="glyphicon glyphicon-eye-open"></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{% if perms.auth.srp_management %}
|
{% if perms.auth.srp_management %}
|
||||||
<a href="{% url 'auth_srp_fleet_edit_view' srpfleet.id %}" class="btn btn-info">
|
<a href="{% url 'auth_srp_fleet_edit_view' srpfleet.id %}" class="btn btn-info" title="Edit">
|
||||||
<span class="glyphicon glyphicon-pencil"></span>
|
<span class="glyphicon glyphicon-pencil"></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="{% url 'auth_srp_fleet_remove' srpfleet.id %}" class="btn btn-danger">
|
<a href="{% url 'auth_srp_fleet_remove' srpfleet.id %}" class="btn btn-danger" title="Remove">
|
||||||
<span class="glyphicon glyphicon-trash"></span>
|
<span class="glyphicon glyphicon-trash"></span>
|
||||||
</a>
|
</a>
|
||||||
{% if srpfleet.fleet_srp_code %}
|
{% if srpfleet.fleet_srp_code %}
|
||||||
<a href="{% url 'auth_srp_fleet_disable' srpfleet.id %}" class="btn btn-warning">
|
<a href="{% url 'auth_srp_fleet_disable' srpfleet.id %}" class="btn btn-warning" title="Disable">
|
||||||
<span class="glyphicon glyphicon-remove-sign"></span>
|
<span class="glyphicon glyphicon-remove-sign"></span>
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'auth_srp_fleet_enable' srpfleet.id %}" class="btn btn-success">
|
<a href="{% url 'auth_srp_fleet_enable' srpfleet.id %}" class="btn btn-success" title="Enable">
|
||||||
<span class="glyphicon glyphicon-ok-sign"></span>
|
<span class="glyphicon glyphicon-ok-sign"></span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user