|
@@ -455,20 +455,25 @@ class DeviceManagement(View):
|
|
|
|
|
|
if not all([lang, app_bundle_id, version_number]):
|
|
|
return response.json(444)
|
|
|
- version_number_qs = AppVersionNumber.objects.values('version_number')
|
|
|
- test_list = [item[key] for item in version_number_qs for key in item]
|
|
|
- if (version_number > test_list[-1] or version_number < test_list[0]):
|
|
|
- version_number_qs = AppVersionNumber.objects.filter().values('id').order_by('id')
|
|
|
- total_list = [item[key] for item in version_number_qs for key in item]
|
|
|
- version_number_id = total_list[-1]
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(version_number=version_number)
|
|
|
+ if not version_number_qs.exists():
|
|
|
+ version_number_qs = AppVersionNumber.objects.values('version_number')
|
|
|
+ test_list = [item[key] for item in version_number_qs for key in item]
|
|
|
+ if (version_number > test_list[-1] or version_number < test_list[0]):
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter().values('id').order_by('id')
|
|
|
+ total_list = [item[key] for item in version_number_qs for key in item]
|
|
|
+ version_number_id = total_list[-1]
|
|
|
+ else:
|
|
|
+ pos = bisect_left(test_list, version_number)
|
|
|
+ if pos == 0:
|
|
|
+ return test_list[0]
|
|
|
+ if pos == len(test_list):
|
|
|
+ return test_list[-1]
|
|
|
+ before = test_list[pos - 1]
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(version_number=before).values('id')
|
|
|
+ version_number_id = version_number_qs[0]['id']
|
|
|
else:
|
|
|
- pos = bisect_left(test_list, version_number)
|
|
|
- if pos == 0:
|
|
|
- return test_list[0]
|
|
|
- if pos == len(test_list):
|
|
|
- return test_list[-1]
|
|
|
- before = test_list[pos - 1]
|
|
|
- version_number_qs = AppVersionNumber.objects.filter(version_number=before).values('id')
|
|
|
+ version_number_qs = AppVersionNumber.objects.filter(version_number=version_number).values('id')
|
|
|
version_number_id = version_number_qs[0]['id']
|
|
|
try:
|
|
|
|