Plugin de gestión de proyectos

Este es un plugin para gestionar dependencias de tareas con Discourse.
Básicamente convierte una categoría en un proyecto y los temas de esta categoría en tareas de dicho proyecto.
Puedes definir dependencias entre tareas. Esencialmente, qué tareas deben terminar antes de que otras puedan comenzar. También puedes definir fechas de inicio, fechas de finalización y la duración de la tarea. Ajustará automáticamente las fechas de inicio y finalización de las tareas dependientes si las modificas en algún lugar.
También mostrará la fecha de inicio más temprana y la fecha de finalización más tardía en la cabecera de la categoría.
La duración total del proyecto también se calculará. También puedes bloquear tareas para que el cálculo automático de las fechas de inicio y finalización no las afecte.
Este video de YouTube explica cómo usarlo:

POR HACER:

  • mostrar mensajes en dispositivos móviles / pantallas estrechas
  • añadir una vista de lista de temas para mostrar tareas en orden topológico (+sangrar un poco a los dependientes)
  • usar el bus de mensajes para notificar a otros usuarios de los cambios
  • añadir capacidad de revisión para las tareas del proyecto
  • añadir soporte para subproyectos (un subproyecto será una tarea en un proyecto pero también su propia categoría)
  • hacer la interfaz de usuario más bonita (enlaces en lugar de botones, etc.)
  • escribir pruebas
  • añadir vista de calendario @Bank_Live propuesto en Projects management plugin - #10 by Bank_Live
  • estado de la tarea: hecho / no hecho aún
  • ERROR: llamar a setup projects_task al cambiar categoryid en lugar de composer init

Instalación

Sigue la guía Instalar un plugin
del Meta oficial de Discourse, usando git clone https://github.com/spirobel/projects.git
como comando del plugin.

Poema

Dependo de ti.
Tú dependes de mí.
¿Quién es el dependiente?
¿Y quién es el dependido?

código en GitHub

30 Me gusta

Buena idea, ¿cómo puedo agregar mi propio campo personalizado (como una fecha para un plugin de eventos, etc.) creando una nueva tarea como un nuevo tema?

3 Me gusta

No estoy seguro de haber entendido bien tu pregunta. ¿Qué es exactamente lo que quieres hacer?

Quiero agregar mi propio campo, como el título y las etiquetas, para que luego pueda accederse fácilmente en formato JSON y pueda manipularse/calcularse fácilmente, para búsquedas, etc.

2 Me gusta

En realidad, eso no es un problema trivial. Por un lado, tienes que manejar muchos casos en el frontend. Aún no he manejado todos los casos para este complemento. Como puedes ver, la capacidad de revisión sigue en la lista de tareas pendientes. Luego está el problema de guardar los datos y si es una buena idea usar la tienda de complementos o no. El tema se aborda en este hilo:

También escribí este complemento porque quería averiguar si las tablas reales pueden realmente aportar un gran beneficio. Toda esta lógica de dependencias y la verificación de errores en el backend con un rollback si es solo un “disparo” en seco no serían posibles usando solo la tienda de complementos. Creo que es un compromiso. Para algunos casos de uso, la tienda de complementos es suficiente. Pero creo que para hacer cosas más complejas no hay otra opción que usar tablas “reales”. También quiero escribir una entrada de blog sobre esto después de explorar un poco más el tema. Si lo vemos de manera más abstracta, lo que queremos hacer es esto: queremos usar Discourse para editar datos estructurados de forma colaborativa. En este momento es realmente difícil “simplemente agregar” un campo personalizado a una publicación o tema, pero creo que se puede facilitar. Otra cosa que quiero hacer es eliminar completamente el editor del compositor y usar el tema solo para la entrada de datos. No sé qué saldrá de esto, pero aquí hay algunas ideas:

