diff --git a/alliance_auth/settings.py.example b/alliance_auth/settings.py.example index 8eb5e13e..59446bed 100755 --- a/alliance_auth/settings.py.example +++ b/alliance_auth/settings.py.example @@ -58,6 +58,7 @@ INSTALLED_APPS = ( 'hrapplications', 'timerboard', 'srp', + 'sigtracker', ) MIDDLEWARE_CLASSES = ( diff --git a/alliance_auth/urls.py b/alliance_auth/urls.py index 5db17229..977130f8 100755 --- a/alliance_auth/urls.py +++ b/alliance_auth/urls.py @@ -165,4 +165,11 @@ urlpatterns = patterns('', # FLEET FITTINGS url(r'^fits/$', 'services.views.fleet_fits', name='auth_fleet_fits'), + + # Sig Tracker + url(r'^sigtracker/$', 'sigtracker.views.sigtracker_view', name='auth_signiture_view'), + url(r'^add_signiture/$', 'sigtracker.views.add_signiture_view', name='auth_add_signiture_view'), + url(r'^remove_signiture/(\w+)', 'sigtracker.views.remove_signiture', name='auth_remove_signiture') + + ) diff --git a/sigtracker/__init__.py b/sigtracker/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sigtracker/admin.py b/sigtracker/admin.py new file mode 100644 index 00000000..00541e4f --- /dev/null +++ b/sigtracker/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin + +from models import sigtracker + +admin.site.register(sigtracker) +# Register your models here. diff --git a/sigtracker/form.py b/sigtracker/form.py new file mode 100644 index 00000000..1d4999f3 --- /dev/null +++ b/sigtracker/form.py @@ -0,0 +1,20 @@ +from django import forms +from django.core.validators import MaxValueValidator, MinValueValidator + + + +class SignitureForm(forms.Form): + sigtype = [('Wormhole', 'Wormhole'), ('Combat', 'Combat'), ('Data', 'Data'), + ('Relic', 'Relic')] + status = [('Open', 'Open'), ('Started', 'Started'), ('Finished', 'Finished')] + + 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="Signiture 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="") + + + + \ No newline at end of file diff --git a/sigtracker/models.py b/sigtracker/models.py new file mode 100644 index 00000000..2fd0bce5 --- /dev/null +++ b/sigtracker/models.py @@ -0,0 +1,18 @@ +from django.db import models +from django.contrib.auth.models import User + +from eveonline.models import EveCharacter +from eveonline.models import EveCorporationInfo + + +class sigtracker(models.Model): + class Meta: + ordering = ['sigtype'] + ident = models.CharField(max_length=254, default="") + system = models.CharField(max_length=254, default="") + destination = models.CharField(max_length=254, default="") + sigtype = models.CharField(max_length=254, default="") + status = models.CharField(max_length=254, default="") + notes = models.CharField(max_length=254, default="") + + diff --git a/sigtracker/tests.py b/sigtracker/tests.py new file mode 100644 index 00000000..a39b155a --- /dev/null +++ b/sigtracker/tests.py @@ -0,0 +1 @@ +# Create your tests here. diff --git a/sigtracker/views.py b/sigtracker/views.py new file mode 100644 index 00000000..5eef002a --- /dev/null +++ b/sigtracker/views.py @@ -0,0 +1,72 @@ +import datetime + +from django.http import HttpResponseRedirect +from django.template import RequestContext +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 util import check_if_user_has_permission +from authentication.managers import AuthServicesInfoManager +from eveonline.managers import EveManager +from form import SignitureForm +from models import sigtracker + +import logging + +logger = logging.getLogger(__name__) + +def sigtracker_util_test(user): + return check_if_user_has_permission(user, 'member') or check_if_user_has_permission(user, 'blue_member') + + +@login_required +@user_passes_test(sigtracker_util_test) +@permission_required('auth.signiture_view') +def sigtracker_view(request): + logger.debug("sigtracker_view called by user %s" % request.user) + sigtracker_list = sigtracker.objects.all() + render_items = {'sigtracker': sigtracker.objects.all()} + + return render_to_response('registered/signituremanagement.html', render_items, context_instance=RequestContext(request)) + + +@login_required +@permission_required('auth.signiture_management') +def add_signiture_view(request): + logger.debug("add_signiture_view called by user %s" % request.user) + if request.method == 'POST': + form = SignitureForm(request.POST) + logger.debug("Request type POST contains form valid: %s" % form.is_valid()) + if form.is_valid(): + # handle valid form + sig = sigtracker() + 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.save() + return HttpResponseRedirect("/sigtracker/") + else: + logger.debug("Returning new SignitureForm") + form = SignitureForm() + + render_items = {'form': form} + + return render_to_response('registered/addsigniture.html', render_items, context_instance=RequestContext(request)) + + +@login_required +@permission_required('auth.signiture_management') +def remove_signiture(request, sigtracker_id): + logger.debug("remove_signiture called by user %s for signiture id %s" % (request.user, sigtracker_id)) + if sigtracker.objects.filter(id=sigtracker_id).exists(): + sig = sigtracker.objects.get(id=sigtracker_id) + sig.delete() + logger.debug("Deleting sigtracker id %s by user %s" % (sigtracker_id, request.user)) + else: + logger.error("Unable to delete signiture id %s for user %s - signiture matching id not found." % (sigtracker_id, request.user)) + return HttpResponseRedirect("/sigtracker/") diff --git a/stock/templates/public/base.html b/stock/templates/public/base.html index 279743d0..1d9f9a8a 100755 --- a/stock/templates/public/base.html +++ b/stock/templates/public/base.html @@ -137,6 +137,16 @@ href="{% url 'auth_fleet_fits' %}"> Fleet Doctrines + {% endif %} + + {% if perms.auth.member or perms.auth.blue_member %} +
ID | +System | +Destination | +Signiture Type | +Status | +Notes | + {% if perms.auth.signiture_management %} +Action | + {% endif %} +
---|---|---|---|---|---|---|
{{ sigt.ident }} | + ++ {{ sigt.system }} + | +{{ sigt.destination }} | +{{ sigt.sigtype }} | +{{ sigt.status }} | +{{ sigt.notes }} | + + + + {% if perms.auth.signiture_management %} ++ + + + | +