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

Achievement items and problem numbers #2281

Closed
Alex-Jordan opened this issue Dec 12, 2023 · 1 comment
Closed

Achievement items and problem numbers #2281

Alex-Jordan opened this issue Dec 12, 2023 · 1 comment

Comments

@Alex-Jordan
Copy link
Contributor

Suppose an achievement item applies to a particular problem from a set. Now suppose you have a set with irregular numbering, like the set problems are numbered 2, 5, 6. The user will be presented a select menu with all the numbers 1, 2, 3, 4, 5, 6. If they choose a number like 1, they get an "error accessing that problem" message. Ideally they would just be presented with 2, 5, 6.

drgrice1 added a commit to drgrice1/webwork2 that referenced this issue Jan 16, 2024
Instead of just storing a max problem id for each achievement set
option, store the json encoded list of problem ids.  Initially only the
options for the first set are provided.  The javascript then rebuilds
the options list when a new set is selected that only includes the
problem ids for that set.

This also restructures the way that achievement item data is obtained
from the database to be a bit more efficient.  When this data is
obtained gateway tests are no longer filtered out.  The current code for
each achievement item that does not act on gateway tests is already set
up to filter these out.  The achievement items that do act on gateway
tests no longer need to load data from the database on their own.  They
can use the given list and filter out non-gateway sets.

There seems to have been a minor bug in the `ResurrectGW` achievement in
that it showed all gateway sets to be possibly "resurrected" when it
should only show gateway sets that are past due.  That has also been
fixed, so now it only shows past due gateway sets for "resurrection".

This fixes issue openwebwork#2281.
drgrice1 added a commit to drgrice1/webwork2 that referenced this issue Jan 16, 2024
Instead of just storing a max problem id for each achievement set
option, store the json encoded list of problem ids.  Initially only the
options for the first set are provided.  The javascript then rebuilds
the options list when a new set is selected that only includes the
problem ids for that set.

This also restructures the way that achievement item data is obtained
from the database to be a bit more efficient.  When this data is
obtained gateway tests are no longer filtered out.  The current code for
each achievement item that does not act on gateway tests is already set
up to filter these out.  The achievement items that do act on gateway
tests no longer need to load data from the database on their own.  They
can use the given list and filter out non-gateway sets.

There seems to have been a minor bug in the `ResurrectGW` achievement in
that it showed all gateway sets to be possibly "resurrected" when it
should only show gateway sets that are past due.  That has also been
fixed, so now it only shows past due gateway sets for "resurrection".

This fixes issue openwebwork#2281.
drgrice1 added a commit to drgrice1/webwork2 that referenced this issue Jan 24, 2024
Instead of just storing a max problem id for each achievement set
option, store the json encoded list of problem ids.  Initially only the
options for the first set are provided.  The javascript then rebuilds
the options list when a new set is selected that only includes the
problem ids for that set.

This also restructures the way that achievement item data is obtained
from the database to be a bit more efficient.  When this data is
obtained gateway tests are no longer filtered out.  The current code for
each achievement item that does not act on gateway tests is already set
up to filter these out.  The achievement items that do act on gateway
tests no longer need to load data from the database on their own.  They
can use the given list and filter out non-gateway sets.

There seems to have been a minor bug in the `ResurrectGW` achievement in
that it showed all gateway sets to be possibly "resurrected" when it
should only show gateway sets that are past due.  That has also been
fixed, so now it only shows past due gateway sets for "resurrection".

This fixes issue openwebwork#2281.
drgrice1 added a commit to drgrice1/webwork2 that referenced this issue Feb 2, 2024
Instead of just storing a max problem id for each achievement set
option, store the json encoded list of problem ids.  Initially only the
options for the first set are provided.  The javascript then rebuilds
the options list when a new set is selected that only includes the
problem ids for that set.

This also restructures the way that achievement item data is obtained
from the database to be a bit more efficient.  When this data is
obtained gateway tests are no longer filtered out.  The current code for
each achievement item that does not act on gateway tests is already set
up to filter these out.  The achievement items that do act on gateway
tests no longer need to load data from the database on their own.  They
can use the given list and filter out non-gateway sets.

There seems to have been a minor bug in the `ResurrectGW` achievement in
that it showed all gateway sets to be possibly "resurrected" when it
should only show gateway sets that are past due.  That has also been
fixed, so now it only shows past due gateway sets for "resurrection".

This fixes issue openwebwork#2281.
pstaabp added a commit that referenced this issue Feb 7, 2024
@pstaabp
Copy link
Member

pstaabp commented Feb 21, 2024

Fixed in #2299

@pstaabp pstaabp closed this as completed Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants