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:
@@ -22,6 +22,15 @@
|
||||
<input name="password" type="password" required class="w-full border border-slate-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-violet-500 focus:border-transparent outline-none">
|
||||
@error('password')<p class="text-red-500 text-xs mt-1">{{ $message }}</p>@enderror
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-slate-700 mb-1">Klasse</label>
|
||||
<select name="grade" class="w-full border border-slate-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-violet-500 outline-none">
|
||||
<option value="">– Keine Klasse –</option>
|
||||
@for($g=1;$g<=10;$g++)
|
||||
<option value="{{ $g }}" {{ old('grade','')==$g?'selected':'' }}>Klasse {{ $g }}</option>
|
||||
@endfor
|
||||
</select>
|
||||
</div>
|
||||
<button type="submit" class="w-full bg-violet-600 hover:bg-violet-700 text-white py-2 rounded-lg font-medium text-sm">Konto erstellen</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -23,6 +23,15 @@
|
||||
<label class="block text-sm font-medium text-slate-700 mb-1">🪙 Münzen</label>
|
||||
<input name="points" type="number" min="0" value="{{ old('points',$user->points) }}" required class="w-full border border-slate-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-violet-500 outline-none">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-slate-700 mb-1">Klasse</label>
|
||||
<select name="grade" class="w-full border border-slate-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-violet-500 outline-none">
|
||||
<option value="">– Keine Klasse –</option>
|
||||
@for($g=1;$g<=10;$g++)
|
||||
<option value="{{ $g }}" {{ old('grade',$user->grade)==$g?'selected':'' }}>Klasse {{ $g }}</option>
|
||||
@endfor
|
||||
</select>
|
||||
</div>
|
||||
<button type="submit" class="w-full bg-violet-600 hover:bg-violet-700 text-white py-2 rounded-lg font-medium text-sm">Speichern</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<tr>
|
||||
<th class="text-left px-4 py-3 font-medium text-slate-600">Name</th>
|
||||
<th class="text-left px-4 py-3 font-medium text-slate-600">E-Mail</th>
|
||||
<th class="text-center px-4 py-3 font-medium text-slate-600">Klasse</th>
|
||||
<th class="text-right px-4 py-3 font-medium text-slate-600">🪙 Münzen</th>
|
||||
<th class="text-right px-4 py-3 font-medium text-slate-600">Antworten</th>
|
||||
<th class="px-4 py-3"></th>
|
||||
@@ -21,7 +22,8 @@
|
||||
<tr class="hover:bg-slate-50">
|
||||
<td class="px-4 py-3 font-medium text-slate-800">{{ $u->name }}</td>
|
||||
<td class="px-4 py-3 text-slate-500">{{ $u->email }}</td>
|
||||
<td class="px-4 py-3 text-right font-bold text-amber-600">{{ $u->points }}</td>
|
||||
<td class="px-4 py-3 text-center text-sm text-slate-500">{{ $u->grade ? "Klasse ".$u->grade : "–" }}</td>
|
||||
<td class="px-4 py-3 text-right font-bold text-amber-600">{{ $u->points }}</td>
|
||||
<td class="px-4 py-3 text-right text-slate-500">{{ $u->attempts_count }}</td>
|
||||
<td class="px-4 py-3 text-right whitespace-nowrap">
|
||||
<a href="{{ route('admin.users.edit',$u) }}" class="text-violet-600 hover:underline mr-3">Bearbeiten</a>
|
||||
|
||||
Reference in New Issue
Block a user