def POST(self): form = web.input() propiedad = dict() propiedad['id_propiedad'] = form.id_propiedad propiedad['nombre'] = form.nombre propiedad['abreviatura'] = form.abreviatura propiedad['categoria'] = form.categoria # obligatorio propiedad['clase'] = 'tecnológica' if form.get('obligatoria',''): propiedad['obligatoria'] = True else: propiedad['obligatoria'] = False codificaciones = dict() for c in dbaccess.codificaciones(clase='tecnológica'): # valores para cada codificacion val_min = form.get(str(c['valor']) + '-min','') val_max = form.get(str(c['valor']) + '-max','') if val_min or val_max: if val_min and val_max: val_min = float(val_min) val_max = float(val_max) # asegurando efectivamente el orden de los valores a,b = val_min, val_max val_min, val_max = min(a,b), max(a,b) elif val_min and (not val_max or val_max == ''): val_max = None val_min = float(val_min) elif (not val_min or val_min == '') and val_max: val_min = None val_max = float(val_max) codificaciones[c['nombre']] = model.Rango(val_min,val_max) propiedad['codificaciones'] = codificaciones print propiedad dbaccess.grabar_propiedad(propiedad)
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')
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)
def POST(self): form = web.input() propiedad = dict() propiedad['id_propiedad'] = form.id_propiedad propiedad['nombre'] = form.nombre propiedad['abreviatura'] = form.abreviatura # de cajón propiedad['clase'] = 'anatómica' if form.get('obligatoria',''): propiedad['obligatoria'] = True else: propiedad['obligatoria'] = False codificaciones = dict() for c in dbaccess.codificaciones(clase='anatómica'): # valores para cada codificacion if form[c['nombre']]: codificaciones[c['nombre']] = form[c['nombre']] propiedad['codificaciones'] = codificaciones dbaccess.grabar_propiedad(propiedad)