30
30
from django .views .generic import FormView
31
31
from django .http import HttpResponseRedirect
32
32
from django .contrib .auth import get_user_model
33
+ from django .contrib import messages
33
34
from django .utils .translation import ugettext as _
34
35
from django .core .exceptions import PermissionDenied
35
36
from django .contrib .auth .decorators import login_required
@@ -95,11 +96,14 @@ def user_and_group_permission(request, model):
95
96
return HttpResponseRedirect (
96
97
get_url_for_app_model (model , model_class ))
97
98
99
+ users_usernames = None
100
+ groups_names = None
101
+
98
102
if request .method == 'POST' :
99
103
form = UserAndGroupPermissionsForm (request .POST )
100
104
ids = ids .split ("," )
101
105
if form .is_valid ():
102
- resources_names = [ layer . title for layer in form .cleaned_data .get ('layers' )]
106
+ resources_names = form .cleaned_data .get ('layers' )
103
107
users_usernames = [user .username for user in model_class .objects .filter (
104
108
id__in = ids )] if model == 'profile' else None
105
109
groups_names = [group_profile .group .name for group_profile in model_class .objects .filter (
@@ -123,11 +127,22 @@ def user_and_group_permission(request, model):
123
127
set_permissions .apply_async (
124
128
([permissions_names ], resources_names , users_usernames , groups_names , delete_flag ))
125
129
130
+ messages .add_message (
131
+ request ,
132
+ messages .INFO ,
133
+ f'The asyncronous permissions { form .cleaned_data .get ("mode" )} request for { ", " .join (users_usernames or groups_names )} has been sent'
134
+ )
135
+ else :
136
+ messages .add_message (
137
+ request ,
138
+ messages .ERROR ,
139
+ f'Some error has occured { form .errors } '
140
+ )
126
141
return HttpResponseRedirect (
127
142
get_url_for_app_model (model , model_class ))
128
143
129
144
form = UserAndGroupPermissionsForm ({
130
- 'permission_type' : 'read ' ,
145
+ 'permission_type' : 'view ' ,
131
146
'mode' : 'set' ,
132
147
})
133
148
return render (
@@ -232,7 +247,7 @@ def __init__(self, *args, **kwargs):
232
247
raise AttributeError ("SimpleSelect2View missing required 'filter_arg' argument" )
233
248
234
249
def get_queryset (self ):
235
- qs = super (views .BaseQuerySetView , self ).get_queryset ()
250
+ qs = super (views .BaseQuerySetView , self ).get_queryset (). order_by ( 'pk' )
236
251
237
252
if self .q :
238
253
qs = qs .filter (** {self .filter_arg : self .q })
@@ -300,6 +315,20 @@ def get_results(self, context):
300
315
]
301
316
302
317
318
+ class DatasetsAutocomplete (SimpleSelect2View ):
319
+ model = Dataset
320
+ filter_arg = 'title__icontains'
321
+
322
+ def get_results (self , context ):
323
+ return [
324
+ {
325
+ 'id' : self .get_result_value (result ),
326
+ 'text' : self .get_result_label (result .title ),
327
+ 'selected_text' : self .get_selected_result_label (result .title ),
328
+ } for result in context ['object_list' ]
329
+ ]
330
+
331
+
303
332
class ThesaurusAvailable (autocomplete .Select2QuerySetView ):
304
333
def get_queryset (self ):
305
334
0 commit comments