Browse Source

Adding jury members repository see BT#6312

Julio Montoya 11 years ago
parent
commit
a39026f63d

+ 1 - 1
main/inc/Entity/JuryMembers.php

@@ -9,7 +9,7 @@ use Doctrine\Common\Collections\ArrayCollection;
  * JuryMembers
  *
  * @ORM\Table(name="jury_members")
- * @ORM\Entity
+ * @ORM\Entity(repositoryClass="Entity\Repository\JuryMembersRepository")
  */
 class JuryMembers
 {

+ 65 - 0
main/inc/Entity/Repository/JuryMembersRepository.php

@@ -0,0 +1,65 @@
+<?php
+
+namespace Entity\Repository;
+
+use Doctrine\ORM\EntityRepository;
+use Doctrine\Common\Collections\Criteria;
+use Doctrine\ORM\NoResultException;
+
+/**
+ * JuryRepository
+ *
+ */
+class JuryMembersRepository extends EntityRepository
+{
+    /**
+     * @param int $userId
+     * @param int $juryMemberId
+     * @return string
+     */
+    public function assignUserToJuryMember($userId, $juryMemberId)
+    {
+        $member = $this->find($juryMemberId);
+
+        if ($member) {
+            $criteria = array('userId' => $userId, 'juryMemberId'=> $juryMemberId);
+            $em = $this->getEntityManager();
+            $result = $em->getRepository('Entity\JuryMemberRelUser')->findOneBy($criteria);
+            if (empty($result)) {
+                $object = new \Entity\JuryMemberRelUser();
+                $object->setMember($member);
+                $object->setUserId($userId);
+
+                $em->persist($object);
+                $em->flush();
+                return '1';
+            }
+        }
+        return '0';
+    }
+
+    /**
+     * @param int $userId
+     * @param int $juryMemberId
+     * @return string
+     */
+    public function removeUserToJuryMember($userId, $juryMemberId)
+    {
+        $em = $this->getEntityManager();
+        $member = $em->getRepository('Entity\JuryMembers')->find($juryMemberId);
+        if ($member) {
+
+            $criteria = array('userId' => $userId, 'juryMemberId'=> $juryMemberId);
+            $result = $em->getRepository('Entity\JuryMemberRelUser')->findOneBy($criteria);
+            if (!empty($result)) {
+                $em = $this->getManager();
+                $em->remove($result);
+                $em->flush();
+                return '1';
+            }
+        }
+        return '0';
+    }
+
+
+}

+ 0 - 6
main/inc/Entity/Repository/JuryRepository.php

@@ -91,10 +91,4 @@ class JuryRepository extends EntityRepository
             return false;
         }
     }
-
-    public function getExerciseAttemptsByJury($juryId)
-    {
-
-    }
-
 }

+ 1 - 1
main/template/default/admin/jury_member/assign_members.tpl

@@ -60,7 +60,7 @@
                     {% 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>
+                        <a href="{{ url('jury_member.controller:scoreAttemptAction', { 'exeId': attempt.getExeId, 'juryId': jury.id }) }}" class="btn btn-warning">Evaluar</a>
                     {% endif %}
                 </td>
             </tr>

+ 1 - 1
main/template/default/admin/jury_president/assign_members.tpl

@@ -58,7 +58,7 @@
                     {% 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>
+                        <a href="{{ url('jury_member.controller:scoreAttemptAction', { 'exeId': attempt.getExeId, 'juryId' => jury.id }) }}" class="btn btn-warning">Evaluar</a>
                     {% endif %}
                 </td>
             </tr>

+ 1 - 1
main/template/minedu/admin/jury_member/assign_members.tpl

@@ -66,7 +66,7 @@
                     {% 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>
+                        <a href="{{ url('jury_member.controller:scoreAttemptAction', { 'exeId': attempt.getExeId, 'juryId' : jury.id }) }}" class="btn btn-warning">Evaluar</a>
                     {% endif %}
                 </td>
             </tr>

+ 7 - 4
main/template/minedu/admin/jury_president/assign_members.tpl

@@ -17,8 +17,8 @@
                 $.ajax(url);
             });
         });
-
     </script>
+
     <a class="btn" href="">Asignar al azar</a>
     <hr>
     <form>
@@ -58,11 +58,14 @@
                         {% set memberHover = '' %}
                     {% endif %}
 
