diff --git a/apps/metadata/__init__.py b/apps/metadata/__init__.py index 192ca36f74..4c42149277 100644 --- a/apps/metadata/__init__.py +++ b/apps/metadata/__init__.py @@ -35,6 +35,7 @@ setup_metadata_type_create = {'text': _(u'create new'), 'view': 'setup_metadata_ setup_metadata_set_list = {'text': _(u'metadata sets'), 'view': 'setup_metadata_set_list', 'famfam': 'table', 'icon': 'table.png', 'permissions': [PERMISSION_METADATA_SET_VIEW]} setup_metadata_set_edit = {'text': _(u'edit'), 'view': 'setup_metadata_set_edit', 'args': 'object.pk', 'famfam': 'table_edit', 'permissions': [PERMISSION_METADATA_SET_EDIT]} +setup_metadata_set_members = {'text': _(u'members'), 'view': 'setup_metadata_set_members', 'args': 'object.pk', 'famfam': 'table_link', 'permissions': [PERMISSION_METADATA_SET_EDIT]} setup_metadata_set_delete = {'text': _(u'delete'), 'view': 'setup_metadata_set_delete', 'args': 'object.pk', 'famfam': 'table_delete', 'permissions': [PERMISSION_METADATA_SET_DELETE]} setup_metadata_set_create = {'text': _(u'create new'), 'view': 'setup_metadata_set_create', 'famfam': 'table_add', 'permissions': [PERMISSION_METADATA_SET_CREATE]} @@ -47,14 +48,11 @@ register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_ins register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_delete]) register_links([MetadataType, 'setup_metadata_type_list', 'setup_metadata_type_create'], [setup_metadata_type_list, setup_metadata_type_create], menu_name='secondary_menu') -register_links(MetadataSet, [setup_metadata_set_edit, setup_metadata_set_delete]) +register_links(MetadataSet, [setup_metadata_set_edit, setup_metadata_set_members, setup_metadata_set_delete]) register_links([MetadataSet, 'setup_metadata_set_list', 'setup_metadata_set_create'], [setup_metadata_set_list, setup_metadata_set_create], menu_name='secondary_menu') register_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'] - 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..3a50bdf2dc 100644 --- a/apps/metadata/urls.py +++ b/apps/metadata/urls.py @@ -17,6 +17,7 @@ urlpatterns = patterns('metadata.views', url(r'^setup/set/list/$', 'setup_metadata_set_list', (), 'setup_metadata_set_list'), 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+)/members/$', 'setup_metadata_set_members', (), 'setup_metadata_set_members'), url(r'^setup/set/(?P\d+)/delete/$', 'setup_metadata_set_delete', (), 'setup_metadata_set_delete'), 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 31e9a74549..d4691f43b8 100644 --- a/apps/metadata/views.py +++ b/apps/metadata/views.py @@ -427,6 +427,33 @@ def setup_metadata_set_list(request): context_instance=RequestContext(request)) +def setup_metadata_set_edit(request, metadata_set_id): + Permission.objects.check_permissions(request.user, [PERMISSION_METADATA_TYPE_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 get_set_members(metadata_set): return [item.metadata_type for item in metadata_set.metadatasetitem_set.all()] @@ -450,7 +477,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)