def importartipoItem(): """ Funcion para importar registros a la tabla de Tipo de Item""" if not current_user.is_authenticated(): flash('Debe loguearse primeramente!!!!', 'loggin') return render_template('index.html') permission =UserPermission('LIDER PROYECTO', int(session['pry'])) if permission.can()==False: flash('No posee los permisos suficientes para realizar la operacion', 'info') return render_template('tipoItem/administrartipoItem.html') #init_db(db_session) ti = db_session.query(TipoItem).filter_by(codigo=request.args.get('codigo')).first() form = TipoItemFormulario(request.form,ti) tipoItem = db_session.query(TipoItem).filter_by(codigo=form.codigo.data).first() fase_selected= db_session.query(Fase).filter_by(id=form.id_fase.data).first() #form.id_fase.data= fase_selected.nombre #atributos= db_session.query(Atributo).from_statement("Select a.* from atributo a , tipo_item ti, titem_atributo ta where ta.id_atributo= a.id and ta.id_tipo_item = ti.id and ti.id = '"+session['tip']+"'").all() atributos= db_session.query(Atributo).from_statement("Select a.* from atributo a").all() form.lista_atributo.choices = [(f.id, f.nombre) for f in atributos ] if request.method == 'POST' and form.validate(): try: """verifica si la fase esta en un estado inicial la cambia en progreso""" fase_selected = db_session.query(Fase).filter_by(id=form.id_fase.data).first() if fase_selected.estado == "I" : fase_selected.estado = "P" db_session.merge(fase_selected) db_session.commit() tipo = TipoItem( form.codigo.data, form.nombre.data, form.descripcion.data, form.id_fase.data) db_session.add(tipo) db_session.commit() """almacena los atributos del tipo Item""" lista= form.lista_atributo.data for atr in lista: att = TItemAtributo(tipo.id,atr) db_session.add(att) db_session.commit() flash('El Tipo de Item ha sido importado con exito','info') return redirect('/tipoItem/administrartipoItem') except DatabaseError, e: if e.args[0].find('duplicate key value violates unique')!=-1: flash('Clave unica violada por favor ingrese otro CODIGO de Tipo de Item' ,'error') else: flash('Error en la Base de Datos' + e.args[0],'error') return render_template('tipoItem/importartipoItem.html', form=form)
def nuevotipoItem(): """ Funcion para agregar registros a la tabla de Tipo de Item""" if not current_user.is_authenticated(): flash('Debe loguearse primeramente!!!!', 'loggin') return render_template('index.html') permission =UserPermission('LIDER PROYECTO', int(session['pry'])) if permission.can()==False: flash('No posee los permisos suficientes para realizar la operacion', 'info') return render_template('index.html') form = TipoItemFormulario(request.form) #form.id_fase.choices= [(f.id, f.nombre) for f in db_session.query(Fase).filter_by(id_proyecto=session['pry']).filter_by(estado='I').order_by(Fase.nombre).all()] form.id_fase.choices= [(f.id, f.nombre) for f in db_session.query(Fase).from_statement("select * from fase where id_proyecto="+str(session['pry'])+" and (estado='I' or estado='P') order by nombre ").all()] form.lista_atributo.choices = [(f.id, f.nombre) for f in db_session.query(Atributo).order_by(Atributo.nombre).all()] if request.method == 'POST' and form.validate(): try: #verifica si la fase esta en un estado inicial la cambia en progreso fase_selected = db_session.query(Fase).filter_by(id=form.id_fase.data).first() if fase_selected.estado == "I" : fase_selected.estado = "P" db_session.merge(fase_selected) db_session.commit() tipo = TipoItem( form.codigo.data, form.nombre.data, form.descripcion.data, form.id_fase.data) db_session.add(tipo) db_session.commit() #almacena los atributos del tipo Item lista= form.lista_atributo.data for atr in lista: att = TItemAtributo(tipo.id,atr) db_session.add(att) db_session.commit() flash('El Tipo de Item ha sido registrado con exito','info') return redirect('/tipoItem/administrartipoItem') except DatabaseError, e: if e.args[0].find('duplicate key value violates unique')!=-1: flash('Clave unica violada por favor ingrese otro CODIGO de Tipo de Item' ,'error') else: flash('Error en la Base de Datos' + e.args[0],'error') return render_template('tipoItem/nuevotipoItem.html', form=form)
def editartipoItem(): """ Funcion para editar registros de la tabla de Tipo de Item""" if not current_user.is_authenticated(): flash('Debe loguearse primeramente!!!!', 'loggin') return render_template('index.html') permission =UserPermission('LIDER PROYECTO', int(session['pry'])) if permission.can()==False: flash('No posee los permisos suficientes para realizar la operacion', 'info') return render_template('index.html') ti = db_session.query(TipoItem).filter_by(codigo=request.args.get('codigo')).first() form = TipoItemFormulario(request.form,ti) tipoItem = db_session.query(TipoItem).filter_by(codigo=form.codigo.data).first() form.id_fase.choices= [(f.id, f.nombre) for f in db_session.query(Fase).from_statement("select * from fase where id_proyecto="+str(session['pry'])+" and (estado='I' or estado='P') order by nombre ").all()] fa = tipoItem.id_fase atributos= db_session.query(Atributo).from_statement("Select a.* from atributo a , tipo_item ti, titem_atributo ta where ta.id_atributo= a.id and ta.id_tipo_item = ti.id and ti.id = '"+tipoItem.id.__repr__()+"'").all() form.lista_atributo.choices = [(f.id, f.nombre) for f in atributos ] items= db_session.query(Item).filter_by(id_tipo_item=tipoItem.id).first() #se verifica si el tipo de item esta siendo utilizado, en tal caso no podra ser editado if items != None : flash('El Tipo de Item no puede ser editado, ya que esta siendo utilizado por algun Item!','info') return render_template('tipoItem/administrartipoItem.html') if request.method == 'POST' and form.validate(): items= db_session.query(Item).filter_by(id_tipo_item= tipoItem.id).first() #se verifica si el tipo de item esta siendo utilizado, en tal caso no podra ser editado if items != None : flash('El Tipo de Item no puede ser modificado, ya que esta siendo utilizado por algun item!','error') return render_template('tipoItem/editartipoItem.html', form=form) try: form.populate_obj(tipoItem) db_session.merge(tipoItem) db_session.commit() flash('El tipo item ha sido editado con exito','info') return redirect('/tipoItem/administrartipoItem') except DatabaseError, e: flash('Error en la Base de Datos' + e.args[0],'error') return render_template('tipoItem/editartipoItem.html', form=form)