스마트기기 반출 대장: 1시간 59분 이상 요청은 목록에서 빨간 테두리로 표시

기존엔 "많은 시간요청 학생" 팝업에서만 2시간 기준으로 걸러냈는데,
메인 목록 카드 자체에도 (대기중/승인/거절 등 상태 무관하게) 빨간
테두리를 씌워서 바로 눈에 띄게 함. 기준을 2시간 → 1시간 59분(119분)으로
낮춰서 두 기능이 같은 기준을 쓰도록 통일.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-09 08:31:10 +09:00
co-authored by Claude Sonnet 5
parent a3894cc878
commit 04892d5e65
2 changed files with 41 additions and 15 deletions
+18 -5
View File
@@ -89,7 +89,7 @@ class _DeviceCheckoutLedgerPageState extends State<DeviceCheckoutLedgerPage> {
);
}
// 🚨 [많은 시간요청 학생] 2시간 넘게 신청한 대기 중인 요청만 따로 모아 보여준다.
// 🚨 [많은 시간요청 학생] 1시간 59분 넘게 신청한 대기 중인 요청만 따로 모아 보여준다.
// 학생이 시간을 비정상적으로 길게 적어냈을 수 있으니, 전체 승인 전에 훑어보는 용도.
void _showLongRequestsDialog() {
showDialog(
@@ -113,7 +113,7 @@ class _DeviceCheckoutLedgerPageState extends State<DeviceCheckoutLedgerPage> {
return const Padding(
padding: EdgeInsets.symmetric(vertical: 16),
child: Text(
'2시간 넘게 신청한 대기 중인 요청이 없습니다.',
'1시간 59분 넘게 신청한 대기 중인 요청이 없습니다.',
style: TextStyle(color: Colors.grey),
),
);
@@ -320,6 +320,10 @@ class _DeviceCheckoutLedgerPageState extends State<DeviceCheckoutLedgerPage> {
final String status = r['status'];
final info = _statusInfo(status);
final bool isPending = status == 'PENDING';
// 🚨 1시간 59분 넘게 신청했으면 상태와 무관하게 빨간 테두리로 눈에 띄게.
final bool isLong = _controller.isLongRequest(
r,
);
return Card(
elevation: 0,
@@ -327,9 +331,18 @@ class _DeviceCheckoutLedgerPageState extends State<DeviceCheckoutLedgerPage> {
margin: const EdgeInsets.only(bottom: 10),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
side: isPending
? BorderSide(color: Colors.orange[300]!)
: BorderSide(color: AppPalette.sage),
side: isLong
? BorderSide(
color: Colors.red[400]!,
width: 2,
)
: (isPending
? BorderSide(
color: Colors.orange[300]!,
)
: BorderSide(
color: AppPalette.sage,
)),
),
child: Padding(
padding: const EdgeInsets.all(16),