mixins.py
1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from .named_enum import DocStatus
from .models import HILDoc, AFCDoc
from . import consts
class DocHandler:
@staticmethod
def get_link(doc_id, business_type, file='pdf'):
if file == 'pdf':
return '/data/{1}/{0}/{0}.pdf'.format(doc_id, business_type)
elif file == 'img':
return '/data/{1}/{0}/{0}_img.zip'.format(doc_id, business_type)
else:
return '/data/{1}/{0}/{0}.xlsx'.format(doc_id, business_type)
def get_doc_list(self, doc_queryset, business_type):
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, business_type)
doc_dict['img_link'] = self.get_link(doc_id, business_type, file='img')
doc_dict['excel_link'] = self.get_link(doc_id, business_type, file='excel')
return list(doc_queryset)
@staticmethod
def get_doc_class(business_type):
return (HILDoc, consts.HIL_PREFIX) if business_type in consts.HIL_SET else (AFCDoc, consts.AFC_PREFIX)
def fix_scheme(self, scheme):
if scheme in consts.DOC_SCHEME_LIST:
return scheme
elif scheme.upper() in consts.DOC_SCHEME_LIST:
return scheme.upper()
else:
return consts.DOC_SCHEME_LIST[0]
def fix_data_source(self, data_source):
if data_source in consts.DATA_SOURCE_LIST:
return data_source
elif data_source.upper() in consts.DATA_SOURCE_LIST:
return data_source.upper()
else:
return consts.DATA_SOURCE_LIST[0]