예제 #1
0
def update_iteration(input_dict):
    """
    Editing and updating required fields of iteration.
    """
    date_modified = datetime.now().isoformat()
    try:
        if (input_dict.get('status') == "Completed"):
            completed_at = datetime.now().isoformat()
            iteration_obj = Iteration.objects(
                iteration_uid=input_dict.get('iteration_uid')).update(
                    iteration_name=input_dict.get('iteration_name'),
                    iteration_description=input_dict.get(
                        'iteration_description'),
                    date_modified=date_modified,
                    completed_at=completed_at,
                    status=input_dict.get('status'))

        elif (input_dict.get('status') == "Hold"):
            completed_at = datetime.now().isoformat()
            iteration_obj = Iteration.objects(
                iteration_uid=input_dict.get('iteration_uid')).update(
                    iteration_name=input_dict.get('iteration_name'),
                    iteration_description=input_dict.get(
                        'iteration_description'),
                    date_modified=date_modified,
                    completed_at=completed_at,
                    status=input_dict.get('status'))

        else:
            iteration_obj = Iteration.objects(
                iteration_uid=input_dict.get('iteration_uid')).update(
                    iteration_name=input_dict.get('iteration_name'),
                    iteration_description=input_dict.get(
                        'iteration_description'),
                    date_modified=date_modified,
                    status="In Progress")

        iteration_data = IterationSerializer(
            get_iteration_by_iteration_uid(
                input_dict.get('iteration_uid'))).data
        project_data = ProjectResponseSerializer(
            get_project(iteration_data['project_uid'])).data
        add_activity(
            iteration_data['project_uid'],
            " modified iteration '" + input_dict.get("iteration_name") + "'.",
            project_data['owned_by'])
    except (Exception):
        print(Exception.message)
    else:
        return iteration_obj
    return None
예제 #2
0
 def get(self, request, format=None):
     """
     Request-type: GET
     Method to fetch All Projects Details
     ---
     request_serializer = ProjectSerializer
     response_serializer = ProjectSerializer
     """
     result = get_all_projects()
     if result:
         response_serializer = ProjectResponseSerializer(result, many=True)
         return Response(response_serializer.data,
                         status=status.HTTP_200_OK)
     return Response({"message": "No Data Found."},
                     status=status.HTTP_200_OK)
예제 #3
0
 def get(self, request, project_uid, format=None):
     """
     Request-type: GET
     Method for fetching Project details using 'project_name'
     ---
     request_serializer = ProjectSerializer
     response_serializer = ProjectSerializer
     """
     result = get_project(project_uid)
     if result:
         response_serializer = ProjectResponseSerializer(result)
         return Response(response_serializer.data,
                         status=status.HTTP_200_OK)
     return Response({"message": "No Data Found"},
                     status=status.HTTP_200_OK)
예제 #4
0
 def get(self, request, employee_id, format=None):
     '''
     Request-type: GET
     Method for getting project details usinng employee_id
     ---
     request_serializer = BacklogRequestSerializer
     response_serializer = ProjectResponseSerializer
     '''
     result = get_project_using_employee_id(employee_id)
     if result:
         response_serializer = ProjectResponseSerializer(result, many=True)
         return Response(response_serializer.data,
                         status=status.HTTP_200_OK)
     return Response({"message": "No Data Found"},
                     status=status.HTTP_200_OK)
예제 #5
0
def add_backlog(input_data):
    '''
    Add new backlog
    '''

    backlog_uid = str(uuid.uuid1())
    created_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    date_modified = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    status = "New"
    assigned_to = "Unassigned"
    iteration_uid = ""
    actual_start_date = None
    actual_end_date = None
    actual_efforts = None
    is_notified = False
    completed_at = None

    try:
        backlog_obj = Backlog(
            backlog_name=input_data.get('backlog_name'),
            backlog_uid=backlog_uid,
            project_uid=input_data.get('project_uid'),
            iteration_uid=iteration_uid,
            backlog_description=input_data.get('backlog_description'),
            assigned_to=assigned_to,
            created_at=created_at,
            date_modified=date_modified,
            planned_start_date=input_data.get('planned_start_date'),
            actual_start_date=actual_start_date,
            planned_end_date=str(input_data.get('planned_end_date')),
            actual_end_date=actual_end_date,
            estimated_efforts=input_data.get('estimated_efforts'),
            actual_efforts=actual_efforts,
            is_notified=is_notified,
            completed_at=completed_at,
            status=status).save()
        project_data = ProjectResponseSerializer(
            get_project(input_data.get("project_uid"))).data
        add_activity(
            input_data.get("project_uid"), " added backlog '" +
            input_data.get("backlog_name") + "' in this project.",
            project_data['owned_by'])
    except (Exception):
        print(Exception.message)
    else:
        return backlog_obj
예제 #6
0
def delete_backlog(backlog_uid):
    '''
    Delete backlog
    '''
    try:
        backlog_obj = Backlog.objects(backlog_uid=backlog_uid)
        backlog_data = BacklogResponseSerializer(get_backlog(backlog_uid)).data
        result = backlog_obj.delete()
        project_data = ProjectResponseSerializer(
            get_project(backlog_data['project_uid'])).data
        add_activity(
            backlog_data['project_uid'],
            " deleted backlog '" + backlog_data['backlog_name'] + "'.",
            project_data['owned_by'])
    except (Exception):
        print(Exception.message)
    else:
        return result
    return None
예제 #7
0
 def post(self, request, format=None):
     """
     Request-type: POST
     Method for Creating Project
     ---
     request_serializer = ProjectSerializer
     response_serializer = ProjectSerializer
     """
     data = request.data
     request_serializer = ProjectRequestSerializer(data=data)
     if request_serializer.is_valid():
         result = create_project(data)
         if result:
             response_serializer = ProjectResponseSerializer(result)
             return Response(response_serializer.data,
                             status=status.HTTP_200_OK)
         return Response({"message": "Operation failed."},
                         status=status.HTTP_200_OK)
     return Response({"message": "Invalid Data"},
                     status=status.HTTP_400_BAD_REQUEST)
예제 #8
0
def delete_iteration(iteration_uid):
    """
    Deleting a Iteration from database here.
    """
    try:
        iteration_obj = Iteration.objects(iteration_uid=iteration_uid)
        iteration_data = IterationSerializer(
            get_iteration_by_iteration_uid(iteration_uid)).data
        iteration_obj = iteration_obj.delete()
        project_data = ProjectResponseSerializer(
            get_project(iteration_data['project_uid'])).data
        add_activity(
            iteration_data['project_uid'],
            " deleted iteration '" + iteration_data['iteration_name'] + "'.",
            project_data['owned_by'])
    except (Exception):
        print(Exception.message)
    else:
        return iteration_obj
    return None
예제 #9
0
def create_iteration(input_dict):
    """
    Add a New iteration to the database here.
    """
    now = datetime.now().isoformat()
    iteration_uid = str(uuid.uuid1())
    completed_at = ""
    try:
        iteration_obj = Iteration(iteration_uid, input_dict.get('project_uid'),
                                  input_dict.get('iteration_name'),
                                  input_dict.get('iteration_description'), now,
                                  now, completed_at, "New").save()
        update_project_status(input_dict.get('project_uid'), "In Progress")
        project_data = ProjectResponseSerializer(
            get_project(input_dict.get("project_uid"))).data
        add_activity(
            input_dict.get("project_uid"),
            " added an iteration '" + input_dict.get("iteration_name") + "'.",
            project_data['owned_by'])
    except (Exception):
        print(Exception.message)
    else:
        return iteration_obj
    return None