Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # maybe it works...
- try:
- try:
- body_unicode = request.body.decode('utf-8')
- body = json.loads(body_unicode)
- except:
- return JsonResponse({"status": 0})
- worker_id = body["worker_id"]
- if not Workers.objects.filter(id=worker_id).exists():
- return JsonResponse({"status": 0})
- # Определить обновления
- changes_create = Updates_status.objects.filter(worker_id=worker_id, status=False, action=1)
- changes_update = Updates_status.objects.filter(worker_id=worker_id, status=False, action=2)
- changes_delete = Updates_status.objects.filter(worker_id=worker_id, status=False, action=3)
- if not changes_create.exists():
- create_answer = {"Persons": [], "Rooms": [], "Person_cards": [], "Rules": [], "Room_keys": [],
- "Guards": []}
- else:
- _confirmed_id = changes_create.values_list('id', flat=True)
- First_table = changes_create.filter(table_id=1).values_list('row_id', flat=True)
- Second_table = changes_create.filter(table_id=2).values_list('row_id', flat=True)
- Third_table = changes_create.filter(table_id=3).values_list('row_id', flat=True)
- Fourth_table = changes_create.filter(table_id=4).values_list('row_id', flat=True)
- Fifth_table = changes_create.filter(table_id=5).values_list('row_id', flat=True)
- Sixth_table = changes_create.filter(table_id=6).values_list('row_id', flat=True)
- # Забрать табельник,фамилию,имя,отчество
- _persons = list(Persons.objects.filter(id__in=First_table).values('Confirmed_id', 'id', 'tab_id', 'surname', 'name', 'patronymic'))
- _rooms = list(Rooms.objects.filter(id__in=Second_table).values('id', 'name'))
- # Получить табельный номер человека,Хекс карты
- pc_rel = Person_card_relations.objects.filter(id__in=Third_table)
- # Получить табельник,номер комнаты и статус(можно или нельзя)
- prr = Person_room_rules.objects.filter(id__in=Fourth_table)
- _room_keys = list(Room_keys.objects.filter(id__in=Fifth_table).values('id', 'key_hex', 'room_id', 'key_status'))
- _guard = list(Guards.objects.filter(id__in=Sixth_table).values('id', 'person_id'))
- _person_cards = []
- for relation in pc_rel:
- master_id = relation.id
- tab_id = relation.person_id.tab_id
- card_hex = relation.card_id.key_hex
- _person_cards.append({"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "card_hex": card_hex})
- _rules = []
- for relation in prr:
- master_id = relation.id
- tab_id = relation.person_id.tab_id
- room_id = relation.room_id.id
- allowed_status = relation.allowed_status
- _rules.append(
- {"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "room_id": room_id, "allowed_status": allowed_status})
- create_answer = {"Persons": _persons, "Rooms": _rooms, "Person_cards": _person_cards, "Rules": _rules,
- "Room_keys": _room_keys, "Guards": _guard}
- if not changes_update.exists():
- update_answer = {"Persons": [], "Rooms": [], "Person_cards": [], "Rules": [], "Room_keys": [],
- "Guards": []}
- else:
- _confirmed_id = changes_update.values_list('id', flat=True)
- First_table = changes_update.filter(table_id=1).values_list('row_id', flat=True)
- Second_table = changes_update.filter(table_id=2).values_list('row_id', flat=True)
- Third_table = changes_update.filter(table_id=3).values_list('row_id', flat=True)
- Fourth_table = changes_update.filter(table_id=4).values_list('row_id', flat=True)
- Fifth_table = changes_update.filter(table_id=5).values_list('row_id', flat=True)
- Sixth_table = changes_update.filter(table_id=6).values_list('row_id', flat=True)
- _persons = list(Persons.objects.filter(id__in=First_table).values('Confirmed_id', 'id', 'tab_id', 'surname', 'name', 'patronymic'))
- _rooms = list(Rooms.objects.filter(id__in=Second_table).values('id', 'name'))
- pc_rel = Person_card_relations.objects.filter(id__in=Third_table)
- prr = Person_room_rules.objects.filter(id__in=Fourth_table)
- _room_keys = list(Room_keys.objects.filter(id__in=Fifth_table).values('id', 'key_hex', 'room_id', 'key_status'))
- _guard = list(Guards.objects.filter(id__in=Sixth_table).values('id', 'person_id'))
- _person_cards = []
- for relation in pc_rel:
- master_id = relation.id
- tab_id = relation.person_id.tab_id
- card_hex = relation.card_id.key_hex
- _person_cards.append({"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "card_hex": card_hex})
- _rules = []
- for relation in prr:
- master_id = relation.id
- tab_id = relation.person_id.tab_id
- room_id = relation.room_id.id
- allowed_status = relation.allowed_status
- _rules.append(
- {"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "room_id": room_id, "allowed_status": allowed_status})
- update_answer = {"Persons": _persons, "Rooms": _rooms, "Person_cards": _person_cards, "Rules": _rules,
- "Room_keys": _room_keys, "Guards": _guard}
- if not changes_delete.exists():
- delete_answer = {"Persons": [], "Rooms": [], "Person_cards": [], "Rules": [], "Room_keys": [],
- "Guards": [], "Confirmed_id": []}
- else:
- _confirmed_id = changes_delete.values_list('id', flat=True)
- First_table = list(changes_delete.filter(table_id=1).values_list('row_id', flat=True))
- Second_table = list(changes_delete.filter(table_id=2).values_list('row_id', flat=True))
- Third_table = list(changes_delete.filter(table_id=3).values_list('row_id', flat=True))
- Fourth_table = list(changes_delete.filter(table_id=4).values_list('row_id', flat=True))
- Fifth_table = list(changes_delete.filter(table_id=5).values_list('row_id', flat=True))
- Sixth_table = list(changes_delete.filter(table_id=6).values_list('row_id', flat=True))
- delete_answer = {"Persons": First_table, "Rooms": Second_table, "Person_cards": Third_table,
- "Rules": Fourth_table, "Room_keys": Fifth_table, "Guards": Sixth_table}
- answer = {"create": create_answer, "delete": delete_answer, "update": update_answer}
- json_data = json.dumps(answer, ensure_ascii=False)
- return HttpResponse(json_data, content_type='application/json', status=200)
- except Exception as e:
- return JsonResponse({"status": 0})
- # client
- try:
- response = requests.post(ac_url, data=json.dumps(data), headers=headers)
- if response["status"] == 0:
- return 0
- else:
- return 1
- except requests.exceptions.RequestException:
- return -1
- response = response.json()
Add Comment
Please, Sign In to add comment