From b79f96dc9ebf4ea071b398b4cfa1a27db3d3c9d9 Mon Sep 17 00:00:00 2001 From: gfawcett Date: Tue, 28 Dec 2010 17:04:03 +0000 Subject: [PATCH] Fix edit-site bug; better save-confirm messages on Permissions; delete groups. When editing a site (via "Setup"), the owner name was not being set properly, and would cause the edit to fail if the owner was not changed. Save-confirmation messages now have a "continue" link on the Permissions page, making it a bit easier to proceed after making changes. External groups are now deletable. git-svn-id: svn://svn.open-ils.org/ILS-Contrib/servres/trunk@1127 6d9bc8c9-1ec2-4278-b937-99fde70a366f --- conifer/static/edit_site_permissions.js | 23 ++++++++++++++++++++++- conifer/syrup/urls.py | 1 + conifer/syrup/views/sites.py | 13 ++++++++++++- conifer/templates/edit_site.xhtml | 2 +- conifer/templates/edit_site_permissions.xhtml | 21 ++++++++++++++------- conifer/templates/master.xhtml | 2 +- 6 files changed, 51 insertions(+), 11 deletions(-) diff --git a/conifer/static/edit_site_permissions.js b/conifer/static/edit_site_permissions.js index 92bd861..1d9d89c 100644 --- a/conifer/static/edit_site_permissions.js +++ b/conifer/static/edit_site_permissions.js @@ -9,4 +9,25 @@ function show_specific_only() { $('#' + cur + '_panel').fadeIn(); } -$(do_init); \ No newline at end of file +$(do_init); + + +function deleteGroup(linkid, groupid) { + var link = $('#'+linkid); + link.hide(); + var sure = $('are you sure? '); + var yes = $('yes'); + var no = $('no'); + yes.click(function() { + $.post('delete_group/', + {id: groupid}, + function() { + link.parents('tr').fadeOut(); + }); + }); + no.click(function() { + link.show(); sure.hide(); + }); + sure.append(yes).append(" / ").append(no); + link.after(sure); +} \ No newline at end of file diff --git a/conifer/syrup/urls.py b/conifer/syrup/urls.py index 94adc69..62fcb2c 100644 --- a/conifer/syrup/urls.py +++ b/conifer/syrup/urls.py @@ -31,6 +31,7 @@ urlpatterns = patterns('conifer.syrup.views', (r'^site/(?P\d+)/edit/$', 'edit_site'), (r'^site/(?P\d+)/edit/delete/$', 'delete_site'), (r'^site/(?P\d+)/edit/permission/$', 'edit_site_permissions'), + (r'^site/(?P\d+)/edit/permission/delete_group/$', 'edit_site_permissions_delete_group'), (r'^site/(?P\d+)/feeds/(?P.*)$', 'site_feeds'), (r'^site/(?P\d+)/join/$', 'site_join'), (r'^site/.*fuzzy_user_lookup$', 'site_fuzzy_user_lookup'), diff --git a/conifer/syrup/views/sites.py b/conifer/syrup/views/sites.py index 6807806..cc81790 100644 --- a/conifer/syrup/views/sites.py +++ b/conifer/syrup/views/sites.py @@ -101,10 +101,12 @@ def edit_site_permissions(request, site_id): else: POST = request.POST message = 'Changes saved.' # default + message_iserror = False if 'action_access_level' in POST: access = POST.get('access') site.access = access + message = 'Security level changed: "%s"' % dict(choices)[access] elif 'action_add_group' in POST: section = POST.get('section', '').strip() @@ -117,14 +119,23 @@ def edit_site_permissions(request, site_id): if not groupcode: message = 'No group code or section number provided.' + message_iserror = True else: group, created = models.Group.objects.get_or_create( site=site, external_id=groupcode) - + message = 'Group %s added.' % groupcode site.save() return g.render('edit_site_permissions.xhtml', **locals()) @instructors_only +def edit_site_permissions_delete_group(request, site_id): + site = get_object_or_404(models.Site, pk=site_id) + groupId = request.REQUEST.get('id') + group = get_object_or_404(models.Group, site=site, pk=groupId) + group.delete() + return HttpResponse('') + +@instructors_only def delete_site(request, site_id): site = get_object_or_404(models.Site, pk=site_id) if request.POST.get('confirm_delete'): diff --git a/conifer/templates/edit_site.xhtml b/conifer/templates/edit_site.xhtml index 58cb12d..dcd6b06 100644 --- a/conifer/templates/edit_site.xhtml +++ b/conifer/templates/edit_site.xhtml @@ -44,7 +44,7 @@ owner = instance.owner if instance.owner_id else None Primary Instructor - +
Type a partial name or userid into the box; then select one of the matches.
diff --git a/conifer/templates/edit_site_permissions.xhtml b/conifer/templates/edit_site_permissions.xhtml index 8979498..681e339 100644 --- a/conifer/templates/edit_site_permissions.xhtml +++ b/conifer/templates/edit_site_permissions.xhtml @@ -15,21 +15,26 @@ extgroups = site.group_set.filter(external_id__isnull=False).annotate(Count('mem