학생 계정 개별 추가: 기본 비밀번호 1234로 고정

엑셀 일괄 등록과 동일하게 초기 비밀번호를 항상 1234로 고정하고
입력칸을 없앰. 대신 폼에 "초기 비밀번호: 1234 (고정)" 안내 표시.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 08:43:20 +09:00
co-authored by Claude Sonnet 5
parent f1b9f14eb0
commit 83cb4a5300
+15 -12
View File
@@ -27,7 +27,6 @@ class _TeacherStudentManagementPageState
TeacherStudentManagementController(); TeacherStudentManagementController();
final TextEditingController _addIdController = TextEditingController(); final TextEditingController _addIdController = TextEditingController();
final TextEditingController _addNameController = TextEditingController(); final TextEditingController _addNameController = TextEditingController();
final TextEditingController _addPwController = TextEditingController();
int? _selectedGrade; int? _selectedGrade;
bool _isDragging = false; bool _isDragging = false;
@@ -42,17 +41,15 @@ class _TeacherStudentManagementPageState
_controller.dispose(); _controller.dispose();
_addIdController.dispose(); _addIdController.dispose();
_addNameController.dispose(); _addNameController.dispose();
_addPwController.dispose();
super.dispose(); super.dispose();
} }
// ➕ [학생 추가 버튼 동작] // ➕ [학생 추가 버튼 동작] 기본 비밀번호는 항상 1234로 고정.
Future<void> _addStudentAccount() async { Future<void> _addStudentAccount() async {
final sId = _addIdController.text.trim(); final sId = _addIdController.text.trim();
final sName = _addNameController.text.trim(); final sName = _addNameController.text.trim();
final sPw = _addPwController.text.trim();
if (sId.isEmpty || sName.isEmpty || sPw.isEmpty) { if (sId.isEmpty || sName.isEmpty) {
ScaffoldMessenger.of( ScaffoldMessenger.of(
context, context,
).showSnackBar(const SnackBar(content: Text('⚠️ 모든 입력란을 채워주세요.'))); ).showSnackBar(const SnackBar(content: Text('⚠️ 모든 입력란을 채워주세요.')));
@@ -62,14 +59,13 @@ class _TeacherStudentManagementPageState
final (success, message) = await _controller.addStudentAccount( final (success, message) = await _controller.addStudentAccount(
studentId: sId, studentId: sId,
name: sName, name: sName,
password: sPw, password: '1234',
grade: _selectedGrade, grade: _selectedGrade,
); );
if (!mounted) return; if (!mounted) return;
if (success) { if (success) {
_addIdController.clear(); _addIdController.clear();
_addNameController.clear(); _addNameController.clear();
_addPwController.clear();
setState(() => _selectedGrade = null); setState(() => _selectedGrade = null);
} }
ScaffoldMessenger.of( ScaffoldMessenger.of(
@@ -430,11 +426,18 @@ class _TeacherStudentManagementPageState
decoration: fieldDecoration('이름', Icons.person), decoration: fieldDecoration('이름', Icons.person),
), ),
const SizedBox(height: 4), const SizedBox(height: 4),
TextField( const Padding(
controller: _addPwController, padding: EdgeInsets.symmetric(horizontal: 4),
obscureText: true, child: Row(
style: const TextStyle(fontSize: 12), children: [
decoration: fieldDecoration('초기 비밀번호', Icons.lock), Icon(Icons.lock, size: 14, color: Colors.grey),
SizedBox(width: 6),
Text(
'초기 비밀번호: 1234 (고정)',
style: TextStyle(fontSize: 11, color: Colors.grey),
),
],
),
), ),
const SizedBox(height: 4), const SizedBox(height: 4),
DropdownButtonFormField<int>( DropdownButtonFormField<int>(