|
@@ -1059,20 +1059,25 @@ class SmartSceneView(View):
|
|
|
repeat = int(request_dict.get('repeat'))
|
|
|
for smart_scene in smart_scene_qs:
|
|
|
effective_time_id = smart_scene['effective_time_id']
|
|
|
- effective_time_md = EffectiveTime.objects.get(id=effective_time_id)
|
|
|
- # 每天重复
|
|
|
- if repeat == 127:
|
|
|
- # 判断时间是否在已设置过的时间范围之内
|
|
|
- if effective_time_md.start_time <= start_time <= effective_time_md.end_time or \
|
|
|
- effective_time_md.start_time <= end_time <= effective_time_md.end_time:
|
|
|
- return True
|
|
|
- else:
|
|
|
- # 有相同的重复天
|
|
|
- if repeat & effective_time_md.repeat != 0:
|
|
|
+ effective_time_qs = EffectiveTime.objects.filter(id=effective_time_id).\
|
|
|
+ values('start_time', 'end_time', 'repeat')
|
|
|
+ if effective_time_qs.exists():
|
|
|
+ old_start_time = effective_time_qs[0]['start_time']
|
|
|
+ old_end_time = effective_time_qs[0]['end_time']
|
|
|
+ old_repeat = effective_time_qs[0]['repeat']
|
|
|
+ # 每天重复
|
|
|
+ if repeat == 127:
|
|
|
# 判断时间是否在已设置过的时间范围之内
|
|
|
- if effective_time_md.start_time <= start_time <= effective_time_md.end_time or \
|
|
|
- effective_time_md.start_time <= end_time <= effective_time_md.end_time:
|
|
|
+ if old_start_time <= start_time <= old_end_time or \
|
|
|
+ old_start_time <= end_time <= old_end_time:
|
|
|
return True
|
|
|
+ else:
|
|
|
+ # 有相同的重复天
|
|
|
+ if repeat & old_repeat != 0:
|
|
|
+ # 判断时间是否在已设置过的时间范围之内
|
|
|
+ if old_start_time <= start_time <= old_end_time or \
|
|
|
+ old_start_time <= end_time <= old_end_time:
|
|
|
+ return True
|
|
|
return False
|
|
|
|
|
|
#
|