Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create prerequisite for courses #816

Open
3 of 4 tasks
karbassi opened this issue Jul 28, 2020 · 3 comments
Open
3 of 4 tasks

Create prerequisite for courses #816

karbassi opened this issue Jul 28, 2020 · 3 comments
Assignees
Projects
Milestone

Comments

@karbassi
Copy link
Member

karbassi commented Jul 28, 2020

Allow Courses to have prerequisites.

For example, JS 1 has no other course prerequisites. However, JS 2 has a prerequisite of JS 1. JS 3 has JS 2, and so on.

To Do

  • Modify the Course model to allow for specifying a classes prerequisites
  • When a guardian goes to register a student for a session, allow the registration only if the student has met the class prerequisites, which should use the criteria:
    • Student has at least one order for an active session that was a prerequisite class
    • And that session was in the past
    • And there is a non null check-in date
  • Update the programs template, removing hardcoded prerequisites and replacing with the prerequisites defined via the data model
    • ./website/weallcode/templates/weallcode/programs.html
  • Display the required prerequisites in the class template
    • ./website/weallcode/templates/weallcode/snippets/class.html

Research

@karbassi karbassi self-assigned this Jul 28, 2020
@karbassi karbassi added this to To do in Jan 2021 Dec 28, 2020
@karbassi karbassi assigned rgroves and unassigned karbassi Jan 19, 2021
@rgroves rgroves moved this from To do to In progress in Jan 2021 Jan 25, 2021
@karbassi karbassi added this to the Jan 2021 milestone Jan 26, 2021
@rgroves
Copy link
Contributor

rgroves commented Jan 28, 2021

@karbassi what is the scope of this Issue? Should it encompass all of the following:

  • Modifying the Course model to allow for specifying a classes prerequisites
  • When a guardian goes to register a student for a session, allow the registration only if the student has met the class prerequisites
  • Update the programs template, removing hardcoded prerequisites and replacing with the prereqs defined via the data model
    • ./website/weallcode/templates/weallcode/programs.html
  • Display the required prerequisites in the class template
    • ./website/weallcode/templates/weallcode/snippets/class.html

Does that cover it in terms of scope or is something missing?

Also, what should be considered the correct criteria for determining if a student has met a prerequisite? I assume it starts with the criteria:

  • Student has at least one order for a session that was for a prerequisite class
  • And that session was in the past

What determines if the student was actually in attendance and completed the session? Is the check_in date something that needs to be checked for that?

What else, if anything, should be considered?

@rgroves
Copy link
Contributor

rgroves commented Feb 2, 2021

I've updated the first comment in the thread with scope items discussed last week over Slack.
Will be submitting a PR for review shortly.

@rgroves
Copy link
Contributor

rgroves commented Feb 2, 2021

The one remaining item for this issue not addressed by #858 is "Update the programs template, removing hardcoded prerequisites and replacing with the prerequisites defined via the data model".

It should be easy enough to generate the list of courses under the Courses section of the Programs page, but I wasn't sure of a few things that are ambiguous or currently require further changes and would like some guidance on them:

  • If we generate based on the Courses data in the DB instead of hardcoding, how do you want to handle ordering of the courses (e.g. by course code alphabetically? some other way?)
  • The Pathways listed for the courses seem not to exist in the DB, if we are to generate them programmatically a model for Pathways and a relationship to Courses will be required.
  • I wasn't sure if the course info currently hardcoded in the programs template (./website/weallcode/templates/weallcode/programs.html) was actually up-to-date in the Courses data in the database (something we need to consider/verify before deploying I guess)
  • I assume the Grade restriction notes will have to be determined by the Age restriction since there isn't anything in the Course model related to Grade levels (only Age), or should a minimum grade level be added to the Course model?

@karbassi karbassi added this to To do in Feb 2021 via automation Feb 18, 2021
@karbassi karbassi removed this from In progress in Jan 2021 Feb 18, 2021
@karbassi karbassi moved this from To do to In progress in Feb 2021 Feb 18, 2021
@karbassi karbassi modified the milestones: Jan 2021, Feb 2021 Feb 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Feb 2021
In progress
Development

No branches or pull requests

2 participants