Skip to content

Commit 3a57fdc

Browse files
committed
Add: 修正履歴を表示する
修正があったことをユーザに理解させる
1 parent 4c47ad8 commit 3a57fdc

File tree

4 files changed

+111
-30
lines changed

4 files changed

+111
-30
lines changed

app/Plugins/User/Learningtasks/LearningtasksPlugin.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,6 +1122,7 @@ public function show($request, $page_id, $frame_id, $post_id)
11221122
'examination_files' => $examination_files,
11231123
'examinations' => $examinations,
11241124
'tool' => $tool,
1125+
'deleted_submissions' => $tool->fetchDeletedSubmissions(),
11251126
]);
11261127
}
11271128

app/Plugins/User/Learningtasks/LearningtasksTool.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1611,4 +1611,22 @@ public function prepareRevisingReportSubmission(): void
16111611
$last_submission->delete();
16121612
}
16131613
}
1614+
1615+
/**
1616+
* 削除された提出内容を取得
1617+
*/
1618+
public function fetchDeletedSubmissions(): Collection
1619+
{
1620+
$query = LearningtasksUsersStatuses::onlyTrashed()
1621+
->where('task_status', 1)
1622+
->where('user_id', $this->student_id)
1623+
->orderBy('id', 'asc');
1624+
1625+
// ログインユーザが学生の場合は自身で削除した提出内容のみ
1626+
if ($this->isStudent()) {
1627+
$query->where('user_id', $this->student_id);
1628+
}
1629+
1630+
return $query->get();
1631+
}
16141632
}

resources/views/plugins/user/learningtasks/default/learningtasks_show.blade.php

Lines changed: 54 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -102,42 +102,59 @@
102102

103103
@if ($tool->hasReportStatuses($post->id))
104104
<ol class="mb-3">
105+
@php
106+
$previous_report_submission_id = null;
107+
@endphp
105108
@foreach($tool->getReportStatuses($post->id) as $report_status)
109+
@php
110+
// $report_statusに関する修正履歴を取得する
111+
// 直前の提出と現在の提出の間にある削除されたレコードを修正履歴とする
112+
$submission_revisions = $deleted_submissions->where('id', '>', $previous_report_submission_id)->where('id', '<', $report_status->id);
113+
@endphp
106114
@if (!$loop->last)
107115
<div class="collapse multi-collapse" id="multiCollapseReport{{$loop->iteration}}">
108116
@endif
109117

