Bitrix24: Blogs

Bitrix24 Blogs

  • Ejemplo de personalización Bitrix24 – Agrupamiento de listas de tareas por persona responsable

    Ana Paula Céspedes 04/04/2017 06:25:35 pm
    Lo siguiente es un post realizado por Julia Bedrosova, una de las principales consultoras de Bitrix24 y proveedora de personalización en Upwork.

    Uno de nuestros clientes nos pidió que agregáramos un grupo de listas de tareas por persona responsable en Bitrix24. También, requirió ser capaz de cambiar a una persona responsable, por simples tareas arrastables, al grupo apropiado. Este cliente cuenta con una versión self-hosted, por lo que hemos podido agregar la funcionalidad requerida.

    La lista de tareas en Bitrix24 puede ser ordenada y filtrada por la persona responsable, pero el cliente no estaba satisfecho con estas dos opciones, necesitaba tener la capacidad de agrupar la lista de tareas por persona responsable como nivel de agrupación adicional.

    Primero, copiamos el componente (tasks.list) en nuestro propio espacio de nombres. En el código de componente (component.php file) encontramos un lugar donde se forman una matriz con condición de ordenación. Es $ arOrders array. Cambiamos el $ arOrders array para ordenar por ID de persona responsable en primera prioridad:

    $arOrder = array_merge(array("RESPONSIBLE_ID" => "ASC";), $arOrder);

    Para nuestra sorpresa, después de la clasificación, algunas tareas fueron colocadas en el orden equivocado: algunas tareas de una persona responsable se mezclaron con las tareas de otra persona responsable.

    Comenzamos a aclarar este problema y encontramos ese código en el método CTask :: GetList:
    foreach ($arOrder as $by => $order)
    {
    ……
    switch ($by)
    {
    ……
    case 'responsible_id':
    $arSqlOrder[] = " RESPONSIBLE_LAST_NAME ".$order." ";
    $needle = 'RESPONSIBLE_LAST_NAME';
    break;
    ……
    }
    ……
    }
    Por lo tanto, en lugar de ordenar por el identificador de persona responsable (esta columna está en la tabla «b_tasks» y disponible para la clasificación) Bitrix ordenó nuestros datos por el apellido de la persona responsable.

    El sistema no tiene en cuenta el hecho de que el apellido quizás no se pueda especificar. Tenemos tal caso. Todas las personas responsables, cuyas tareas fueron "mezcladas", no han especificado apellidos.

    Después de ordenar las tareas en el orden requerido, también necesitamos algunos datos adicionales sobre las personas responsables. En el código, que genera una matriz con datos de tareas, encontramos la identificación de la persona responsable y una solicitud para seleccionar el nombre de la persona, el apellido y el inicio de sesión (necesitamos saber el inicio de sesión si el apellido no se especifica).

    A continuación, agregamos los resultados de la solicitud a la matriz $ arResult. Entonces podemos trabajar con plantillas de componentes.

    El componente de lista de tareas estándar Bitrix24 tiene dos vistas: vista de lista y diagrama de Gantt. Era necesario cambiar ambos. Ambas visiones ya contenían una agrupación por proyectos. De acuerdo con el pedido del cliente, añadimos un nivel más de agrupación - agrupación por ID de la persona responsable.


    La personalización de ambas plantillas de componentes nos obligó a realizar cambios significativos en el código Javascript, no lo describiremos en detalle, solo mostraremos el resultado final (haga clic en las imágenes para ver la animación):



    c792f929c73d4a22ffbddca43b1277b6.gif

    15bcc61083fadf7f9e4f24e4cec05cb7.gif
    Tags: gestión de proyectos, personalizacion, Tareas
2 000 000+
organizaciones
ya están utilizando Bitrix24