예제 #1
0
파일: __init__.py 프로젝트: elevazquez/sap
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)
예제 #2
0
파일: __init__.py 프로젝트: elevazquez/sap
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)
예제 #3
0
파일: __init__.py 프로젝트: elevazquez/sap
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)