has_new_lessons considera o progresso do usuário
TLDR:
has_new_lessonsretornafalsequando o usuário autenticado já concluiu todas as aulas publicadas nos últimos 30 dias.
Contexto
Hoje has_new_lessons retorna true sempre que qualquer aula do curso foi publicada nos últimos 30 dias, independente de o usuário já tê-la assistido. Isso faz o selo “novo” continuar visível mesmo depois de o usuário concluir todo o conteúdo novo.
Objetivos
- Retornar
falsequando o usuário autenticado concluiu todas as aulas publicadas nos últimos 30 dias - O endpoint é apenas autenticado — o acesso anônimo é bloqueado no nível da rota
Fora de escopo
— (não registrado na spec original)
Mudanças
apps/courses/serializers.py
- Atualizar _course_has_new_lessons para exigir o parâmetro user (sem default)
- Retornar true apenas se existirem aulas novas que o usuário não concluiu (progress.completed_at nulo)
- Atualizar get_has_new_lessons em CourseSerializer e CourseModuleSerializer para passar request.user a partir do contexto
Como verificar
- Curso com aulas novas (publicadas há menos de 30 dias) e usuário sem nenhuma concluída →
has_new_lessons: true - Curso com aulas novas e usuário que concluiu todas →
has_new_lessons: false - Curso com aulas novas e usuário que concluiu algumas mas não todas →
has_new_lessons: true - Curso sem aulas publicadas nos últimos 30 dias →
has_new_lessons: false
Documentação
Atualizar a documentação de cursos com a regra revisada de has_new_lessons.