-                    {% if relations[attempt.user.getUserId][member.user.userId] == 3 %}
+                    {% if relations[attempt.user.getUserId][member.user.userId] %}
                         {% set checkedSuccess = 'class="success"' %}
+                        {% set disabled = 'disabled' %}
                     {% else %}
                         {% set checkedSuccess = '' %}
+                        {% set disabled = '' %}
                     {% endif %}
+
                     <td class="{{ memberHover }}">
                         {% set studentList = students_by_member[member.id]  %}
                         {% if attempt.user.getUserId in studentList %}
@@ -71,7 +74,7 @@
                             {% set checked = '' %}
                         {% endif %}
                         <div {{ checkedSuccess }}>
-                            <input class="inputAction" {{ checked }} id="check_{{ attempt.user.getUserId }}_{{ member.id }}" type="checkbox">
+                            <input {{ disabled }} class="inputAction" {{ checked }} id="check_{{ attempt.user.getUserId }}_{{ member.id }}" type="checkbox">
                         </div>
                     </td>
                 {% endfor %}
@@ -79,7 +82,7 @@
                     {% 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>
+                        <a href="{{ url('jury_member.controller:scoreAttemptAction', { 'exeId': attempt.getExeId, 'juryId': jury.id }) }}" class="btn btn-warning">Evaluar</a>
                     {% endif %}
                 </td>
             </tr>

+ 5 - 38
src/ChamiloLMS/Controller/Admin/JuryPresident/JuryPresidentController.php

@@ -108,26 +108,7 @@ class JuryPresidentController extends CommonController
     */
     public function assignUserToJuryMemberAction($userId, $juryMemberId)
     {
-        /** @var Entity\Jury $jury */
-        $em = $this->getManager();
-
-        $member = $em->getRepository('Entity\JuryMembers')->find($juryMemberId);
-        if ($member) {
-            $criteria = array('userId' => $userId, 'juryMemberId'=> $juryMemberId);
-            $result = $em->getRepository('Entity\JuryMemberRelUser')->findOneBy($criteria);
-            if (empty($result)) {
-
-                $object = new Entity\JuryMemberRelUser();
-                $object->setMember($member);
-                $object->setUserId($userId);
-
-                $em = $this->getManager();
-                $em->persist($object);
-                $em->flush();
-                return '1';
-            }
-        }
-        return '0';
+        return $this->getManager()->getRepository('Entity\JuryMembers')->assignUserToJuryMember($userId, $juryMemberId);
     }
 
     /**
@@ -136,20 +117,7 @@ class JuryPresidentController extends CommonController
     */
     public function removeUserToJuryMemberAction($userId, $juryMemberId)
     {
-        $em = $this->getManager();
-        $member = $em->getRepository('Entity\JuryMembers')->find($juryMemberId);
-        if ($member) {
-
-            $criteria = array('userId' => $userId, 'juryMemberId'=> $juryMemberId);
-            $result = $em->getRepository('Entity\JuryMemberRelUser')->findOneBy($criteria);
-            if (!empty($result)) {
-                $em = $this->getManager();
-                $em->remove($result);
-                $em->flush();
-                return '1';
-            }
-        }
-        return '0';
+        return $this->getManager()->getRepository('Entity\JuryMembers')->removeUserToJuryMember($userId, $juryMemberId);
     }
 
     /**
@@ -170,9 +138,6 @@ class JuryPresidentController extends CommonController
             return $this->redirect($url);
         }
 
-        // @todo add to a repository
-        // $students = $this->getRepository()->getStudentsByJury($jury->getId());
-
         $attempts = $jury->getExerciseAttempts();
 
         // @todo move logic in a repository
@@ -180,6 +145,8 @@ class JuryPresidentController extends CommonController
         $students = array();
         $relations = array();
         $myStatusForStudent = array();
+        $maxCountOfMemberToVoteToConsiderEvaluated = 3;
+
         foreach ($attempts as $attempt) {
 
             $user = $attempt->getUser();
@@ -199,7 +166,7 @@ class JuryPresidentController extends CommonController
             foreach ($tempAttempt as $memberId => $answerCount) {
                 $relations[$user->getUserId()][$memberId] = $answerCount;
                 if ($userId == $memberId) {
-                    if ($answerCount == 3) {
+                    if ($answerCount == $maxCountOfMemberToVoteToConsiderEvaluated) {
                         $myStatusForStudent[$user->getUserId()] = true;
                     } else {
                         $myStatusForStudent[$user->getUserId()] = false;