def saveItem(self, **kw): unItem = Item() unItem.nom_item = kw["nomItem"] # aProject.des_proyecto = kw['descripcion'] DBSession.add(unItem) unaVersionItem = VersionItem() unaVersionItem.item = unItem unEstado = DBSession.query(Estado).filter_by(id_estado=1).one() unTipoItem = DBSession.query(TipoItem).filter_by(id_tipo_item=1).one() unUsuario = DBSession.query(Usuario).filter_by(id_usuario=1).one() unaVersionItem.estado = unEstado unaVersionItem.tipoItem = unTipoItem unaVersionItem.usuarioModifico = unUsuario unaVersionItem.fecha = "10/06/2011" unaVersionItem.observaciones = kw["observaciones"] # unaVersionItem.peso = kw['peso'] DBSession.add(unaVersionItem) for atributo in DBSession.query(Atributo).filter_by(tipoItem=unTipoItem): nuevoAtributoItem = AtributoItem() nuevoAtributoItem.atributo = atributo nuevoAtributoItem.versionItem = unaVersionItem nuevoAtributoItem.val_atributo = atributo.val_default DBSession.add(nuevoAtributoItem) flash(_("Se ha creado un nuevo Item: %s") % kw["itemName"], "info") redirect("adminItem")
def saveAtributo(self, **kw): tipoItem = DBSession.query(TipoItem).\ filter(TipoItem.id_tipo_item==(kw['id_tipo'])).one() tipoDato = DBSession.query(TipoDatoAtributo).\ filter(TipoDatoAtributo.id_tipo_dato==int(kw['tipo_dato'])).one() if int(kw['save_as']) == 0: '''Opcion para Nuevos Items''' newAtri = Atributo(kw['nom_atributo'], tipoDato, tipoItem) if tipoDato.nom_tipo_dato == 'numerico': newAtri.val_default = kw['def_numerico'] elif tipoDato.nom_tipo_dato == 'texto': newAtri.val_default = kw['def_texto'] elif tipoDato.nom_tipo_dato == 'fecha': if not kw['def_fecha'] == None: newAtri.val_default = kw['def_fecha'].strftime('%d/%m/%y') else: newAtri.val_default = kw['def_fecha'] else: '''Opcion para Nuevos y Actuales Items''' newAtri = Atributo(kw['nom_atributo'], tipoDato, tipoItem) if tipoDato.nom_tipo_dato == 'numerico': newAtri.val_default = kw['def_numerico'] elif tipoDato.nom_tipo_dato == 'texto': newAtri.val_default = kw['def_texto'] elif tipoDato.nom_tipo_dato == 'fecha': if not kw['def_fecha'] == None: newAtri.val_default = kw['def_fecha'].strftime('%d/%m/%y') else: newAtri.val_default = kw['def_fecha'] item_list = DBSession.query(VersionItem).\ filter(VersionItem.ultima_version == 'S').\ filter(VersionItem.tipoItem==tipoItem).all() for item in item_list: item.ultima_version = 'N' lg_name=request.identity['repoze.who.userid'] usuario = DBSession.query(Usuario).\ filter(Usuario.login_name==lg_name).one() nuevaVersionItem = VersionItem() nuevaVersionItem.item = item.item nuevaVersionItem.nro_version_item = item.nro_version_item+1 nuevaVersionItem.estado = item.estado nuevaVersionItem.tipoItem = item.tipoItem nuevaVersionItem.usuarioModifico = usuario nuevaVersionItem.fecha = str(datetime.now()) nuevaVersionItem.observaciones = item.observaciones nuevaVersionItem.ultima_version = 'S' nuevaVersionItem.peso = item.peso nuevaVersionItem.id_fase = item.id_fase # Agregar los antecesores del item viejo for antecesor in item.Antecesores: nuevaVersionItem.Antecesores.append(antecesor) # Agregar los sucesores del item viejo try: antecesor = DBSession.query(Antecesor).\ filter(Antecesor.id_version_item == item.id_version_item).\ one() nuevoAntecesor = Antecesor(nuevaVersionItem.id_version_item) sucesores = antecesor.sucesores for sucesor in sucesores: sucesor.Antecesores.append(nuevoAntecesor) except NoResultFound,e: existe=False # Agregar los padres del item viejo for padre in item.Padres: nuevaVersionItem.Padres.append(padre) # Agregar los hijos del item viejo try: padre = DBSession.query(Padre).\ filter(Padre.id_version_item == item.id_version_item).\ one() nuevoPadre = Padre(nuevaVersionItem.id_version_item) hijos = padre.hijos for hijo in hijos: hijo.Padres.append(nuevoPadre) except NoResultFound,e: existe=False # Copiamos los atributos del item viejo for atributo in DBSession.query(AtributoItem).\ filter(AtributoItem.id_version_item == item.id_version_item).all(): nuevoAtributoItem = AtributoItem() nuevoAtributoItem.id_atributo = atributo.id_atributo nuevoAtributoItem.id_version_item = nuevaVersionItem.id_version_item nuevoAtributoItem.val_atributo = atributo.val_atributo DBSession.add(nuevoAtributoItem) atriItem = AtributoItem() atriItem.atributo = newAtri atriItem.id_version_item = nuevaVersionItem.id_version_item atriItem.val_atributo = newAtri.val_default DBSession.add(atriItem)