From 0d2c9af058d09d03857f152d28cd7ab7ac828bd3 Mon Sep 17 00:00:00 2001 From: mattiagiupponi <51856725+mattiagiupponi@users.noreply.github.com> Date: Wed, 9 Nov 2022 14:19:36 +0100 Subject: [PATCH] [Fixes #10251] improve feedback to the user and UI experience of batch permisisons assignment (#10281) * [Fixes #10251] improve feedback to the user and UI experience * [Fixes #10251] improve feedback to the user and UI experience * [Fixes #10251] improve feedback to the user and UI experience --- geonode/base/admin.py | 2 +- geonode/base/forms.py | 23 +++++++++--- .../base/user_and_group_permissions.html | 32 ++++++++++++++++- geonode/base/urls.py | 6 ++++ geonode/base/views.py | 35 +++++++++++++++++-- geonode/people/tests.py | 2 +- 6 files changed, 89 insertions(+), 11 deletions(-) diff --git a/geonode/base/admin.py b/geonode/base/admin.py index 4b68a37512f..7a5fc719869 100755 --- a/geonode/base/admin.py +++ b/geonode/base/admin.py @@ -99,7 +99,7 @@ def set_user_and_group_dataset_permission(modeladmin, request, queryset): } form = UserAndGroupPermissionsForm({ - 'permission_type': 'read', + 'permission_type': 'view', 'mode': 'set', 'ids': ids, }) diff --git a/geonode/base/forms.py b/geonode/base/forms.py index b87c84f9009..a3146b6ecd9 100644 --- a/geonode/base/forms.py +++ b/geonode/base/forms.py @@ -630,21 +630,34 @@ class BatchEditForm(forms.Form): ids = forms.CharField(required=False, widget=forms.HiddenInput()) +def get_user_choices(): + try: + return [(x.pk, x.title) for x in Dataset.objects.all().order_by('id')] + except Exception: + return [] + + class UserAndGroupPermissionsForm(forms.Form): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['layers'].label_from_instance = self.label_from_instance - layers = forms.ModelMultipleChoiceField( - queryset=Dataset.objects.all(), - required=False) + layers = MultipleChoiceField( + choices=get_user_choices(), + widget=autocomplete.Select2Multiple( + url='datasets_autocomplete' + ), + label="Datasets", + required=False, + ) + permission_type = forms.ChoiceField( required=True, widget=forms.RadioSelect, choices=( - ('read', 'Read'), + ('view', 'View'), + ('download', 'Download'), ('edit', 'Edit'), - ('download', 'Download') ), ) mode = forms.ChoiceField( diff --git a/geonode/base/templates/base/user_and_group_permissions.html b/geonode/base/templates/base/user_and_group_permissions.html index 14490cbb8c0..216aaf7d0d3 100644 --- a/geonode/base/templates/base/user_and_group_permissions.html +++ b/geonode/base/templates/base/user_and_group_permissions.html @@ -8,12 +8,42 @@ {% block body_class %}batch edit{% endblock %} {% block body %} + + + + + + + + + + + + + + +