Remove DocumentTypeHelper class, use direct Django methods

This commit is contained in:
Roberto Rosario
2014-12-08 19:35:25 -04:00
parent 82bedefff6
commit 11ff561b3a
2 changed files with 9 additions and 41 deletions

View File

@@ -4,38 +4,6 @@ from .models import DocumentTypeMetadataType, MetadataType
from .tasks import task_add_required_metadata_type, task_remove_metadata_type
class DocumentTypeMetadataTypeHelper(object):
@staticmethod
@property
def constructor(source_object):
return DocumentTypeMetadataTypeHelper(source_object)
def __init__(self, instance):
self.instance = instance
def filter(self, **kwargs):
return self.get_query_set(**kwargs)
def all(self):
return self.get_query_set()
def get_query_set(self, **kwargs):
try:
return MetadataType.objects.filter(pk__in=self.instance.metadata.filter(**kwargs).values_list('metadata_type', flat=True))
except MetadataType.DoesNotExist:
return MetadataType.objects.none()
def add(self, metadata_type, required=False):
if metadata_type not in self.instance.metadata_type.all():
DocumentTypeMetadataType.objects.create(document_type=self.instance, metadata_type=metadata_type, required=required)
if required:
task_add_required_metadata_type.apply_async(kwargs={'metadata_type_id': metadata_type.pk, 'document_type_id': self.instance.pk}, queue='metadata')
def remove(self, metadata_type):
DocumentTypeMetadataType.objects.get(document_type=self.instance, metadata_type=metadata_type).delete()
task_remove_metadata_type.apply_async(kwargs={'metadata_type_id': metadata_type.pk, 'document_type_id': self.instance.pk}, queue='metadata')
class DocumentMetadataHelper(object):
@staticmethod
@property

View File

@@ -295,7 +295,7 @@ def metadata_view(request, document_id):
'object_list': document.metadata.all(),
'extra_columns': [
{'name': _(u'Value'), 'attribute': 'value'},
{'name': _(u'Required'), 'attribute': encapsulate(lambda x: x.metadata_type in document.document_type.metadata_type.filter(required=True))}
{'name': _(u'Required'), 'attribute': encapsulate(lambda x: x.metadata_type in document.document_type.metadata.filter(required=True))}
],
'hide_link': True,
'object': document,
@@ -404,10 +404,10 @@ def setup_document_type_metadata(request, document_type_id):
return assign_remove(
request,
left_list=lambda: generate_choices_w_labels(set(MetadataType.objects.all()) - set(document_type.metadata_type.filter(required=False)) - set(document_type.metadata_type.filter(required=True)), display_object_type=False),
right_list=lambda: generate_choices_w_labels(document_type.metadata_type.filter(required=False), display_object_type=False),
add_method=lambda x: document_type.metadata_type.add(x, required=False),
remove_method=lambda x: document_type.metadata_type.remove(x),
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),
add_method=lambda x: document_type.metadata.create(metadata_type=x, required=False),
remove_method=lambda x: x.delete(),
extra_context={
'document_type': document_type,
'navigation_object_name': 'document_type',
@@ -424,10 +424,10 @@ def setup_document_type_metadata_required(request, document_type_id):
return assign_remove(
request,
left_list=lambda: generate_choices_w_labels(set(MetadataType.objects.all()) - set(document_type.metadata_type.filter(required=False)) - set(document_type.metadata_type.filter(required=True)), display_object_type=False),
right_list=lambda: generate_choices_w_labels(document_type.metadata_type.filter(required=True), display_object_type=False),
add_method=lambda x: document_type.metadata_type.add(x, required=True),
remove_method=lambda x: document_type.metadata_type.remove(x),
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=True), display_object_type=False),
add_method=lambda x: document_type.metadata.create(metadata_type=x, required=True),
remove_method=lambda x: x.delete(),
extra_context={
'document_type': document_type,
'navigation_object_name': 'document_type',