|
|
@@ -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
|
|