diff --git a/allianceauth/fleetactivitytracking/forms.py b/allianceauth/fleetactivitytracking/forms.py
index 7e322a8b..8399f932 100644
--- a/allianceauth/fleetactivitytracking/forms.py
+++ b/allianceauth/fleetactivitytracking/forms.py
@@ -2,11 +2,9 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
-from allianceauth.optimer.models import OpTimer
-
class FatlinkForm(forms.Form):
- fatname = forms.CharField(label=_('Name of fat-link'), required=True)
+ fleet = forms.CharField(label=_("Fleet Name"), max_length=50)
duration = forms.IntegerField(label=_("Duration of fat-link"), required=True, initial=30, min_value=1,
- max_value=2147483647)
- fleet = forms.ModelChoiceField(label=_("Fleet"), queryset=OpTimer.objects.all().order_by('operation_name'))
+ max_value=2147483647, help_text=_('minutes'))
+
diff --git a/allianceauth/fleetactivitytracking/migrations/0001_initial.py b/allianceauth/fleetactivitytracking/migrations/0001_initial.py
index b462ab6b..5a4e1be1 100644
--- a/allianceauth/fleetactivitytracking/migrations/0001_initial.py
+++ b/allianceauth/fleetactivitytracking/migrations/0001_initial.py
@@ -2,12 +2,10 @@
# Generated by Django 1.10.1 on 2016-09-05 21:39
from __future__ import unicode_literals
-import datetime
-
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
-from django.utils.timezone import utc
+from django.utils import timezone
import allianceauth.fleetactivitytracking.models
@@ -36,9 +34,9 @@ class Migration(migrations.Migration):
name='Fatlink',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('fatdatetime', models.DateTimeField(default=datetime.datetime(2016, 9, 5, 21, 39, 17, 307954, tzinfo=utc))),
+ ('fatdatetime', models.DateTimeField(default=timezone.now)),
('duration', models.PositiveIntegerField()),
- ('fleet', models.CharField(default=b'', max_length=254)),
+ ('fleet', models.CharField(default='', max_length=254)),
('name', models.CharField(max_length=254)),
('hash', models.CharField(max_length=254, unique=True)),
('creator', models.ForeignKey(on_delete=models.SET(
diff --git a/allianceauth/fleetactivitytracking/migrations/0005_remove_fat_name.py b/allianceauth/fleetactivitytracking/migrations/0005_remove_fat_name.py
new file mode 100644
index 00000000..27caa8e8
--- /dev/null
+++ b/allianceauth/fleetactivitytracking/migrations/0005_remove_fat_name.py
@@ -0,0 +1,22 @@
+# Generated by Django 2.0.2 on 2018-02-28 18:00
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('fleetactivitytracking', '0004_make_strings_more_stringy'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='fatlink',
+ name='name',
+ ),
+ migrations.AlterField(
+ model_name='fatlink',
+ name='fleet',
+ field=models.CharField(max_length=254),
+ ),
+ ]
diff --git a/allianceauth/fleetactivitytracking/models.py b/allianceauth/fleetactivitytracking/models.py
index 8bb248b4..49f7da3f 100644
--- a/allianceauth/fleetactivitytracking/models.py
+++ b/allianceauth/fleetactivitytracking/models.py
@@ -12,13 +12,12 @@ def get_sentinel_user():
class Fatlink(models.Model):
fatdatetime = models.DateTimeField(default=timezone.now)
duration = models.PositiveIntegerField()
- fleet = models.CharField(max_length=254, default="")
- name = models.CharField(max_length=254)
+ fleet = models.CharField(max_length=254)
hash = models.CharField(max_length=254, unique=True)
creator = models.ForeignKey(User, on_delete=models.SET(get_sentinel_user))
def __str__(self):
- return self.name
+ return self.fleet
class Fat(models.Model):
diff --git a/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html b/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html
index e825de51..e6e88e79 100644
--- a/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html
+++ b/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html
@@ -16,7 +16,7 @@
{% trans "Character not registered!" %}
- {% trans "This character is not part of any registered API-key. You must go to" %}
{% trans "API key management and add an API with the character on before being able to click fleet attendance links." %}
+ {% trans "This character is not associated with an auth account." %}
{% trans "Add it here" %} {% trans "before attempting to click fleet attendance links." %}
diff --git a/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html b/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html
index e527dc6b..394cd261 100644
--- a/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html
+++ b/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html
@@ -10,12 +10,12 @@
- {% blocktrans %}{{ user }} has collected {{ n_fats }} links this month.{% endblocktrans %}
+ {% blocktrans %}{{ user }} has collected {{ n_fats }} link{{ n_fats|pluralize }} this month.{% endblocktrans %}
{% trans "Ship" %}
@@ -29,26 +29,24 @@
{% endfor %}
{% if created_fats %}
- {% blocktrans %}{{ user }} has created {{ n_created_fats }} links this month.{% endblocktrans %}
+ {% blocktrans %}{{ user }} has created {{ n_created_fats }} link{{ n_created_fats|pluralize }} this month.{% endblocktrans %}
{% if created_fats %}
- {% trans "Name" %}
- {% trans "Creator" %}
{% trans "Fleet" %}
+ {% trans "Creator" %}
{% trans "Eve Time" %}
{% trans "Duration" %}
{% trans "Edit" %}
{% for link in created_fats %}
- {{ link.name }}
+ {{ link.fleet }}
{{ link.creator.username }}
- {{ link.fleet }}
{{ link.fatdatetime }}
{{ link.duration }}
-
+
diff --git a/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html b/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html
index 47954d65..42d04482 100644
--- a/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html
+++ b/allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html
@@ -24,7 +24,7 @@
{% if fats %}
- {% trans "fatname" %}
+ {% trans "Fleet" %}
{% trans "Character" %}
{% trans "System" %}
{% trans "Ship" %}
@@ -32,7 +32,7 @@
{% for fat in fats %}
- {{ fat.fatlink.name }}
+ {{ fat.fatlink.fleet }}
{{ fat.character.character_name }}
{% if fat.station != "No Station" %}
{% blocktrans %}Docked in {% endblocktrans %}{{ fat.system }}
@@ -79,13 +79,13 @@
{% for link in fatlinks %}
- {{ link.name }}
+ {{ link.fleet }}
{{ link.creator.username }}
{{ link.fleet }}
{{ link.fatdatetime }}
{{ link.duration }}
-
+
diff --git a/allianceauth/fleetactivitytracking/urls.py b/allianceauth/fleetactivitytracking/urls.py
index 0d7984fb..84ad961b 100644
--- a/allianceauth/fleetactivitytracking/urls.py
+++ b/allianceauth/fleetactivitytracking/urls.py
@@ -25,10 +25,6 @@ urlpatterns = [
views.fatlink_monthly_personal_statistics_view,
name='user_statistics_month'),
url(r'^create/$', views.create_fatlink_view, name='create'),
- url(r'^modify/$', views.modify_fatlink_view, name='modify'),
- url(r'^modify/(?P[a-zA-Z0-9_-]+)/([a-z0-9_-]+)$',
- views.modify_fatlink_view),
- url(r'^link/$', views.fatlink_view, name='click_fatlink'),
- url(r'^link/(?P[a-zA-Z0-9]+)/(?P[a-z0-9_-]+)/$',
- views.click_fatlink_view),
+ url(r'^modify/(?P[a-zA-Z0-9_-]+)/$', views.modify_fatlink_view, name='modify'),
+ url(r'^link/(?P[a-zA-Z0-9]+)/$', views.click_fatlink_view, name='click'),
]
diff --git a/allianceauth/fleetactivitytracking/views.py b/allianceauth/fleetactivitytracking/views.py
index 81406c3d..261f6964 100644
--- a/allianceauth/fleetactivitytracking/views.py
+++ b/allianceauth/fleetactivitytracking/views.py
@@ -1,8 +1,6 @@
import datetime
import logging
import os
-import random
-import string
from allianceauth.authentication.models import CharacterOwnership
from django.contrib import messages
@@ -17,7 +15,7 @@ from esi.decorators import token_required
from allianceauth.eveonline.providers import provider
from .forms import FatlinkForm
from .models import Fatlink, Fat
-from slugify import slugify
+from django.utils.crypto import get_random_string
from allianceauth.eveonline.models import EveAllianceInfo
from allianceauth.eveonline.models import EveCharacter
@@ -181,7 +179,7 @@ def fatlink_personal_statistics_view(request, year=datetime.date.today().year):
personal_fats = Fat.objects.select_related('fatlink').filter(user=user).order_by('id')
- monthlystats = [0 for month in range(1, 13)]
+ monthlystats = [0 for i in range(1, 13)]
for fat in personal_fats:
fatdate = fat.fatlink.fatdatetime
@@ -236,8 +234,8 @@ def fatlink_monthly_personal_statistics_view(request, year, month, char_id=None)
@login_required
@token_required(
scopes=['esi-location.read_location.v1', 'esi-location.read_ship_type.v1', 'esi-universe.read_structures.v1'])
-def click_fatlink_view(request, token, hash, fatname):
- fatlink = get_object_or_404(Fatlink, hash=hash, name=fatname)
+def click_fatlink_view(request, token, fat_hash=None):
+ fatlink = get_object_or_404(Fatlink, hash=fat_hash)
if (timezone.now() - fatlink.fatdatetime) < datetime.timedelta(seconds=(fatlink.duration * 60)):
@@ -298,12 +296,11 @@ def create_fatlink_view(request):
logger.debug("Submitting fleetactivitytracking by user %s" % request.user)
if form.is_valid():
fatlink = Fatlink()
- fatlink.name = slugify(form.cleaned_data["fatname"])
fatlink.fleet = form.cleaned_data["fleet"]
fatlink.duration = form.cleaned_data["duration"]
fatlink.fatdatetime = timezone.now()
fatlink.creator = request.user
- fatlink.hash = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(10))
+ fatlink.hash = get_random_string(length=15)
try:
fatlink.full_clean()
fatlink.save()
@@ -331,25 +328,19 @@ def create_fatlink_view(request):
@login_required
@permission_required('auth.fleetactivitytracking')
-def modify_fatlink_view(request, hash=""):
+def modify_fatlink_view(request, fat_hash=None):
logger.debug("modify_fatlink_view called by user %s" % request.user)
- if not hash:
- return redirect('fatlink:view')
-
- try:
- fatlink = Fatlink.objects.get(hash=hash)
- except Fatlink.DoesNotExist:
- raise Http404
+ fatlink = get_object_or_404(Fatlink, hash=fat_hash)
if request.GET.get('removechar', None):
character_id = request.GET.get('removechar')
character = EveCharacter.objects.get(character_id=character_id)
- logger.debug("Removing character %s from fleetactivitytracking %s" % (character.character_name, fatlink.name))
+ logger.debug("Removing character %s from fleetactivitytracking %s" % (character.character_name, fatlink))
Fat.objects.filter(fatlink=fatlink).filter(character=character).delete()
if request.GET.get('deletefat', None):
- logger.debug("Removing fleetactivitytracking %s" % fatlink.name)
+ logger.debug("Removing fleetactivitytracking %s" % fatlink)
fatlink.delete()
return redirect('fatlink:view')