@dax Ainda é o caso em 2020 que não é possível limitar as postagens em um tópico aos usuários do grupo do autor?
Queremos usar o Discourse com nosso sistema de aprendizado online… queremos ter um conjunto de cerca de sete tópicos pelos quais diferentes coortes (grupos) de usuários avançam, de modo que eles só possam ver as postagens dentro de seu próprio grupo. Preferiríamos ter um único conjunto de tópicos em vez de criar os mesmos tópicos repetidamente para cada nova coorte.
Talvez outra nova funcionalidade tenha sido lançada no meio tempo que torne isso possível? Obrigado por qualquer opinião.
@sam Obrigado pela sua rápida resposta! Vou tentar esclarecer com nosso cenário exato:
Temos quatro categorias configuradas, uma para cada um dos quatro cursos que oferecemos.
Em cada categoria (curso), temos aproximadamente 5 a 10 tópicos, um para cada “Lição” do curso… além de alguns extras como “Perguntas Técnicas”, “Apresente-se”, etc. À medida que cada Lição chega, os alunos são convidados a fazer contribuições no tópico relacionado.
Teremos muitas turmas de alunos passando por esses cursos e queremos limitar as postagens em um tópico ao “grupo” de sua turma. Dessa forma, mantemos as mesmas categorias e tópicos estáticos e apenas modificamos as propriedades do usuário para atribuí-los a diferentes grupos, que poderíamos criar (?) via API e atribuir dinamicamente aos alunos (?).
Então esse é o contexto que me levou a me fixar na pergunta principal: “Dentro de um tópico específico, posso criar uma mensagem visível apenas para usuários que pertencem a um grupo específico?”
@waffleslop Incrível. Obrigado. Você cria essas subcategorias manualmente cada vez que tem uma nova turma? (ou talvez via API?)
Eu esperava evitar isso, pois para cada turma terei que configurar os mesmos 5 a 10 novos tópicos em uma subcategoria. Também pode haver várias turmas simultâneas em qualquer execução do curso, o que significa que teria que ser criativo com a nomenclatura. Então, seguindo seu exemplo … 2020-05-cohort-A Conversas do Curso
… ou talvez haja uma maneira de criar sub-sub-subcategorias, ainda não verifiquei isso.
Quando tiver um novo grupo, crie uma nova categoria para ele. Peça aos alunos que cliquem no ícone e depois em “novo tópico” para criar um novo tópico para aquela tarefa na categoria do grupo. Fiz com que cada tarefa fosse marcada com uma tag de tarefa para facilitar o acompanhamento de quem e quando realizou a tarefa (e criei distintivos que eram concedidos se eu “curtisse” o tópico deles; inclusive criei um script para fazer isso para todos, gerar um CSV e enviá-lo ao LMS da universidade que eu não queria usar).
Estou correto ao pensar que isso significa que não há como usar subcategorias para agrupar as turmas sob um curso e, em seguida, usar permissões de grupo para limitá-las a essa subcategoria? @waffleslop você conseguiu limitar por subcategoria na sua abordagem? Talvez eu esteja interpretando mal essa mensagem da interface.
Se não for possível limitar uma subcategoria a um grupo, @pfaffman, acho que sua abordagem (obrigado por explicar), onde você cria uma nova categoria para cada turma, é provavelmente a única opção.
Como nossos 10 ou mais tópicos em cada curso são bastante fixos, têm nomes e numerações específicos, etc., estou pensando em criá-los via API sempre que uma nova turma for criada em nosso sistema. Então, para cada nova turma que criarmos em nosso LMS, usarei a API para:
criar uma nova categoria no Discourse para essa turma
criar um novo grupo no Discourse com acesso a essa categoria
criar os 10 ou mais tópicos corretos na nova categoria.
sempre que um aluno for adicionado a uma turma em nosso LMS, adicioná-lo ao grupo correto no Discourse (e removê-lo se ele sair)
Você já tentou essa abordagem em vez de confiar no aluno para criar o tópico? Estou pensando sobre diferentes alunos criando tópicos com nomes ligeiramente diferentes para a mesma tarefa no curso.
Não ficou claro sua sugestão de usar “categorias somente leitura” para um aspecto desse problema.
Muito obrigado por dedicar tempo para escrever suas ideias!
Aha. Obrigado @waffleslop. Ok, então você está dizendo que é possível limitar o subcategoria ao grupo e, assim, impedir o acesso a outros subcategorias. Eu estava interpretando mal a mensagem da interface que copiei acima.
Portanto, nossa abordagem provavelmente será usar a API para:
criar uma nova subcategoria no Discourse para cada coorte
criar um novo grupo no Discourse com acesso a essa subcategoria (bem como à categoria pai, conforme a mensagem da interface acima)
criar os cerca de 10 tópicos corretos na nova subcategoria
sempre que um aluno for adicionado a uma coorte no nosso LMS, adicioná-lo ao grupo correto no Discourse (e removê-lo se ele sair)
Tenho quase certeza de que o pai pode ser somente leitura, enquanto as subcategorias são restritas apenas a um grupo.
Você pode, mas dessa forma você precisa criar (e manter, a menos que acerte de primeira) as categorias somente leitura com as instruções apenas uma vez, e ao criar uma turma, você só precisa criar uma única subcategoria.
Acho que é por isso que usei tags. Eles marcarão o tópico com a tag da tarefa e, assim, o tópico pode ser descritivo, mas não fará mal se escolherem um nome ruim.
Para quem adota a abordagem descrita acima — ou seja, usar subcategorias para cada ‘cohort’ do curso e repetir os tópicos de discussão em cada uma —, certifique-se de ativar a configuração ‘permitir títulos de tópicos duplicados’. Caso contrário, o Discourse não permitirá que você repita os mesmos tópicos em cada subcategoria.
Essa é parte da razão pela qual gosto da minha solução de ter uma única categoria somente para leitura com o conteúdo e fazer com que os estudantes discutam esse conteúdo com novos tópicos na categoria específica de cada turma.
Olá @Daniel_McQuillen. Fiquei curioso sobre como foi seu curso. Estou pensando em oferecer três cursos, cada um com múltiplas turmas, e gostaria de saber sua experiência até agora.
Além disso, você está encerrando algum de seus cursos ou o acesso às discussões?
Atualmente estamos em fase beta, mas a integração com o Discourse está indo bem. Estamos usando a integração SSO para forçar o login no nosso site. Isso tem funcionado bem, embora eu tenha notado:
O Discourse não aceita nomes de usuário com o símbolo “@”… ele truncar o nome de usuário apenas na primeira parte antes do “@”. Isso pode causar problemas se você posteriormente chamar as APIs do Discourse usando esse nome de usuário como argumento. O Discourse não reconhecerá um nome de usuário como someone@example.com, pois no Discourse o nome de usuário desse usuário é armazenado como “someone”… uma maneira fácil de contornar isso é não permitir o uso do símbolo “@” nos seus próprios nomes de usuário!
Quando alguém se registra no seu próprio site, você precisa chamar explicitamente a API do Discourse para sincronizar o usuário SSO, pois talvez queira realizar ações com esse usuário (por exemplo, adicioná-lo a um grupo do Discourse) antes de ele visitar o site do Discourse pela primeira vez (o que sincronizaria automaticamente o SSO). Tenho um site baseado em Django, então estou usando a biblioteca pydiscourse, que possui um método sync_sso que torna isso bastante fácil (pydiscourse · PyPI)
Sim, vamos expirar alguns dos nossos cursos, caso em que o servidor chamará a API do Discourse para remover o usuário do grupo geral daquele curso, bem como do grupo dedicado à sua turma dentro desse grupo.
Criei tabelas no meu site Django que acompanham esses grupos de “cursos” e os vários grupos de “turmas” dentro de cada curso. Então, uso essas informações ao adicionar/remover alunos, etc.: