Include requestable groups other than open

This commit is contained in:
Basraah 2016-12-04 09:21:43 +10:00
parent 25dadf81f6
commit 42def30c91
2 changed files with 25 additions and 19 deletions

View File

@ -48,11 +48,8 @@ def group_management(request):
def group_membership(request): def group_membership(request):
logger.debug("group_membership called by user %s" % request.user) logger.debug("group_membership called by user %s" % request.user)
# Get all open and closed groups # Get all open and closed groups
opengroups = OpenGroup.objects.all().annotate(num_members=Count('group__user')) groups = [group for group in Group.objects.all().annotate(num_members=Count('user')).order_by('name')
closedgroups = HiddenGroup.objects.all().annotate(num_members=Count('group__user')) if joinable_group(group)]
groups = list(chain(opengroups, closedgroups))
groups.sort(key=lambda g: g.group.name.lower())
render_items = {'groups': groups} render_items = {'groups': groups}
@ -67,7 +64,7 @@ def group_membership_list(request, group_id):
group = Group.objects.get(id=group_id) group = Group.objects.get(id=group_id)
# Check its a joinable group i.e. not corp or internal # Check its a joinable group i.e. not corp or internal
if not hasattr(group, 'hiddengroup') and not hasattr(group, 'opengroup'): if not joinable_group(group):
raise PermissionDenied raise PermissionDenied
except ObjectDoesNotExist: except ObjectDoesNotExist:
@ -221,13 +218,7 @@ def groups_view(request):
for group in Group.objects.all(): for group in Group.objects.all():
# Check if group is a corp # Check if group is a corp
if "Corp_" in group.name: if not joinable_group(group):
pass
elif "Alliance_" in group.name:
pass
elif settings.DEFAULT_AUTH_GROUP in group.name:
pass
elif settings.DEFAULT_BLUE_GROUP in group.name:
pass pass
elif HiddenGroup.objects.filter(group=group).exists(): elif HiddenGroup.objects.filter(group=group).exists():
pass pass
@ -291,3 +282,18 @@ def group_request_leave(request, group_id):
logger.info("Created group leave request for user %s to group %s" % (request.user, Group.objects.get(id=group_id))) logger.info("Created group leave request for user %s to group %s" % (request.user, Group.objects.get(id=group_id)))
messages.success(request, 'Applied to leave group %s.' % group) messages.success(request, 'Applied to leave group %s.' % group)
return redirect("auth_groups") return redirect("auth_groups")
def joinable_group(group):
"""
Check if a group is a user joinable group, i.e.
not an internal group for Corp, Alliance, Members etc
:param group: django.contrib.auth.models.Group object
:return: bool True if its joinable, False otherwise
"""
return (
"Corp_" not in group.name and
"Alliance_" not in group.name and
settings.DEFAULT_AUTH_GROUP not in group.name and
settings.DEFAULT_BLUE_GROUP not in group.name
)

View File

@ -23,22 +23,22 @@
</tr> </tr>
{% for group in groups %} {% for group in groups %}
<tr> <tr>
<td class="text-center">{{ group.group.name }}</td> <td class="text-center">{{ group.name }}</td>
<td class="text-center">{{ group.group.groupdescription.description }}</td> <td class="text-center">{{ group.groupdescription.description }}</td>
<td class="text-center"> <td class="text-center">
{% if group.group.hiddengroup %} {% if group.hiddengroup %}
<span class="label label-info">{% trans "Hidden" %}</span> <span class="label label-info">{% trans "Hidden" %}</span>
{% elif group.group.opengroup %} {% elif group.opengroup %}
<span class="label label-success">{% trans "Open" %}</span> <span class="label label-success">{% trans "Open" %}</span>
{% else %} {% else %}
<span class="label label-default">{% trans "Other" %}</span> <span class="label label-default">{% trans "Requestable" %}</span>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"> <td class="text-center">
{{ group.num_members }} {{ group.num_members }}
</td> </td>
<td class="text-center"> <td class="text-center">
<a href="{% url 'auth_group_membership_list' group.group.id %}" class="btn btn-primary" <a href="{% url 'auth_group_membership_list' group.id %}" class="btn btn-primary"
title="{% trans "View Members" %}"> title="{% trans "View Members" %}">
<i class="glyphicon glyphicon-eye-open"></i> <i class="glyphicon glyphicon-eye-open"></i>
</a> </a>