Modulo corpus_admin

Formularios

corpus_admin.forms

class corpus_admin.forms.AddDocumentDataForm(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 agregar nuevos renglones a un documento particular del corpus

Atributos

  • csv: Objeto de django forms que renderea un elemento input de html
    type

    form.FileField

base_fields = {'csv': <django.forms.fields.FileField object>}
declared_fields = {'csv': <django.forms.fields.FileField object>}
property media
class corpus_admin.forms.DocumentEditForm(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 modificar el nombre y el PDF de un documento existente

Atributos

  • placeholder: Variable que modifica el placeholder del input para el nuevo

nombre del documento
type

str

  • nombre: Objeto de django forms que renderea un elemento input de html
    type

    form.CharField

  • pdf: Objeto de django forms que renderea un elemento input de html
    type

    form.FileField

base_fields = {'nombre': <django.forms.fields.CharField object>, 'pdf': <django.forms.fields.FileField object>}
declared_fields = {'nombre': <django.forms.fields.CharField object>, 'pdf': <django.forms.fields.FileField object>}
property media
placeholder = 'Ingresa el nuevo nombre del documento'
class corpus_admin.forms.NewDocumentForm(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 cargar nuevos documentos al corpus

Atributos

  • VARIANTS: Lista de variantes disponibles con el formato (KEY, VALUE)
    type

    list

  • nombre: Objeto de django forms que renderea un elemento input de html
    type

    form.CharField

  • csv: Objeto de django forms que renderea un elemento input de html
    type

    form.FileField

  • pdf: Objeto de django forms que renderea un elemento input de html
    type

    form.FileField

base_fields = {'csv': <django.forms.fields.FileField object>, 'nombre': <django.forms.fields.CharField object>, 'pdf': <django.forms.fields.FileField object>}
declared_fields = {'csv': <django.forms.fields.FileField object>, 'nombre': <django.forms.fields.CharField object>, 'pdf': <django.forms.fields.FileField object>}
property media

Funciones auxiliares

corpus_admin.helpers

corpus_admin.helpers.check_extra_fields(fields, full=False)

Revisa si existen campos adicionales a los default

Parámetros
  • fields – Campos del usuario presentes en la cabecera del csv

  • full – Bandera opcional si se requieren los campos completos. Por

Type

list

ejemplo cuando se sube un respaldo de la base de datos :type: bool :return: Los campos adicionales encontrados si existen :rtype: set

corpus_admin.helpers.csv_uploader(csv_name, doc_name, pdf_file, doc_id='', extra_fields=False)

Función encargada de cargar nuevas líneas al corpus

Manipula los archivos mandados desde formulario y los carga al corpus de Tsunkua por medio del API de elasticsearch. Se espera que la primera columna del archivo csv sea el texto en español, la segunda columna sea el texto en otomí y la tercera columna sea la variante(s)

Parámetros
  • csv_name – Nombre del archivo csv con el texto alineado

  • doc_name – Nombre del documento a cargar

  • pdf_file – Nombre del archivo PDF del documento

Type

str

Type

str

Type

str

Devuelve

Número de líneas cargadas al corpus

Tipo del valor devuelto

int

corpus_admin.helpers.csv_writer(csv_file)

Escribe un archivo ``csv`` de forma temporal

Esta función escribe el csv en disco para posteriormente subirlo al indice de Elasticsearch

Parámetros
  • csv_filecsv enviado por medio del objeto request

  • file_name – Nombre del archivo csv

Type

FileField

Type

str

Devuelve

True si se guardo correctamente

Tipo del valor devuelto

bool

corpus_admin.helpers.get_corpus_info(request)

Función que obtiene la información general del corpus

Está función utiliza el framework de Elasticsearch llamado aggregations para obtener los ids del corpus. Con cada uno se obtienen los nombres de documentos, nombres de archivos y total:>>.

Devuelve

El total de documentos y una lista con información de los

documentos :rtype: int, list

corpus_admin.helpers.get_document_info(_id)

Obtiene información de un documento de Elasticsearch

Función encargada de obtener el nombre de documento, nombre del archivo asociado al documento e identificador por medio del id

Parámetros

_id – Identificador del documento

Type

str

Devuelve

Diccionario con nombre, archivo e identificador

Tipo del valor devuelto

dict

corpus_admin.helpers.get_index_config()
corpus_admin.helpers.pdf_uploader(file, name)

Función encargada de cargar y guardar el archivo pdf de un nuevo documento

Parámetros
  • filepdf enviado por medio del objeto request

  • name – Nombre del archivo PDF

Type

FileField

Type

str

Devuelve

Verdadero si se pudo cargar el archivo, falso en caso contrario

Tipo del valor devuelto

bool

corpus_admin.helpers.update_config(config)

Actualiza las configuraciones locales de elasticsearch

corpus_admin.helpers.update_index_name(new_index_name)

Rutas del corpus_admin

corpus_admin.urls

corpus_admin.urls.path(route, view, kwargs=None, name=None, *, Pattern=<class 'django.urls.resolvers.RoutePattern'>)

Vistas del corpus_admin

corpus_admin.views

corpus_admin.views.add_doc_data(request, _id)

Vista que muestra un formulario para añadir líneas a un documento existente

  • :param request: Objeto HttpRequets para pasar el estado de la app a

    través del sistema

  • :type: HttpRequest

  • :param _id: identificador del documento a visualizar

  • :type: str

  • :return: Formulario para agregar líneas a un documento existente

corpus_admin.views.delete_doc(request)

Vista encargada de eliminar documentos del corpus

  • :param request: Objeto HttpRequets para pasar el estado de la app a

    través del sistema

  • :type: HttpRequest

corpus_admin.views.doc_edit(request, _id)

Vista que muestra el formulario para editar el nombre y pdf de un documento

  • :param request: Objeto HttpRequets para pasar el estado de la app a

    través del sistema

  • :type: HttpRequest

  • :param _id: Identificador de documento

  • :type: str

  • :return: Formulario para editar el nombre y pdf de un documento

corpus_admin.views.doc_preview(request, _id)

Vista que muestra el contenido de un documento particular

Muestra los renglones alineados que componen un documento en particular del corpus. Cada renglon tiene dos acciones, eliminar y editar.

  • :param request: Objeto HttpRequets para pasar el estado de la app a

    través del sistema

  • :type: HttpRequest

  • :param _id: identificador del documento a visualizar

  • :type: str

  • :return: Contenido de un documento

corpus_admin.views.export_data(request)

Vista que exporta la base de datos completa del índice

Vista llamada desde el botón de exportar en el administrador del corpus. Se genera un respaldo de la base de datos en formato csv con el que se puede restaurar en otro índice de Elasticsearch.

  • :param request: Objeto HttpRequets para pasar el estado de la app a

    través del sistema

  • :type: HttpRequest

corpus_admin.views.extra_fields(request, csv_file_name, document_name, pdf_file_name)

Configura los campos extra detectados en un CSV

Parámetros
  • request (HttpRequest) – Objeto HttpRequets de Django

  • csv_file_name (str) – Nombre del archivo csv

  • document_name (str) – Nombre del documento

  • pdf_file_name (str) – Nombre del archivo pdf

Devuelve

Redirecciona a la vista de nuevo documento

Tipo del valor devuelto

None

corpus_admin.views.list_docs(request)

Esta vista muestra todos los documentos que conforman el corpus paralelo

  • :param request: Objeto HttpRequets para pasar el estado de la app a

    través del sistema

  • :type: HttpRequest

  • :return: Lista de documentos del corpus con acciones por documento

corpus_admin.views.new_doc(request)

Vista que muestra el formulario para cargar nuevos documentos al corpus

Vista encargada de mostrar el formulario para agregar nuevo documentos al corpus. El documento se compone de archivo CSV alineado, PDF como portada del corpus y el nombre del archivo. En caso de éxito al subir el documento se redirige a la lista de documentos.

  • :param request: Objeto HttpRequets para pasar el estado de la app a

    través del sistema

  • :type: HttpRequest

  • :return: Vista con formulario para nuevos documentos