diff --git a/umap/templates/umap/user_groups.html b/umap/templates/umap/user_groups.html index 6a0e5668..3e14ccb3 100644 --- a/umap/templates/umap/user_groups.html +++ b/umap/templates/umap/user_groups.html @@ -9,7 +9,7 @@ diff --git a/umap/tests/test_views.py b/umap/tests/test_views.py index 4e307ddb..1a0564a4 100644 --- a/umap/tests/test_views.py +++ b/umap/tests/test_views.py @@ -288,6 +288,20 @@ def test_user_dashboard_display_user_maps(client, map): assert "Owner only" in body +@pytest.mark.django_db +def test_user_dashboard_display_user_group_maps(client, map, group, user): + user.groups.add(group) + user.save() + map.group = group + map.save() + client.login(username=user.username, password="123123") + response = client.get(reverse("user_dashboard")) + assert response.status_code == 200 + body = response.content.decode() + assert map.name in body + assert map.get_absolute_url() in body + + @pytest.mark.django_db def test_user_dashboard_display_user_maps_distinct(client, map): # cf https://github.com/umap-project/umap/issues/1325 diff --git a/umap/views.py b/umap/views.py index 0d305b90..12282317 100644 --- a/umap/views.py +++ b/umap/views.py @@ -370,7 +370,12 @@ class UserDashboard(PaginatorMixin, DetailView, SearchMixin): def get_maps(self): qs = self.get_search_queryset() or Map.objects.all() - qs = qs.filter(owner=self.object).union(qs.filter(editors=self.object)) + groups = self.object.groups.all() + qs = ( + qs.filter(owner=self.object) + .union(qs.filter(editors=self.object)) + .union(qs.filter(group__in=groups)) + ) return qs.order_by("-modified_at") def get_context_data(self, **kwargs):