views.php 5.44 KB
Newer Older
1
2
3
<?php

class Views {
4

5
6
7
8
9
10
11
12
13
14
15
16
17
18
    private $admin;
    private $utclogin;
    private $surname;
    private $firstname;

    public function __construct ($admin, $utclogin, $surname, $firstname) {
      $this->admin=$admin;
      $this->utclogin=$utclogin;
      $this->surname=$surname;
      $this->firstname=$firstname;
    }

    public function isActive() {
      return $this->admin->isActive();
19
20
    }

21
    public function printHtmlBegin() {
22
23
24
25
26
27
28
    echo '<html>';
    echo '<head>';
    echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';
    echo '<title>Api Sub</title>';
    echo '<link href="css/main.css" type="text/css" rel="stylesheet"/>';
    echo '</head>';
    echo '<body>';
29
    echo '<h1>Inscriptions aux Api</h1>';
30
31
    }

32
    public function printInstructions($row) {
33
34
        echo '<h2>Instructions</h2>';
        echo '<p>Les Api sont décrites ici : <b><a href="https://apint.utc.fr/cat">https://apint.utc.fr/cat</a></b></p>';
35
36
37
        echo "<p>Veillez à avoir bien lu la fiche avant de vous inscrire (pré-requis, dates...). Vous pouvez vous inscrire et vous désinscrire <b>tant que votre inscription n'est pas validée</b>.</p>";
        echo "<p>La présence à une Api validée est obligatoire.<p>";
        echo '<p>Vous ne <b>pouvez pas</b> suivre deux Api qui se déroulent lors de la même semaine (sauf pour le cas particulier de l\'Api <i>Animer une Api</i>). Si vous choisissez deux Api la même semaine, vous serez inscrit à la première qui sera validée.</p>';
38
39
    }

40
41
42
    public function printUser($isResp, $isAdmin) {
        echo "<p><i>$this->firstname $this->surname</i> (<b>$this->utclogin</b>)</p>";
        if ($isResp) {
43
          echo '<a href="index.php?mode=resp">[Gérer ses Api]</a> ';
44
45
        }
        if ($isAdmin) {
46
47
48
49
          echo '<a href="index.php?mode=admin">[Super-pouvoirs]</a> ';
        }
        if ($isResp || $isAdmin) {
          echo '<a href="index.php">[Accueil]</a>';
50
        }
Stephane Crozat's avatar
Fix #1    
Stephane Crozat committed
51
52
    }

53
    private function printApi($row) {
54
55
56
57
58
      return "$row[normcode] - $row[name] (du $row[normdbegin] au $row[normdend]) [Demandes $row[nbask] | Inscriptions $row[nbval]/$row[size]]";
    }

    private function printWeek($row) {
      return "$row[year] Semaine $row[week]";
59
    }
60

61
62
63
64
65
66
67
68
69
    private function printStudent($row) {
      if (!$row['surname']) {
        return "$row[utclogin]";
      }
      else {
        return "$row[firstname] $row[surname] ($row[email])";
      }
    }

70
    public function printSubList($list) {
71
      #KNOWN_BUB #TODO Il est possible de ses déinscrire en utilisant directement l'URL
72
73
      if ($list) {
        echo '<h2>Vos inscriptions</h2>';
74
        $week = '';
75
        foreach ($list as $row) {
76
77
78
79
          if ($row['week'] != $week) {
            $week = $row['week'];
            echo "<h3>".$this->printWeek($row)."</h3>";
          }
80
          echo '<p>';
81
          if ($this->isActive()) {
82
83
84
85
86
87
            if ($row['validation']) {
              echo "<span class='validation'>[validé]</span> ";
            }
            else {
              echo "<a href='index.php?action=unsub&api=$row[id]'>[désinscription]</a> ";
            }
88
          }
89
          echo $this->printApi($row);
90
91
92
93
94
95
96
97
          echo ' ['.$row['semester'].$row['year'].', inscrit le '.$row['subdate'].']';
          echo '</p>';
        }
      }
      else {
        echo '<h2>Aucune inscription</h2>';
      }
    }
98

99
  public function printApiList($list) {
100
101
    if ($list) {
      echo '<h2>Liste des Api</h2>';
102
      $week = '';
103
      foreach ($list as $row) {
104
105
106
107
        if ($row['week'] != $week) {
          $week = $row['week'];
          echo "<h3>".$this->printWeek($row)."</h3>";
        }
108
        echo '<p>';
109
        if ($this->isActive()) {
110
111
112
113
114
115
116
117
118
          if ($row['open'] && $row['is_available']) {
            echo "<a href='index.php?action=sub&api=$row[id]'>[inscription]</a> ";
          }
          elseif (! $row['is_available']) {
            echo "[-] ";
          }
          else {
            echo '[complet] ';
          }
119
        }
120
        echo $this->printApi($row);
121
122
123
124
125
126
127
        echo '</p>';
      }
    }
    else {
      echo '<h2>Aucune Api</h2>';
    }
  }
Stephane Crozat's avatar
Fix #1    
Stephane Crozat committed
128

129
  public function respValidation ($listsub) {
130
    // #KNOWN_BUG Si un resp a plusieurs Api, il peut changer un inscrit entre ses deux Api en modifiant l'URL (pas via l'interface)
131
132
133
134
135
136
    echo '<h1>Interface Responsable d\'Api</h2>';
    if ($listsub) {
      $api = '';
      foreach ($listsub as $sub) {
        if ($api != $sub['id']) {
          $api = $sub['id'];
137
138
          echo '<h2>'.$this->printWeek($sub).'</h2>';
          echo '<h3>'.$this->printApi($sub).'</h3>';
139
        }
140
141
142
        if ($sub['utclogin']) {
          if ($sub['validation']) {
            // Subscription already validated
143
            echo '<p><b>[validé] </b>'.$this->printStudent($sub).'</p>';
144
145
146
          }
          else if (is_null($sub['validation'])) {
            // At least one waiting subscription
147
            echo "<p> <a href='index.php?action=validate&api=$sub[id]&login=$sub[utclogin]&mode=resp'>[valider]</a> ".$this->printStudent($sub)."</p>";
148
149
150
151
152
153
154
155
156
          }
          else {
            // validation = FALSE lignes ignored
          }
        }
        else {
          // Not yet any subscription for this Api (LEFT JOIN might have add null student line)
          echo "<p>Aucune inscription à gérer</p>";
        }
157
158
159
160
161
      }
    }
    else {
      echo "<p>Aucune Api à gérer</p>";
    }
162
163
164
  }

  public function adminFunction ($utclogin) {
165
    echo "<p>Je dois vérifier que $utclogin a vraiment des super-pouvoirs...</p>";
166
  }
167
}