def _get_tabla(self): """Construye la tabla del recuento y devuelve los datos.""" categorias = self._get_categorias() # traigo los datos de las listas especiales especiales, caracteres_categoria = self._get_datos_especiales() dx = MEDIDAS_ACTA['margen_derecho_tabla'] # ancho genérico de columnas ancho_col = MEDIDAS_ACTA['ancho_col'] # calculo ancho columna descripción w = 700 - dx - len(categorias) * ancho_col w = w - ancho_col # resto ancho col. nº de lista clases_a_mostrar = self.config("clases_a_mostrar", self.data["cod_datos"]) # Traemos solo las agrupaciones que queremos mostrar segun existe en el # juego de datos y segun tenemos configurado en clases_a_mostrar agrupaciones = Agrupacion.many(clase__in=clases_a_mostrar, sorted="orden_absoluto") # traemos todas las filas filas, caracteres_lista = self._get_datos_tabla( categorias, agrupaciones) # calculo la cantidad maxima de caracteres que debe tener el nombre de # la agrupacion que estoy mostrando caracteres_tabla = MEDIDAS_ACTA['caracteres_tabla'] cods_categorias = [cat.codigo for cat in categorias] # corto el largo del nombre de las agrupaciones remain_chars = (caracteres_tabla - caracteres_lista - (len(cods_categorias) * caracteres_categoria)) for i in range(len(filas)): filas[i][1] = filas[i][1][:int(remain_chars)] tabla = { "filas": filas, "especiales": especiales, "categorias": cods_categorias, "len_categorias": len(cods_categorias), "caracteres_categoria": caracteres_categoria, "caracteres_lista": caracteres_lista, } return tabla
def dict_set_agrupaciones(self): """Envia el diccionario con los datos de las categorias.""" candidatos = Agrupacion.all().to_dict() return candidatos