コード例 #1
0
    def update_params(self, d):
        """ @param d: diccionario con las opciones posibles de ítems.
            @return: d con los valores correctos de ítems posibles.
        """
        super(ItemsField, self).update_params(d)
        id_fase = unicode(request.url.split("/")[-3])
        ids_tipos_item = DBSession.query(TipoItem.id).filter(TipoItem.id_fase == id_fase)
        items = (
            DBSession.query(Item)
            .filter(Item.id_tipo_item.in_(ids_tipos_item))
            .filter(Item.id_linea_base == None)
            .filter(Item.borrado == False)
            .filter(Item.revisiones == None)
            .all()
        )

        items_a_mostrar = UnificarItem(items)
        aux = list()
        for item in reversed(items_a_mostrar):
            if item.estado != u"Aprobado" or es_huerfano(item):
                items_a_mostrar.remove(item)
        for item in items_a_mostrar:
            aux.append(item.id + "/" + str(item.version))
        lista = [x for x in d["options"] if x[0] in aux]
        d["options"] = lista
コード例 #2
0
 def buscar(self, **kw):
     """ Lista las líneas base de acuerdo a un criterio de búsqueda
         introducido por el usuario.
     """
     buscar_table_filler = LineaBaseTableFiller(DBSession)
     if "parametro" in kw:
         buscar_table_filler.init(kw["parametro"], self.id_fase)
     else:
         buscar_table_filler.init("", self.id_fase)
     tmpl_context.widget = self.table
     value = buscar_table_filler.get_value()
     d = dict(value_list=value, model="Lineas Base")
     d["accion"] = "./buscar"
     d["permiso_crear"] = TienePermiso("crear linea base", id_fase=self.id_fase).is_met(request.environ)
     d["permiso_unir"] = TienePermiso("unir lineas base", id_fase=self.id_fase).is_met(request.environ)
     cant = (
         DBSession.query(LineaBase)
         .filter(LineaBase.cerrado == False)
         .filter(LineaBase.id_fase == self.id_fase)
         .count()
     )
     if cant < 2:
         d["lineas_base"] = False
     else:
         d["lineas_base"] = True
     items = (
         DBSession.query(Item)
         .filter(Item.id_tipo_item.contains(self.id_fase))
         .filter(Item.borrado == False)
         .filter(Item.id_linea_base == None)
         .filter(Item.estado == u"Aprobado")
         .all()
     )
     aux = []
     for item in items:
         for item_2 in items:
             if item.id == item_2.id:
                 if item.version > item_2.version:
                     aux.append(item_2)
                 elif item.version < item_2.version:
                     aux.append(item)
     items = [i for i in items if i not in aux and not es_huerfano(i)]
     cant_items = len(items)
     if cant_items == 0:
         d["permiso_crear"] = False
     d["direccion_anterior"] = "../.."
     return d
コード例 #3
0
    def get_all(self, *args, **kw):
        """Lista las líneas base de acuerdo a lo establecido en
           L{linea_base_controller.LineaBaseTableFiller._do_get_provider_count_and_objs}.
        """
        linea_base_table_filler.init("", id_fase=self.id_fase)
        d = super(LineaBaseController, self).get_all(*args, **kw)
        d["permiso_crear"] = TienePermiso("crear linea base", id_fase=self.id_fase).is_met(request.environ)
        d["permiso_unir"] = TienePermiso("unir lineas base", id_fase=self.id_fase).is_met(request.environ)
        d["model"] = "Lineas Base"
        cant = (
            DBSession.query(LineaBase)
            .filter(LineaBase.cerrado == False)
            .filter(LineaBase.id_fase == self.id_fase)
            .count()
        )
        items = (
            DBSession.query(Item)
            .filter(Item.id_tipo_item.contains(self.id_fase))
            .filter(Item.borrado == False)
            .filter(Item.id_linea_base == None)
            .filter(Item.estado == u"Aprobado")
            .all()
        )

        aux = []
        for item in items:
            for item_2 in items:
                if item.id == item_2.id:
                    if item.version > item_2.version:
                        aux.append(item_2)
                    elif item.version < item_2.version:
                        aux.append(item)
        items = [i for i in items if i not in aux and not es_huerfano(i)]
        cant_items = len(items)
        if cant < 2:
            d["lineas_base"] = False
        else:
            d["lineas_base"] = True
        if cant_items == 0:
            d["permiso_crear"] = False
        d["direccion_anterior"] = "../.."
        d["accion"] = "./buscar"
        return d
