Added Ability to Edit Signatures

This commit is contained in:
orbitroom
2016-02-11 19:04:11 -05:00
parent f35354a154
commit c19f6f5929
5 changed files with 105 additions and 1 deletions

View File

@@ -18,7 +18,23 @@ class SignatureForm(forms.Form):
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="")
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 permission_required
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import get_object_or_404
from django.utils import timezone
from util import check_if_user_has_permission
@@ -11,6 +12,7 @@ from authentication.managers import AuthServicesInfoManager
from eveonline.managers import EveManager
from form import SignatureForm
from models import sigtracker
from form import SignatureUpdateForm
import logging
@@ -76,3 +78,39 @@ def remove_signature(request, sigtracker_id):
else:
logger.info("Unable to delete signature id %s for user %s - signature matching id not found." % (sigtracker_id, request.user))
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))