diff --git a/apps/metadata/__init__.py b/apps/metadata/__init__.py index 2e6a535442..ca5b3723d9 100644 --- a/apps/metadata/__init__.py +++ b/apps/metadata/__init__.py @@ -37,6 +37,7 @@ setup_metadata_set_list = Link(text=_(u'metadata sets'), view='setup_metadata_se setup_metadata_set_edit = Link(text=_(u'edit'), view='setup_metadata_set_edit', args='object.pk', sprite='table_edit', permissions=[PERMISSION_METADATA_SET_EDIT]) setup_metadata_set_delete = Link(text=_(u'delete'), view='setup_metadata_set_delete', args='object.pk', sprite='table_delete', permissions=[PERMISSION_METADATA_SET_DELETE]) setup_metadata_set_create = Link(text=_(u'create new'), view='setup_metadata_set_create', sprite='table_add', permissions=[PERMISSION_METADATA_SET_CREATE]) +setup_metadata_set_members = Link(text=_(u'members'), view='setup_metadata_set_members', args='object.pk', sprite='table_refresh', permissions=[PERMISSION_METADATA_SET_EDIT]) setup_document_type_metadata = Link(text=_(u'default metadata'), view='setup_document_type_metadata', args='document_type.pk', sprite='xhtml', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT]) @@ -46,13 +47,13 @@ bind_links([Document], [metadata_view], menu_name='form_header') bind_links([MetadataType], [setup_metadata_type_edit, setup_metadata_type_delete]) bind_links([MetadataType, 'setup_metadata_type_list', 'setup_metadata_type_create'], [setup_metadata_type_list, setup_metadata_type_create], menu_name='secondary_menu') -bind_links([MetadataSet], [setup_metadata_set_edit, setup_metadata_set_delete]) +bind_links([MetadataSet], [setup_metadata_set_edit, setup_metadata_set_members, setup_metadata_set_delete]) bind_links([MetadataSet, 'setup_metadata_set_list', 'setup_metadata_set_create'], [setup_metadata_set_list, setup_metadata_set_create], menu_name='secondary_menu') bind_links([DocumentType], [setup_document_type_metadata]) metadata_type_setup_views = ['setup_metadata_type_list', 'setup_metadata_type_edit', 'setup_metadata_type_delete', 'setup_metadata_type_create'] -metadata_set_setup_views = ['setup_metadata_set_list', 'setup_metadata_set_edit', 'setup_metadata_set_delete', 'setup_metadata_set_create'] +metadata_set_setup_views = ['setup_metadata_set_list', 'setup_metadata_set_edit', 'setup_metadata_set_members', 'setup_metadata_set_delete', 'setup_metadata_set_create'] register_sidebar_template(['setup_metadata_type_list'], 'metadata_type_help.html') register_sidebar_template(['setup_metadata_set_list'], 'metadata_set_help.html') diff --git a/apps/metadata/urls.py b/apps/metadata/urls.py index 7fd2b972ae..cbf39e8f90 100644 --- a/apps/metadata/urls.py +++ b/apps/metadata/urls.py @@ -18,6 +18,7 @@ urlpatterns = patterns('metadata.views', url(r'^setup/set/create/$', 'setup_metadata_set_create', (), 'setup_metadata_set_create'), url(r'^setup/set/(?P\d+)/edit/$', 'setup_metadata_set_edit', (), 'setup_metadata_set_edit'), url(r'^setup/set/(?P\d+)/delete/$', 'setup_metadata_set_delete', (), 'setup_metadata_set_delete'), + url(r'^setup/set/(?P\d+)/members/$', 'setup_metadata_set_members', (), 'setup_metadata_set_members'), url(r'^setup/document/type/(?P\d+)/metadata/default/edit/$', 'setup_document_type_metadata', (), 'setup_document_type_metadata'), ) diff --git a/apps/metadata/views.py b/apps/metadata/views.py index b5b834a081..a3f915228c 100644 --- a/apps/metadata/views.py +++ b/apps/metadata/views.py @@ -427,7 +427,7 @@ def remove_set_member(metadata_set, selection): member.delete() -def setup_metadata_set_edit(request, metadata_set_id): +def setup_metadata_set_members(request, metadata_set_id): Permission.objects.check_permissions(request.user, [PERMISSION_METADATA_SET_EDIT]) metadata_set = get_object_or_404(MetadataSet, pk=metadata_set_id) @@ -447,6 +447,33 @@ def setup_metadata_set_edit(request, metadata_set_id): ) +def setup_metadata_set_edit(request, metadata_set_id): + Permission.objects.check_permissions(request.user, [PERMISSION_METADATA_SET_EDIT]) + + metadata_set = get_object_or_404(MetadataSet, pk=metadata_set_id) + + if request.method == 'POST': + form = MetadataSetForm(instance=metadata_set, data=request.POST) + if form.is_valid(): + try: + form.save() + messages.success(request, _(u'Metadata set edited successfully')) + return HttpResponseRedirect(reverse('setup_metadata_set_list')) + except Exception, e: + messages.error(request, _(u'Error editing metadata set; %s') % e) + pass + else: + form = MetadataSetForm(instance=metadata_set) + + return render_to_response('generic_form.html', { + 'title': _(u'edit metadata set: %s') % metadata_set, + 'form': form, + 'object': metadata_set, + 'object_name': _(u'metadata set'), + }, + context_instance=RequestContext(request)) + + def setup_metadata_set_create(request): Permission.objects.check_permissions(request.user, [PERMISSION_METADATA_SET_CREATE])