Mostrar les classes amb un marge de 5 minuts

A més, les assignatures en "temps de marge" es mostraran amb menys
prioritat a la llista (més avall).

Change-Id: If546ace78a91c292b7bce8bde8fc27b42dfb2e69
diff --git a/inc/Classes.php b/inc/Classes.php
index 16a9961..6bfa0c8 100644
--- a/inc/Classes.php
+++ b/inc/Classes.php
@@ -4,15 +4,20 @@
 class Classes {
   // Marge en segons per seguir retornant una assignatura abans o després que
   // acabi, quan s'obtenen les classes actuals.
-  const MARGIN_BEGINS = 0*60;
-  const MARGIN_ENDS = 0*60;
+  const MARGIN_BEGINS = 5*60;
+  const MARGIN_ENDS = 5*60;
 
   public static function getCurrentClasses() {
     global $con;
 
     $isSignedIn = Users::isSignedIn();
 
-    $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' : '').'
+    $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' : '').',
+          CASE
+            WHEN c.begins > UNIX_TIMESTAMP() OR c.ends < UNIX_TIMESTAMP()
+              THEN 0
+              ELSE 1
+          END is_current
         FROM classes c
         LEFT OUTER JOIN subjects s
           ON c.calendar_name = s.calendar_name
@@ -20,13 +25,17 @@
           ON s.id = u_s.subject_id
         ' : '').
         'WHERE
-          c.begins - '.self::MARGIN_BEGINS.' < UNIX_TIMESTAMP() AND
-          c.ends + '.self::MARGIN_ENDS.' > UNIX_TIMESTAMP()'.($isSignedIn ? ' AND
+          c.begins - '.self::MARGIN_BEGINS.' <= UNIX_TIMESTAMP() AND
+          c.ends + '.self::MARGIN_ENDS.' >= UNIX_TIMESTAMP()'.($isSignedIn ? ' AND
           (
             u_s.user_id = :user_id OR
             u_s.subject_id IS NULL
           )': '').'
-        ORDER BY s.id IS NULL, '.($isSignedIn ? 'u_s.subject_id IS NULL, ' : '').'s.friendly_name ASC';
+        ORDER BY
+          s.id IS NULL,
+          is_current DESC,
+          '.($isSignedIn ? 'u_s.subject_id IS NULL,
+          ' : '').'s.friendly_name ASC';
     $query = $con->prepare($sentence);
     
     if (!$query->execute(($isSignedIn ? ['user_id' => Users::getUserId()] : [])))