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
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)
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)
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)
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
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
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)
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
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