Ver código fonte

Minor - members can see the list of users.

Julio Montoya 11 anos atrás
pai
commit
d4ce416056

+ 75 - 0
main/template/default/admin/jury_member/assign_members.tpl

@@ -0,0 +1,75 @@
+{% extends app.template_style ~ "/layout/layout_1_col.tpl" %}
+{% block content %}
+    {%  if member.role.role == 'ROLE_JURY_PRESIDENT' %}
+    <a class="btn" href="">Asignar al azar</a>
+    <hr>
+    {% endif %}
+    <form>
+
+    <table class="table table-bordered">
+        <tbody>
+        <tr>
+            <td>Revisar</td>
+            {% for member in members %}
+                {% if _u.user_id == member.user.userId %}
+                    <td class="hover">
+                {% else %}
+                    <td>
+                {% endif %}
+
+                    {# member.user.userId #}
+                    {%  if member.role.role == 'ROLE_JURY_PRESIDENT' %}
+                        P{{ loop.index }}
+                    {% elseif member.role.role == 'ROLE_JURY_MEMBER' %}
+                        M{{ loop.index -1}}
+                    {% else %}
+                        S{{ loop.index -1}}
+                    {% endif %}
+                </td>
+            {% endfor %}
+            <td>Estado</td>
+        </tr>
+        {% for attempt in attempts %}
+            <tr>
+                <td>
+                    Estudiante #{{ attempt.user.getUserId }}
+                </td>
+                {% for member in members %}
+
+                    {% if _u.user_id == member.user.userId %}
+                        {% set memberHover = 'hover' %}
+                    {% else %}
+                        {% set memberHover = '' %}
+                    {% endif %}
+
+                    {% if relations[attempt.user.getUserId][member.user.userId] == 3 %}
+                        {% set checked = 'checked="checked"' %}
+                        <td class="{{ memberHover }}">
+                            <div class="success">
+                    {% else %}
+                        {% set checked = '' %}
+                        <td class="{{ memberHover }}">
+                            <div>
+                    {% endif %}
+
+                        <input {{ checked }} id="check_{{ attempt.user.getUserId }}_{{ member.user.userId }}" type="checkbox">
+                        </div>
+                    </td>
+                {% endfor %}
+                <td>
+                    {% if my_status_for_student[attempt.user.getUserId] %}
+                        <a href="#" class="btn btn-success disabled">Evaluado</a>
+                    {% else %}
+                        <a href="{{ url('jury_member.controller:scoreUserAction', { 'exeId': attempt.getExeId }) }}" class="btn btn-warning">Evaluar</a>
+                    {% endif %}
+                </td>
+            </tr>
+        {% endfor %}
+        </tbody>
+    </table>
+    </form>
+    <hr>
+    {%  if member.role.role == 'ROLE_JURY_PRESIDENT' %}
+        <a class="btn" href="">Cierre de proceso</a>
+    {% endif %}
+{% endblock %}

+ 4 - 2
main/template/default/admin/jury_member/index.tpl

@@ -1,6 +1,8 @@
 {% extends app.template_style ~ "/layout/layout_1_col.tpl" %}
 {% block content %}
-    <h3>{{ 'Lista de postulantes' |trans }}</h3>
-    
+    <h3>{{ 'Users' |trans }}</h3>
+    <a class="btn" href="{{ url('jury_member.controller:listUsersAction') }}">
+        Revisar notas.
+    </a>
 
 {% endblock %}

+ 2 - 2
main/template/default/admin/jury_president/index.tpl

@@ -13,13 +13,13 @@
 
     <h3>{{ 'Asignación de responsabilidades' |trans }}</h3>
 
-    <a class="btn" href="{{ url('jury_president.controller:assignMembersAction') }}">
+    <a class="btn" href="">
         Asignar usuarios.
     </a>
 
     <h3>{{ 'Revisión de respuestas' |trans }}</h3>
 
-    <a class="btn" href="{{ url('jury_president.controller:assignMembersAction') }}">
+    <a class="btn" href="{{ url('jury_member.controller:listUsersAction') }}">
         Revisar notas.
     </a>
 

+ 61 - 3
src/ChamiloLMS/Controller/Admin/JuryMember/JuryMemberController.php

@@ -36,7 +36,67 @@ class JuryMemberController extends CommonController
     */
     public function listUsersAction()
     {
+        $userId = $this->getUser()->getUserId();
 
+        /** @var Entity\Jury $jury */
+
+        $jury = $this->getRepository()->getJuryByUserId($userId);
+
+        if (!$jury) {
+            $this->get('session')->getFlashBag()->add('warning', "No tiene un comité asignado.");
+            $url = $this->get('url_generator')->generate('jury_president.controller:indexAction');
+            return $this->redirect($url);
+        }
+
+        // @todo add to a repository
+        // $students = $this->getRepository()->getStudentsByJury($jury->getId());
+
+        $attempts = $jury->getExerciseAttempts();
+
+        // @todo move logic in a repository
+        /** @var Entity\TrackExercise $attempt */
+        $students = array();
+        $relations = array();
+        $myStatusForStudent = array();
+        foreach ($attempts as $attempt) {
+
+            $user = $attempt->getUser();
+            $students[] = $user;
+            $juryAttempts = $attempt->getJuryAttempts();
+
+            /** @var Entity\TrackExerciseAttemptJury $juryAttempt */
+            $tempAttempt = array();
+            foreach ($juryAttempts as $juryAttempt) {
+                if (!isset($tempAttempt[$juryAttempt->getJuryMemberId()])) {
+                    $tempAttempt[$juryAttempt->getJuryMemberId()] = 1;
+                } else {
+                    $tempAttempt[$juryAttempt->getJuryMemberId()]++;
+                }
+            }
+
+            foreach ($tempAttempt as $memberId => $answerCount) {
+                $relations[$user->getUserId()][$memberId] = $answerCount;
+                if ($userId == $memberId) {
+                    if ($answerCount == 3) {
+                        $myStatusForStudent[$user->getUserId()] = true;
+                    } else {
+                        $myStatusForStudent[$user->getUserId()] = false;
+                    }
+                }
+            }
+        }
+
+        $members = $jury->getMembers();
+        $template = $this->get('template');
+
+        $template->assign('my_status_for_student', $myStatusForStudent);
+        $template->assign('relations', $relations);
+        $template->assign('attempts', $attempts);
+        $template->assign('members', $members);
+        $template->assign('jury', $jury);
+        $response = $template->render_template($this->getTemplatePath().'assign_members.tpl');
+
+        return new Response($response, 200, array());
     }
 
     /**
@@ -50,8 +110,6 @@ class JuryMemberController extends CommonController
         $user = $this->getUser();
         $userId = $user->getUserId();
 
-
-
         //$jury = $this->getRepository()->getJuryByPresidentId($userId);
 
 
@@ -197,7 +255,7 @@ class JuryMemberController extends CommonController
     }
 
     /**
-     * @return \Entity\Repository\BranchSyncRepository
+     * @return \Entity\Repository\JuryRepository
      */
     protected function getRepository()
     {

+ 3 - 2
src/ChamiloLMS/Controller/Admin/JuryPresident/JuryPresidentController.php

@@ -108,12 +108,14 @@ class JuryPresidentController extends CommonController
     */
     public function assignMembersAction()
     {
+        return null;
+
         $user = $this->getUser();
         $userId = $user->getUserId();
 
         /** @var Entity\Jury $jury */
 
-        $jury = $this->getRepository()->getJuryByPresidentId($userId);
+        $jury = $this->getRepository()->getJuryByUserId($userId);
 
         if (!$jury) {
             $this->get('session')->getFlashBag()->add('warning', "No tiene un comité asignado.");
@@ -166,7 +168,6 @@ class JuryPresidentController extends CommonController
         $template->assign('relations', $relations);
         $template->assign('attempts', $attempts);
         $template->assign('members', $members);
-        //$template->assign('students', $students);
         $template->assign('jury', $jury);
         $response = $template->render_template($this->getTemplatePath().'assign_members.tpl');