def analizar_madera(madera): """ Analiza la compatibilidad una madera. Determinando todos los usos compatibles """ print madera.nombre usos_analisis = [] usos_compatibles = [] for uso in dbaccess.buscar_usos(): analisis = [] # para cada uso uso_analisis = {} # tiene dos partes presentacion = {} # se retornarán solo las propiedades que constan en el 'uso' #for k in uso.propiedades.keys():... for pbd in dbaccess.buscar_propiedades(): k = pbd.get('id_propiedad') # propiedad no existe en 'uso' o en 'madera' if not uso.propiedades.get(k) or not madera.propiedades.get(k): #c = model.Compatibilidad(k,None,None) c = model.Compatibilidad(k,True,False) elif not uso.propiedades[k].min and madera.propiedades[k] <= uso.propiedades[k].max: c = model.Compatibilidad(k,True,pbd.get('obligatoria','')) elif not uso.propiedades[k].max and madera.propiedades[k] >= uso.propiedades[k].min: c = model.Compatibilidad(k,True,pbd.get('obligatoria','')) elif uso.propiedades[k].min <= madera.propiedades[k] <= uso.propiedades[k].max: c = model.Compatibilidad(k,True,pbd.get('obligatoria','')) else: c = model.Compatibilidad(k,False,pbd.get('obligatoria','')) analisis.append(c) #se puede colocar todo el objeto uso.... uso_analisis['nombre_uso'] = uso.nombre uso_analisis['analisis'] = analisis usos_analisis.append(uso_analisis) # por necesidad de presentacion del nombre del uso presentacion = procesar_presentacion(analisis) presentacion['nombre_uso'] = uso.nombre print uso.nombre, presentacion incompatibles = incompatibilidades(analisis) #if len(uso.propiedades) > 0 and len(incompatibles) == 0: if len(incompatibles) == 0: usos_compatibles.append(uso) print incompatibles,'Es COMPATIBLE :)' else: print incompatibles,'Es INCOMPATIBLE :(' return ( usos_compatibles, usos_analisis )
def GET(self): return renderizador.seleccionar_uso(dbaccess.buscar_usos())
def GET(self): usos = dbaccess.buscar_usos() propiedades = dbaccess.buscar_propiedades() return renderizador.usos(propiedades,usos)