mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 20:40:17 +02:00
Hide "Leave Requests" tab when GROUPMANAGEMENT_AUTO_LEAVE = True
This commit is contained in:
parent
7767c46bf4
commit
582b6754a4
@ -29,15 +29,18 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a data-toggle="tab" href="#leave">
|
|
||||||
{% translate "Leave Requests" %}
|
|
||||||
|
|
||||||
{% if leaverequests %}
|
{% if not auto_leave %}
|
||||||
<span class="badge">{{ leaverequests|length }}</span>
|
<li>
|
||||||
{% endif %}
|
<a data-toggle="tab" href="#leave">
|
||||||
</a>
|
{% translate "Leave Requests" %}
|
||||||
</li>
|
|
||||||
|
{% if leaverequests %}
|
||||||
|
<span class="badge">{{ leaverequests|length }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="panel panel-default panel-tabs-aa">
|
<div class="panel panel-default panel-tabs-aa">
|
||||||
@ -100,61 +103,63 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="leave" class="tab-pane">
|
{% if not auto_leave %}
|
||||||
{% if leaverequests %}
|
<div id="leave" class="tab-pane">
|
||||||
<div class="table-responsive">
|
{% if leaverequests %}
|
||||||
<table class="table table-aa">
|
<div class="table-responsive">
|
||||||
<thead>
|
<table class="table table-aa">
|
||||||
<tr>
|
<thead>
|
||||||
<th>{% translate "Character" %}</th>
|
|
||||||
<th>{% translate "Organization" %}</th>
|
|
||||||
<th>{% translate "Group" %}</th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
|
||||||
{% for leaverequest in leaverequests %}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<th>{% translate "Character" %}</th>
|
||||||
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="img-circle" style="margin-right: 1rem;">
|
<th>{% translate "Organization" %}</th>
|
||||||
{% if leaverequest.main_char %}
|
<th>{% translate "Group" %}</th>
|
||||||
<a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank">
|
<th></th>
|
||||||
{{ leaverequest.main_char.character_name }}
|
|
||||||
</a>
|
|
||||||
{% else %}
|
|
||||||
{{ leaverequest.user.username }}
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% if leaverequest.main_char %}
|
|
||||||
<a href="{{ leaverequest.main_char|dotlan_corporation_url }}" target="_blank">
|
|
||||||
{{ leaverequest.main_char.corporation_name }}
|
|
||||||
</a><br>
|
|
||||||
{{ leaverequest.main_char.alliance_name|default_if_none:"" }}
|
|
||||||
{% else %}
|
|
||||||
{% translate "(unknown)" %}
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td>{{ leaverequest.group.name }}</td>
|
|
||||||
<td class="text-right">
|
|
||||||
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
|
|
||||||
{% translate "Accept" %}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
|
|
||||||
{% translate "Reject" %}
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
</thead>
|
||||||
</tbody>
|
|
||||||
</table>
|
<tbody>
|
||||||
</div>
|
{% for leaverequest in leaverequests %}
|
||||||
{% else %}
|
<tr>
|
||||||
<div class="alert alert-warning text-center">{% translate "No group leave requests." %}</div>
|
<td>
|
||||||
{% endif %}
|
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="img-circle" style="margin-right: 1rem;">
|
||||||
</div>
|
{% if leaverequest.main_char %}
|
||||||
|
<a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank">
|
||||||
|
{{ leaverequest.main_char.character_name }}
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
{{ leaverequest.user.username }}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if leaverequest.main_char %}
|
||||||
|
<a href="{{ leaverequest.main_char|dotlan_corporation_url }}" target="_blank">
|
||||||
|
{{ leaverequest.main_char.corporation_name }}
|
||||||
|
</a><br>
|
||||||
|
{{ leaverequest.main_char.alliance_name|default_if_none:"" }}
|
||||||
|
{% else %}
|
||||||
|
{% translate "(unknown)" %}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>{{ leaverequest.group.name }}</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
|
||||||
|
{% translate "Accept" %}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
|
||||||
|
{% translate "Reject" %}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-warning text-center">{% translate "No group leave requests." %}</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from django.test import RequestFactory, TestCase
|
from django.test import RequestFactory, TestCase, override_settings
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
from allianceauth.tests.auth_utils import AuthUtils
|
from allianceauth.tests.auth_utils import AuthUtils
|
||||||
@ -6,14 +6,80 @@ from allianceauth.tests.auth_utils import AuthUtils
|
|||||||
from .. import views
|
from .. import views
|
||||||
|
|
||||||
|
|
||||||
|
def response_content_to_str(response) -> str:
|
||||||
|
return response.content.decode(response.charset)
|
||||||
|
|
||||||
|
|
||||||
class TestViews(TestCase):
|
class TestViews(TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.factory = RequestFactory()
|
self.factory = RequestFactory()
|
||||||
self.user = AuthUtils.create_user('Bruce Wayne')
|
self.user = AuthUtils.create_user('Peter Parker')
|
||||||
|
self.user_with_manage_permission = AuthUtils.create_user('Bruce Wayne')
|
||||||
|
|
||||||
|
# set permissions
|
||||||
|
AuthUtils.add_permission_to_user_by_name(
|
||||||
|
'auth.group_management', self.user_with_manage_permission
|
||||||
|
)
|
||||||
|
|
||||||
def test_groups_view_can_load(self):
|
def test_groups_view_can_load(self):
|
||||||
request = self.factory.get(reverse('groupmanagement:groups'))
|
request = self.factory.get(reverse('groupmanagement:groups'))
|
||||||
request.user = self.user
|
request.user = self.user
|
||||||
response = views.groups_view(request)
|
response = views.groups_view(request)
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
def test_management_view_can_load_for_user_with_permissions(self):
|
||||||
|
"""
|
||||||
|
Test if user with management permissions can access the management view
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
request = self.factory.get(reverse('groupmanagement:management'))
|
||||||
|
request.user = self.user_with_manage_permission
|
||||||
|
response = views.group_management(request)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
def test_management_view_doesnt_load_for_user_without_permissions(self):
|
||||||
|
"""
|
||||||
|
Test if user without management permissions can't access the management view
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
request = self.factory.get(reverse('groupmanagement:management'))
|
||||||
|
request.user = self.user
|
||||||
|
response = views.group_management(request)
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
@override_settings(GROUPMANAGEMENT_AUTO_LEAVE=False)
|
||||||
|
def test_leave_requests_tab_visible(self):
|
||||||
|
"""
|
||||||
|
Test if the leave requests tab is visible when GROUPMANAGEMENT_AUTO_LEAVE = False
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
request = self.factory.get(reverse('groupmanagement:management'))
|
||||||
|
request.user = self.user_with_manage_permission
|
||||||
|
response = views.group_management(request)
|
||||||
|
|
||||||
|
content = response_content_to_str(response)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertIn('<a data-toggle="tab" href="#leave">', content)
|
||||||
|
self.assertIn('<div id="leave" class="tab-pane">', content)
|
||||||
|
|
||||||
|
@override_settings(GROUPMANAGEMENT_AUTO_LEAVE=True)
|
||||||
|
def test_leave_requests_tab_hidden(self):
|
||||||
|
"""
|
||||||
|
Test if the leave requests tab is hidden when GROUPMANAGEMENT_AUTO_LEAVE = True
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
request = self.factory.get(reverse('groupmanagement:management'))
|
||||||
|
request.user = self.user_with_manage_permission
|
||||||
|
response = views.group_management(request)
|
||||||
|
|
||||||
|
content = response_content_to_str(response)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertNotIn('<a data-toggle="tab" href="#leave">', content)
|
||||||
|
self.assertNotIn('<div id="leave" class="tab-pane">', content)
|
||||||
|
@ -45,7 +45,11 @@ def group_management(request):
|
|||||||
logger.debug("Providing user {} with {} acceptrequests and {} leaverequests.".format(
|
logger.debug("Providing user {} with {} acceptrequests and {} leaverequests.".format(
|
||||||
request.user, len(acceptrequests), len(leaverequests)))
|
request.user, len(acceptrequests), len(leaverequests)))
|
||||||
|
|
||||||
render_items = {'acceptrequests': acceptrequests, 'leaverequests': leaverequests}
|
render_items = {
|
||||||
|
'acceptrequests': acceptrequests,
|
||||||
|
'leaverequests': leaverequests,
|
||||||
|
'auto_leave': getattr(settings, 'GROUPMANAGEMENT_AUTO_LEAVE', False),
|
||||||
|
}
|
||||||
|
|
||||||
return render(request, 'groupmanagement/index.html', context=render_items)
|
return render(request, 'groupmanagement/index.html', context=render_items)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user