def go_from_peticion(peticion): """ Construye el PDF a partir de un objeto peticion y no de sus datos sueltos. """ obra = peticion.obra cliente = obra.cliente direccion = obra.direccion if not direccion: direccion = pclases.Direccion.get_direccion_por_defecto() ciudad = direccion.ciudad provincia = ciudad.provincia datos_peticion = {"hoja": peticion.id, "fecha pedido": fecha.str_fecha(peticion.fechaSolicitud), "fecha recogida": fecha.str_fecha(peticion.fechaRecogida), "hora": fecha.str_hora_corta(peticion.horaRecogida), "observaciones": peticion.observaciones, "recibido por": peticion.usuario and peticion.usuario.nombre or ""} strobra = obra and obra.nombre or "" if obra and obra.direccion: strobra += "({0})".format(obra.direccion.get_direccion_completa()) datos_obra = {"cliente": cliente and cliente.nombre or "", "obra": obra, "solicitante": peticion and peticion.solicitante or "", "persona de contacto": peticion and peticion.contacto and peticion.contacto.get_nombre_completo() or ""} datos_material = {"material": peticion.material and peticion.material.nombre or ""} datos_ensayo = [e.nombre for e in peticion.ensayos] try: dde = pclases.get_dde() datos_de_la_empresa = [os.path.join("imagenes", dde.logo), #dde.nombre + # (dde.cif and " (" + dde.str_cif_o_nif() +": " # + dde.cif + ")" or ""), dde.direccion, "%s %s (%s), %s" % (dde.cp, dde.ciudad, dde.provincia, dde.pais), ] if dde.fax: if dde.fax.strip() == dde.telefono.strip(): datos_de_la_empresa.append("Telf. y fax: %s" % dde.telefono) else: datos_de_la_empresa.append("Telf.: %s" % (dde.telefono)) datos_de_la_empresa.append("Fax: %s" % (dde.fax)) #if dde.email: # datos_de_la_empresa.append(dde.email) except IndexError: datos_de_la_empresa = [None] nomarchivo = os.path.join(gettempdir(), "peticion_{0}_{1}.pdf".format( peticion.id, give_me_the_name_baby())) return go("Peticion {0}".format(peticion.id), nomarchivo, datos_de_la_empresa, datos_peticion, datos_obra, datos_material, datos_ensayo)