110118
<li value="{{$loop->iteration}}">{{$report_status->getStstusName($tool->getStudentId())}}
111-
<table class="table table-bordered table-sm report_table">
112-
<tbody>
113-
<tr>
114-
<th>{{$report_status->getStstusPostTimeName()}}</th>
115-
<td>{{$report_status->created_at}}</td>
116-
</tr>
117-
@if ($tool->isUseFunction($report_status->task_status, 'file'))
118-
<tr>
119-
<th>{{$report_status->getUploadFileName()}}</th>
120-
@if (empty($report_status->upload_id))
121-
<td>なし</td>
122-
@else
123-
<td><a href="{{url('/')}}/file/{{$report_status->upload_id}}" target="_blank">{{$report_status->upload->client_original_name}}</a></td>
124-
@endif
125-
</tr>
126-
@endif
127-
@if ($report_status->hasGrade())
128-
<tr>
129-
<th>評価</th>
130-
<td><span class="text-danger font-weight-bold">{{$report_status->grade}}</span></td>
131-
</tr>
132-
@endif
133-
@if ($tool->isUseFunction($report_status->task_status, 'comment'))
134-
<tr>
135-
<th>コメント</th>
136-
<td>{!!nl2br(e($report_status->comment))!!}</td>
137-
</tr>
138-
@endif
139-
</tbody>
140-
</table>
119+
{{-- 修正履歴 --}}
120+
@if ($report_status->task_status == 1 && $submission_revisions->count() > 0)
121+
<small class="text text-muted">(修正済み)</small>
122+
@if ($tool->isTeacher())
123+
<button type="button" class="btn btn-link p-0" data-toggle="modal" data-target="#submissionRevisionsModal{{$loop->iteration}}">
124+
修正履歴を表示
125+
</button>
126+
{{-- Modal --}}
127+
<div class="modal fade" id="submissionRevisionsModal{{$loop->iteration}}" tabindex="-1" role="dialog" aria-labelledby="submissionRevisionsModalLabel{{$loop->iteration}}" aria-hidden="true">
128+
<div class="modal-dialog modal-lg" role="document">
129+
<div class="modal-content">
130+
<div class="modal-header">
131+
<h5 class="modal-title" id="submissionRevisionsModalLabel{{$loop->iteration}}">修正履歴</h5>
132+
<button type="button" class="close" data-dismiss="modal" aria-label="閉じる">
133+
<span aria-hidden="true">&times;</span>
134+
</button>
135+
</div>
136+
<div class="modal-body">
137+
<ul>
138+
@foreach ($submission_revisions as $revision)
139+
{{-- 履歴 --}}
140+
@include('plugins.user.learningtasks.default.learningtasks_show_report_status', ['user_status' => $revision])
141+
<p class="mb-2">
142+
<span class="text-info">{{$revision->deleted_at}} {{$revision->deleted_name}}が修正</span>
143+
</p>
144+
@endforeach
145+
</ul>
146+
</div>
147+
<div class="modal-footer">
148+
<button type="button" class="btn btn-secondary" data-dismiss="modal">閉じる</button>
149+
</div>
150+
</div>
151+
</div>
152+
</div>
153+
@endif
154+
@endif
155+
156+
{{-- 履歴 --}}
157+
@include('plugins.user.learningtasks.default.learningtasks_show_report_status', ['user_status' => $report_status])
141158

142159
@if ($loop->last)
143160
{{-- 履歴削除ボタン:課題管理者機能 --}}
@@ -147,6 +164,13 @@
147164
@if (!$loop->last)
148165
</div>
149166
@endif
167+
168+
@php
169+
// 修正履歴を取得するため、直前のレポート提出IDを保持
170+
if ($report_status->task_status == 1) {
171+
$previous_report_submission_id = $report_status->id;
172+
}
173+
@endphp
150174
@endforeach
151175
</ol>
152176
@else
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{{--
2+
* 課題管理記事詳細のレポート履歴テンプレート。
3+
*
4+
* @author 永原 篤 <[email protected]>
5+
* @author 石垣 佑樹 <[email protected]>
6+
* @copyright OpenSource-WorkShop Co.,Ltd. All Rights Reserved
7+
* @category 課題管理プラグイン
8+
--}}
9+
<table class="table table-bordered table-sm report_table">
10+
<tbody>
11+
<tr>
12+
<th>{{$user_status->getStstusPostTimeName()}}</th>
13+
<td>{{$user_status->created_at}}</td>
14+
</tr>
15+
@if ($tool->isUseFunction($user_status->task_status, 'file'))
16+
<tr>
17+
<th>{{$user_status->getUploadFileName()}}</th>
18+
@if (empty($user_status->upload_id))
19+
<td>なし</td>
20+
@else
21+
<td><a href="{{url('/')}}/file/{{$user_status->upload_id}}" target="_blank">{{$user_status->upload->client_original_name}}</a></td>
22+
@endif
23+
</tr>
24+
@endif
25+
@if ($user_status->hasGrade())
26+
<tr>
27+
<th>評価</th>
28+
<td><span class="text-danger font-weight-bold">{{$user_status->grade}}</span></td>
29+
</tr>
30+
@endif
31+
@if ($tool->isUseFunction($user_status->task_status, 'comment'))
32+
<tr>
33+
<th>コメント</th>
34+
<td>{!!nl2br(e($user_status->comment))!!}</td>
35+
</tr>
36+
@endif
37+
</tbody>
38+
</table>

0 commit comments

Comments
 (0)