diff --git a/templates/assessment_grading.html b/templates/assessment_grading.html index 020f44f..06193d7 100644 --- a/templates/assessment_grading.html +++ b/templates/assessment_grading.html @@ -23,7 +23,7 @@
Cette évaluation n'a pas encore d'éléments de notation configurés. Vous devez d'abord créer des exercices et leurs éléments de notation.
-Cette évaluation n'a pas encore d'éléments de notation configurés. Vous devez d'abord créer des exercices et leurs éléments de notation.
+| Élève @@ -164,10 +140,32 @@ |
|---|
|
-
+
+
+
+
+
+
+
+
+
+ {{ students|length }} élève(s)
+
|
{% set current_exercise = '' %}
{% for element in grading_elements %}
@@ -309,6 +307,61 @@
+
+
+
{% endif %}
@@ -409,7 +462,11 @@ function setupKeyboardNavigation() {
// Ctrl+S : Sauvegarder
if (e.ctrlKey && e.key === 's') {
e.preventDefault();
- saveForm();
+ if (isFullscreen) {
+ saveFormFromFullscreen();
+ } else {
+ saveForm();
+ }
}
// Ctrl+Z : Annuler dernière modification
@@ -785,6 +842,75 @@ function saveForm() {
}, 500);
}
+// Sauvegarder depuis le mode plein écran
+function saveFormFromFullscreen() {
+ const form = document.getElementById('grading-form');
+ const saveButtonFs = document.getElementById('save-button-fs');
+ const saveTextFs = document.getElementById('save-text-fs');
+ const saveSpinnerFs = document.getElementById('save-spinner-fs');
+
+ if (!form) {
+ console.error('Formulaire non trouvé');
+ showToast('Erreur : formulaire non trouvé', 'error');
+ return;
+ }
+
+ // Animation de sauvegarde en mode plein écran
+ if (saveButtonFs) {
+ saveButtonFs.disabled = true;
+ if (saveTextFs) saveTextFs.textContent = 'Sauvegarde...';
+ if (saveSpinnerFs) saveSpinnerFs.classList.remove('hidden');
+ }
+
+ // Synchroniser les données du mode plein écran vers le formulaire original
+ syncDataFromFullscreenToOriginal();
+
+ // Soumettre le formulaire original
+ setTimeout(() => {
+ form.submit();
+ }, 500);
+}
+
+// Synchroniser les données entre le mode plein écran et le formulaire original
+function syncDataFromFullscreenToOriginal() {
+ if (!isFullscreen || !fullscreenOverlay) return;
+
+ // Synchroniser tous les champs de saisie
+ const fsInputs = fullscreenOverlay.querySelectorAll('.grading-input, .comment-input');
+
+ fsInputs.forEach(fsInput => {
+ const name = fsInput.name;
+ if (name) {
+ const originalInput = document.querySelector(`[name="${name}"]`);
+ if (originalInput) {
+ originalInput.value = fsInput.value;
+ }
+ }
+ });
+
+ console.log('Données synchronisées du plein écran vers le formulaire original');
+}
+
+// Synchroniser les données du formulaire original vers le mode plein écran
+function syncDataFromOriginalToFullscreen() {
+ if (!isFullscreen || !fullscreenOverlay) return;
+
+ // Synchroniser tous les champs de saisie
+ const originalInputs = document.querySelectorAll('#grading-form .grading-input, #grading-form .comment-input');
+
+ originalInputs.forEach(originalInput => {
+ const name = originalInput.name;
+ if (name) {
+ const fsInput = fullscreenOverlay.querySelector(`[name="${name}"]`);
+ if (fsInput) {
+ fsInput.value = originalInput.value;
+ }
+ }
+ });
+
+ console.log('Données synchronisées du formulaire original vers le plein écran');
+}
+
// Afficher/Masquer l'aide clavier
function toggleKeyboardHelp() {
const help = document.getElementById('keyboard-help');
@@ -1031,6 +1157,192 @@ function clearStudentFilter() {
}
}
+// Gestion du mode plein écran
+let isFullscreen = false;
+let fullscreenOverlay = null;
+
+function toggleFullscreen() {
+ const btn = document.getElementById('fullscreen-btn');
+ const btnText = btn.querySelector('span');
+ const btnIcon = btn.querySelector('svg path');
+ const tableContainer = document.querySelector('.bg-white.shadow.rounded-lg');
+
+ if (!isFullscreen) {
+ // Créer l'overlay plein écran
+ fullscreenOverlay = document.createElement('div');
+ fullscreenOverlay.className = 'fullscreen-overlay';
+
+ // Créer la structure plein écran optimisée
+ fullscreenOverlay.innerHTML = `
+