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()] : [])))