Edit a course from Your Courses with a pencil button
Maintainer thường phản hồi trong vòng 1 ngày
@Aiden-Trindade đang làm issue này rồi.
Từ ngày 28/10/2026.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 43/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- react, typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Start with landing.tsx, FacultySelector.tsx, and the fullCourseData shape; trace how courses are selected, saved, and used to generate timetables. Check the existing slot multi-selector work in #287 and the layout work in #290, and review how faculty priorities are loaded. Done when course edits save at the same list position, cancel cleanly, and regenerate visible timetables while preserving filters.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Scroll down for design
Is your feature request related to a problem? Please describe.
To change a course's slot or faculty, a student deletes it and adds it again. The eye button's popup (#252) only reorders the faculty already picked.
Describe the solution you'd like
A pencil on each course row replaces the eye button and its popup (FacultyPriorityModal). Pressing it puts the selection box into edit mode for that course:
- Domain, Subject and Slot are filled in, with all of the course's slots selected. Lab-only courses get their morning or evening lab choice.
- The course's faculty show as ticked, in their current priority order.
- A yellow "Editing " tag marks the box.
- Reset becomes Cancel and Confirm becomes Save changes.
While editing:
- Domain and Subject are locked. Slot and faculty can change.
- Pressing another course's pencil cancels this edit and starts the new one.
- Deleting the course being edited cancels the edit.
Save changes:
- Replaces the course's slots and faculty with what's in the box, so a removed slot is gone.
- Keeps the course in the same place in Your Courses.
- If timetables were showing, regenerates them, keeps the filters and goes back to timetable 1.
Cancel leaves the course as it was and clears the box.
Each course remembers the school, programme, batch and domain it was added under, and editing uses those even if the navbar chip (#286) shows a different school. For courses saved before this change, look the subject up in the current school first, then in all schools.
Additional context
Needs #287 (Slot becomes a multi-selector) and the side-by-side layout (#290). Related: #285 (school popup), #252 (the popup this replaces).
Things in the current code to watch for:
- Confirming a course that's already in the list merges into it and keeps its old slots (
facultySelectorOnConfirminlanding.tsx), so Save changes can't reuse it as is. - Saved courses (
fullCourseData) don't store a school or domain. FacultySelectoralready re-ticks saved faculty when the subject and slot match a saved course, but it reads from localStorage. The edit can build on it but should read from the course list.QuickModify.tsxis an unused stub that only logs to the console. Please remove it.
FacultySelector.tsx is also being split up in #266, so expect merge conflicts.
Design
- Figma frame:
Quick modify, pencil pressed(node2558:1338), in the sectionfac selection changeson the page "FFCS revamp" - Link: https://www.figma.com/design/uCP8B7drfprKgsHYjB8sYs?node-id=2558-1338
Example
One way to build it (just an idea):
- Keep an
editingCourseIdinlanding.tsx - Pass the course to
FacultySelectorto fill the form, and swap the button labels while it is set - Save changes replaces the course at the same index
<FacultySelector
editingCourse={selectedCourses.find(c => c.id === editingCourseId)}
onConfirm={editingCourseId ? saveEdit : facultySelectorOnConfirm}
onCancelEdit={() => setEditingCourseId(null)}
/>
- Ngôn ngữ chính
- TypeScript
- Star
- 6
- Fork
- 37
- Merge trung bình
- 11 giờ 13 phút
- Pull request đã merge (30 ngày)
- 55
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của CodeChefVIT/ffcs
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
CodeChefVIT/ffcs#295 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 48/100
CodeChefVIT/ffcs#292 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Put the selection box and Your Courses side by side and restyle themCó thể đã có người làm @Aiden-Trindade đã nhận 1 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
CodeChefVIT/ffcs#290 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Filter timetables by a class time range and rank by fewest lab daysCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 43/100
CodeChefVIT/ffcs#289 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Replace the timetable filter pills with one Filters button and popoverCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
CodeChefVIT/ffcs#288 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của CodeChefVIT/ffcs
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
lichess-org/lila#22324 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature Request] [Web] Expose kvCacheQuantizationBits in the onnxruntime-web WebGPU EP optionsĐang mởep:WebGPU platform:web quantization
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
microsoft/onnxruntime#33752 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[Skill Bug]: entra-agent-id: inaccurate blueprint permission inheritance and parent token sub claimĐang mởbug entra-agent-id
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
microsoft/GitHub-Copilot-for-Azure#3467 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
fix(worker): keep normal prepare waiting states failure-freeCó thể đã có người làm @LichKing-2234 đã nhận hôm nay. Đang mởagent:codex priority:P1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
AgoraIO-Extensions/agent-infra#3745 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
The five-line work window can drop its oldest line: the per-line byte share ignores the JSON framingCó thể đã có người làm @Eapp1e đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
makecindy/cindy#7973 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày