Add grade/Klasse system: assign class levels to users, questions, and quizzes

- users.grade: set per child in admin (Klasse 1–10)
- quizzes.grade, questions.grade: optional target class (null = all)
- Children only see content matching their grade or without grade set
- Admin views show grade badge in user list, quiz list, questions list
- Quiz create/edit and user create/edit have Klasse dropdown
This commit is contained in:
root
2026-05-06 07:19:17 +00:00
parent c66f126e99
commit 44f281514b
13 changed files with 85 additions and 9 deletions
@@ -18,8 +18,8 @@ class QuizController extends Controller {
}
public function store(Request $r) {
$r->validate(['title'=>'required|string|max:120','subject_id'=>'required|exists:subjects,id','description'=>'nullable|string|max:500']);
$quiz = Quiz::create($r->only('title','subject_id','description') + ['active'=>true]);
$r->validate(['title'=>'required|string|max:120','subject_id'=>'required|exists:subjects,id','description'=>'nullable|string|max:500','grade'=>'nullable|integer|min:1|max:13']);
$quiz = Quiz::create($r->only('title','subject_id','description') + ['active'=>true,'grade'=>$r->grade ?: null]);
return redirect()->route('admin.quizzes.edit', $quiz)->with('success','Quiz erstellt jetzt Fragen hinzufügen.');
}
@@ -30,8 +30,8 @@ class QuizController extends Controller {
}
public function update(Request $r, Quiz $quiz) {
$r->validate(['title'=>'required|string|max:120','subject_id'=>'required|exists:subjects,id','description'=>'nullable|string|max:500']);
$quiz->update($r->only('title','subject_id','description') + ['active'=>$r->boolean('active')]);
$r->validate(['title'=>'required|string|max:120','subject_id'=>'required|exists:subjects,id','description'=>'nullable|string|max:500','grade'=>'nullable|integer|min:1|max:13']);
$quiz->update($r->only('title','subject_id','description') + ['active'=>$r->boolean('active'),'grade'=>$r->grade ?: null]);
return back()->with('success','Quiz gespeichert.');
}