En Athento, se puede crear un botón personalizado para crear documentos y que se requiera información obligatoria antes de la creación.
Se pueden usar estos botones personalizados desde plantillas HTML customizadas con las que se trabaje en un proyecto.
Para crear un botón personalizado, se tendrán que poner en tu botón las siguientes propiedades:
-
data-toggle="react-modal"
-
data-target="#<id del modal>" (identificador único que elijas)
Además, se deberá hacer un include de la template "base_customizable_add_document_modal.html" con las propiedades que quieras indicándolas con el "with". Las propiedades disponibles son las siguientes:
- modalID (obligatorio) ➜ identificador único que elegiste para la propiedad data-target del botón (debe ser el mismo, pero sin la almohadilla "#").
- parentDocumentUUID (opcional) ➜ UUID del documento padre en caso de querer crear el nuevo documento como relacionado de este. Si no se indica, se creará el documento sin ser relacionado de ninguno.
- serieUUID (opcional) ➜ UUID del espacio en donde se creará el nuevo documento. Si no se indica, permitirá al usuario elegir el espacio con un selector.
- documentTypeUUID (opcional) ➜ UUID del formulario con el que se creará el nuevo documento. Si no se indica, permitirá al usuario elegir el formulario con un selector.
- folderUUID (opcional) ➜ UUID del documento carpeta en el que se creará dentro el nuevo documento. Si no se indica, no se creará dentro de ninguna carpeta.
- askForRequiredMetadata (opcional) ➜ recibe los valores "true" o "false". En caso de "true", se pedirán en la creación los campos marcados como requeridos del formulario seleccionado. En caso de no indicarlo o indicar "false", no los pedirá.
- openOnSamePage (opcional) ➜ recibe los valores "true" o "false". En caso de "true", cuando se haga la creación del documento te redireccionará en la misma pestaña a la vista del nuevo documento. En caso de no indicarlo o indicar "false", abrirá el nuevo documento creado en una nueva pestaña.
- openNewDocument (opcional) ➜ recibe los valores "true" o "false". En caso de no indicarlo o indicar "true", cuando se haga la creación del documento te abrirá el nuevo documento o bien en una nueva pestaña o te rediccionará a él en función de lo indicado en la propiedad "openOnSamePage". En caso de indicar "false", no abrirá el nuevo documento creado.
- requiredMetadataList (opcional) ➜ recibe como valor una cadena de texto con los slug de los campos separados por coma. Estos campos siempre se mostrarán como requeridos en el modal, aunque no lo sean. Ej:
requiredMetadataList="metadataslug_1,metadataslug_2"
- optionalMetadataList (opcional) ➜ recibe como valor una cadena de texto con los slug de los campos separados por coma. Estos campos se mostrarán como campos opcionales, y se podrá crear el documento sin rellenarlos. Ej:
optionalMetadataList="metadataslug_1,metadataslug_2"
EJEMPLOS
1. Botón custom en la sidebar con identificador único "custom-sidebar-button" cuyas propiedades indicadas son que se pidan los metadatos requeridos y tras la creación se redireccione en la misma pestaña a la vista del nuevo documento. Además, va a mostrar dos campos opcionales.
custom_sidebar.html
<li class="nav-item">
<a id="star" data-toggle="react-modal"
data-target="#custom-sidebar-button"
class="nav-link active">
<i class="nav-icon fal fa-star fa-fw" title=Custom></i>
<span class="masked">Custom</span>
</a>
</li>
{% include "base_customizable_add_document_modal.html" with openOnSamePage="true" askForRequiredMetadata="true" modalID="custom-sidebar-button" optionalMetadataList="metadataslug_1,metadataslug_2" %}
2. Botón custom en la vista del documento con identificador único "custom-document-button" cuyas propiedades indicadas son el UUID del espacio en el que se va a crear y el UUID del documento padre para que se cree como relacionado del mismo. Al no indicar openOnSamePage, lo abrirá en una nueva pestaña, y al no indicar askForRequiredMetadata, no los pedirá en la creación.
custom_document_buttons.html
{% load filetags %}
<a class="btn m-0" data-toggle="react-modal"
data-target="#custom-document-button"
title="Boton custom">
<i class="fal fa-star"></i>
</a>
{% include "base_customizable_add_document_modal.html" with modalID="custom-document-button" serieUUID=fil.serie.uuid parentDocumentUUID=fil.uuid %}
CONDICIONES ÚTILES PARA OCULTAR/MOSTRAR BOTONES
Aquí tienes algunas condiciones que puedes utilizar para controlar que se muestren o no tus botones personalizados:
Para mostrar los botones si el usuario pertenece a X grupo, englobar los botones en la siguiente condición:
{% with request.user.get_groups_names as group_names %}
{% if '<name_del_grupo>' in group_names %}
...
{% endif %}
{% endwith %}
Para mostrar los botones sólo si el usuario es super usuario, englobar los botones en la siguiente condición:
{% if request.user.is_superuser %}
...
{% endif %}
Para mostrar los botones sólo si el usuario es super admin del team actual, englobar los botones en la siguiente condición:
{% if request.user.is_super_admin_team %}
...
{% endif %}
Puedes encontrar más información sobre personalización de la interfaz gráfica en el siguiente artículo Personalización avanzada de la interfaz de usuario
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.