Added view to list, create, update and delete metadata type under the setup menu

This commit is contained in:
Roberto Rosario
2011-06-19 00:38:55 -04:00
parent 9250a6bbdc
commit 0490fc64ca
6 changed files with 126 additions and 6 deletions

View File

@@ -7,6 +7,7 @@ from navigation.api import register_links
from history import history_list from history import history_list
from converter import formats_list from converter import formats_list
from documents import document_type_views from documents import document_type_views
from metadata import setup_metadata_type_list, metadata_setup_view
from main.conf.settings import SIDE_BAR_SEARCH from main.conf.settings import SIDE_BAR_SEARCH
@@ -45,11 +46,12 @@ register_top_menu('about', link={'text': _(u'about'), 'view': 'about', 'famfam':
register_links(['tools_menu', 'statistics', 'history_list', 'history_view', 'formats_list'], [tools_menu, statistics, history_list, formats_list, sentry], menu_name='secondary_menu') register_links(['tools_menu', 'statistics', 'history_list', 'history_view', 'formats_list'], [tools_menu, statistics, history_list, formats_list, sentry], menu_name='secondary_menu')
tool_links = [check_settings, role_list, user_list, group_list, document_types, admin_site] setup_links = [check_settings, role_list, user_list, group_list, document_types, setup_metadata_type_list, admin_site]
register_links(['setting_list'], tool_links, menu_name='secondary_menu') register_links(['setting_list'], setup_links, menu_name='secondary_menu')
register_links(permission_views, tool_links, menu_name='secondary_menu') register_links(permission_views, setup_links, menu_name='secondary_menu')
register_links(user_management_views, tool_links, menu_name='secondary_menu') register_links(user_management_views, setup_links, menu_name='secondary_menu')
register_links(document_type_views, tool_links, menu_name='secondary_menu') register_links(document_type_views, setup_links, menu_name='secondary_menu')
register_links(metadata_setup_view, setup_links, menu_name='secondary_menu')
def get_version(): def get_version():

View File

@@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links, register_multi_item_links from navigation.api import register_links, register_multi_item_links
from permissions.api import register_permission, set_namespace_title from permissions.api import register_permission, set_namespace_title
from documents.models import Document from documents.models import Document
from metadata.models import MetadataType
PERMISSION_METADATA_DOCUMENT_EDIT = {'namespace': 'metadata', 'name': u'metadata_document_edit', 'label': _(u'Edit a document\'s metadata')} PERMISSION_METADATA_DOCUMENT_EDIT = {'namespace': 'metadata', 'name': u'metadata_document_edit', 'label': _(u'Edit a document\'s metadata')}
PERMISSION_METADATA_DOCUMENT_ADD = {'namespace': 'metadata', 'name': u'metadata_document_add', 'label': _(u'Add metadata to a document')} PERMISSION_METADATA_DOCUMENT_ADD = {'namespace': 'metadata', 'name': u'metadata_document_add', 'label': _(u'Add metadata to a document')}
@@ -20,5 +21,16 @@ metadata_multiple_add = {'text': _(u'add metadata'), 'view': 'metadata_multiple_
metadata_remove = {'text': _(u'remove metadata'), 'view': 'metadata_remove', 'args': 'object.id', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]} metadata_remove = {'text': _(u'remove metadata'), 'view': 'metadata_remove', 'args': 'object.id', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]}
metadata_multiple_remove = {'text': _(u'remove metadata'), 'view': 'metadata_multiple_remove', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]} metadata_multiple_remove = {'text': _(u'remove metadata'), 'view': 'metadata_multiple_remove', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]}
setup_metadata_type_list = {'text': _(u'metadata types'), 'view': 'setup_metadata_type_list', 'famfam': 'xhtml_go'}#, 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
setup_metadata_type_edit = {'text': _(u'edit'), 'view': 'setup_metadata_type_edit', 'args': 'object.id', 'famfam': 'xhtml'}#, 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
setup_metadata_type_delete = {'text': _(u'delete'), 'view': 'setup_metadata_type_delete', 'args': 'object.id', 'famfam': 'xhtml_delete'}#, 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
setup_metadata_type_create = {'text': _(u'create new'), 'view': 'setup_metadata_type_create', 'famfam': 'xhtml_add'}#, 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
register_links(Document, [metadata_add, metadata_edit, metadata_remove]) register_links(Document, [metadata_add, metadata_edit, metadata_remove])
register_multi_item_links(['document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove]) register_multi_item_links(['document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove])
register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_delete])
register_links(['setup_metadata_type_delete', 'setup_metadata_type_edit', 'setup_metadata_type_list', 'setup_metadata_type_create'], [setup_metadata_type_create], menu_name='sidebar')
metadata_setup_view = ['setup_metadata_type_list', 'setup_metadata_type_edit', 'setup_metadata_type_delete', 'setup_metadata_type_create']

View File

