From c3c570b7fee2c13c25a33735c74c0631b7545d81 Mon Sep 17 00:00:00 2001 From: gfawcett Date: Tue, 1 Feb 2011 03:00:18 +0000 Subject: [PATCH] site permissions: add individual member to site (fuzzy name lookup) git-svn-id: svn://svn.open-ils.org/ILS-Contrib/servres/trunk@1216 6d9bc8c9-1ec2-4278-b937-99fde70a366f --- conifer/static/fuzzyFinder.js | 6 ++-- conifer/syrup/views/sites.py | 26 ++++++++++++++- conifer/templates/edit_site_permissions.xhtml | 48 ++++++++++++++++++++++++++- 3 files changed, 76 insertions(+), 4 deletions(-) diff --git a/conifer/static/fuzzyFinder.js b/conifer/static/fuzzyFinder.js index 78ec8a4..f83a198 100644 --- a/conifer/static/fuzzyFinder.js +++ b/conifer/static/fuzzyFinder.js @@ -5,6 +5,7 @@ function fuzzyFinder(Search, Matches, EditPanel, ViewPanel, ViewName, Change, Ow lastPress: null, waiting: false, minWait: 500, + includeStudents: false, lookup: function() { var text = $(this).val(); @@ -30,7 +31,8 @@ function fuzzyFinder(Search, Matches, EditPanel, ViewPanel, ViewName, Change, Ow here.waiting = true; $(Search).css({backgroundColor: 'yellow'}); // debugging - $.post(ROOT + '/fuzzy_user_lookup', {'q': here.lastText}, + $.post(ROOT + '/fuzzy_user_lookup', {'q': here.lastText, + includeStudents: here.includeStudents}, function(data) { here.waiting = false; here.lastPress = null; @@ -40,7 +42,7 @@ function fuzzyFinder(Search, Matches, EditPanel, ViewPanel, ViewName, Change, Ow $(Matches).append('No matches.'); } $.each(data.results, function(i,val) { - var link = $(''); + var link = $(''); link.text(val[1]); link.data('userid', val[0]); link.data('display', val[1]); diff --git a/conifer/syrup/views/sites.py b/conifer/syrup/views/sites.py index 35f6899..4d9c63b 100644 --- a/conifer/syrup/views/sites.py +++ b/conifer/syrup/views/sites.py @@ -109,6 +109,29 @@ def edit_site_permissions(request, site_id): site.access = access message = 'Security level changed: "%s"' % dict(choices)[access] + elif 'action_add_member' in POST: + userid = request.POST.get('userid') + role = request.POST.get('role') + try: + user = User.objects.get(username=userid) + except User.DoesNotExist: + user = User.objects.create(username=userid) + user.save() + user.maybe_decorate() + user.save() + group = models.Group.objects.get(site=site, external_id=None) + mbr, created = models.Membership.objects.get_or_create( + group=group, user=user, defaults=dict(role=role)) + if created: + message = '%s has been added as a member (role: %s).' % ( + user.get_full_name() or user.username, mbr.get_role_display()) + else: + mbr.role = role + mbr.save() + message = '%s: role changed to %s.' % ( + user.get_full_name() or user.username, + mbr.get_role_display()) + elif 'action_add_group' in POST: section = POST.get('section', '').strip() groupcode = None @@ -192,7 +215,8 @@ def site_join(request, site_id): @admin_only def site_fuzzy_user_lookup(request): query = request.POST.get('q').lower().strip() - results = callhook('fuzzy_person_lookup', query) or [] + include_students = (request.POST.get('includeStudents') == 'true') + results = callhook('fuzzy_person_lookup', query, include_students) or [] limit = 10 resp = {'results': results[:limit], 'notshown': max(0, len(results) - limit)} diff --git a/conifer/templates/edit_site_permissions.xhtml b/conifer/templates/edit_site_permissions.xhtml index 467ba65..24edff7 100644 --- a/conifer/templates/edit_site_permissions.xhtml +++ b/conifer/templates/edit_site_permissions.xhtml @@ -19,6 +19,19 @@ extgroups = site.group_set.filter(external_id__isnull=False).annotate(Count('mem #message { background-color: #fdd; padding: 12; display: inline-block; } h2 { margin-top: 2em; } + + ${site_banner(site)} @@ -56,7 +69,7 @@ extgroups = site.group_set.filter(external_id__isnull=False).annotate(Count('mem
-

+

-- 2.11.0