Example #1
0
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
Example #2
0
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()
Example #3
0
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()
Example #4
0
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'})
Example #5
0
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()
Example #6
0
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()
Example #7
0
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()
Example #8
0
                           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()
Example #9
0
 def handle(self, *args, **kwargs):
     bitrix = BitrixIntegrator()
     tskManager = EmployeeManager(bitrix)
     tskManager.check_for_new_emloyee()