Exemplo n.º 1
0
 static function getGroupsWithGrades()
 {
     $grade = new Grades();
     $qry = 'SELECT gi.group_id as groupsIDs' . ' FROM grades, group_inbox gi WHERE ' . ' gi.notice_id = grades.noticeid' . ' group by gi.group_id';
     $grade->query($qry);
     // all select fields will
     // be written to fields of the Grade object. It is required that
     // select fields are named after the Grade fields.
     $foundgroups = array();
     while ($grade->fetch()) {
         $foundgroups[] = $grade->groupsIDs;
     }
     $grade->free();
     return User_group::multiGet('id', $foundgroups);
 }
Exemplo n.º 2
0
 function getGroups()
 {
     // Don't save groups for repeats
     if (!empty($this->repeat_of)) {
         return array();
     }
     if (isset($this->_groups[$this->id])) {
         return $this->_groups[$this->id];
     }
     $gis = Group_inbox::listGet('notice_id', array($this->id));
     $ids = array();
     foreach ($gis[$this->id] as $gi) {
         $ids[] = $gi->group_id;
     }
     $groups = User_group::multiGet('id', $ids);
     $this->_groups[$this->id] = $groups->fetchAll();
     return $this->_groups[$this->id];
 }
Exemplo n.º 3
0
 function getGroups($offset = 0, $limit = PROFILES_PER_PAGE)
 {
     $ids = array();
     $keypart = sprintf('profile:groups:%d', $this->id);
     $idstring = self::cacheGet($keypart);
     if ($idstring !== false) {
         $ids = explode(',', $idstring);
     } else {
         $gm = new Group_member();
         $gm->profile_id = $this->id;
         if ($gm->find()) {
             while ($gm->fetch()) {
                 $ids[] = $gm->group_id;
             }
         }
         self::cacheSet($keypart, implode(',', $ids));
     }
     if (!is_null($offset) && !is_null($limit)) {
         $ids = array_slice($ids, $offset, $limit);
     }
     try {
         return User_group::multiGet('id', $ids);
     } catch (NoResultException $e) {
         return null;
         // throw exception when we handle it everywhere
     }
 }
Exemplo n.º 4
0
 function getGroups()
 {
     // Don't save groups for repeats
     if (!empty($this->repeat_of)) {
         return array();
     }
     if ($this->_groups != -1) {
         return $this->_groups;
     }
     $gis = Memcached_DataObject::listGet('Group_inbox', 'notice_id', array($this->id));
     $ids = array();
     foreach ($gis[$this->id] as $gi) {
         $ids[] = $gi->group_id;
     }
     $groups = User_group::multiGet('id', $ids);
     $this->_groups = $groups->fetchAll();
     return $this->_groups;
 }
Exemplo n.º 5
0
 function createTask()
 {
     $groupsIds = Gradesgroup::getGroups($this->user->id);
     $groups = User_group::multiGet('id', $groupsIds)->fetchAll();
     if (empty($groups)) {
         $this->element('p', 'error', 'No tiene ningún grupo asociado.');
     } else {
         foreach ($groups as $group) {
             $this->elementStart('div', array('id' => 'div-group-task-' . $group->id, 'class' => 'group-task-grader'));
             $this->element('h2', null, strtoupper($group->getBestName()));
             // Comprobamos si la tarea de ese día para ese grupo ya está creada.
             $result = Task_Grader::checkTask($this->user->id, $group->id);
             // Creamos el form para ese grupo.
             $form = new InitForm($this, $group->id, $result);
             $form->show();
             $this->element('p', null, 'Fecha: ' . strftime('%d-%m-%Y'));
             // Cogemos el histórico de tareas de ese grupo y ese profesor.
             $historical = Task_Grader::getHistorical($this->user->id, $group->id);
             $this->elementStart('div', array('class' => 'wrapper-group-historical'));
             // Creamos el título del histórico y un enlace para expandirlo.
             $this->elementStart('a', array('class' => 'task-show-historical', 'onclick' => 'showHistorical(' . $group->id . ');'));
             $this->raw('Histórico de tareas <span class="show-historical">▸</span>');
             $this->elementEnd('a');
             $this->elementStart('div', array('id' => 'historical-' . $group->id, 'class' => 'div-group-historical'));
             if (count($historical) > 0) {
                 foreach ($historical as $taskHistory) {
                     $this->elementStart('div', array('id' => 'task-' . $taskHistory['id'], 'class' => 'div-historical-task'));
                     if ($taskHistory['status'] == 1) {
                         $status = 'Iniciada';
                     } else {
                         $status = 'Cancelada';
                     }
                     if ($taskHistory['tag'] == "") {
                         $taskHistory['tag'] = '&lt;Ninguno&gt;';
                     }
                     $this->elementStart('p');
                     $this->raw('<span class="historical-bold">' . $status . '</span> ' . '| <span class="historical-bold">Fecha:</span> ' . $taskHistory['cdate'] . ' ' . '| <span class="historical-bold">Tag:</span>  ' . $taskHistory['tag'] . ' ' . '| <span class="historical-bold">Completada:</span>  ' . $taskHistory['completed'] . '/' . $taskHistory['total']);
                     $this->elementEnd('p');
                     if ($taskHistory['completed'] == 0) {
                         if ($taskHistory['status'] == 1) {
                             $form = new CancelForm($this, $taskHistory['id']);
                             $form->show();
                         } else {
                             $form = new ReopenForm($this, $taskHistory['id']);
                             $form->show();
                         }
                     }
                     $this->elementEnd('div');
                 }
             } else {
                 $this->element('p', null, 'Todavía no ha iniciado ninguna tarea.');
             }
             $this->elementEnd('div');
             $this->elementEnd('div');
             $this->element('p', 'task-underline');
             $this->elementEnd('div');
         }
     }
 }