Re-bonjour,
Voila la requête que j'ai écrite, à utiliser avec le plugin Requêtes personnalisées, qui est une extension de celle qui listait les devoirs des cours.
SELECT DISTINCT
c.id AS 'ID Cours'
, c.visible AS 'Ouvert'
, c.idnumber
, CONCAT('<a target="_new" href="%%WWWROOT%%/course/view.php?id=',c.id,'">',c.fullname,'</a>') AS 'Nom du cours'
, CONCAT('<a target="_new" href="%%WWWROOT%%/mod/assign/view.php?id=',cm.id,'">',a.name,'</a>') AS 'Nom du devoir'
, cm.visible AS 'Visible'
, IF (a.allowsubmissionsfromdate= 0, 'Pas de date',
DATE_FORMAT(FROM_UNIXTIME(a.allowsubmissionsfromdate), '%Y-%m-%d %H:%i'
)) AS 'Date ouverture'
, IF (a.duedate = 0, 'Pas de date', DATE_FORMAT(FROM_UNIXTIME(a.duedate) , '%Y-%m-%d %H:%i' )) AS 'Date de rendu'
, IF (a.cutoffdate = 0, 'Pas de date', DATE_FORMAT(FROM_UNIXTIME(a.cutoffdate), '%Y-%m-%d %H:%i' )) AS 'Date limite'
, a.id AS 'ID Devoir'
, f.filename AS 'Fichier consigne'
, FORMAT ( (f.filesize / 1024), 2) AS 'Taille Ko'
, FROM_UNIXTIME(f.timecreated) AS 'Créé'
, FROM_UNIXTIME(f.timemodified) AS 'Modifié'
, f.itemid
, f.filepath
FROM prefix_course_modules AS cm
JOIN prefix_modules AS m ON m.id = cm.module
JOIN prefix_course AS c ON c.id = cm.course
JOIN prefix_assign AS a ON a.id = cm.instance
JOIN prefix_context AS ctx ON ctx.instanceid = cm.id
LEFT JOIN prefix_files AS f ON f.contextid = ctx.id AND
f.component = 'mod_assign' AND f.filearea = 'introattachment' AND
filename != '.'
WHERE m.name = 'assign'
Par contre, j'ai un souci :
Pour la table des fichiers (files), si je laisse un JOIN simple, je n'affiche que les devoirs ayant un fichier attaché dans sa description.
Et si je met LEFT JOIN, j'ai du coup plusieurs lignes pour les devoirs ayant un fichier attaché.
Je ne sais pas trop comment faire pour lister tous les devoirs, mais éviter les lignes en doublon.
Séverin