diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 1559c4e72a46d826cd2fcea2745e16aa4109967d..e012a0e65d7fbc3a888dc145b12c6c20b6461057 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -30,6 +30,18 @@ class ProjectController extends Controller $memberIds = DB::table('userprojects')->where('idProject', $id)->where('role', 2)->pluck('idUser'); $userPhase = DB::table('userprojects')->where('idProject', $id)->where('idUser', Auth::id())->first()->phase; + $criterias = DB::table('criterias')->where('idProject', $id)->where('used', 1)->get(); + + $scores = []; + + foreach($requirements as $requirement) { + foreach($criterias as $criteria) { + $score = DB::table('scores')->where('idRequirement', $requirement->id)->where('idCriteria', $criteria->id)->first(); + + $scores[] = $score; + } + } + $moderatorName = DB::table('users')->where('id', $moderatorId)->first()->name; $memberNames = []; @@ -62,7 +74,7 @@ class ProjectController extends Controller } } - return view('project', ['project' => $project, 'requirements' => $requirements, 'id' => $id, 'role' => $role, 'userPhase' => $userPhase, 'moderator' => $moderatorName, 'members' => $memberNames, 'users' => $pickableUsers, 'maxPhase' => 7]); + return view('project', ['project' => $project, 'requirements' => $requirements, 'criterias' => $criterias, 'scores' => $scores, 'id' => $id, 'role' => $role, 'userPhase' => $userPhase, 'moderator' => $moderatorName, 'members' => $memberNames, 'users' => $pickableUsers, 'maxPhase' => 7]); } /** diff --git a/resources/views/project.blade.php b/resources/views/project.blade.php index 00773a12bb571ffff07c85803e1113c04dcccd3e..ac44f501e349c17f16282e76fbd7f19767b9f54e 100644 --- a/resources/views/project.blade.php +++ b/resources/views/project.blade.php @@ -39,11 +39,16 @@ </tbody> </table> @endif - @if($role == 1) + @if(($role == 1) && ($project->phase == 0)) <button type="button" class="btn btn-primary float-right" data-toggle="modal" data-target="#exampleModal"> Add Requirement </button> @endif + @if($project->phase > $maxPhase) + <button type="button" class="btn btn-primary float-right" data-toggle="modal" data-target="#detailedResult"> + Show detail + </button> + @endif </div> </div> </div> @@ -193,6 +198,53 @@ </div> </div> </div> + + <!-- Result Detail Modal --> + <div class="modal fade" id="detailedResult" tabindex="-1" aria-labelledby="detailedResult" aria-hidden="true"> + <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-xl"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title" id="detailedResult">Result Detail</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <table class="table"> + <thead> + <tr> + <th scope="col">#</th> + <th scope="col">Requirement</th> + @foreach($criterias as $criteria) + <th scope="col">{{$criteria->name}} ({{$criteria->weight}})</th> + @endforeach + <th scope="col">Final Score</th> + </tr> + </thead> + <tbody> + @foreach($requirements as $indexR => $requirement) + <tr> + <th scope="row" class="align-middle">R{{ $requirement->number + 1 }}</th> + <td class="align-middle">{{ $requirement->name }}</td> + @foreach($criterias as $indexC => $criteria) + @foreach($scores as $score) + @if (($score->idRequirement == $requirement->id) && ($score->idCriteria == $criteria->id)) + <td class="align-middle {{ $score->status == 1 ? 'table-success' : '' }}">{{ $score->score }}</td> + @endif + @endforeach + @endforeach + <th class="align-middle table-success">{{ $requirement->score }}</th> + </tr> + @endforeach + </tbody> + </table> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> + </div> + </div> + </div> + </div> </div> </div> @endsection