mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-08-23 18:31:43 +02:00
parent
e68793f363
commit
f81c1d1b31
@ -70,8 +70,8 @@
|
||||
{% translate "Leave" %}
|
||||
</a>
|
||||
{% else %}
|
||||
<button type="button" class="btn btn-primary" disabled>
|
||||
{% translate "Pending" %}
|
||||
<button type="button" class="btn btn-secondary cursor-help me-1" data-bs-tooltip="aa-tooltip" title="{% translate 'Request pending' %}">
|
||||
<i class="fa-regular fa-hourglass-half"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
{% elif not g.request %}
|
||||
@ -85,9 +85,13 @@
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<button type="button" class="btn btn-primary" disabled>
|
||||
{% translate "Pending" %}
|
||||
<button type="button" class="btn btn-secondary cursor-help me-1" data-bs-tooltip="aa-tooltip" title="{% translate 'Request pending' %}">
|
||||
<i class="fa-regular fa-hourglass-half"></i>
|
||||
</button>
|
||||
|
||||
<a href="{% url 'groupmanagement:request_retract' g.group.id %}" class="btn btn-danger">
|
||||
{% translate "Retract" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -10,6 +10,11 @@ urlpatterns = [
|
||||
path(
|
||||
"group/request/leave/<int:group_id>/", views.group_request_leave, name="request_leave"
|
||||
),
|
||||
path(
|
||||
"group/request/retract/<int:group_id>/",
|
||||
views.group_request_retract,
|
||||
name="request_retract"
|
||||
),
|
||||
# group management
|
||||
path("groupmanagement/requests/", views.group_management, name="management"),
|
||||
path("groupmanagement/membership/", views.group_membership, name="membership"),
|
||||
|
@ -420,3 +420,42 @@ def group_request_leave(request, group_id):
|
||||
grouprequest.notify_leaders()
|
||||
messages.success(request, _('Applied to leave group %(group)s.') % {"group": group})
|
||||
return redirect("groupmanagement:groups")
|
||||
|
||||
@login_required
|
||||
def group_request_retract(request, group_id):
|
||||
logger.debug(
|
||||
f"group_request_retract called by user {request.user} for group id {group_id}"
|
||||
)
|
||||
group = get_object_or_404(Group, id=group_id)
|
||||
|
||||
if not GroupManager.check_internal_group(group):
|
||||
logger.warning(
|
||||
f"User {request.user} attempted to retract group request for "
|
||||
f"group id {group_id} but it is not a joinable group"
|
||||
)
|
||||
messages.warning(
|
||||
request,
|
||||
_("You cannot retract that request"),
|
||||
)
|
||||
return redirect('groupmanagement:groups')
|
||||
|
||||
try:
|
||||
group_request = GroupRequest.objects.get(
|
||||
user=request.user, group=group, leave_request=False
|
||||
)
|
||||
group_request.delete()
|
||||
|
||||
logger.info(f"Deleted group request for user {request.user} to group {group}")
|
||||
messages.success(
|
||||
request, _('Retracted application to group %(group)s.') % {"group": group}
|
||||
)
|
||||
except GroupRequest.DoesNotExist:
|
||||
logger.info(
|
||||
f"{request.user} attempted to retract group request for "
|
||||
f"group id {group_id} but has no open request"
|
||||
)
|
||||
messages.warning(
|
||||
request, _("You have no open request for that group.")
|
||||
)
|
||||
|
||||
return redirect("groupmanagement:groups")
|
||||
|
Loading…
x
Reference in New Issue
Block a user