def createComment(connector, comment, token): bitrix = BitrixIntegrator(token) task = Task.objects.get(id=connector.task_id) task_id = task.bitrix_id new_comment = Comment(task_connector=connector, content=comment) new_comment.save() if task_id != -1: bitrix.add_comment(task_id=task_id, comment=comment) return new_comment
def addTaskView(request, emplId): bitrix = BitrixIntegrator() tskManager = TaskManager(bitrix) if request.method == 'GET': try: users_tasks = bitrix.get_all_user_tasks(emplId) return JsonResponse(users_tasks, safe=False, json_dumps_params={'ensure_ascii': False}) except Exception as e: return not_found_response() if request.method == 'POST': request_body = json.loads(request.body) action = request_body.get('action') task_id = int(request_body.get('taskId')) if action == 'Remove': try: todolist = tskManager.get_todolist() task_to_remove = DailyTaskConnector.objects.filter( task__bitrix_id=task_id, task_list=todolist) task_to_remove.delete() return success_response() except DailyTaskConnector.DoesNotExist: return not_found_response() elif action == 'Add': try: db_task = Task.objects.get(bitrix_id=task_id) except Task.DoesNotExist: bitrix_response = bitrix.get_task_by_id(task_id) task = bitrix_response['result']['task'] db_task = addExistingTask(task) if db_task: priority = get_last_task_index( db_task.employee_id.bitrix_id) + 1 todolist = tskManager.get_todolist() new_task = addTaskToDailyList(task=db_task, todolist=todolist, priority=priority, employee_id=emplId) if new_task: new_task.data['status'] = 200 return JsonResponse( new_task.data, safe=False, json_dumps_params={'ensure_ascii': False}) return not_found_response()
def dailyTaskManagerView(request, date): bitrix = BitrixIntegrator() tskManager = TaskManager(bitrix) empManager = EmployeeManager(bitrix) curr_tasks = tskManager.get_todolist() daily_tasks = tskManager.get_daily_tasks(date) if daily_tasks: serializer = DailyTaskConnectorSerializer(daily_tasks, many=True) return JsonResponse(serializer.data, safe=False, json_dumps_params={'ensure_ascii': False}) return not_found_response()
def registerView(request): if request.method == 'POST': request_body = json.loads(request.body) bitrix_key = request_body.get('bitrix_key') if bitrix_key[-1] == '/': bitrix_key = bitrix_key[:-1] bitrix = BitrixIntegrator() bitrix_id = bitrix.check_key(bitrix_key) try: authmodel = AuthModel.objects.get(employee__bitrix_id = bitrix_id) return JsonResponse({'STATUS_CODE': 500, 'MESSAGE': 'THE KEY FOR THIS BITRIX EMPLOYEE ALREADY EXISTS'}) except AuthModel.DoesNotExist: try: user = User.objects.create_user(username = request_body.get('username'), password = request_body.get('password')) employee = Employee.objects.get(bitrix_id = bitrix_id) authmodel = AuthModel(user = user, employee = employee, bitrix_token = bitrix_key, is_admin = False) authmodel.save() serializer = AuthModelSerializer(authmodel) return JsonResponse(serializer.data, safe = False, json_dumps_params={'ensure_ascii': False}) except IntegrityError: return JsonResponse({'STATUS_CODE': 500, 'MESSAGE': 'THIS USERNAME ALREADY EXISTS'})
def endView(request, task_id, user_id): bitrix = BitrixIntegrator() tskManager = TaskManager(bitrix) try: todolist = tskManager.get_todolist() task = DailyTaskConnector.objects.get(task__bitrix_id=task_id, task_list=todolist) delta_time = (timezone.localtime(timezone.now()) - task.starting_time).total_seconds() bitrix.save_time_to_bitrix(user_id, task_id, timezone.localtime(task.starting_time), delta_time) task.total_time += delta_time task.active = False task.save() serializer = TimeTrackerSerializer(task) return JsonResponse(serializer.data, safe=False, json_dumps_params={'ensure_ascii': False}) except DailyTaskConnector.DoesNotExist: return not_found_response()
def shiftTasksView(request): bitrix = BitrixIntegrator() tskManager = TaskManager(bitrix) if request.method == 'POST': request_body = json.loads(request.body) todolist = tskManager.get_todolist() for user in request_body: for index, task in enumerate(request_body[user]): DailyTaskConnector.objects.filter( task_list=todolist, task__bitrix_id=int( task['taskId'])).update(priority=index + 1) return success_response()
def createTaskView(request, emplId): if request.method == 'POST': request_body = json.loads(request.body) print(request_body) token = request.headers.get('Authorization').replace('Token ', '') if check_bitrix_token(token): bitrix = BitrixIntegrator(token) tskManager = TaskManager(bitrix) if emplId in [406, 26, 334]: employee = Employee.objects.get(bitrix_id=emplId) db_task = Task(employee_id=employee, creator_id=employee, bitrix_id=-1, title=request_body.get('title'), description='') db_task.save() else: bitrix_response = tskManager.create_task( employee=emplId, title=request_body.get('title')) task = bitrix_response['result']['task'] db_task = addExistingTask(task) if db_task: todolist = tskManager.get_todolist() priority = get_last_task_index(emplId) + 1 new_task = addTaskToDailyList( task=db_task, todolist=todolist, employee_id=emplId, priority=priority, comment=request_body.get('comment'), token=token) if new_task: new_task.data['status'] = 200 return JsonResponse( new_task.data, safe=False, json_dumps_params={'ensure_ascii': False}) return not_found_response()
description=json_task.get('description'), creator_id=creator, employee_id=employee, date_created=date_created, deadline=deadline) db_task.save() self.add_task_to_list(db_task) print(db_task) def add_task_to_list(self, task): todolist = self.get_todolist() connector = DailyTaskConnector(task_list=todolist, task=task) connector.save() def create_task(self, employee, title): fields = { 'TITLE': title, 'RESPONSIBLE_ID': employee, 'CREATED_BY': employee, 'STATUS': 3, 'DESCRIPTION': '' } new_task = self.bitrix.add_task(fields) return new_task if __name__ == "__main__": bitrix = BitrixIntegrator() empManager = EmployeeManager(bitrix) empManager.check_for_new_emloyee()
def handle(self, *args, **kwargs): bitrix = BitrixIntegrator() tskManager = EmployeeManager(bitrix) tskManager.check_for_new_emloyee()