Added view to list, create, update and delete metadata type under the setup menu
This commit is contained in:
@@ -7,6 +7,7 @@ from navigation.api import register_links
|
||||
from history import history_list
|
||||
from converter import formats_list
|
||||
from documents import document_type_views
|
||||
from metadata import setup_metadata_type_list, metadata_setup_view
|
||||
|
||||
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')
|
||||
|
||||
tool_links = [check_settings, role_list, user_list, group_list, document_types, admin_site]
|
||||
register_links(['setting_list'], tool_links, menu_name='secondary_menu')
|
||||
register_links(permission_views, tool_links, menu_name='secondary_menu')
|
||||
register_links(user_management_views, tool_links, menu_name='secondary_menu')
|
||||
register_links(document_type_views, tool_links, menu_name='secondary_menu')
|
||||
setup_links = [check_settings, role_list, user_list, group_list, document_types, setup_metadata_type_list, admin_site]
|
||||
register_links(['setting_list'], setup_links, menu_name='secondary_menu')
|
||||
register_links(permission_views, setup_links, menu_name='secondary_menu')
|
||||
register_links(user_management_views, setup_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():
|
||||
|
||||
@@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from navigation.api import register_links, register_multi_item_links
|
||||
from permissions.api import register_permission, set_namespace_title
|
||||
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_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_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_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']
|
||||
|
||||
@@ -94,3 +94,8 @@ class MetadataSelectionForm(forms.Form):
|
||||
)
|
||||
|
||||
MetadataRemoveFormSet = formset_factory(MetadataRemoveForm, extra=0)
|
||||
|
||||
|
||||
class MetadataTypeForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = MetadataType
|
||||
|
||||
@@ -7,4 +7,9 @@ urlpatterns = patterns('metadata.views',
|
||||
url(r'^multiple/add/$', 'metadata_multiple_add', (), 'metadata_multiple_add'),
|
||||
url(r'^(?P<document_id>\d+)/remove/$', 'metadata_remove', (), 'metadata_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'),
|
||||
)
|
||||
|
||||
@@ -13,7 +13,8 @@ from document_indexing.api import update_indexes, delete_indexes
|
||||
|
||||
from metadata import PERMISSION_METADATA_DOCUMENT_EDIT, \
|
||||
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.models import DocumentMetadata, MetadataType
|
||||
|
||||
@@ -260,3 +261,98 @@ def metadata_remove(request, document_id=None, document_id_list=None):
|
||||
|
||||
def metadata_multiple_remove(request):
|
||||
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))
|
||||
|
||||
BIN
site_media/images/icons/xhtml_delete.png
Normal file
BIN
site_media/images/icons/xhtml_delete.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Reference in New Issue
Block a user