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

No se si esto funciona

parent 454b97c1
No related branches found
No related tags found
1 merge request!34Inventario
......@@ -116,13 +116,14 @@ def registrar_incidencia():
estado = 0
tecnicoAsignado = 'Sin asignar'
reportadaPor = current_user.nick
idInventario = request.form.get('idElementoInventario')
inventario = request.form.get('elementoInventario')
categoria = request.form.get('categoria')
insert_incidencia(titulo, descripcion, fecha, estado, reportadaPor, categoria, comentario, prioridad, tiempoEstimado, tecnicoAsignado)
insert_incidencia(titulo, descripcion, fecha, estado, reportadaPor, categoria, comentario, prioridad, tiempoEstimado, tecnicoAsignado, elementoInventario=inventario if inventario >= 0 else None)
return redirect(url_for('index'))
categorias = get_categorias()
elementosInventario = getElementos()
return render_template('registrar_incidencia.html', categorias=categorias)
@app.route('/completar_incidencia/<idIncidencia>', methods=['GET', 'POST'])
......@@ -132,13 +133,15 @@ def completar_incidencia(idIncidencia):
comentario = request.form.get('comentario')
prioridad = request.form.get('prioridad')
tecnico = request.form.get('tecnico')
inventario = request.form.get('elementoInventario')
asignar_incidencia(idIncidencia, comentario, prioridad, tecnico)
asignar_incidencia(idIncidencia, comentario, prioridad, tecnico, inventario)
return redirect(url_for('incidencia', idIncidencia=idIncidencia))
listaTecnicos = get_tecnicos()
incidencia = get_incidencia(idIncidencia)
return render_template('completar_incidencia.html', incidencia=incidencia, listaTecnicos=listaTecnicos)
elementosInventario = getElementos()
return render_template('completar_incidencia.html', incidencia=incidencia, listaTecnicos=listaTecnicos, elementosInventario=elementosInventario)
@app.route('/add_comentario/<idIncidencia>', methods=['GET', 'POST'])
@login_required
......@@ -175,8 +178,8 @@ from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import or_
from flask_login import UserMixin
#app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://PGPI_grupo02:JEbITzwe@127.0.0.1:3306/PGPI_grupo02'
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://PGPI_grupo02:JEbITzwe@jair.lab.inf.uva.es:3306/PGPI_grupo02'
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://PGPI_grupo02:JEbITzwe@127.0.0.1:3306/PGPI_grupo02'
#app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://PGPI_grupo02:JEbITzwe@jair.lab.inf.uva.es:3306/PGPI_grupo02'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
......@@ -206,6 +209,7 @@ class Incidencia(db.Model):
tecnicoAsignado = db.Column(db.String(50))
reportadaPor = db.Column(db.String(50))
categoria = db.Column(db.String(40))
elementoInventario = db.Column(db.Integer)
class Cambio(db.Model):
fecha = db.Column(db.String(50), primary_key=True)
......@@ -221,6 +225,10 @@ class CategoriaIncidencia(db.Model):
id = db.Column(db.Integer, primary_key=True)
categoria = db.Column(db.String(40))
class ElementoInventario(db.Model):
id = db.Column(db.Integer, primary_key=True)
nombre = db.Column(db.String(200))
#######################
# USUARIO #
......@@ -235,8 +243,8 @@ def get_tecnicos():
#######################
# INCIDENCIA #
#######################
def insert_incidencia(titulo, descripcion, fecha, estado, reportadaPor, categoria, comentario=None, prioridad=None, tiempoEstimado=None, tecnicoAsignado=None):
incidencia = Incidencia(titulo=titulo, comentario=comentario, prioridad=prioridad, tiempoEstimado=tiempoEstimado, descripcion=descripcion, fecha=fecha, estado=estado, tecnicoAsignado=tecnicoAsignado, reportadaPor=reportadaPor, categoria=categoria)
def insert_incidencia(titulo, descripcion, fecha, estado, reportadaPor, categoria, elementoInventario, comentario=None, prioridad=None, tiempoEstimado=None, tecnicoAsignado=None):
incidencia = Incidencia(titulo=titulo, comentario=comentario, prioridad=prioridad, tiempoEstimado=tiempoEstimado, descripcion=descripcion, fecha=fecha, estado=estado, tecnicoAsignado=tecnicoAsignado, reportadaPor=reportadaPor, categoria=categoria, elementoInventario=elementoInventario)
db.session.add(incidencia)
db.session.commit()
......@@ -252,11 +260,12 @@ def cambio_estado_incidencia(id, estado, usuario):
insert_cambio(estado, usuario, id)
def asignar_incidencia(id, comentario, prioridad, tecnico):
def asignar_incidencia(id, comentario, prioridad, tecnico, elementoInventario):
incidencia = get_incidencia(id)
incidencia.comentario = comentario
incidencia.prioridad = prioridad
incidencia.tecnicoAsignado = tecnico
if elementoInventario: incidencia.elementoInventario = elementoInventario
db.session.commit()
cambio_estado_incidencia(id, 1, current_user.nick)
......@@ -323,3 +332,13 @@ def get_categorias():
def get_categoria(id):
return CategoriaIncidencia.query.get(id).categoria
#######################
# INVENTARIO #
#######################
def get_elementos():
return list(ElementoInventario.query.all())
def get_elemento():
return ElementoInventario.query.get(id).nombre
......@@ -6,7 +6,6 @@ DROP TABLE IF EXISTS categoria_incidencia;
DROP TABLE IF EXISTS elemento_inventario;
DROP TABLE IF EXISTS usuario;
DROP TABLE IF EXISTS incidencia;
DROP TABLE IF EXISTS elemento_incidencia;
DROP TABLE IF EXISTS cambio;
......@@ -33,8 +32,7 @@ CREATE TABLE categoria_incidencia(
CREATE TABLE elemento_inventario(
id INTEGER PRIMARY KEY,
nombre VARCHAR(200),
fechaAdquisicion INTEGER
nombre VARCHAR(200)
);
CREATE TABLE usuario(
......@@ -59,12 +57,8 @@ CREATE TABLE incidencia(
estado INTEGER REFERENCES estado(id),
tecnicoAsignado VARCHAR(50) REFERENCES usuario(nick),
reportadaPor VARCHAR(50) REFERENCES usuario(nick),
categoria INTEGER REFERENCES categoria_incidencia(id)
);
CREATE TABLE elemento_incidencia(
incidencia INTEGER REFERENCES incidencia(id),
elemento INTEGER REFERENCES elemento_inventario(id)
categoria INTEGER REFERENCES categoria_incidencia(id),
elementoInventario INTEGER REFERENCES elemento_inventario(id)
);
CREATE TABLE cambio(
......
......@@ -49,18 +49,24 @@
<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="number" min="1" max="10" pattern="\d+" placeholder="Prioridad" name="prioridad" required title="Campo obligatorio. Numero entre 1 y 10"/>
<select name="tecnico" required placeholder="Elegir técnico">
<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>
{% if incidencia.elementoInventario < 0 %}
<select name="elementoInventario" required>
{% for i in range(elementosInventario|length) %}
<option value="{{ i }}">{{ elementosInventario[i].nombre }}</option>
{% endfor %}
</select
{% endif %}
<button type="submit">Enviar</button>
</form>
</div>
</div>
......
......@@ -50,10 +50,14 @@
<div class="formCli">
<form class="incidentCli" method='POST' action='/registrar_incidencia'>
<input type="text" placeholder="Título" name="titulo" required/>
<textarea placeholder="Descripción" name="descripcion" required minlength="100" title="La descripcion ha de tener minimo 100 caracteres"></textarea>
<input type="number" pattern="[0-9]" placeholder="Id elemento inventario " name="idElementoInventario"/>
<select name="elementoInventario">
<option value="-1">Seleccionar elemento del inventario afectado</option>
{% for c in range(elementosInventario|length) %}
<option value="{{ c }}">{{ elementosInventario[c].nombre }}</option>
{% endfor %}
</select>
<input type="date" id="fecha" name="fecha" required>
<select name="categoria" required>
{% for c in range(categorias|length) %}
......@@ -61,7 +65,6 @@
{% endfor %}
</select>
<button type="submit" onsubmit="validarCampos()">Enviar</button>
</form>
<script>
function validarCampos(){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment