@@ -2,6 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from __future__ import division |
4 | 4 |
|
5 |
+from datetime import datetime |
|
6 |
+ |
|
5 | 7 |
from django.conf import settings |
6 | 8 |
from django_logit import logit |
7 | 9 |
from django_response import response |
@@ -21,21 +23,27 @@ def lensman_list(request, administrator): |
||
21 | 23 |
query = request.POST.get('query', '') |
22 | 24 |
lensman_status = request.POST.get('lensman_status', '') |
23 | 25 |
end_date = tc.to_date(request.POST.get('end_date', '')) |
24 |
- integral_end_date = tc.to_date(request.POST.get('integral_end_date', '')) |
|
26 |
+ integral_end_date_start = request.POST.get('integral_end_date_start', '') |
|
27 |
+ integral_end_date_end = request.POST.get('integral_end_date_end', '') |
|
25 | 28 |
|
26 | 29 |
logs = LensmanInfo.objects.filter(status=True).order_by('-pk') |
27 | 30 |
|
28 | 31 |
if query: |
29 |
- logs = logs.filter(Q(name__icontains=query) | Q(phone__icontains=query)) |
|
30 |
- |
|
32 |
+ logs = logs.filter(Q(name__icontains=query) | |
|
33 |
+ Q(phone__icontains=query)) |
|
34 |
+ |
|
31 | 35 |
if lensman_status: |
32 |
- logs = logs.filter(lensman_status=lensman_status) |
|
33 |
- |
|
36 |
+ logs = logs.filter(lensman_status=lensman_status) |
|
37 |
+ |
|
34 | 38 |
if end_date: |
35 |
- logs = logs.filter(end_date__lte=end_date) |
|
36 |
- |
|
37 |
- if integral_end_date: |
|
38 |
- logs = logs.filter(integral_end_date__lte=integral_end_date) |
|
39 |
+ logs = logs.filter(end_date__lte=end_date) |
|
40 |
+ |
|
41 |
+ if integral_end_date_start and integral_end_date_end: |
|
42 |
+ ftime = datetime.strptime( |
|
43 |
+ integral_end_date_start + ' 00:00:00', '%Y%m%d %H:%M:%S') |
|
44 |
+ ttime = datetime.strptime( |
|
45 |
+ integral_end_date_end + ' 23:59:59', '%Y%m%d %H:%M:%S') |
|
46 |
+ logs = logs.filter(integral_end_date__range=[ftime, ttime]) |
|
39 | 47 |
|
40 | 48 |
count = logs.count() |
41 | 49 |
logs, left = pagination(logs, page, num) |
@@ -56,10 +64,10 @@ def lensman_audit(request, administrator): |
||
56 | 64 |
end_date = tc.to_date(request.POST.get('end_date', '')) |
57 | 65 |
|
58 | 66 |
try: |
59 |
- lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
67 |
+ lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
60 | 68 |
except LensmanInfo.DoesNotExist: |
61 |
- return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
62 |
- |
|
69 |
+ return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
70 |
+ |
|
63 | 71 |
lensman.lensman_status = LensmanInfo.ACTIVATED |
64 | 72 |
lensman.start_date = start_date |
65 | 73 |
lensman.end_date = end_date |
@@ -75,17 +83,18 @@ def lensman_update(request, administrator): |
||
75 | 83 |
lensman_id = request.POST.get('lensman_id', '') |
76 | 84 |
start_date = tc.to_date(request.POST.get('start_date', '')) |
77 | 85 |
end_date = tc.to_date(request.POST.get('end_date', '')) |
78 |
- integral_start_date = tc.to_date(request.POST.get('integral_start_date', '')) |
|
86 |
+ integral_start_date = tc.to_date( |
|
87 |
+ request.POST.get('integral_start_date', '')) |
|
79 | 88 |
integral_end_date = tc.to_date(request.POST.get('integral_end_date', '')) |
80 | 89 |
name = request.POST.get('name', '') |
81 | 90 |
phone = request.POST.get('phone', '') |
82 | 91 |
remark = request.POST.get('remark', '') |
83 |
- |
|
92 |
+ |
|
84 | 93 |
try: |
85 |
- lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
94 |
+ lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
86 | 95 |
except LensmanInfo.DoesNotExist: |
87 |
- return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
88 |
- |
|
96 |
+ return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
97 |
+ |
|
89 | 98 |
lensman.start_date = start_date |
90 | 99 |
lensman.end_date = end_date |
91 | 100 |
lensman.integral_start_date = integral_start_date |
@@ -102,19 +111,19 @@ def lensman_update(request, administrator): |
||
102 | 111 |
@logit |
103 | 112 |
@check_admin |
104 | 113 |
def lensman_integral_list(request, administrator): |
105 |
- user_id = request.POST.get('user_id', '') |
|
114 |
+ user_id = request.POST.get('user_id', '') |
|
115 |
+ |
|
116 |
+ try: |
|
117 |
+ lensman = LensmanInfo.objects.get(user_id=user_id, status=True) |
|
118 |
+ except LensmanInfo.DoesNotExist: |
|
119 |
+ return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
106 | 120 |
|
107 |
- try: |
|
108 |
- lensman = LensmanInfo.objects.get(user_id=user_id, status=True) |
|
109 |
- except LensmanInfo.DoesNotExist: |
|
110 |
- return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
111 |
- |
|
112 |
- integrals = LensmanIntegralIncomeExpensesInfo.objects.filter(user_id=user_id, status=True) |
|
121 |
+ integrals = LensmanIntegralIncomeExpensesInfo.objects.filter( |
|
122 |
+ user_id=user_id, status=True) |
|
113 | 123 |
|
114 |
- integrals = [integral.admindata for integral in integrals] |
|
115 |
- |
|
124 |
+ integrals = [integral.admindata for integral in integrals] |
|
116 | 125 |
|
117 |
- return response(200, 'Get Lensman Integral List Success', u'获取摄影师积分列表成功', data=integrals) |
|
126 |
+ return response(200, 'Get Lensman Integral List Success', u'获取摄影师积分列表成功', data=integrals) |
|
118 | 127 |
|
119 | 128 |
|
120 | 129 |
@logit |
@@ -125,20 +134,19 @@ def lensman_integral_update(request): |
||
125 | 134 |
brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID |
126 | 135 |
|
127 | 136 |
try: |
128 |
- lensman = LensmanInfo.objects.get(user_id=user_id, status=True) |
|
137 |
+ lensman = LensmanInfo.objects.get(user_id=user_id, status=True) |
|
129 | 138 |
except LensmanInfo.DoesNotExist: |
130 |
- return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
131 |
- |
|
139 |
+ return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
140 |
+ |
|
132 | 141 |
lensman.integral += integral |
133 | 142 |
lensman.save() |
134 |
- |
|
143 |
+ |
|
135 | 144 |
LensmanIntegralIncomeExpensesInfo.objects.create( |
136 |
- brand_id=brand_id, |
|
137 |
- user_id=user_id, |
|
138 |
- integral=integral, |
|
139 |
- remark=remark, |
|
140 |
- expired_at=lensman.integral_end_date, |
|
145 |
+ brand_id=brand_id, |
|
146 |
+ user_id=user_id, |
|
147 |
+ integral=integral, |
|
148 |
+ remark=remark, |
|
149 |
+ expired_at=lensman.integral_end_date, |
|
141 | 150 |
) |
142 | 151 |
|
143 | 152 |
return response(200, 'Lensman Integral Update Success', u'摄影师积分更新成功') |
144 |
- |
@@ -16,17 +16,28 @@ class TenancyShotInfo(BaseModelMixin): |
||
16 | 16 |
(1, u'已租'), |
17 | 17 |
) |
18 | 18 |
|
19 |
- admin_id = models.CharField(_(u'admin_id'), max_length=32, blank=True, null=True, help_text=u'经手人唯一标识', db_index=True) |
|
20 |
- shot_id = ShortUUIDField(_(u'shot_id'), max_length=32, blank=True, null=True, help_text=u'镜头唯一标识', db_index=True, unique=True) |
|
21 |
- model_id = models.CharField(_(u'model_id'), max_length=32, blank=True, null=True, help_text=u'型号唯一标识', db_index=True) |
|
22 |
- model_name = models.CharField(_(u'model_name'), max_length=255, blank=True, null=True, help_text=u'型号名称') |
|
23 |
- sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号', db_index=True) |
|
24 |
- front_cap_status = models.BooleanField(_(u'front_cap_status'), default=False, help_text=u'前盖状态') |
|
25 |
- rear_cap_status = models.BooleanField(_(u'rear_cap_status'), default=False, help_text=u'后盖状态') |
|
26 |
- lens_hood_status = models.BooleanField(_(u'lens_hood_status'), default=False, help_text=u'遮光罩状态') |
|
27 |
- tripod_ring_status = models.BooleanField(_(u'tripod_ring_status'), default=False, help_text=u'脚架环状态') |
|
28 |
- appearance_performance_status = models.BooleanField(_(u'appearance_performance_status'), default=False, help_text=u'外观性能状态') |
|
29 |
- tenancy_status = models.IntegerField(_(u'tenancy_status'), choices=TENANCY_STATUS, default=0, help_text=u'租借状态') |
|
19 |
+ admin_id = models.CharField(_(u'admin_id'), max_length=32, |
|
20 |
+ blank=True, null=True, help_text=u'经手人唯一标识', db_index=True) |
|
21 |
+ shot_id = ShortUUIDField(_(u'shot_id'), max_length=32, blank=True, |
|
22 |
+ null=True, help_text=u'镜头唯一标识', db_index=True, unique=True) |
|
23 |
+ model_id = models.CharField(_(u'model_id'), max_length=32, |
|
24 |
+ blank=True, null=True, help_text=u'型号唯一标识', db_index=True) |
|
25 |
+ model_name = models.CharField( |
|
26 |
+ _(u'model_name'), max_length=255, blank=True, null=True, help_text=u'型号名称') |
|
27 |
+ sn = models.CharField(_(u'sn'), max_length=32, blank=True, |
|
28 |
+ null=True, help_text=u'序列号', db_index=True) |
|
29 |
+ front_cap_status = models.BooleanField( |
|
30 |
+ _(u'front_cap_status'), default=False, help_text=u'前盖状态') |
|
31 |
+ rear_cap_status = models.BooleanField( |
|
32 |
+ _(u'rear_cap_status'), default=False, help_text=u'后盖状态') |
|
33 |
+ lens_hood_status = models.BooleanField( |
|
34 |
+ _(u'lens_hood_status'), default=False, help_text=u'遮光罩状态') |
|
35 |
+ tripod_ring_status = models.BooleanField( |
|
36 |
+ _(u'tripod_ring_status'), default=False, help_text=u'脚架环状态') |
|
37 |
+ appearance_performance_status = models.BooleanField( |
|
38 |
+ _(u'appearance_performance_status'), default=False, help_text=u'外观性能状态') |
|
39 |
+ tenancy_status = models.IntegerField( |
|
40 |
+ _(u'tenancy_status'), choices=TENANCY_STATUS, default=0, help_text=u'租借状态') |
|
30 | 41 |
|
31 | 42 |
class Meta: |
32 | 43 |
verbose_name = _(u'租赁镜头信息') |
@@ -70,53 +81,84 @@ class TenancyShotRequestInfo(BaseModelMixin): |
||
70 | 81 |
(2, u'未通过'), |
71 | 82 |
) |
72 | 83 |
|
73 |
- request_id = ShortUUIDField(_(u'request_id'), max_length=32, blank=True, null=True, help_text=u'申请唯一标识', db_index=True, unique=True) |
|
74 |
- admin_id = models.CharField(_(u'admin_id'), max_length=32, blank=True, null=True, help_text=u'经手人唯一标识', db_index=True) |
|
84 |
+ request_id = ShortUUIDField(_(u'request_id'), max_length=32, blank=True, |
|
85 |
+ null=True, help_text=u'申请唯一标识', db_index=True, unique=True) |
|
86 |
+ admin_id = models.CharField(_(u'admin_id'), max_length=32, |
|
87 |
+ blank=True, null=True, help_text=u'经手人唯一标识', db_index=True) |
|
75 | 88 |
|
76 |
- request_number = models.CharField(_(u'request_number'), max_length=32, blank=True, null=True, help_text=u'线下借单编号', db_index=True) |
|
89 |
+ request_number = models.CharField( |
|
90 |
+ _(u'request_number'), max_length=32, blank=True, null=True, help_text=u'线下借单编号', db_index=True) |
|
77 | 91 |
|
78 |
- shot_id = models.CharField(_(u'shot_id'), max_length=32, blank=True, null=True, help_text=u'镜头唯一标识', db_index=True) |
|
79 |
- model_id = models.CharField(_(u'model_id'), max_length=32, blank=True, null=True, help_text=u'镜头型号唯一标识', db_index=True) |
|
92 |
+ shot_id = models.CharField(_(u'shot_id'), max_length=32, |
|
93 |
+ blank=True, null=True, help_text=u'镜头唯一标识', db_index=True) |
|
94 |
+ model_id = models.CharField(_(u'model_id'), max_length=32, |
|
95 |
+ blank=True, null=True, help_text=u'镜头型号唯一标识', db_index=True) |
|
80 | 96 |
|
81 |
- user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) |
|
97 |
+ user_id = models.CharField(_(u'user_id'), max_length=32, |
|
98 |
+ blank=True, null=True, help_text=u'用户唯一标识', db_index=True) |
|
82 | 99 |
|
83 | 100 |
# 镜头配件信息 |
84 |
- front_cap_status = models.BooleanField(_(u'front_cap_status'), default=False, help_text=u'前盖状态') |
|
85 |
- rear_cap_status = models.BooleanField(_(u'rear_cap_status'), default=False, help_text=u'后盖状态') |
|
86 |
- lens_hood_status = models.BooleanField(_(u'lens_hood_status'), default=False, help_text=u'遮光罩状态') |
|
87 |
- tripod_ring_status = models.BooleanField(_(u'tripod_ring_status'), default=False, help_text=u'脚架环状态') |
|
88 |
- appearance_performance_status = models.BooleanField(_(u'appearance_performance_status'), default=False, help_text=u'外观性能状态') |
|
101 |
+ front_cap_status = models.BooleanField( |
|
102 |
+ _(u'front_cap_status'), default=False, help_text=u'前盖状态') |
|
103 |
+ rear_cap_status = models.BooleanField( |
|
104 |
+ _(u'rear_cap_status'), default=False, help_text=u'后盖状态') |
|
105 |
+ lens_hood_status = models.BooleanField( |
|
106 |
+ _(u'lens_hood_status'), default=False, help_text=u'遮光罩状态') |
|
107 |
+ tripod_ring_status = models.BooleanField( |
|
108 |
+ _(u'tripod_ring_status'), default=False, help_text=u'脚架环状态') |
|
109 |
+ appearance_performance_status = models.BooleanField( |
|
110 |
+ _(u'appearance_performance_status'), default=False, help_text=u'外观性能状态') |
|
89 | 111 |
|
90 | 112 |
# 身份证信息 |
91 |
- identity_card_number = models.CharField(_(u'identity_card_number'), max_length=32, blank=True, null=True, help_text=u'身份证号') |
|
92 |
- identity_card_name = models.CharField(_(u'identity_card_name'), max_length=32, blank=True, null=True, help_text=u'身份证姓名') |
|
113 |
+ identity_card_number = models.CharField( |
|
114 |
+ _(u'identity_card_number'), max_length=32, blank=True, null=True, help_text=u'身份证号') |
|
115 |
+ identity_card_name = models.CharField( |
|
116 |
+ _(u'identity_card_name'), max_length=32, blank=True, null=True, help_text=u'身份证姓名') |
|
93 | 117 |
|
94 | 118 |
# 邮寄信息 |
95 |
- name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'用户姓名') |
|
96 |
- phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'用户电话') |
|
97 |
- location = models.CharField(_(u'location'), max_length=255, blank=True, null=True, help_text=u'用户地址') |
|
98 |
- postcode = models.CharField(_(u'postcode'), max_length=255, blank=True, null=True, help_text=u'用户邮政编码') |
|
119 |
+ name = models.CharField(_(u'name'), max_length=255, |
|
120 |
+ blank=True, null=True, help_text=u'用户姓名') |
|
121 |
+ phone = models.CharField(_(u'phone'), max_length=11, |
|
122 |
+ blank=True, null=True, help_text=u'用户电话') |
|
123 |
+ location = models.CharField( |
|
124 |
+ _(u'location'), max_length=255, blank=True, null=True, help_text=u'用户地址') |
|
125 |
+ postcode = models.CharField( |
|
126 |
+ _(u'postcode'), max_length=255, blank=True, null=True, help_text=u'用户邮政编码') |
|
99 | 127 |
|
100 | 128 |
# 租赁信息 |
101 |
- purpose = models.CharField(_(u'purpose'), max_length=255, blank=True, null=True, help_text=u'用途') |
|
102 |
- return_date = models.DateField(_(u'return_date'), blank=True, null=True, help_text=u'预定归还日期') |
|
129 |
+ purpose = models.CharField( |
|
130 |
+ _(u'purpose'), max_length=255, blank=True, null=True, help_text=u'用途') |
|
131 |
+ return_date = models.DateField( |
|
132 |
+ _(u'return_date'), blank=True, null=True, help_text=u'预定归还日期') |
|
103 | 133 |
|
104 | 134 |
# 公司 =》 用户 |
105 |
- express_name = models.CharField(_(u'express_name'), max_length=255, blank=True, null=True, help_text=u'快递公司') |
|
106 |
- express_com = models.CharField(_(u'express_com'), max_length=255, blank=True, null=True, help_text=u'快递编码') |
|
107 |
- tracking_number = models.CharField(_(u'tracking_number'), max_length=255, blank=True, null=True, help_text=u'快递单号') |
|
108 |
- tracking_info = JSONField(_(u'tracking_info'), blank=True, null=True, default={}, help_text=u'快递信息') |
|
109 |
- tracking_signed = models.BooleanField(_(u'tracking_signed'), default=False, help_text=u'快递是否已签收') |
|
110 |
- tracking_signed_images = JSONField(_(u'tracking_signed_images'), blank=True, null=True, default=[], help_text=u'快递签收图片列表') |
|
135 |
+ express_name = models.CharField( |
|
136 |
+ _(u'express_name'), max_length=255, blank=True, null=True, help_text=u'快递公司') |
|
137 |
+ express_com = models.CharField( |
|
138 |
+ _(u'express_com'), max_length=255, blank=True, null=True, help_text=u'快递编码') |
|
139 |
+ tracking_number = models.CharField( |
|
140 |
+ _(u'tracking_number'), max_length=255, blank=True, null=True, help_text=u'快递单号') |
|
141 |
+ tracking_info = JSONField( |
|
142 |
+ _(u'tracking_info'), blank=True, null=True, default={}, help_text=u'快递信息') |
|
143 |
+ tracking_signed = models.BooleanField( |
|
144 |
+ _(u'tracking_signed'), default=False, help_text=u'快递是否已签收') |
|
145 |
+ tracking_signed_images = JSONField( |
|
146 |
+ _(u'tracking_signed_images'), blank=True, null=True, default=[], help_text=u'快递签收图片列表') |
|
111 | 147 |
|
112 | 148 |
# 用户 =》 公司 |
113 |
- back_express_name = models.CharField(_(u'back_express_name'), max_length=255, blank=True, null=True, help_text=u'寄回快递公司') |
|
114 |
- back_express_com = models.CharField(_(u'back_express_com'), max_length=255, blank=True, null=True, help_text=u'寄回快递编码') |
|
115 |
- back_tracking_number = models.CharField(_(u'back_tracking_number'), max_length=255, blank=True, null=True, help_text=u'寄回快递单号') |
|
116 |
- back_tracking_info = JSONField(_(u'back_tracking_info'), blank=True, null=True, default={}, help_text=u'寄回快递信息') |
|
117 |
- back_tracking_signed = models.BooleanField(_(u'back_tracking_signed'), default=False, help_text=u'寄回快递是否已签收') |
|
118 |
- |
|
119 |
- audit_status = models.IntegerField(_(u'audit_status'), choices=AUDIT_STATUS, default=0, help_text=u'审批状态', db_index=True) |
|
149 |
+ back_express_name = models.CharField( |
|
150 |
+ _(u'back_express_name'), max_length=255, blank=True, null=True, help_text=u'寄回快递公司') |
|
151 |
+ back_express_com = models.CharField( |
|
152 |
+ _(u'back_express_com'), max_length=255, blank=True, null=True, help_text=u'寄回快递编码') |
|
153 |
+ back_tracking_number = models.CharField( |
|
154 |
+ _(u'back_tracking_number'), max_length=255, blank=True, null=True, help_text=u'寄回快递单号') |
|
155 |
+ back_tracking_info = JSONField( |
|
156 |
+ _(u'back_tracking_info'), blank=True, null=True, default={}, help_text=u'寄回快递信息') |
|
157 |
+ back_tracking_signed = models.BooleanField( |
|
158 |
+ _(u'back_tracking_signed'), default=False, help_text=u'寄回快递是否已签收') |
|
159 |
+ |
|
160 |
+ audit_status = models.IntegerField( |
|
161 |
+ _(u'audit_status'), choices=AUDIT_STATUS, default=0, help_text=u'审批状态', db_index=True) |
|
120 | 162 |
# REQUEST_STATUS = ( |
121 | 163 |
# (0, u'寄出'), |
122 | 164 |
# (1, u'寄出已签收'), |
@@ -124,10 +166,13 @@ class TenancyShotRequestInfo(BaseModelMixin): |
||
124 | 166 |
# (3, u'寄回已签收并检查无损坏'), |
125 | 167 |
# ) |
126 | 168 |
# request_status = models.IntegerField(_(u'request_status'), choices=REQUEST_STATUS, default=0, help_text=u'租借申请状态') |
127 |
- request_status = models.CharField(_(u'request_status'), max_length=16, default='', help_text=u'租借申请状态') |
|
128 |
- request_status_at = JSONField(_(u'request_status_at'), blank=True, null=True, default={}, help_text=u'租借申请状态变更时间') |
|
169 |
+ request_status = models.CharField( |
|
170 |
+ _(u'request_status'), max_length=16, default='', help_text=u'租借申请状态') |
|
171 |
+ request_status_at = JSONField( |
|
172 |
+ _(u'request_status_at'), blank=True, null=True, default={}, help_text=u'租借申请状态变更时间') |
|
129 | 173 |
|
130 |
- remark = models.CharField(_(u'remark'), max_length=256, default='', help_text=u'备注') |
|
174 |
+ remark = models.CharField( |
|
175 |
+ _(u'remark'), max_length=256, default='', help_text=u'备注') |
|
131 | 176 |
|
132 | 177 |
class Meta: |
133 | 178 |
verbose_name = _(u'租赁镜头申请信息') |
@@ -185,7 +230,7 @@ class TenancyShotRequestInfo(BaseModelMixin): |
||
185 | 230 |
'back_tracking_signed': self.back_tracking_signed, |
186 | 231 |
'audit_status': self.audit_status, |
187 | 232 |
'request_status': self.request_status, |
188 |
- 'request_status_at': {k: tc.local_date_string(utc_dt=tc.string_to_utc_datetime(v, format='%Y-%m-%dT%H:%M:%S.%fZ')) for k, v in self.request_status_at.items()}, |
|
233 |
+ 'request_status_at': {k: tc.local_date_string(utc_dt=tc.string_to_utc_datetime(v, format='%Y-%m-%d %H:%M:%S')) for k, v in self.request_status_at.items()}, |
|
189 | 234 |
'created_at': tc.local_date_string(utc_dt=self.created_at), |
190 | 235 |
'remark': self.remark, |
191 | 236 |
} |
@@ -198,7 +243,8 @@ class TenancyShotRequestInfo(BaseModelMixin): |
||
198 | 243 |
admin = None |
199 | 244 |
|
200 | 245 |
try: |
201 |
- shot = TenancyShotInfo.objects.get(shot_id=self.shot_id, status=True) |
|
246 |
+ shot = TenancyShotInfo.objects.get( |
|
247 |
+ shot_id=self.shot_id, status=True) |
|
202 | 248 |
except TenancyShotInfo.DoesNotExist: |
203 | 249 |
shot = None |
204 | 250 |
|