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 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():
|
||||||
|
|||||||
@@ -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']
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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'),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
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