Ejemplo n.º 1
0
 def set_valores(self,valores):
     """ Al cambiar los valores de la madera se recodifican sus propiedades en base a esos valores """
     self.__valores = valores
     for (id_propiedad,valor) in valores.items():
         propiedad = dbaccess.buscar_propiedad(id_propiedad)
         nombre_codif = ''
         if propiedad.get('clase') == u'tecnológica':
             """ Recorremos las codificaciones que tiene la propiedad """
             for (codif,rango) in propiedad['codificaciones'].items():
                 if not rango.min and valor <= rango.max:
                     nombre_codif = codif
                     break
                 if not rango.max and valor >= rango.min: 
                     nombre_codif = codif
                     break
                 if rango.min <= valor <= rango.max:
                     nombre_codif = codif
                     break
         elif propiedad.get('clase') == u'anatómica':
             # valor 'str', es el nombre ya codificado que viene del <select> html
             # valor es ya el nombre codificado desde la vista
             nombre_codif = valor
         # se supone que se encuentra una sola codificacion
         consulta = dbaccess.codificaciones(nombre=nombre_codif)
         if consulta: 
             codificacion = consulta[0]
             self.__propiedades[id_propiedad] = codificacion.get('valor')
Ejemplo n.º 2
0
 def GET(self):
     propiedad = None
     if 'id_propiedad' in web.input():
         id_propiedad = web.input().id_propiedad
         propiedad = dbaccess.buscar_propiedad(id_propiedad)
     if not propiedad:
         propiedad = dict()
         propiedad['id_propiedad'] = dbaccess.contar_propiedades() + 1
     cods = dbaccess.codificaciones(clase='anatómica')
     return renderizador.editpanatomica(propiedad,cods)
Ejemplo n.º 3
0
def load_tecnologicas_xls(file=path_dbs+'/excel/PROPIEDADES.xls'):
    """ Carga propiedades físicas y mecánicas de la madera """
    propiedades = []
    campos = ['nombre','categoria','codigo','obligatoria','unidad','muy_bajo','bajo','medio','alto','muy_alto']
    book = xlrd.open_workbook(file)
    sheet = book.sheet_by_name('tecnologicas')
    for r in range(1,sheet.nrows):
        propiedad = {}
        id_propiedad = r if not dbaccess.buscar_propiedad(str(r)) else dbaccess.contar_propiedades() + len(propiedades) + 1
        # se agrega un id a la propiedad
        propiedad['id_propiedad'] = str(id_propiedad)
        propiedad['clase'] = 'tecnológica'
        propiedad['codificaciones'] = {}
        for c in range(sheet.ncols):
            cell = sheet.cell(r,c)
            if cell.value is not xlrd.empty_cell.value:
                if c < 5:
                    if sheet.cell(0,c).value == 'obligatoria':
                        propiedad['obligatoria'] = True if cell.value in ('Si','si','SI','sI') else False
                    else:
                        propiedad[sheet.cell(0,c).value.lower()] = cell.value
                # leemos las codificaciones
                else:
                    # espacios
                    cell.value = cell.value.replace(' ','')
                    # separador decimal
                    cell.value = cell.value.replace(',','.')
                    if '<' in cell.value:
                        maxval = float(cell.value.replace('<',''))
                        propiedad['codificaciones'][campos[c]] = model.Rango(None,maxval)
                    elif '>' in cell.value: 
                        minval = float(cell.value.replace('>',''))
                        propiedad['codificaciones'][campos[c]] = model.Rango(minval,None)
                    elif '-' in cell.value:
                        minval = float(cell.value.split('-')[0])
                        maxval = float(cell.value.split('-')[1])
                        propiedad['codificaciones'][campos[c]] = model.Rango(minval,maxval)
        propiedades.append(propiedad)
    return propiedades
Ejemplo n.º 4
0
def load_anatomicas_xls(file=path_dbs+'/excel/PROPIEDADES.xls'):
    #""" Carga propiedades anatomicas de la madera """
    propiedades = []
    campos = ['nombre','obligatoria','codigo','excelente','bueno','regular','pobre']
    book = xlrd.open_workbook(file)
    sheet = book.sheet_by_name('anatomicas')
    for r in range(1,sheet.nrows):
        propiedad = {}
        propiedad['clase'] = 'anatómica'
        propiedad['codificaciones'] = {}
        # TODO: Buscar propiedad por codigo, si exsite actualizar.
        id_propiedad = r if not dbaccess.buscar_propiedad(str(r)) else (dbaccess.contar_propiedades() + len(propiedades) + 1)
        propiedad['id_propiedad'] = str(id_propiedad)
        for c in range(0,sheet.ncols):
            value = sheet.cell(r,c).value
            if sheet.cell(0,c).value == 'nombre' or sheet.cell(0,c).value == u'codigo':
                propiedad[sheet.cell(0,c).value.lower()] = value
            elif sheet.cell(0,c).value == 'obligatoria':
                propiedad['obligatoria'] = True if value in ('Si','si','SI','sI') else False
            else:
                propiedad['codificaciones'][campos[c]] = value
        propiedades.append(propiedad)
    return propiedades