コード例 #4
0
 def buscar(self, **kw):
     """ Lista las líneas base de acuerdo a un criterio de búsqueda
         introducido por el usuario.
     """
     buscar_table_filler = LineaBaseTableFiller(DBSession)
     if "parametro" in kw:
         buscar_table_filler.init(kw["parametro"], self.id_fase)
     else:
         buscar_table_filler.init("", self.id_fase)
     tmpl_context.widget = self.table
     value = buscar_table_filler.get_value()
     d = dict(value_list=value, model="Lineas Base")
     d["accion"] = "./buscar"
     d["permiso_crear"] = TienePermiso("crear linea base",
                                       id_fase=self.id_fase).is_met(
                                           request.environ)
     d["permiso_unir"] = TienePermiso("unir lineas base",
                                      id_fase=self.id_fase).is_met(
                                          request.environ)
     cant = DBSession.query(LineaBase).filter(LineaBase.cerrado == False) \
             .filter(LineaBase.id_fase == self.id_fase).count()
     if cant < 2:
         d["lineas_base"] = False
     else:
         d["lineas_base"] = True
     items = DBSession.query(Item).filter(Item.id_tipo_item
             .contains(self.id_fase)).filter(Item.borrado == False) \
             .filter(Item.id_linea_base == None).filter(Item.estado ==
             u"Aprobado").all()
     aux = []
     for item in items:
         for item_2 in items:
             if item.id == item_2.id:
                 if item.version > item_2.version:
                     aux.append(item_2)
                 elif item.version < item_2.version:
                     aux.append(item)
     items = [i for i in items if i not in aux and not es_huerfano(i)]
     cant_items = len(items)
     if cant_items == 0: d["permiso_crear"] = False
     d["direccion_anterior"] = "../.."
     return d
コード例 #5
0
    def update_params(self, d):
        """ @param d: diccionario con las opciones posibles de ítems.
            @return: d con los valores correctos de ítems posibles.
        """
        super(ItemsField, self).update_params(d)
        id_fase = unicode(request.url.split("/")[-3])
        ids_tipos_item = DBSession.query(TipoItem.id).filter(TipoItem.id_fase \
                        == id_fase)
        items = DBSession.query(Item).filter(Item.id_tipo_item \
            .in_(ids_tipos_item))\
            .filter(Item.id_linea_base == None).filter(Item.borrado == False) \
            .filter(Item.revisiones == None).all()

        items_a_mostrar = UnificarItem(items)
        aux = list()
        for item in reversed(items_a_mostrar):
            if item.estado != u"Aprobado" or es_huerfano(item):
                items_a_mostrar.remove(item)
        for item in items_a_mostrar:
            aux.append(item.id + "/" + str(item.version))
        lista = [x for x in d['options'] if x[0] in aux]
        d['options'] = lista
コード例 #6
0
    def get_all(self, *args, **kw):
        """Lista las líneas base de acuerdo a lo establecido en
           L{linea_base_controller.LineaBaseTableFiller._do_get_provider_count_and_objs}.
        """
        linea_base_table_filler.init("", id_fase=self.id_fase)
        d = super(LineaBaseController, self).get_all(*args, **kw)
        d["permiso_crear"] = TienePermiso("crear linea base",
                                          id_fase=self.id_fase).is_met(
                                              request.environ)
        d["permiso_unir"] = TienePermiso("unir lineas base",
                                         id_fase=self.id_fase).is_met(
                                             request.environ)
        d["model"] = "Lineas Base"
        cant = DBSession.query(LineaBase).filter(LineaBase.cerrado == False) \
                .filter(LineaBase.id_fase == self.id_fase).count()
        items = DBSession.query(Item).filter(Item.id_tipo_item
                .contains(self.id_fase)).filter(Item.borrado == False) \
                .filter(Item.id_linea_base == None) \
                .filter(Item.estado == u"Aprobado").all()

        aux = []
        for item in items:
            for item_2 in items:
                if item.id == item_2.id:
                    if item.version > item_2.version:
                        aux.append(item_2)
                    elif item.version < item_2.version:
                        aux.append(item)
        items = [i for i in items if i not in aux and not es_huerfano(i)]
        cant_items = len(items)
        if cant < 2:
            d["lineas_base"] = False
        else:
            d["lineas_base"] = True
        if cant_items == 0: d["permiso_crear"] = False
        d["direccion_anterior"] = "../.."
        d["accion"] = "./buscar"
        return d