Plugin de gerenciamento de projetos

Este é um plugin para gerenciar dependências de tarefas no Discourse.
Ele basicamente transforma uma categoria em um projeto e os tópicos dessa categoria em tarefas desse projeto.
Você pode definir dependências entre as tarefas. Essencialmente, quais tarefas precisam ser concluídas antes que outras possam começar. Você também pode definir datas de início, datas de término e a duração da tarefa. Ele definirá automaticamente as datas de início e término das tarefas dependentes se você alterá-las em algum lugar.
Ele também exibirá a data de início mais cedo e a data de término mais tardia no cabeçalho da categoria.
A duração total do projeto também será calculada. Você também pode bloquear tarefas para que o cálculo automático das datas de início e término não as afete.
Este vídeo do YouTube explica como usá-lo:

A fazer:

  • exibir mensagens em telas móveis / estreitas
  • adicionar uma visualização de lista de tópicos para mostrar tarefas em ordem topológica (+ recuar um pouco os dependentes)
  • usar o message bus para notificar outros usuários sobre alterações
  • adicionar capacidade de revisão para tarefas do projeto
  • adicionar suporte para subprojetos (um subprojeto será uma tarefa em um projeto, mas também sua própria categoria)
  • tornar a interface mais bonita (links em vez de botões, etc.)
  • escrever testes
  • adicionar visualização de calendário @Bank_Live proposto em Projects management plugin - #10 by Bank_Live
  • status da tarefa: concluído / não concluído ainda
  • BUG: chamar setup projects_task na mudança de categoryid em vez de composer init

Instalação

Siga o tutorial Instalar um Plugin
do Discourse Meta oficial, usando git clone https://github.com/spirobel/projects.git
como comando do plugin.

Poema

Eu dependo de você.
Você depende de mim.
Quem é o dependente?
E quem é o dependido?

código no GitHub

30 curtidas

Boa ideia! Como posso adicionar meu próprio campo personalizado (como uma data para o plugin de eventos, por exemplo) criando uma nova tarefa como um novo tópico?

3 curtidas

Não tenho certeza se entendi sua pergunta corretamente. O que exatamente você quer fazer?

Quero adicionar meu próprio campo, como título e tags, para que possa ser facilmente acessado posteriormente em formato JSON e possa ser facilmente manipulado/calculado, para pesquisa, etc.

2 curtidas

Na verdade, isso não é um problema trivial. De um lado, é preciso lidar com muitos casos no frontend. Ainda não resolvi todos para este plugin. Como você pode ver, a capacidade de revisão ainda está na lista de tarefas. Além disso, há a questão de salvar os dados e se é uma boa ideia usar o pluginstore ou não. O tema é abordado neste tópico:

Também escrevi este plugin porque queria descobrir se tabelas reais podem realmente trazer grandes benefícios. Toda essa lógica de dependência e a verificação de erros no backend com um rollback caso seja apenas um teste “seco” não seriam possíveis usando apenas o pluginstore. Acredito que é um trade-off. Para alguns casos de uso, o pluginstore é suficiente. Mas, para fazer coisas mais complexas, não há como evitar tabelas “reais”. Também quero escrever um post no blog sobre isso depois de explorar um pouco mais. Se olharmos para isso de forma mais abstrata, o que queremos fazer é o seguinte: queremos usar o Discourse para editar dados estruturados de forma colaborativa. No momento, é realmente difícil “simplesmente adicionar” um campo personalizado a uma postagem ou tópico, mas acredito que isso pode ser facilitado. Outra coisa que quero fazer é remover completamente o editor do compositor e usar o tópico apenas para entrada de dados. Não sei o que disso resultará, mas aqui está um brainstorming: Why not create an OPEN SOURCE platform dedicated to open source drug discovery ? · Issue #581 · OpenSourceMalaria/OSM_To_Do_List · GitHub

Talvez esses dois tipos de plugins também possam ser combinados, como explico nesta issue do GitHub. Assim, você entra com dados em tópicos que não têm o editor d-editor normal, mas sim um editor especializado para entrada de dados, e depois referencia esses dados em tópicos que ainda possuem o d-editor. Esses outros tópicos também podem ter alguns campos extras, como neste plugin de gerenciamento de projetos.

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

Leve tudo isso com um grão de sal, pois ainda não tive tempo de testar isso adequadamente. Farei um relatório sobre isso quando voltar das minhas férias :smiley:

5 curtidas

Infelizmente, o plugin não está funcionando agora.

Quebrado

1 curtida

Ótimo! Espero que no futuro seja possível adicionar um gráfico para cada período.

Por favor, poste a mensagem de erro para que eu possa te ajudar? :slightly_smiling_face:
Além disso: este plugin usa suas próprias tabelas, então você precisa rodar as migrações novamente após a instalação. Deve ser algo como rake db:migrate. Consulte o guia de instalação para mais detalhes.

1 curtida

Ok, você pode desenhar uma imagem do que exatamente você gostaria de ter? Vou pensar sobre isso. :smiley:

1 curtida

Ok, quero dizer o mesmo.

1 curtida

Ok, adicionei à lista de tarefas, faz sentido. Estou de férias agora. Vou dar uma olhada assim que voltar :smiley:

Esse estilo deixará a página mais funcional.

Obrigado por criar essas coisas. Com certeza vou esperar para usar.

1 curtida

De fato, houve um problema na compilação dos ativos.

Corrigi agora e instalei no meu servidor: https://cidian.social/c/build-house/5
Quero usar este plugin para planejar meus projetos, então continuarei melhorando-o.

2 curtidas

Ainda há um problema ao inicializar:

FALHA
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/12/main falhou com retorno #<Process::Status: pid 41 exit 1>
Local da falha: /pups/lib/pups/exec_command.rb:112:in `spawn'
Execução falhou com os 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 curtida

Olá, obrigado por tentar novamente! Em qual versão você está? A última versão com a qual testei foi: 2.5.0.beta4. Ela está rodando em um servidor de teste aqui: https://cidian.social/c/build-house/5

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

Olá, aqui é um novo usuário do Discourse na plataforma artística da comunidade. Estou procurando um plugin de gerenciamento de projetos para pequenos projetos dentro da nossa comunidade no Discourse. Esse plugin ainda está em uso?

1 curtida

Este foi o primeiro plugin que escrevi para aprender a criar plugins para o Discourse. Atualmente, ele está em um estado incompleto. Ainda não decidi em qual direção quero levar este plugin, mas tenho certeza de que quero continuar trabalhando nele e reaproveitar o código que escrevi. Ficarei feliz se você puder me contar sobre seu caso de uso. Também é possível entrar em contato via mensagem privada, se for mais confortável para você! :smiley:

5 curtidas

Obrigado pelo seu excelente trabalho @spirobel!

Qual é o status atual deste plugin? Gostaria muito de usá-lo na minha instância, mas estou cauteloso em instalar um plugin que está em um estado de desenvolvimento desconhecido.

Obrigado!

3 curtidas

Estou atualmente trabalhando em uma reescrita do meu plugin de editor básico; depois disso, posso voltar a este. No entanto, precisaria repensar qual seria o público-alvo para esse plugin. Ficarei feliz em saber para o que vocês gostariam de usá-lo. O mesmo vale para qualquer pessoa lendo isto: basta escrever como vocês gostariam de usar o Discourse para gerenciar seus projetos. Talvez possamos fazer um brainstorm juntos :slight_smile: :+1:

2 curtidas