선생님 대시보드 학년별 카테고리 분류 + 학생 계정 관리 버그 수정
- 실시간 출석 현황을 학년별 섹션으로 묶어서 표시 (백엔드에 grade 필드 추가)
- 학생 계정 추가 폼에 학년 선택 드롭다운 추가
- 학생 계정 생성/삭제가 실제로는 존재하지 않는 엔드포인트를 호출하던
버그 수정 (/api/users/register-student, /api/users/delete/{id} →
/api/users/create, /api/users/delete)
- 학생 대시보드(개발자 모드) 카드 그리드가 넓은 화면에서 과도하게
커지던 레이아웃 버그 수정, 웹은 5열/폰은 2열로 반응형 처리
- 버전 1.2.0+6
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ class _TeacherStudentManagementPageState
|
||||
final TextEditingController _addIdController = TextEditingController();
|
||||
final TextEditingController _addNameController = TextEditingController();
|
||||
final TextEditingController _addPwController = TextEditingController();
|
||||
int? _selectedGrade;
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
@@ -48,12 +49,14 @@ class _TeacherStudentManagementPageState
|
||||
studentId: sId,
|
||||
name: sName,
|
||||
password: sPw,
|
||||
grade: _selectedGrade,
|
||||
);
|
||||
if (!mounted) return;
|
||||
if (success) {
|
||||
_addIdController.clear();
|
||||
_addNameController.clear();
|
||||
_addPwController.clear();
|
||||
setState(() => _selectedGrade = null);
|
||||
}
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
@@ -184,7 +187,10 @@ class _TeacherStudentManagementPageState
|
||||
const SizedBox(width: 8),
|
||||
const Text(
|
||||
'신규 학생 계정 추가',
|
||||
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -230,6 +236,21 @@ class _TeacherStudentManagementPageState
|
||||
prefixIcon: Icon(Icons.lock),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
DropdownButtonFormField<int>(
|
||||
initialValue: _selectedGrade,
|
||||
decoration: const InputDecoration(
|
||||
labelText: '학년 (선택)',
|
||||
prefixIcon: Icon(Icons.class_),
|
||||
),
|
||||
items: const [
|
||||
DropdownMenuItem(value: 1, child: Text('1학년')),
|
||||
DropdownMenuItem(value: 2, child: Text('2학년')),
|
||||
DropdownMenuItem(value: 3, child: Text('3학년')),
|
||||
],
|
||||
onChanged: (value) =>
|
||||
setState(() => _selectedGrade = value),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
|
||||
Reference in New Issue
Block a user