1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
@extends('layouts.app')
@section('title', $lesson->topic . ' - Teacher Journal')
@push('styles')
<link rel="stylesheet" href="{{ asset('css/lessons.css') }}">
@endpush
@section('content')
<a href="{{ route('lessons.index') }}">Back to Lessons</a>
<h1>{{ $lesson->topic }}</h1>
@if($lesson->description)
<p>{{ $lesson->description }}</p>
@endif
<a href="{{ route('lessons.edit', $lesson) }}">Edit</a>
<form action="{{ route('lessons.destroy', $lesson) }}" method="POST" style="display:inline;">
@csrf
@method('DELETE')
<button type="submit" onclick="return confirm('Are you sure?')">Delete</button>
</form>
<h2>Details</h2>
<p>
<strong>Teacher:</strong>
@if($lesson->teacher)
<a href="{{ route('teachers.show', $lesson->teacher) }}">{{ $lesson->teacher->name }} {{ $lesson->teacher->last_name }}</a>
@else
None
@endif
</p>
<p>
<strong>Group:</strong>
@if($lesson->group)
<a href="{{ route('groups.show', $lesson->group) }}">{{ $lesson->group->name }}</a>
@else
None
@endif
</p>
<p><strong>Scheduled:</strong> {{ $lesson->scheduled_at ? $lesson->scheduled_at->format('M j, Y H:i') : 'Not scheduled' }}</p>
<p><strong>Duration:</strong> {{ $lesson->duration_minutes ? $lesson->duration_minutes . ' minutes' : 'Not set' }}</p>
<h2>Students ({{ $lesson->students->count() }})</h2>
<button onclick="document.getElementById('attachStudentsModal').style.display='block'">Add Students</button>
@forelse($lesson->students as $student)
<div>
<strong>{{ $student->name }} {{ $student->last_name }}</strong>
<small>({{ $student->group->name ?? 'No group' }})</small>
@if($student->pivot->attendance)
<span>Present</span>
@else
<span>Absent</span>
@endif
@if($student->pivot->score !== null)
<span>{{ $student->pivot->score }}%</span>
@endif
<button onclick="openAttendanceModal({{ $student->id }}, '{{ $student->name }} {{ $student->last_name }}', '{{ $student->pivot->attendance ? '1' : '0' }}', '{{ $student->pivot->score }}')">Edit</button>
</div>
@empty
<p>No students attached to this lesson.</p>
@endforelse
<!-- Attach Students Modal -->
<div id="attachStudentsModal" style="display:none;">
<h3>Add Students to Lesson</h3>
<form action="{{ route('lessons.attach-students', $lesson) }}" method="POST">
@csrf
<p>Select students to add to this lesson:</p>
@foreach($availableStudents as $student)
<div>
<input type="checkbox" name="student_ids[]" value="{{ $student->id }}" id="student{{ $student->id }}"
{{ $lesson->students->contains($student->id) ? 'checked' : '' }}>
<label for="student{{ $student->id }}">
{{ $student->name }} {{ $student->last_name }}
<small>({{ $student->group->name ?? 'No group' }})</small>
</label>
</div>
@endforeach
@if($availableStudents->isEmpty())
<p>No students available. Create students first.</p>
@endif
<button type="button" onclick="document.getElementById('attachStudentsModal').style.display='none'">Cancel</button>
<button type="submit" @if($availableStudents->isEmpty()) disabled @endif>Save</button>
</form>
</div>
<!-- Record Attendance Modal -->
<div id="recordAttendanceModal" style="display:none;">
<h3>Record Attendance</h3>
<form action="{{ route('lessons.record-attendance', $lesson) }}" method="POST" id="attendanceForm">
@csrf
<input type="hidden" name="student_id" id="attendanceStudentId">
<p>Recording attendance for: <strong id="attendanceStudentName"></strong></p>
<label>Attendance</label>
<div>
<input type="radio" name="attendance" id="attendancePresent" value="1">
<label for="attendancePresent">Present</label>
</div>
<div>
<input type="radio" name="attendance" id="attendanceAbsent" value="0">
<label for="attendanceAbsent">Absent</label>
</div>
<label for="attendanceScore">Score (optional)</label>
<input type="number" id="attendanceScore" name="score" min="0" max="100" placeholder="0-100">
<button type="button" onclick="document.getElementById('recordAttendanceModal').style.display='none'">Cancel</button>
<button type="submit">Save</button>
</form>
</div>
<script>
function openAttendanceModal(studentId, studentName, attendance, score) {
document.getElementById('attendanceStudentId').value = studentId;
document.getElementById('attendanceStudentName').textContent = studentName;
document.getElementById('attendanceScore').value = score || '';
if (attendance === '1') {
document.getElementById('attendancePresent').checked = true;
} else {
document.getElementById('attendanceAbsent').checked = true;
}
document.getElementById('recordAttendanceModal').style.display = 'block';
}
</script>
@endsection
|