Esempio n. 1
0
def request_incident_value_change(incident_id, value_type):
    if request.is_json:
        content = request.json
    else:
        return app.response_class(status=HTTP_BAD_REQUEST)

    incident_id = int(incident_id)
    incident = entity_manager.get_incident(incident_id)
    if incident is None:
        return app.response_class(status=HTTP_BAD_REQUEST)

    user = get_user()

    old_value = content['oldValue']
    new_value = content['newValue']
    justification = content['justification']

    value_type = IncidentValueChangeRequest.string_to_value_type(value_type)
    change_request = entity_manager.get_existing_change_request(
        user, incident, value_type)

    if change_request is not None:
        entity_manager.update_change_request(user, change_request, new_value,
                                             justification)
    else:
        entity_manager.request_value_change(user, incident, old_value,
                                            new_value, value_type,
                                            justification)
    return app.response_class(status=HTTP_OKAY)
Esempio n. 2
0
    def load_change_requests(self):
        change_request_rows = self.database.get_all_change_requests()
        for change_request_row in change_request_rows:
            user = self.get_user(change_request_row[1])
            incident = self.get_incident(change_request_row[2])
            old_value = change_request_row[3]
            new_value = change_request_row[4]
            value_type = change_request_row[5]
            justification = change_request_row[6]
            status = change_request_row[7]
            date_requested = change_request_row[8]
            change_request = IncidentValueChangeRequest(user, incident, old_value, new_value, \
             value_type, justification)
            change_request.id = change_request_row[0]
            change_request.status = status
            change_request.date_requested = date_requested

            self.change_requests[change_request.id] = change_request
Esempio n. 3
0
    def request_value_change(self, user, incident, old_value, new_value,
                             value_type, justification):
        change_request = IncidentValueChangeRequest(user, incident, old_value,
                                                    new_value, value_type,
                                                    justification)
        self.database.insert_change_request(change_request)
        change_request.date_requested = self.database.get_date_requested(
            change_request)
        change_request.status = IncidentValueChangeRequest.STATUS_PENDING
        self.create_notification(
            incident,
            user.forename + ' ' + user.surname + ' has requested a ' +
            IncidentValueChangeRequest.value_type_to_string(value_type) +
            ' Change on ' + incident.title)

        self.change_requests[change_request.id] = change_request

        self.database.commit()
Esempio n. 4
0
    def update_incident_value(self, user, incident, value_type, new_value):
        if value_type == IncidentValueChangeRequest.TYPE_PRIORITY:
            incident.priority = self.get_priority_by_code(new_value)
        elif value_type == IncidentValueChangeRequest.TYPE_IMPACT:
            incident.impact = self.get_impact_by_level(new_value)
        elif value_type == IncidentValueChangeRequest.TYPE_SEVERITY:
            incident.severity = self.get_severity_by_code(new_value)

        self.database.update_incident(incident)
        self.create_notification(
            incident,
            user.forename + ' ' + user.surname + ' has updated the ' +
            IncidentValueChangeRequest.value_type_to_string(value_type) +
            ' of ' + incident.title)

        self.database.commit()
Esempio n. 5
0
def update_value(incident_id):
    if request.is_json:
        content = request.json
    else:
        return app.response_class(status=HTTP_BAD_REQUEST)

    incident_id = int(incident_id)
    incident = entity_manager.get_incident(incident_id)

    user = get_user()

    value_type = content['valueType']
    new_value = content['newValue']

    entity_manager.update_incident_value(
        user, incident,
        IncidentValueChangeRequest.string_to_value_type(value_type), new_value)

    return app.response_class(status=HTTP_OKAY)
Esempio n. 6
0
def request_task_team(task_id, team_id):
    task_id = int(task_id)
    team_id = int(team_id)

    user = get_user()
    task = entity_manager.get_task(task_id)
    team = entity_manager.get_team(team_id)

    team_assignment = entity_manager.request_team_assignment(user, task, team)

    team_assignment_obj = {
        'name':
        team_assignment.team.name,
        'date_issued':
        team_assignment.date_issued,
        'assigner': (team_assignment.assigner.forename + ' ' +
                     team_assignment.assigner.surname),
        'status':
        IncidentValueChangeRequest.status_to_string(team_assignment.status)
    }
    return Util.json_response(team_assignment_obj, HTTP_OKAY)
Esempio n. 7
0
    def decide_change_request(self, user, change_request, new_status):
        if change_request.value_type == IncidentValueChangeRequest.TYPE_PRIORITY:
            change_request.incident.priority = self.get_priority_by_code(
                change_request.new_value)
        elif change_request.value_type == IncidentValueChangeRequest.TYPE_IMPACT:
            change_request.incident.impact = self.get_impact_by_level(
                change_request.new_value)
        elif change_request.value_type == IncidentValueChangeRequest.TYPE_SEVERITY:
            change_request.incident.severity = self.get_severity_by_code(
                change_request.new_value)

        self.database.update_incident(change_request.incident)
        self.create_notification(
            change_request.incident,
            user.forename + ' ' + user.surname + ' has made a decision on ' +
            IncidentValueChangeRequest.value_type_to_string(
                change_request.value_type) + ' Change on ' +
            change_request.incident.title)

        change_request.status = new_status
        self.change_requests[change_request.id] = change_request
        self.database.update_change_request_status(change_request)

        self.database.commit()
Esempio n. 8
0
 def get_status(self):
     return IncidentValueChangeRequest.status_to_string(self.status)