Mostrar classes sense assignatura corresponent a getCurrentClasses
Abans perquè una classe es retornés per getCurrentClasses havia
d'existir una assignatura amb el mateix nom a la taula subjects.
Això es feia perquè al calendari a part de les classes hi ha
esdeveniments que no són classes i voliem treure aquests del llistat per
mostrar només les útils. Tot i així, hem decidit continuar mostrant-los
perquè moltes vegades hi ha problemes amb assignatures que no hem tingut
en compte o que el seu nom és una mica diferent al que hem guardat.
Change-Id: Ie0ebc98e5f4c5f84d3e03fef6947b79ae8a4919e
diff --git a/inc/Classes.php b/inc/Classes.php
index 04b802d..16a9961 100644
--- a/inc/Classes.php
+++ b/inc/Classes.php
@@ -12,9 +12,9 @@
$isSignedIn = Users::isSignedIn();
- $sentence = 'SELECT c.id, c.calendar_name, c.room, c.begins, c.ends, s.id subject_id, s.friendly_name'.($isSignedIn ? ', u_s.id user_subject_id' : '').'
+ $sentence = 'SELECT c.id, c.calendar_name, c.room, c.begins, c.ends, c.calendar_name, s.id subject_id, s.friendly_name'.($isSignedIn ? ', u_s.id user_subject_id' : '').'
FROM classes c
- INNER JOIN subjects s
+ LEFT OUTER JOIN subjects s
ON c.calendar_name = s.calendar_name
'.($isSignedIn ? 'LEFT OUTER JOIN user_subjects u_s
ON s.id = u_s.subject_id
@@ -26,7 +26,7 @@
u_s.user_id = :user_id OR
u_s.subject_id IS NULL
)': '').'
- ORDER BY '.($isSignedIn ? 'u_s.subject_id IS NULL, ' : '').'s.friendly_name ASC';
+ ORDER BY s.id IS NULL, '.($isSignedIn ? 'u_s.subject_id IS NULL, ' : '').'s.friendly_name ASC';
$query = $con->prepare($sentence);
if (!$query->execute(($isSignedIn ? ['user_id' => Users::getUserId()] : [])))