Skip to content
Snippets Groups Projects
Commit 63f6df8e authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Merge branch 'master' into drop-image-cropping

parents 60ea786f d6a0b2bd
No related branches found
No related tags found
1 merge request!322Drop image cropping for now
Pipeline #2925 passed
......@@ -9,3 +9,12 @@ class GroupFilter(FilterSet):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.form.layout = Layout(Row("name", "short_name"))
class PersonFilter(FilterSet):
first_name = CharFilter(lookup_expr="icontains")
last_name = CharFilter(lookup_expr="icontains")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.form.layout = Layout(Row("first_name", "last_name"))
......@@ -3,7 +3,7 @@
{% extends "core/base.html" %}
{% load rules %}
{% load i18n static %}
{% load i18n static material_form %}
{% load render_table from django_tables2 %}
{% block browser_title %}{{ group.name }}{% endblock %}
......@@ -60,9 +60,19 @@
</table>
<h5>{% blocktrans %}Owners{% endblocktrans %}</h5>
<form method="get">
{% form form=owners_filter.form %}{% endform %}
{% trans "Search" as caption %}
{% include "core/partials/save_button.html" with caption=caption icon="search" %}
</form>
{% render_table owners_table %}
<h5>{% blocktrans %}Members{% endblocktrans %}</h5>
<form method="get">
{% form form=members_filter.form %}{% endform %}
{% trans "Search" as caption %}
{% include "core/partials/save_button.html" with caption=caption icon="search" %}
</form>
{% render_table members_table %}
{% endblock %}
......@@ -2,7 +2,7 @@
{% extends "core/base.html" %}
{% load i18n %}
{% load i18n material_form %}
{% load render_table from django_tables2 %}
{% block browser_title %}{% blocktrans %}Groups{% endblocktrans %}{% endblock %}
......@@ -14,5 +14,11 @@
{% trans "Create group" %}
</a>
<form method="get">
{% form form=groups_filter.form %}{% endform %}
{% trans "Search" as caption %}
{% include "core/partials/save_button.html" with caption=caption icon="search" %}
</form>
{% render_table groups_table %}
{% endblock %}
......@@ -2,7 +2,7 @@
{% extends "core/base.html" %}
{% load i18n static rules %}
{% load i18n static rules material_form %}
{% load render_table from django_tables2 %}
{% block browser_title %}{{ person.first_name }} {{ person.last_name }}{% endblock %}
......@@ -134,6 +134,11 @@
{% has_perm 'core.view_person_groups' user person as can_view_groups %}
{% if can_view_groups %}
<h5>{% blocktrans %}Groups{% endblocktrans %}</h5>
<form method="get">
{% form form=groups_filter.form %}{% endform %}
{% trans "Search" as caption %}
{% include "core/partials/save_button.html" with caption=caption icon="search" %}
</form>
{% render_table groups_table %}
{% endif %}
{% endblock %}
......@@ -2,7 +2,7 @@
{% extends "core/base.html" %}
{% load i18n rules %}
{% load i18n rules material_form %}
{% load render_table from django_tables2 %}
{% block browser_title %}{% blocktrans %}Persons{% endblocktrans %}{% endblock %}
......@@ -18,5 +18,11 @@
</a>
{% endif %}
<form method="get">
{% form form=persons_filter.form %}{% endform %}
{% trans "Search" as caption %}
{% include "core/partials/save_button.html" with caption=caption icon="search" %}
</form>
{% render_table persons_table %}
{% endblock %}
......@@ -19,7 +19,7 @@ from haystack.views import SearchView
from health_check.views import MainView
from rules.contrib.views import PermissionRequiredMixin, permission_required
from .filters import GroupFilter
from .filters import GroupFilter, PersonFilter
from .forms import (
AnnouncementForm,
ChildGroupsForm,
......@@ -143,8 +143,12 @@ def persons(request: HttpRequest) -> HttpResponse:
request.user, "core.view_person", Person.objects.filter(is_active=True)
)
# Get filter
persons_filter = PersonFilter(request.GET, queryset=persons)
context["persons_filter"] = persons_filter
# Build table
persons_table = PersonsTable(persons)
persons_table = PersonsTable(persons_filter.qs)
RequestConfig(request).configure(persons_table)
context["persons_table"] = persons_table
......@@ -164,8 +168,12 @@ def person(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse:
# Get groups where person is member of
groups = Group.objects.filter(members=person)
# Get filter
groups_filter = GroupFilter(request.GET, queryset=groups)
context["groups_filter"] = groups_filter
# Build table
groups_table = GroupsTable(groups)
groups_table = GroupsTable(groups_filter.qs)
RequestConfig(request).configure(groups_table)
context["groups_table"] = groups_table
......@@ -186,16 +194,24 @@ def group(request: HttpRequest, id_: int) -> HttpResponse:
# Get members
members = group.members.filter(is_active=True)
# Get filter
members_filter = PersonFilter(request.GET, queryset=members)
context["members_filter"] = members_filter
# Build table
members_table = PersonsTable(members)
members_table = PersonsTable(members_filter.qs)
RequestConfig(request).configure(members_table)
context["members_table"] = members_table
# Get owners
owners = group.owners.filter(is_active=True)
# Get filter
owners_filter = PersonFilter(request.GET, queryset=owners)
context["owners_filter"] = owners_filter
# Build table
owners_table = PersonsTable(owners)
owners_table = PersonsTable(owners_filter.qs)
RequestConfig(request).configure(owners_table)
context["owners_table"] = owners_table
......@@ -210,8 +226,12 @@ def groups(request: HttpRequest) -> HttpResponse:
# Get all groups
groups = get_objects_for_user(request.user, "core.view_group", Group)
# Get filter
groups_filter = GroupFilter(request.GET, queryset=groups)
context["groups_filter"] = groups_filter
# Build table
groups_table = GroupsTable(groups)
groups_table = GroupsTable(group_filter.qs)
RequestConfig(request).configure(groups_table)
context["groups_table"] = groups_table
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment