Merge pull request #256 from orbitroom/master

Added ability to edit operations timers
This commit is contained in:
Mr McClain 2016-02-11 16:32:09 -06:00
commit d55a4db279
5 changed files with 100 additions and 1 deletions

View File

@ -182,5 +182,6 @@ urlpatterns = patterns('',
url(r'^optimer/$', 'optimer.views.optimer_view', name='auth_optimer_view'), 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'^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'^remove_optimer/(\w+)', 'optimer.views.remove_optimer', name='auth_remove_optimer'),
url(r'^edit_optimer/(\w+)$', 'optimer.views.edit_optimer', name='auth_edit_optimer'),
) )

View File

@ -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")

View File

@ -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 permission_required
from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.decorators import user_passes_test
from django.utils import timezone from django.utils import timezone
from django.shortcuts import get_object_or_404
from util import check_if_user_has_permission from util import check_if_user_has_permission
from authentication.managers import AuthServicesInfoManager from authentication.managers import AuthServicesInfoManager
from eveonline.managers import EveManager from eveonline.managers import EveManager
from form import opForm from form import opForm
from models import optimer from models import optimer
from form import optimerUpdateForm
import logging import logging
@ -81,3 +83,42 @@ def remove_optimer(request, optimer_id):
else: else:
logger.error("Unable to delete optimer id %s for user %s - operation matching id not found." % (optimer_id, request.user)) logger.error("Unable to delete optimer id %s for user %s - operation matching id not found." % (optimer_id, request.user))
return HttpResponseRedirect("/optimer/") 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))

View File

@ -54,6 +54,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_optimer/{{ ops.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 Fleet Operation {% 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 Fleet Operation</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">Fleet Operation 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 Fleet Operation
</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 %}