feat: Permettre à l'élève de rendre un devoir avec réponse texte et pièces jointes
L'élève peut désormais répondre à un devoir via un éditeur WYSIWYG, joindre des fichiers (PDF, JPEG, PNG, DOCX), sauvegarder un brouillon et soumettre définitivement son rendu. Le système détecte automatiquement les soumissions en retard par rapport à la date d'échéance. Côté enseignant, une page dédiée affiche la liste complète des élèves avec leur statut (soumis, en retard, brouillon, non rendu), le détail de chaque rendu avec ses pièces jointes téléchargeables, et les statistiques de rendus par classe.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Scolarite\Domain\Repository;
|
||||
|
||||
use App\Administration\Domain\Model\User\UserId;
|
||||
use App\Scolarite\Domain\Exception\RenduNonTrouveException;
|
||||
use App\Scolarite\Domain\Model\Homework\HomeworkId;
|
||||
use App\Scolarite\Domain\Model\HomeworkSubmission\HomeworkSubmission;
|
||||
use App\Scolarite\Domain\Model\HomeworkSubmission\HomeworkSubmissionId;
|
||||
use App\Shared\Domain\Tenant\TenantId;
|
||||
|
||||
interface HomeworkSubmissionRepository
|
||||
{
|
||||
public function save(HomeworkSubmission $submission): void;
|
||||
|
||||
/** @throws RenduNonTrouveException */
|
||||
public function get(HomeworkSubmissionId $id, TenantId $tenantId): HomeworkSubmission;
|
||||
|
||||
public function findById(HomeworkSubmissionId $id, TenantId $tenantId): ?HomeworkSubmission;
|
||||
|
||||
public function findByHomeworkAndStudent(
|
||||
HomeworkId $homeworkId,
|
||||
UserId $studentId,
|
||||
TenantId $tenantId,
|
||||
): ?HomeworkSubmission;
|
||||
|
||||
/** @return array<HomeworkSubmission> */
|
||||
public function findByHomework(HomeworkId $homeworkId, TenantId $tenantId): array;
|
||||
|
||||
/**
|
||||
* @return array<string, string|null> Map homeworkId => submission status value (or null)
|
||||
*/
|
||||
public function findStatusesByStudent(UserId $studentId, TenantId $tenantId, HomeworkId ...$homeworkIds): array;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Scolarite\Domain\Repository;
|
||||
|
||||
use App\Scolarite\Domain\Model\HomeworkSubmission\HomeworkSubmissionId;
|
||||
use App\Scolarite\Domain\Model\HomeworkSubmission\SubmissionAttachment;
|
||||
|
||||
interface SubmissionAttachmentRepository
|
||||
{
|
||||
/** @return array<SubmissionAttachment> */
|
||||
public function findBySubmissionId(HomeworkSubmissionId $submissionId): array;
|
||||
|
||||
public function save(HomeworkSubmissionId $submissionId, SubmissionAttachment $attachment): void;
|
||||
|
||||
public function delete(HomeworkSubmissionId $submissionId, SubmissionAttachment $attachment): void;
|
||||
}
|
||||
Reference in New Issue
Block a user