diff --git a/authentication/models.py b/authentication/models.py index 0727e79d..edfdfbc5 100755 --- a/authentication/models.py +++ b/authentication/models.py @@ -3,18 +3,18 @@ from django.contrib.auth.models import User class AuthServicesInfo(models.Model): - ipboard_username = models.CharField(max_length=254, default="") - ipboard_password = models.CharField(max_length=254, default="") - forum_username = models.CharField(max_length=254, default="") - forum_password = models.CharField(max_length=254, default="") - jabber_username = models.CharField(max_length=254, default="") - jabber_password = models.CharField(max_length=254, default="") - mumble_username = models.CharField(max_length=254, default="") - mumble_password = models.CharField(max_length=254, default="") - teamspeak3_uid = models.CharField(max_length=254, default="") - teamspeak3_perm_key = models.CharField(max_length=254, default="") - discord_uid = models.CharField(max_length=254, default="") - main_char_id = models.CharField(max_length=64, default="") + ipboard_username = models.CharField(max_length=254, blank=True, default="") + ipboard_password = models.CharField(max_length=254, blank=True, default="") + forum_username = models.CharField(max_length=254, blank=True, default="") + forum_password = models.CharField(max_length=254, blank=True, default="") + jabber_username = models.CharField(max_length=254, blank=True, default="") + jabber_password = models.CharField(max_length=254, blank=True, default="") + mumble_username = models.CharField(max_length=254, blank=True, default="") + mumble_password = models.CharField(max_length=254, blank=True, default="") + teamspeak3_uid = models.CharField(max_length=254, blank=True, default="") + teamspeak3_perm_key = models.CharField(max_length=254, blank=True, default="") + discord_uid = models.CharField(max_length=254, blank=True, default="") + main_char_id = models.CharField(max_length=64, blank=True, default="") is_blue = models.BooleanField(default=False) user = models.ForeignKey(User) diff --git a/groupmanagement/admin.py b/groupmanagement/admin.py index c89f1c75..27e1ae99 100644 --- a/groupmanagement/admin.py +++ b/groupmanagement/admin.py @@ -3,8 +3,10 @@ from django.contrib import admin from models import GroupDescription from models import GroupRequest from models import HiddenGroup +from models import OpenGroup admin.site.register(GroupDescription) admin.site.register(GroupRequest) admin.site.register(HiddenGroup) +admin.site.register(OpenGroup) diff --git a/groupmanagement/models.py b/groupmanagement/models.py index d6ca4ffe..93776a48 100644 --- a/groupmanagement/models.py +++ b/groupmanagement/models.py @@ -28,3 +28,9 @@ class HiddenGroup(models.Model): def __str__(self): return self.group.name + " - Hidden" + +class OpenGroup(models.Model): + group = models.OneToOneField(Group) + + def __str__(self): + return self.group.name + " - Open" diff --git a/groupmanagement/views.py b/groupmanagement/views.py index c916a935..6aec1e54 100755 --- a/groupmanagement/views.py +++ b/groupmanagement/views.py @@ -9,6 +9,7 @@ from django.contrib.auth.models import Group from models import GroupDescription from models import GroupRequest from models import HiddenGroup +from models import OpenGroup from authentication.managers import AuthServicesInfoManager from eveonline.managers import EveManager @@ -145,10 +146,15 @@ def groups_view(request): @login_required def group_request_add(request, group_id): logger.debug("group_request_add called by user %s for group id %s" % (request.user, group_id)) + group = Group.objects.get(id=group_id) + if OpenGroup.objects.filter(group=group).exists(): + logger.info("%s joining %s as is an open group" % (request.user, group)) + request.user.groups.add(group) + return HttpResponseRedirect("/groups") auth_info = AuthServicesInfoManager.get_auth_service_info(request.user) grouprequest = GroupRequest() grouprequest.status = 'pending' - grouprequest.group = Group.objects.get(id=group_id) + grouprequest.group = group grouprequest.user = request.user grouprequest.main_char = EveManager.get_character_by_id(auth_info.main_char_id) grouprequest.leave_request = False @@ -161,10 +167,15 @@ def group_request_add(request, group_id): @login_required def group_request_leave(request, group_id): logger.debug("group_request_leave called by user %s for group id %s" % (request.user, group_id)) + group = Group.objects.get(id=group_id) + if OpenGroup.objects.filter(group=group).exists(): + logger.info("%s leaving %s as is an open group" % (request.user, group)) + request.user.groups.remove(group) + return HttpResponseRedirect("/groups") auth_info = AuthServicesInfoManager.get_auth_service_info(request.user) grouprequest = GroupRequest() grouprequest.status = 'pending' - grouprequest.group = Group.objects.get(id=group_id) + grouprequest.group = group grouprequest.user = request.user grouprequest.main_char = EveManager.get_character_by_id(auth_info.main_char_id) grouprequest.leave_request = True diff --git a/requirements.txt b/requirements.txt index 0fca03ca..66027f49 100755 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,6 @@ mysqlclient evelink dnspython passlib -xmpppy==0.5.0rc1 requests>=2.9.1 # Django Stuff # @@ -15,3 +14,4 @@ django-celery git+git://github.com/nikdoof/python-ts3.git git+git://github.com/seamus-45/openfire-restapi.git +git+https://github.com/ArchipelProject/xmpppy diff --git a/stock/templates/public/base.html b/stock/templates/public/base.html index f015fcf8..746c7933 100755 --- a/stock/templates/public/base.html +++ b/stock/templates/public/base.html @@ -106,7 +106,7 @@ {% endif %} - {% if not perms.auth.member and not perms.auth.blue_member or perms.auth.human_resources %} + {% if not perms.auth.member or perms.auth.human_resources %}
Details | +Objective | +System | +Structure | +Eve Time | +Local Time | +Creator | + {% if perms.auth.timer_management %} +Action | + {% endif %} +
---|---|---|---|---|---|---|---|
{{ timer.details }} | +
+ {% ifequal timer.objective "Hostile" %}
+
+ Hostile
+
+ {% endifequal %}
+ {% ifequal timer.objective "Friendly" %}
+
+ Friendly
+
+ {% endifequal %}
+ {% ifequal timer.objective "Neutral" %}
+
+ Neutral
+
+ {% endifequal %}
+ |
+ {{ timer.system }} {{ timer.planet_moon }} + | +
+ {% ifequal timer.structure "I-HUB" %}
+
+ I-HUB
+
+ {% endifequal %}
+ {% ifequal timer.structure "POCO" %}
+
+ POCO
+
+ {% endifequal %}
+ {% ifequal timer.structure "POS[S]" %}
+
+ POS [S]
+
+ {% endifequal %}
+ {% ifequal timer.structure "POS[M]" %}
+
+ POS [M]
+
+ {% endifequal %}
+ {% ifequal timer.structure "POS[L]" %}
+
+ POS [L]
+
+ {% endifequal %}
+ {% ifequal timer.structure "Station" %}
+
+ Station
+
+ {% endifequal %}
+ {% ifequal timer.structure "TCU" %}
+
+ TCU
+
+ {% endifequal %}
+ {% ifequal timer.structure "Other" %}
+
+ Other
+
+ {% endifequal %}
+ |
+ {{ timer.eve_time | date:"Y-m-d H:i" }} | ++ | {{ timer.eve_character.character_name }} | + {% if perms.auth.timer_management %} ++ + + + | + {% endif %} +