Fleet op timer ui update (#787)

This commit is contained in:
iAddz 2017-05-11 17:32:45 +01:00 committed by Adarnof
parent 12cfc552da
commit d2e32d3da3
7 changed files with 90 additions and 71 deletions

View File

@ -6,9 +6,7 @@ from django.utils.translation import ugettext_lazy as _
class opForm(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"))
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

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-04-13 04:42
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('optimer', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='optimer',
name='details',
),
migrations.RemoveField(
model_name='optimer',
name='location',
),
]

View File

@ -13,12 +13,10 @@ class optimer(models.Model):
doctrine = models.CharField(max_length=254, default="")
system = models.CharField(max_length=254, default="")
location = models.CharField(max_length=254, default="")
start = models.DateTimeField(default=datetime.now)
duration = models.CharField(max_length=25, default="")
operation_name = models.CharField(max_length=254, default="")
fc = models.CharField(max_length=254, default="")
details = models.CharField(max_length=254, default="")
post_time = models.DateTimeField(default=timezone.now)
eve_character = models.ForeignKey(EveCharacter)

View File

@ -22,7 +22,11 @@ logger = logging.getLogger(__name__)
@permission_required('auth.optimer_view')
def optimer_view(request):
logger.debug("optimer_view called by user %s" % request.user)
render_items = {'optimer': optimer.objects.all(), }
render_items = {'optimer': optimer.objects.all(),
'future_timers': optimer.objects.all().filter(
start__gte=timezone.now()),
'past_timers': optimer.objects.all().filter(
start__lt=timezone.now()).order_by('-start')}
return render(request, 'registered/operationmanagement.html', context=render_items)
@ -44,12 +48,10 @@ def add_optimer_view(request):
op = optimer()
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.create_time = post_time
op.eve_character = character
op.save()
@ -93,12 +95,10 @@ def edit_optimer(request, optimer_id):
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()
@ -108,12 +108,10 @@ def edit_optimer(request, optimer_id):
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 = opForm(initial=data)
return render(request, 'registered/optimerupdate.html', context={'form': form})

View File

@ -0,0 +1,44 @@
{% load i18n %}
{% block content %}
<table class="table">
<thead>
<tr>
<th class="text-center col-lg-3">{% trans "Operation Name" %}</th>
<th class="text-center col lg-2">{% trans "Doctrine" %}</th>
<th class="text-center col-lg-1">{% trans "Form Up System" %}</th>
<th class="text-center col-lg-1">{% trans "Start Time" %}</th>
<th class="text-center col-lg-1">{% trans "Local Time" %}</th>
<th class="text-center col-lg-1">{% trans "Duration" %}</th>
<th class="text-center col-lg-1">{% trans "FC" %}</th>
{% if perms.auth.optimer_management %}
<th class="text-center col-lg-1">{% trans "Creator" %}</th>
<th class="text-center col-lg-2">{% trans "Action" %}</th>
{% endif %}
</tr>
</thead>
{% for ops in timers %}
<tbody>
<tr>
<td class="text-center">{{ ops.operation_name }}</td>
<td class="text-center">{{ ops.doctrine }}</td>
<td class="text-center">
<a href="http://evemaps.dotlan.net/system/{{ ops.system }}">{{ ops.system }}</a>
</td>
<td class="text-center" nowrap>{{ ops.start | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap><div id="localtime{{ ops.id }}"></div><div id="countdown{{ ops.id }}"></div></td>
<td class="text-center">{{ ops.duration }}</td>
<td class="text-center">{{ ops.fc }}</td>
{% if perms.auth.optimer_management %}
<td class="text-center">{{ ops.eve_character }}</td>
<td class="text-center">
<a href="{% url 'auth_remove_optimer' ops.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a><a href="{% url 'auth_edit_optimer' ops.id %}" class="btn btn-info"><span class="glyphicon glyphicon-pencil"></span></a>
</td>
{% endif %}
</tr>
</tbody>
{% endfor %}
</table>
{% endblock content %}

View File

@ -17,62 +17,26 @@
{% endif %}
</div>
</h1>
<div class="col-lg-12 text-center row">
<div class="label label-info text-left">
<b>{% trans "Current Eve Time:" %} </b>
</div><div class="label label-info text-left" id="current-time"></div>
<br />
</div>
{% if optimer %}
<table class="table table-responsive">
<tr>
<th class="text-center">{% trans "Operation Name" %}</th>
<th class="text-center">{% trans "Doctrine" %}</th>
<th class="text-center">{% trans "Form Up System" %}</th>
<th class="text-center">{% trans "Form Up Location" %}</th>
<th class="text-center">{% trans "Start Time" %}</th>
<th class="text-center">{% trans "Local Time" %}</th>
<th class="text-center">{% trans "Duration" %}</th>
<th class="text-center">{% trans "FC" %}</th>
<th class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Post Time" %}</th>
{% if perms.auth.optimer_management %}
<th class="text-center">{% trans "Creator" %}</th>
<th class="text-center">{% trans "Action" %}</th>
{% endif %}
</tr>
{% for ops in optimer %}
<tr>
<td style="width:150px" class="text-center">{{ ops.operation_name }}</td>
<td style="width:150px" class="text-center">{{ ops.doctrine }}</td>
<td class="text-center">
<a href="http://evemaps.dotlan.net/system/{{ ops.system }}">{{ ops.system }}</a>
</td>
<td style="width:150px" class="text-center">{{ ops.location }}</td>
<td style="width:150px" class="text-center" nowrap>{{ ops.start | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap><div id="localtime{{ ops.id }}"></div><div id="countdown{{ ops.id }}"></div></td>
<td style="width:150px" class="text-center">{{ ops.duration }}</td>
<td style="width:150px" class="text-center">{{ ops.fc }}</td>
<td style="width:150px" class="text-center">{{ ops.details }}</td>
<td style="width:150px" class="text-center">{{ ops.post_time}}</td>
{% if perms.auth.optimer_management %}
<td style="width:150px" class="text-center">{{ ops.eve_character }}</td>
<td class="text-center">
<a href="{% url 'auth_remove_optimer' ops.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
<a href="{% url 'auth_edit_optimer' ops.id %}" class="btn btn-info">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
{% endif %}
</tr>
{% endfor %}
</tr>
</table>
<h4><b>{% trans "Next Timers" %}</b></h4>
{% if future_timers %}
{% include "registered/fleetoptable.html" with timers=future_timers %}
{% else %}
<br /><div class="alert alert-warning text-center">{% trans "No fleet operations found." %}</div>
<div class="alert alert-warning text-center">{% trans "No upcoming timers." %}</div>
{% endif %}
<h4><b>{% trans "Past Timers" %}</b></h4>
{% if past_timers %}
{% include "registered/fleetoptable.html" with timers=past_timers %}
{% else %}
<div class="alert alert-warning text-center">{% trans "No past timers." %}</div>
{% endif %}
</div>

View File

@ -40,14 +40,8 @@ def timer_view(request):
else:
corp_timers = []
timer_list = Timer.objects.filter(corp_timer=False)
closest_timer = None
if timer_list:
closest_timer = \
sorted(list(Timer.objects.all().filter(corp_timer=False)), key=lambda d: (timezone.now()))[0]
logger.debug("Determined closest timer is %s" % closest_timer)
render_items = {'timers': Timer.objects.all().filter(corp_timer=False),
'corp_timers': corp_timers,
'closest_timer': closest_timer,
'future_timers': Timer.objects.all().filter(corp_timer=False).filter(
eve_time__gte=datetime.datetime.now()),
'past_timers': Timer.objects.all().filter(corp_timer=False).filter(