Quizás estos dos tipos de complementos también se puedan combinar como explico en este problema de GitHub. Así, ingresas datos en temas que no tienen el editor d normal, sino un editor especializado para la entrada de datos, y luego haces referencia a estos datos en temas que aún tienen el editor d. Estos otros temas también podrían tener algunos campos adicionales, como en este complemento de gestión de proyectos.

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/templates/components/composer-editor.hbs

Toma todo esto con un grano de sal, ya que no he tenido tiempo de probarlo adecuadamente. Haré un resumen sobre esto cuando regrese de mis vacaciones :smiley:

5 Me gusta

Por desgracia, el plugin no quiere recibir boostap ahora.

Roto

1 me gusta

¡Es genial! Ojalá se pueda añadir un gráfico para cada período en el futuro.

¿Podrías publicar el mensaje de error para que pueda ayudarte? :slightly_smiling_face:
Además: este plugin utiliza sus propias tablas, por lo que necesitas volver a ejecutar las migraciones después de la instalación. Debería ser algo como rake db:migrate. Consulta la guía de instalación para más detalles.

1 me gusta

¡Claro! ¿Podrías hacer un dibujo de lo que te gustaría tener exactamente? Lo pensaré. :smiley:

1 me gusta

Ok, quiero decir lo mismo.

1 me gusta

Vale, lo he añadido a la lista de tareas pendientes, tiene sentido. Ahora estoy de vacaciones. Lo revisaré cuando vuelva :smiley:

Este estilo hará que la página se vea más funcional.

Gracias por crear estas cosas. Definitivamente esperaré para usarlas.

1 me gusta

De hecho, hubo un problema con la compilación de los activos.

Ya lo solucioné y lo instalé en mi servidor: https://cidian.social/c/build-house/5
Quiero usar este plugin para planificar mis proyectos, así que seguiré mejorándolo.

2 Me gusta

Aún hay un problema al iniciar:

FAILED
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/12/main falló con el retorno #<Process::Status: pid 41 exit 1>
Ubicación del error: /pups/lib/pups/exec_command.rb:112:in `spawn'
Ejecución fallida con los parámetros {"cmd"=>["chown -R root /var/lib/postgresql/12/main", "[ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0", "chown -R postgres:postgres /shared/postgres_data", "chown -R postgres:postgres /var/run/postgresql"]}
1 me gusta

Hola, ¡gracias por intentarlo de nuevo! ¿En qué versión estás? La última versión con la que lo probé es: 2.5.0.beta4. Se está ejecutando en un servidor de prueba aquí: https://cidian.social/c/build-house/5

Ok, parece que es este problema:
https://meta.discourse.org/t/clean-install-upgrade-fails-because-of-pg12/151212

Hola, soy un nuevo usuario de Discourse en la plataforma artística comunitaria. Estoy buscando un posible plugin de gestión de proyectos para pequeños proyectos dentro de nuestra comunidad de Discourse. ¿Este plugin sigue en uso?

1 me gusta

Este fue el primer plugin que escribí para aprender a desarrollar plugins para Discourse. Actualmente está en un estado incompleto. Aún no he decidido en qué dirección quiero llevar este plugin, pero definitivamente quiero seguir trabajando en él y reutilizar el código que escribí. Me encantaría que me contaras sobre tu caso de uso. También, si te resulta más cómodo, puedes escribirme por mensaje privado. :smiley:

5 Me gusta

¡Gracias por tu gran trabajo @spirobel!

¿Cuál es el estado actual de este plugin? Me encantaría usarlo en mi instancia, pero tengo dudas de instalar un plugin que se encuentra en un estado de desarrollo desconocido.

¡Gracias!

3 Me gusta

Actualmente estoy trabajando en una reescritura de mi plugin de editor básico; después podría volver a este. Sin embargo, tendría que repensar quién sería el grupo objetivo de este plugin. Me gustaría saber para qué les gustaría usarlo. Lo mismo para cualquiera que esté leyendo esto: simplemente escriban cómo les gustaría usar Discourse para gestionar sus proyectos. Quizás podamos hacer una lluvia de ideas juntos :slight_smile: :+1:

2 Me gusta