def importar_tipo_item(self, *args, **kw): """ Importa un tipo de ítem a una fase determinada. """ id_fase = unicode(request.url.split("/")[-10]) t = TipoItem() id_tipo_item = unicode(request.url.split("/")[-2]) tipo_item_a_importar = DBSession.query(TipoItem) \ .filter(TipoItem.id == id_tipo_item).one() existe_nombre = DBSession.query(TipoItem).filter(TipoItem.id_fase == \ id_fase).filter(TipoItem.nombre == \ tipo_item_a_importar.nombre).count() existe_codigo = DBSession.query(TipoItem).filter(TipoItem.id_fase == \ id_fase).filter(TipoItem.codigo == \ tipo_item_a_importar.codigo).count() t.nombre = tipo_item_a_importar.nombre t.codigo = tipo_item_a_importar.codigo if existe_nombre: t.nombre = t.nombre + "'" if existe_codigo: t.codigo = t.codigo + "'" t.descripcion = tipo_item_a_importar.descripcion ids_tipos_item = DBSession.query(TipoItem.id) \ .filter(TipoItem.id_fase == id_fase).all() if ids_tipos_item: proximo_id_tipo_item = proximo_id(ids_tipos_item) else: proximo_id_tipo_item = "TI1-" + id_fase t.id = proximo_id_tipo_item t.fase = DBSession.query(Fase).filter(Fase.id == id_fase).one() DBSession.add(t) self.importar_caracteristica(id_tipo_item, t.id) flash("Se importo de forma exitosa") raise redirect('./../../../../../../..')
def importar_tipo_item(self, id_fase_vieja, id_fase_nueva): """ Realiza la importación de un tipo de ítem de una fase a otra. @param id_fase_vieja: id de la fase a ser importada. @param id_fase_nueva: id de la fase que será creada en base a la importada. @type id_fase_vieja: unicode @type id_fase_nueva: unicode """ tipos_item = DBSession.query(TipoItem).filter(TipoItem.id_fase == \ id_fase_vieja).all() for tipo_item in tipos_item: t = TipoItem() t.codigo = tipo_item.codigo t.nombre = tipo_item.nombre t.descripcion = tipo_item.descripcion ids_tipos_item = DBSession.query(TipoItem.id) \ .filter(TipoItem.id_fase == id_fase_nueva).all() if ids_tipos_item: proximo_id_tipo_item = proximo_id(ids_tipos_item) else: proximo_id_tipo_item = "TI1-" + id_fase_nueva t.id = proximo_id_tipo_item t.fase = DBSession.query(Fase).filter(Fase.id == id_fase_nueva) \ .one() DBSession.add(t) cont = DBSession.query(Caracteristica) \ .filter(Caracteristica.id_tipo_item == t.id).count() self.importar_caracteristica(tipo_item.id, t.id)
def crear_tipo_default(self, id_fase): """ Crea un tipo de ítem por defecto al crear una fase. """ ti = TipoItem() ti.nombre = "Default" ti.descripcion = "Default" ti.id = "TI1-" + id_fase ti.codigo = "DF" ti.fase = DBSession.query(Fase).filter(Fase.id == id_fase).one() DBSession.add(ti)