diff --git a/alliance_auth/urls.py b/alliance_auth/urls.py index a71f7925..d242c4d1 100755 --- a/alliance_auth/urls.py +++ b/alliance_auth/urls.py @@ -37,7 +37,6 @@ urlpatterns = patterns('', url(r'^add_api_key/', 'eveonline.views.add_api_key', name='auth_add_api_key'), url(r'^api_key_management/', 'eveonline.views.api_key_management_view', name='auth_api_key_management'), - url(r'^refresh_api_pair/([0-9]+)/$', 'eveonline.views.user_refresh_api', name='auth_user_refresh_api'), url(r'^delete_api_pair/(\w+)/$', 'eveonline.views.api_key_removal', name='auth_api_key_removal'), url(r'^characters/', 'eveonline.views.characters_view', name='auth_characters'), url(r'^main_character_change/(\w+)/$', 'eveonline.views.main_character_change', @@ -182,5 +181,6 @@ urlpatterns = patterns('', url(r'^optimer/$', 'optimer.views.optimer_view', name='auth_optimer_view'), url(r'^add_optimer/$', 'optimer.views.add_optimer_view', name='auth_add_optimer_view'), url(r'^remove_optimer/(\w+)', 'optimer.views.remove_optimer', name='auth_remove_optimer'), + url(r'^edit_optimer/(\w+)$', 'optimer.views.edit_optimer', name='auth_edit_optimer'), ) diff --git a/optimer/form.py b/optimer/form.py index 1931d5fe..0c77a2a6 100644 --- a/optimer/form.py +++ b/optimer/form.py @@ -16,5 +16,13 @@ class opForm(forms.Form): +class optimerUpdateForm(forms.Form): - + doctrine = forms.CharField(max_length=254, required=True, label='Doctrine') + system = forms.CharField(max_length=254, required=True, label="System") + location = forms.CharField(max_length=254, required=True, label="Location") + start = forms.DateTimeField(required=True, label="Start Time MM/DD/YYYY HH:MM:SS") + duration = forms.CharField(max_length=254, required=True, label="Duration") + operation_name = forms.CharField(max_length=254, required=True, label="Operation Name") + fc = forms.CharField(max_length=254, required=True, label="Fleet Commander") + details = forms.CharField(max_length=254, required=False, label="Extra Details") diff --git a/optimer/views.py b/optimer/views.py index 2c3cc8c8..e65949cd 100644 --- a/optimer/views.py +++ b/optimer/views.py @@ -7,12 +7,14 @@ 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.utils import timezone +from django.shortcuts import get_object_or_404 from util import check_if_user_has_permission from authentication.managers import AuthServicesInfoManager from eveonline.managers import EveManager from form import opForm from models import optimer +from form import optimerUpdateForm import logging @@ -81,3 +83,42 @@ def remove_optimer(request, optimer_id): else: logger.error("Unable to delete optimer id %s for user %s - operation matching id not found." % (optimer_id, request.user)) return HttpResponseRedirect("/optimer/") + +@login_required +@permission_required('auth.optimer_management') +def edit_optimer(request, optimer_id): + logger.debug("edit_optimer called by user %s for optimer id %s" % (request.user, optimer_id)) + op = get_object_or_404(optimer, id=optimer_id) + if request.method == 'POST': + form = optimerUpdateForm(request.POST) + logger.debug("Received POST request containing update optimer 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) + op.doctrine = form.cleaned_data['doctrine'] + op.system = form.cleaned_data['system'] + op.location = form.cleaned_data['location'] + op.start = form.cleaned_data['start'] + op.duration = form.cleaned_data['duration'] + op.operation_name = form.cleaned_data['operation_name'] + op.fc = form.cleaned_data['fc'] + op.details = form.cleaned_data['details'] + op.eve_character = character + logger.info("User %s updating optimer id %s " % (request.user, optimer_id)) + op.save() + + logger.debug("Detected no changes between optimer id %s and supplied form." % optimer_id) + return HttpResponseRedirect("/optimer/") + else: + data = { + 'doctrine': op.doctrine, + 'system': op.system, + 'location': op.location, + 'start': op.start, + 'duration': op.duration, + 'operation_name': op.operation_name, + 'fc': op.fc, + 'details': op.details, + } + form = optimerUpdateForm(initial= data) + return render_to_response('registered/optimerupdate.html', {'form':form}, context_instance=RequestContext(request)) \ No newline at end of file diff --git a/stock/templates/registered/operationmanagement.html b/stock/templates/registered/operationmanagement.html index 63c2d05c..787d32da 100644 --- a/stock/templates/registered/operationmanagement.html +++ b/stock/templates/registered/operationmanagement.html @@ -54,6 +54,10 @@ + + + diff --git a/stock/templates/registered/optimerupdate.html b/stock/templates/registered/optimerupdate.html new file mode 100755 index 00000000..a7c22cc9 --- /dev/null +++ b/stock/templates/registered/optimerupdate.html @@ -0,0 +1,45 @@ +{% extends "public/base.html" %} +{% load bootstrap %} +{% load staticfiles %} + +{% block title %}Alliance Auth - Update Fleet Operation {% endblock %} + +{% block page_title %}Update AAR Link{% endblock page_title %} +{% block extra_css %} + {% endblock extra_css %} + +{% block content %} + +