mixins.py 1.05 KB
from .named_enum import DocStatus
from .models import HILDoc, AFCDoc
from . import consts


class DocHandler:

    @staticmethod
    def get_link(doc_id, file='pdf'):
        if file == 'pdf':
            return '/data/{0}/{0}.pdf'.format(doc_id)
        elif file == 'img':
            return '/data/{0}/{0}_img.zip'.format(doc_id)
        else:
            return '/data/{0}/{0}.xls'.format(doc_id)

    def get_doc_list(self, doc_queryset):
        for doc_dict in doc_queryset:
            if doc_dict['status'] != DocStatus.COMPLETE.value:
                continue
            doc_id = doc_dict.get('id')
            doc_dict['pdf_link'] = self.get_link(doc_id)
            doc_dict['img_link'] = self.get_link(doc_id, 'img')
            doc_dict['excel_link'] = self.get_link(doc_id, 'excel')
        return list(doc_queryset)

    @staticmethod
    def get_doc_class(business_type):
        is_hil = business_type in consts.HIL_SET
        doc_class, prefix = (HILDoc, consts.HIL_PREFIX) if is_hil else (AFCDoc, consts.AFC_PREFIX)
        return doc_class, prefix