mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-08 08:06:20 +01:00
Add button to update TS3 groups to admin page
This commit is contained in:
@@ -15,6 +15,7 @@ class Teamspeak3UserAdmin(ServicesUserAdmin):
|
||||
|
||||
@admin.register(AuthTS)
|
||||
class AuthTSgroupAdmin(admin.ModelAdmin):
|
||||
change_list_template = 'admin/teamspeak3/authts/change_list.html'
|
||||
ordering = ('auth_group__name', )
|
||||
list_select_related = True
|
||||
|
||||
@@ -28,7 +29,7 @@ class AuthTSgroupAdmin(admin.ModelAdmin):
|
||||
return [x for x in obj.ts_group.all().order_by('ts_group_id')]
|
||||
|
||||
_ts_group.short_description = 'ts groups'
|
||||
#_ts_group.admin_order_field = 'profile__state'
|
||||
# _ts_group.admin_order_field = 'profile__state'
|
||||
|
||||
|
||||
@admin.register(StateGroup)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{% extends "admin/change_list.html" %}
|
||||
{% load i18n static %}
|
||||
|
||||
{% block object-tools-items %}
|
||||
{{ block.super }}
|
||||
<li>
|
||||
<a href="{% url 'teamspeak3:admin_update_ts3_groups' %}" class="btn btn-high">
|
||||
Update TS3 groups
|
||||
</a>
|
||||
</li>
|
||||
{% endblock %}
|
||||
@@ -216,6 +216,24 @@ class Teamspeak3ViewsTestCase(TestCase):
|
||||
self.assertEqual(ts3_user.perm_key, '123abc')
|
||||
self.assertTrue(tasks_manager.return_value.__enter__.return_value.update_groups.called)
|
||||
|
||||
@mock.patch(MODULE_PATH + '.views.Teamspeak3Tasks')
|
||||
@mock.patch(MODULE_PATH + '.views.messages')
|
||||
def test_should_update_ts_groups(self, messages, Teamspeak3Tasks):
|
||||
# given
|
||||
self.member.is_superuser = True
|
||||
self.member.is_staff = True
|
||||
self.member.save()
|
||||
self.login()
|
||||
# when
|
||||
response = self.client.get(urls.reverse('teamspeak3:admin_update_ts3_groups'))
|
||||
# then
|
||||
self.assertRedirects(
|
||||
response, urls.reverse('admin:teamspeak3_authts_changelist'),
|
||||
target_status_code=200
|
||||
)
|
||||
self.assertTrue(messages.info.called)
|
||||
self.assertTrue(Teamspeak3Tasks.run_ts3_group_update.delay.called)
|
||||
|
||||
|
||||
class Teamspeak3SignalsTestCase(TestCase):
|
||||
def setUp(self):
|
||||
|
||||
@@ -6,12 +6,14 @@ app_name = 'teamspeak3'
|
||||
|
||||
module_urls = [
|
||||
# Teamspeak3 service control
|
||||
url(r'^activate/$', views.activate_teamspeak3,
|
||||
name='activate'),
|
||||
url(r'^deactivate/$', views.deactivate_teamspeak3,
|
||||
name='deactivate'),
|
||||
url(r'^reset_perm/$', views.reset_teamspeak3_perm,
|
||||
name='reset_perm'),
|
||||
url(r'^activate/$', views.activate_teamspeak3, name='activate'),
|
||||
url(r'^deactivate/$', views.deactivate_teamspeak3, name='deactivate'),
|
||||
url(r'^reset_perm/$', views.reset_teamspeak3_perm, name='reset_perm'),
|
||||
url(
|
||||
r'^admin_update_ts3_groups/$',
|
||||
views.admin_update_ts3_groups,
|
||||
name='admin_update_ts3_groups'
|
||||
),
|
||||
|
||||
# Teamspeak Urls
|
||||
url(r'^verify/$', views.verify_teamspeak3, name='verify'),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import logging
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.shortcuts import render, redirect
|
||||
from django.conf import settings
|
||||
@@ -99,3 +100,11 @@ def reset_teamspeak3_perm(request):
|
||||
logger.error("Unsuccessful attempt to reset TS3 permission key for user %s" % request.user)
|
||||
messages.error(request, _('An error occurred while processing your TeamSpeak3 account.'))
|
||||
return redirect("services:services")
|
||||
|
||||
|
||||
@login_required
|
||||
@staff_member_required
|
||||
def admin_update_ts3_groups(request):
|
||||
Teamspeak3Tasks.run_ts3_group_update.delay()
|
||||
messages.info(request, "Started updating TS3 server groups...")
|
||||
return redirect("admin:teamspeak3_authts_changelist")
|
||||
|
||||
Reference in New Issue
Block a user