Convert document type optional and required metadata views to CBV assign remove view
This commit is contained in:
@@ -9,7 +9,11 @@ from .api_views import (
|
|||||||
APIDocumentTypeMetadataTypeRequiredView, APIMetadataTypeListView,
|
APIDocumentTypeMetadataTypeRequiredView, APIMetadataTypeListView,
|
||||||
APIMetadataTypeView
|
APIMetadataTypeView
|
||||||
)
|
)
|
||||||
from .views import MissingRequiredMetadataDocumentListView
|
from .views import (
|
||||||
|
MissingRequiredMetadataDocumentListView,
|
||||||
|
SetupDocumentTypeMetadataOptionalView,
|
||||||
|
SetupDocumentTypeMetadataRequiredView
|
||||||
|
)
|
||||||
|
|
||||||
urlpatterns = patterns('metadata.views',
|
urlpatterns = patterns('metadata.views',
|
||||||
url(r'^(?P<document_id>\d+)/edit/$', 'metadata_edit', (), 'metadata_edit'),
|
url(r'^(?P<document_id>\d+)/edit/$', 'metadata_edit', (), 'metadata_edit'),
|
||||||
@@ -25,8 +29,8 @@ urlpatterns = patterns('metadata.views',
|
|||||||
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+)/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'),
|
url(r'^setup/type/(?P<metadatatype_id>\d+)/delete/$', 'setup_metadata_type_delete', (), 'setup_metadata_type_delete'),
|
||||||
|
|
||||||
url(r'^setup/document/type/(?P<document_type_id>\d+)/metadata/edit/$', 'setup_document_type_metadata', (), 'setup_document_type_metadata'),
|
url(r'^setup/document/type/(?P<document_type_id>\d+)/metadata/edit/$', SetupDocumentTypeMetadataOptionalView.as_view(), name='setup_document_type_metadata'),
|
||||||
url(r'^setup/document/type/(?P<document_type_id>\d+)/metadata/edit/required/$', 'setup_document_type_metadata_required', (), 'setup_document_type_metadata_required'),
|
url(r'^setup/document/type/(?P<document_type_id>\d+)/metadata/edit/required/$', SetupDocumentTypeMetadataRequiredView.as_view(), name='setup_document_type_metadata_required'),
|
||||||
|
|
||||||
url(r'^tools/missing_required_metadata/$', MissingRequiredMetadataDocumentListView.as_view(), name='documents_missing_required_metadata'),
|
url(r'^tools/missing_required_metadata/$', MissingRequiredMetadataDocumentListView.as_view(), name='documents_missing_required_metadata'),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from documents.views import DocumentListView
|
|||||||
from permissions.models import Permission
|
from permissions.models import Permission
|
||||||
|
|
||||||
from common.utils import encapsulate, generate_choices_w_labels
|
from common.utils import encapsulate, generate_choices_w_labels
|
||||||
from common.views import assign_remove
|
from common.views import AssignRemoveView
|
||||||
|
|
||||||
from .api import save_metadata_list
|
from .api import save_metadata_list
|
||||||
from .forms import (
|
from .forms import (
|
||||||
@@ -441,41 +441,50 @@ def setup_metadata_type_delete(request, metadatatype_id):
|
|||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
def setup_document_type_metadata(request, document_type_id):
|
class SetupDocumentTypeMetadataOptionalView(AssignRemoveView):
|
||||||
|
decode_content_type = True
|
||||||
|
|
||||||
|
def add(self, item):
|
||||||
|
self.document_type.metadata.create(metadata_type=item, required=False)
|
||||||
|
|
||||||
|
def dispatch(self, request, *args, **kwargs):
|
||||||
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_TYPE_EDIT])
|
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_TYPE_EDIT])
|
||||||
|
self.document_type = get_object_or_404(DocumentType, pk=self.kwargs['document_type_id'])
|
||||||
|
return super(SetupDocumentTypeMetadataOptionalView, self).dispatch(request, *args, **kwargs)
|
||||||
|
|
||||||
document_type = get_object_or_404(DocumentType, pk=document_type_id)
|
def left_list(self):
|
||||||
|
return generate_choices_w_labels(set(MetadataType.objects.all()) - set(MetadataType.objects.filter(id__in=self.document_type.metadata.values_list('metadata_type', flat=True))), display_object_type=False)
|
||||||
|
|
||||||
return assign_remove(
|
def right_list(self):
|
||||||
request,
|
return generate_choices_w_labels(self.document_type.metadata.filter(required=False), display_object_type=False)
|
||||||
left_list=lambda: generate_choices_w_labels(set(MetadataType.objects.all()) - set(MetadataType.objects.filter(id__in=document_type.metadata.values_list('metadata_type', flat=True))), display_object_type=False),
|
|
||||||
right_list=lambda: generate_choices_w_labels(document_type.metadata.filter(required=False), display_object_type=False),
|
def remove(self, item):
|
||||||
add_method=lambda x: document_type.metadata.create(metadata_type=x, required=False),
|
item.delete()
|
||||||
remove_method=lambda x: x.delete(),
|
|
||||||
extra_context={
|
def get_context_data(self, **kwargs):
|
||||||
'document_type': document_type,
|
data = super(SetupDocumentTypeMetadataOptionalView, self).get_context_data(**kwargs)
|
||||||
'main_title': _('Optional metadata types for document type: %s') % document_type,
|
data.update({
|
||||||
|
'document_type': self.document_type,
|
||||||
|
'main_title': _('Optional metadata types for document type: %s') % self.document_type,
|
||||||
'navigation_object_list': ['document_type'],
|
'navigation_object_list': ['document_type'],
|
||||||
},
|
})
|
||||||
decode_content_type=True,
|
|
||||||
)
|
return data
|
||||||
|
|
||||||
|
|
||||||
def setup_document_type_metadata_required(request, document_type_id):
|
class SetupDocumentTypeMetadataRequiredView(SetupDocumentTypeMetadataOptionalView):
|
||||||
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_TYPE_EDIT])
|
def add(self, item):
|
||||||
|
self.document_type.metadata.create(metadata_type=item, required=True)
|
||||||
|
|
||||||
document_type = get_object_or_404(DocumentType, pk=document_type_id)
|
def right_list(self):
|
||||||
|
return generate_choices_w_labels(self.document_type.metadata.filter(required=True), display_object_type=False)
|
||||||
|
|
||||||
return assign_remove(
|
def get_context_data(self, **kwargs):
|
||||||
request,
|
data = super(SetupDocumentTypeMetadataRequiredView, self).get_context_data(**kwargs)
|
||||||
left_list=lambda: generate_choices_w_labels(set(MetadataType.objects.all()) - set(MetadataType.objects.filter(id__in=document_type.metadata.values_list('metadata_type', flat=True))), display_object_type=False),
|
data.update({
|
||||||
right_list=lambda: generate_choices_w_labels(document_type.metadata.filter(required=True), display_object_type=False),
|
'document_type': self.document_type,
|
||||||
add_method=lambda x: document_type.metadata.create(metadata_type=x, required=True),
|
'main_title': _('Required metadata types for document type: %s') % self.document_type,
|
||||||
remove_method=lambda x: x.delete(),
|
|
||||||
extra_context={
|
|
||||||
'document_type': document_type,
|
|
||||||
'main_title': _('Required metadata types for document type: %s') % document_type,
|
|
||||||
'navigation_object_list': ['document_type'],
|
'navigation_object_list': ['document_type'],
|
||||||
},
|
})
|
||||||
decode_content_type=True,
|
|
||||||
)
|
return data
|
||||||
|
|||||||
Reference in New Issue
Block a user