Modulo searcher
¶
Formularios¶
searcher.forms¶
-
class
searcher.forms.
SearchPostForm
(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)¶ Bases:
django.forms.forms.Form
Clase encargada de generar de forma dinámica el formulario que permite hacer las búsquedas
Atributos
- LANGUAGES: Lista de lenguas en las cuales se pueden hacer búsquedas con el formato (KEY, VALUE)
- type
list
- VARIANTS: Lista de variantes disponibles con el formato (KEY, VALUE)
- type
list
- search_placeholder: Variable que modifica el placeholder del elemento input para insertar el texto a buscar
- type
str
- variant_label: Variable que modifica la etiqueta de las variantes del corpus
- type
str
- idioma: Objeto de django forms que renderea un elemento
<select>
dehtml
- type
form.ChoiceField
- idioma: Objeto de django forms que renderea un elemento
- busqueda: Objeto de django forms que renderea un elemento
<input>
de html - type
form.CharField
- busqueda: Objeto de django forms que renderea un elemento
- varianteObjeto de django forms que renderea un elemento
<select>
dehtml
con multiples opciones - type
form.MultipleChoiceField
- varianteObjeto de django forms que renderea un elemento
-
LANGUAGES
= [('L1', 'L1'), ('L2', 'L2')]¶
-
VARIANTS
= []¶
-
base_fields
= {'busqueda': <django.forms.fields.CharField object>, 'idioma': <django.forms.fields.ChoiceField object>, 'variante': <django.forms.fields.MultipleChoiceField object>}¶
-
declared_fields
= {'busqueda': <django.forms.fields.CharField object>, 'idioma': <django.forms.fields.ChoiceField object>, 'variante': <django.forms.fields.MultipleChoiceField object>}¶
-
property
media
¶
-
search_placeholder
= 'Búsqueda'¶
-
variant_label
= 'Variantes'¶
-
variantes
= {'status': 'error'}¶
-
variants_attrs
= {'class': 'form-control', 'disabled': True}¶
Funciones auxiliares¶
searcher.helpers¶
-
searcher.helpers.
data_processor
(raw_data, idioma, query)¶ Procesa los datos crudo de la API de Elasticsearh para devolver solo los resultados
Función que recibe una lista con los datos que prove la API de
elacticsearch
, procesa los datos para ignorar los metadatos del API y retorna solo los resultados de búsqueda como una lista.- Parámetros
raw_data – Lista de resultados crudos del API de Elasticsearch
idioma – ISO del idioma de búsqueda
query – Cadena de búsqueda
- Type
list
- Type
str
- Type
str
- Devuelve
Resultados de búsqueda
- Tipo del valor devuelto
list
-
searcher.helpers.
doc_file_to_link
(doc_name, doc_file, path)¶ Función que liga el nombre de un documento con su archivo pdf
- Parámetros
doc_name – Nombre del documento
doc_file – Nombre del archivo
path – Path donde se encuentran los pdfs
- Type
str
- Type
str
- Type
str
- Devuelve
Nombre del documento con la liga al pdf
- Tipo del valor devuelto
str
-
searcher.helpers.
ethno_btn_maker
(variante)¶ Crea botones ``html`` con información ethnologue
Función encargada de construir los botones para la columna de variantes que despliegan los modals con la información obtenida de la plataforma ethnologue
- Parámetros
variante – Variante de la lengua 2
- Type
str
- Devuelve
Cadenas con los botones en
html
- Tipo del valor devuelto
str
-
searcher.helpers.
ethno_table_maker
(soup)¶ Crea la tabla html con información de ethnologue
Con base en la variante en turno se crea, dinamicamente, una cadena que contiene una tabla html que será rendereada por un modal en la vista de busqueda.
- Parámetros
soup – Objeto con la página
html
de ethnologue- Type
BeautifulSoup Object
- Devuelve
Tabla en formato
html
- Tipo del valor devuelto
str
-
searcher.helpers.
get_variants
()¶ Obtiene las variantes actuales de elasticsearch
Función encargada de obtener las variantes existentes en el índice de
elasticsearch
a través del API aggregations. Se obtienen en un diccionario con el ISO de la variante como llave y el nombre de la variante como valor. Se agrega al diccionario de variantes el estatus de la consulta (success o error).- Devuelve
variantes
- Tipo del valor devuelto
dict
-
searcher.helpers.
highlighter
(hit, idioma, query)¶ Resalta la búsqueda realizada por el usuarix
Función que busca el campo
highlight
en los objetos devueltos por el API deelasticsearch
y lo utilza para reemplazar el texto del idioma en el que se realizó la búsqueda. Si la búsqueda es en español, el texto dentro del campo highlight estará preprocesado por Elasticsearch.- Parámetros
hit – Resultado de búsqueda
idioma – ISO del idioma de búsqueda
query – Cadena de búsqueda
- Type
list
- Type
str
- Type
str
- Devuelve
Texto de los resultados resaltado
- Tipo del valor devuelto
list
-
searcher.helpers.
query_kreator
(term)¶ Crea la estructura para busquedas en Elasticsearch
Función encargada de devolver el objeto con los elementos necesarios para realizar una búsqueda en Elasticsearch. Esto beneficia la limpieza del código reemplazando una variable estática
- Parámetros
term – Consulta introducida por la usuaria desde el Frontend
- Type
str
-
searcher.helpers.
results_to_csv
(data, variants)¶ Función que escribe los resultados de la consulta en archivo csv
Guarda los resultados de la consulta en formato
csv
en caso de que la usuaria quiera descargarlos.- Parámetros
data_response – Resultados de la consulta devueltos por el índice de
elasticsearch
variants – Variantes actuales para saber si escribir variante o dejar el campo vacío.
- Type
list
- Type
dict
- Devuelve
Estatus del archivo.
True
si fue escrito,False
en caso contrario- Tipo del valor devuelto
bool
-
searcher.helpers.
variant_to_query
(variantes)¶ Toma las variantes seleccionadas y regresa una cadena que filtra resultados de búsqueda por variantes
- Parámetros
variantes – Lista de keys de las variantes seleccionadas
- Type
list
- Devuelve
Cadena aceptada por el API de elasticsearch para filtrar
- Tipo del valor devuelto
str
Rutas¶
Vistas¶
searcher.views¶
-
searcher.views.
download_results
(request)¶ Descarga los resultados de la busqueda actual
Vista asociada a botón que se encarga de descargar los resultados de la consulta actual
- Parámetros
request – Objeto
HttpRequet
para pasar el estado de la app a través del sistema- Type
HttpRequest
- Devuelve
Los resultados de busqueda en formato
csv
-
searcher.views.
ethnologue_data
(request, iso_variant)¶ Búsca información de la variante en Ethnologue
Trae la información de la página de la variante de Ethnologue. Se scrappea con
BeautifulSoup
. Posteriormente se cra una tabla html con la funciónethno_table_maker
.- Parámetros
request – Objeto
HttpRequet
para pasar el estado de la app a través del sistema- Type
HttpRequest
- Paran iso_variant
ISO de la variante
- Type
str
- Devuelve
Html
con la información disponible de Ethnologue- Tipo del valor devuelto
str
-
searcher.views.
search
(request)¶ Realiza la búsqueda y muestra los resultados
Vista encargada de construir el archivo
json
que será mandado al API deElasticsearch
para ejecutar la query. Posteriorimente preprocesa la respuesta del API y envía las variables para ser desplegadas en el templatesercher.html
. Además, reenvia el formulario con la información previamente introducida para nuevas búsquedas.- Parámetros
request – Objeto
HttpRequets
para pasar el estado de la app a través del sistema- Type
HttpRequest
- Devuelve
Resultados de búsqueda y formulario para nuevas búsquedas