[Import/Export] Reject cancelled CRNs and derive course IDs
Maintainers usually reply within 11 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- backend
Research direction
Start from src/lib/planFile/resolve.ts, the file issue #841 extended, and the existing validated result shape; src/server/actions/get-plan-offerings.ts shows how rows are read. Add the cancelled-row rejection after the preceding checks, then return distinct courseId values as courseIds:number[]. Cover the example in src/lib/planFile/resolve.test.ts — two rows with courseId 9 yield one id, a cancelled row errors — then run pnpm test -- src/lib/planFile/resolve.test.ts, pnpm lint and pnpm typecheck.
Written by the indexing model from the issue text.
Description
What to build
Reject imported cancelled sections and collect the course IDs needed to restore the plan. The accepted result should contain the checked sections and a list of distinct course IDs.
Files
src/lib/planFile/resolve.ts(extend the prerequisite’s file)- Starting example: src/server/actions/get-plan-offerings.ts
Code to add or extend:validated result adds courseIds:number[].
Steps
- After the preceding checks pass, reject any row with cancelled=true using “A class in this plan was cancelled.”
- Collect the rows’ courseId values, remove duplicates and return them as courseIds alongside the checked rows.
- Test two accepted sections from the same course: they remain two rows but produce one course ID. A cancelled row must not produce a savable result.
Example
Rows12345+23456 bothcourseId9 → courseIds[9]; cancelled row → error.
Check it works
In src/lib/planFile/resolve.test.ts, check the example above and the failure or limit described in the steps. Run pnpm test -- src/lib/planFile/resolve.test.ts, pnpm lint and pnpm typecheck.
Before starting
- #841 — Reject absent or wrong-term imported CRNs
References
Assign yourself before starting, or comment to claim the issue. Project setup.
- Dominant language
- TypeScript
- Stars
- 19
- Forks
- 94
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from DevDogsUGA/DogDays
-
map
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
DevDogsUGA/DogDays#868 ·
Maintainers usually reply within 11 days
-
map
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
DevDogsUGA/DogDays#865 ·
Maintainers usually reply within 11 days
-
sharing
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
DevDogsUGA/DogDays#854 ·
Maintainers usually reply within 11 days
-
import-export
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
DevDogsUGA/DogDays#850 ·
Maintainers usually reply within 11 days
-
import-export
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
DevDogsUGA/DogDays#841 ·
Maintainers usually reply within 11 days
All issues in DevDogsUGA/DogDays
Similar issues
-
calcite-ui-icons enhancement impact - p3 - not time sensitive needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Esri/calcite-design-system#15467 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
diegosouzapw/OmniRoute#18390 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
guilhermerodz/input-otp#157 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
davidjerleke/embla-carousel#1414 ·
Maintainers usually reply within 4 days