Skip to content
Snippets Groups Projects
Commit 3386ae7d authored by Álvaro Berruezo's avatar Álvaro Berruezo
Browse files

Formulario completar incidencia done

parent f8ff742c
No related branches found
No related tags found
1 merge request!28Formulario completar incidencia done
......@@ -41,9 +41,8 @@ def logout():
def incidencia(idIncidencia):
incidencia = get_incidencia(idIncidencia)
if request.method == 'POST':
if request.form['action']=="tecnico":
tecnico = request.form['tecnicoAsignado']
cambio_estado_incidencia(idIncidencia, 1, current_user.nick, tecnicoAsignado=tecnico)
if request.form['action']=="completar":
return redirect(url_for('completar_incidencia', idIncidencia=idIncidencia))
elif request.form['action']=="cierre_cliente":
cambio_estado_incidencia(idIncidencia, 2, current_user.nick)
elif request.form['action']=="cierre_tecnico":
......@@ -55,8 +54,6 @@ def incidencia(idIncidencia):
elif request.form['action']=="add_comentario":
return render_template('add_comentario.html', incidencia=incidencia)
listaTecnicos = get_tecnicos()
cambioApertura = get_cambio_by_estado(idIncidencia, 0)
cambioAsignada = get_cambio_by_estado(idIncidencia, 1)
......@@ -116,6 +113,21 @@ def registrar_incidencia():
return render_template('registrar_incidencia.html')
@app.route('/completar_incidencia/<idIncidencia>', methods=['GET', 'POST'])
@login_required
def completar_incidencia(idIncidencia):
if request.method == 'POST':
comentario = request.form.get('comentario')
prioridad = request.form.get('prioridad')
tecnico = request.form.get('tecnico')
asignar_incidencia(idIncidencia, comentario, prioridad, tecnico)
return redirect(url_for('incidencia', idIncidencia=idIncidencia))
listaTecnicos = get_tecnicos()
incidencia = get_incidencia(idIncidencia)
return render_template('completar_incidencia.html', incidencia=incidencia, listaTecnicos=listaTecnicos)
@app.route('/add_comentario/<idIncidencia>', methods=['GET', 'POST'])
@login_required
def add_comentario(idIncidencia):
......@@ -206,14 +218,22 @@ def insert_incidencia(titulo, descripcion, fecha, estado, reportadaPor, categori
def get_incidencia(id):
return Incidencia.query.get(id)
def cambio_estado_incidencia(id, estado, usuario, tecnicoAsignado=None):
def cambio_estado_incidencia(id, estado, usuario):
incidencia = get_incidencia(id)
incidencia.estado = estado
if tecnicoAsignado: incidencia.tecnicoAsignado = tecnicoAsignado
db.session.commit()
insert_cambio(estado, usuario, id)
def asignar_incidencia(id, comentario, prioridad, tecnico):
incidencia = get_incidencia(id)
incidencia.comentario = comentario
incidencia.prioridad = prioridad
incidencia.tecnicoAsignado = tecnico
db.session.commit()
cambio_estado_incidencia(id, 1, current_user.nick)
def comentar_incidencia(id, comentario):
incidencia = get_incidencia(id)
incidencia.comentario = comentario
......
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>PGPIncidents</title>
<!-- Establecer el ancho al ancho del sistema y el zoom al 1 -->
<meta name="viewport" content="width = device-width, initial-scale = 1, shrink-to-fit=no">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/clientView.css') }}">
<!-- Link al css de Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" integrity="sha384-gfdkjb5BdAXd+lj+gudLWI+BXq4IuLW5IT+brZEZsLFm++aCMlF1V92rMkPaX4PP"
crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="../static/css/formulario.css">
<script src="{{ url_for('static', filename='scripts/includeHTML.js') }}"></script>
</head>
<body class="d-flex" style="min-height: 100%;min-width: 100%;">
<!-- barra principal del menú -->
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top pt-0" onmouseover="closeSide('side-nav')">
<div class="d-inline-flex justify-content-center w-100 align-items-center">
<span class="navbar-brand title" style="font-size: 25px;">PGPIncidents</span>
</div>
</nav>
<div id="side-nav" class="side-nav fixed-top flex-nowrap flex-column justify-content-start d-inline-flex align-items-start bg-light" onmouseover="openSide('side-nav')">
<div class="side-title side-content d-flex ">
<img id="user-img" class="user-icon" src="../static/img/default-gravatar.png" alt="user icon">
<span class="collapse width align-self-center" style="min-width: 70%;padding-left: 5%;max-height: 10%">{{ current_user.nick }}</span>
</div>
{% if current_user.tipo == 0 %}
<div w3-include-html="{{ url_for('static', filename='menus/menu_supervisor.html') }}"></div>
{% elif current_user.tipo == 1 %}
<div w3-include-html="{{ url_for('static', filename='menus/menu_tecnico.html') }}"></div>
{% elif current_user.tipo == 2 %}
<div w3-include-html="{{ url_for('static', filename='menus/menu_cliente.html') }}"></div>
{% endif %}
</div>
<div id="data-body" class="container-fluid flex-grow-1" onmouseover="closeSide('side-nav')" >
<!-- Body -->
<!DOCTYPE html>
<div class="inciCli">
<div class="formCli">
<form class="incidentCli" method='POST' action='/completar_incidencia/{{ incidencia.id }}'>
<p> Incidencia {{ incidencia.id }} </p>
<textarea placeholder="Comentario" name="comentario" required></textarea>
<input type="text" placeholder="prioridad" name="prioridad" required/>
<select name="tecnico" required>
{% for i in range(listaTecnicos|length) %}
<option value="{{ listaTecnicos[i].nick }}">{{ listaTecnicos[i].nick }}</option>
{% endfor %}
</select>
<button type="submit">Enviar</button>
</form>
</div>
</div>
</div>
<script>
function openSide(id) {
let el = document.getElementById(id);
if (!el.classList.contains('open')) {
$('.collapse').collapse('show');
el.classList.add('open');
document.getElementById('side-nav').style.width = "200px";
}
};
function closeSide(id) {
let el = document.getElementById(id);
if (el.classList.contains('open')) {
el.classList.remove('open');
$('.collapse').collapse('hide')
document.getElementById('side-nav').style.width = "64px";
}
};
</script>
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script>
<script>
includeHTML();
</script>
</body>
</html>
......@@ -166,13 +166,7 @@
<div id="botonesPiePagina">
<form method="POST" action='/incidencia/{{ incidencia.id }}'>
{% if (current_user.tipo == 0) and (incidencia.estado == 0) %}
<button type="button" class="btn btn-outline-primary" >Añadir comentario</button>
<button type="submit" class="btn btn-outline-primary" name="action" value="tecnico">Asignar tecnico</button>
<select name="tecnicoAsignado">
{% for i in range(listaTecnicos|length) %}
<option value="{{ listaTecnicos[i].nick }}">{{ listaTecnicos[i].nick }}</option>
{% endfor %}
</select>
<button type="submit" class="btn btn-outline-primary" name="action" value="completar">Completar incidencia</button>
{% endif %}}
{% if (current_user.tipo == 0) and (incidencia.estado == 1) %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment