Merge pull request #257 from orbitroom/master

Added ability to edit signatures
This commit is contained in:
Mr McClain 2016-02-11 18:08:11 -06:00
commit 40aebf5089
5 changed files with 105 additions and 1 deletions

View File

@ -177,6 +177,7 @@ urlpatterns = patterns('',
url(r'^sigtracker/$', 'sigtracker.views.sigtracker_view', name='auth_signature_view'), url(r'^sigtracker/$', 'sigtracker.views.sigtracker_view', name='auth_signature_view'),
url(r'^add_signature/$', 'sigtracker.views.add_signature_view', name='auth_add_signature_view'), url(r'^add_signature/$', 'sigtracker.views.add_signature_view', name='auth_add_signature_view'),
url(r'^remove_signature/(\w+)', 'sigtracker.views.remove_signature', name='auth_remove_signature'), url(r'^remove_signature/(\w+)', 'sigtracker.views.remove_signature', name='auth_remove_signature'),
url(r'^edit_signature/(\w+)$', 'sigtracker.views.edit_signature', name='auth_edit_signature'),
# Fleet Operations Timers # Fleet Operations Timers
url(r'^optimer/$', 'optimer.views.optimer_view', name='auth_optimer_view'), url(r'^optimer/$', 'optimer.views.optimer_view', name='auth_optimer_view'),

View File

@ -20,5 +20,21 @@ class SignatureForm(forms.Form):
notes = forms.CharField(max_length=254, label="Notes", required=False, initial="") notes = forms.CharField(max_length=254, label="Notes", required=False, initial="")
class SignatureUpdateForm(forms.Form):
sigtype = [('Wormhole', 'Wormhole'), ('Combat', 'Combat'), ('Data', 'Data'),
('Relic', 'Relic'), ('Gas', 'Gas'), ('Ore', 'Ore')]
status = [('Open', 'Open'), ('Started', 'Started'), ('Finished', 'Finished'), ('Life cycle has not begun', 'Life cycle has not begun'),
('Probably wont last another day', 'Probably wont last another day'), ('End of its natural lifetime', 'End of its natural lifetime'),
('stability not significantly disrupted', 'stability not significantly disrupted'),
('Stability reduced not critical degree yet', 'Stability reduced not critical degree yet'),
('Wormhole stability critically disrupted', 'Wormhole stability critically disrupted')]
system = forms.CharField(max_length=254, required=True, label='System')
ident = forms.CharField(max_length=254, required=True, label="ID")
sigtype = forms.ChoiceField(choices=sigtype, required=True, label="Signature Type")
destination = forms.CharField(max_length=254, label="destination", required=True, initial="")
status = forms.ChoiceField(choices=status, required=True, label="Status")
notes = forms.CharField(max_length=254, label="Notes", required=False, initial="")

View File

@ -4,6 +4,7 @@ from django.shortcuts import render_to_response
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import permission_required from django.contrib.auth.decorators import permission_required
from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import get_object_or_404
from django.utils import timezone from django.utils import timezone
from util import check_if_user_has_permission from util import check_if_user_has_permission
@ -11,6 +12,7 @@ from authentication.managers import AuthServicesInfoManager
from eveonline.managers import EveManager from eveonline.managers import EveManager
from form import SignatureForm from form import SignatureForm
from models import sigtracker from models import sigtracker
from form import SignatureUpdateForm
import logging import logging
@ -76,3 +78,39 @@ def remove_signature(request, sigtracker_id):
else: else:
logger.info("Unable to delete signature id %s for user %s - signature matching id not found." % (sigtracker_id, request.user)) logger.info("Unable to delete signature id %s for user %s - signature matching id not found." % (sigtracker_id, request.user))
return HttpResponseRedirect("/sigtracker/") return HttpResponseRedirect("/sigtracker/")
@login_required
@permission_required('auth.signature_management')
def edit_signature(request, sigtracker_id):
logger.debug("edit_optimer called by user %s for optimer id %s" % (request.user, sigtracker_id))
sig = get_object_or_404(sigtracker, id=sigtracker_id)
if request.method == 'POST':
form = SignatureUpdateForm(request.POST)
logger.debug("Received POST request containing update sigtracker form, is valid: %s" % form.is_valid())
if form.is_valid():
auth_info = AuthServicesInfoManager.get_auth_service_info(request.user)
character = EveManager.get_character_by_id(auth_info.main_char_id)
sig.ident = form.cleaned_data['ident']
sig.system = form.cleaned_data['system']
sig.destination = form.cleaned_data['destination']
sig.sigtype = form.cleaned_data['sigtype']
sig.status = form.cleaned_data['status']
sig.notes = form.cleaned_data['notes']
sig.eve_character = character
logger.info("User %s updating sigtracker id %s " % (request.user, sigtracker_id))
sig.save()
logger.debug("Detected no changes between sigtracker id %s and supplied form." % sigtracker_id)
return HttpResponseRedirect("/sigtracker/")
else:
data = {
'ident': sig.ident,
'system': sig.system,
'destination': sig.destination,
'sigtype': sig.sigtype,
'status': sig.status,
'notes': sig.notes,
}
form = SignatureUpdateForm(initial= data)
return render_to_response('registered/signatureupdate.html', {'form':form}, context_instance=RequestContext(request))

View File

@ -51,6 +51,10 @@
<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-remove"></span></button>
</a> </a>
<a href="/edit_signature/{{ sigt.id }}">
<button type="button" class="btn btn-info"><span
class="glyphicon glyphicon-pencil"></span></button>
</a>
</td> </td>

View File

@ -0,0 +1,45 @@
{% extends "public/base.html" %}
{% load bootstrap %}
{% load staticfiles %}
{% block title %}Alliance Auth - Update Signature {% endblock %}
{% block page_title %}Update AAR Link{% endblock page_title %}
{% block extra_css %}
<link href="{% static 'css/jquery.datetimepicker.css' %}" rel="stylesheet" type="text/css">{% endblock extra_css %}
{% block content %}
<div class="col-lg-12">
<h1 class="page-header text-center">Update Signature</h1>
<div class="container-fluid">
<div class="col-md-4 col-md-offset-4">
<div class="row">
{% if no_fleet_id %}
<div class="alert alert-danger" role="alert">Signature Does Not Exist</div>
{% else %}
<form class="form-signin" role="form" action="" method="POST">
{% csrf_token %}
{{ form|bootstrap }}
<br/>
<button class="btn btn-lg btn-primary btn-block" type="submit">Update Signature
</button>
</form>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock content %}
{% block extra_script %}
$('#id_fleet_time').datetimepicker({
maskInput: true,
format: 'Y-m-d H:i',minDate:0
});
{% endblock extra_script %}