@@ -94,3 +94,8 @@ class MetadataSelectionForm(forms.Form):
) )
MetadataRemoveFormSet = formset_factory(MetadataRemoveForm, extra=0) MetadataRemoveFormSet = formset_factory(MetadataRemoveForm, extra=0)
class MetadataTypeForm(forms.ModelForm):
class Meta:
model = MetadataType

View File

@@ -7,4 +7,9 @@ urlpatterns = patterns('metadata.views',
url(r'^multiple/add/$', 'metadata_multiple_add', (), 'metadata_multiple_add'), url(r'^multiple/add/$', 'metadata_multiple_add', (), 'metadata_multiple_add'),
url(r'^(?P<document_id>\d+)/remove/$', 'metadata_remove', (), 'metadata_remove'), url(r'^(?P<document_id>\d+)/remove/$', 'metadata_remove', (), 'metadata_remove'),
url(r'^multiple/remove/$', 'metadata_multiple_remove', (), 'metadata_multiple_remove'), url(r'^multiple/remove/$', 'metadata_multiple_remove', (), 'metadata_multiple_remove'),
url(r'^setup/type/list/$', 'setup_metadata_type_list', (), 'setup_metadata_type_list'),
url(r'^setup/type/create/$', 'setup_metadata_type_create', (), 'setup_metadata_type_create'),
url(r'^setup/type/(?P<metadatatype_id>\d+)/edit/$', 'setup_metadata_type_edit', (), 'setup_metadata_type_edit'),
url(r'^setup/type/(?P<metadatatype_id>\d+)/delete/$', 'setup_metadata_type_delete', (), 'setup_metadata_type_delete'),
) )

View File

@@ -13,7 +13,8 @@ from document_indexing.api import update_indexes, delete_indexes
from metadata import PERMISSION_METADATA_DOCUMENT_EDIT, \ from metadata import PERMISSION_METADATA_DOCUMENT_EDIT, \
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE
from metadata.forms import MetadataFormSet, AddMetadataForm, MetadataRemoveFormSet from metadata.forms import MetadataFormSet, AddMetadataForm, \
MetadataRemoveFormSet, MetadataTypeForm
from metadata.api import save_metadata_list from metadata.api import save_metadata_list
from metadata.models import DocumentMetadata, MetadataType from metadata.models import DocumentMetadata, MetadataType
@@ -260,3 +261,98 @@ def metadata_remove(request, document_id=None, document_id_list=None):
def metadata_multiple_remove(request): def metadata_multiple_remove(request):
return metadata_remove(request, document_id_list=request.GET.get('id_list', [])) return metadata_remove(request, document_id_list=request.GET.get('id_list', []))
def setup_metadata_type_list(request):
#check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW])
context = {
'object_list': MetadataType.objects.all(),
'title': _(u'metadata types'),
'hide_link': True,
'extra_columns': [
{
'name': _(u'internal name'),
'attribute': 'name',
},
]
}
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))
def setup_metadata_type_edit(request, metadatatype_id):
#check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW])
metadata_type = get_object_or_404(MetadataType, pk=metadatatype_id)
if request.method == 'POST':
form = MetadataTypeForm(instance=metadata_type, data=request.POST)
if form.is_valid():
#folder.title = form.cleaned_data['title']
try:
form.save()
messages.success(request, _(u'Metadata type edited successfully'))
return HttpResponseRedirect(reverse('setup_metadata_type_list'))
except Exception, e:
messages.error(request, _(u'Error editing metadata type; %s') % e)
pass
else:
form = MetadataTypeForm(instance=metadata_type)
return render_to_response('generic_form.html', {
'title': _(u'edit metadata type: %s') % metadata_type,
'form': form,
'object': metadata_type,
'object_name': _(u'metadata type'),
},
context_instance=RequestContext(request))
def setup_metadata_type_create(request):
if request.method == 'POST':
form = MetadataTypeForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, _(u'Metadata type created successfully'))
return HttpResponseRedirect(reverse('setup_metadata_type_list'))
else:
form = MetadataTypeForm()
return render_to_response('generic_form.html', {
'title': _(u'create metadata type'),
'form': form,
},
context_instance=RequestContext(request))
def setup_metadata_type_delete(request, metadatatype_id):
metadata_type = get_object_or_404(MetadataType, pk=metadatatype_id)
post_action_redirect = reverse('setup_metadata_type_list')
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', post_action_redirect)))
next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', post_action_redirect)))
if request.method == 'POST':
try:
metadata_type.delete()
messages.success(request, _(u'Metadata type: %s deleted successfully.') % metadata_type)
except Exception, e:
messages.error(request, _(u'Folder: %(metadata_type)s delete error: %(error)s') % {
'metadata_type': metadata_type, 'error': e})
return HttpResponseRedirect(next)
context = {
'object_name': _(u'metadata type'),
'delete_view': True,
'next': next,
'previous': previous,
'object': metadata_type,
'title': _(u'Are you sure you with to delete the metadata type: %s?') % metadata_type,
'form_icon': u'xhtml_delete.png',
}
return render_to_response('generic_confirm.html', context,
context_instance=RequestContext(request))

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB