-
Notifications
You must be signed in to change notification settings - Fork 4.2k
[BD-32] feat: add filter before certificate rendering process starts #29976
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
[BD-32] feat: add filter before certificate rendering process starts #29976
Conversation
|
Thanks for the pull request, @mariajgrimaldi! I've created BLENDED-1114 to keep track of it in Jira. More details are on the BD-32 project page. When this pull request is ready, tag your edX technical lead. |
bd8125d to
c515720
Compare
86b514c to
5ed0ce8
Compare
5ed0ce8 to
345c08b
Compare
a8bc92a to
e475bae
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking at this, do you think that the control should necessary mean that if a filter developer wants to render an alternative template, this must mean that it is invalid?
Or is the case that if the template is valid, then I just answer the filter with a value for custom_template and don't raise anything?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is the case that if the template is valid, then I just answer the filter with a value for custom_template and don't raise anything?
That it's what I've been thinking. Should we change the name to RenderInvalidCertificate? Should we have these two possibilities in the other PR(s)? isn't that confusing? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably the most correct would be then RenderAlternativeInvalidCertificate as the exeption and leave the custom-template with no exceptions as the way to render a valid certificate with a different path
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done! 🥳
643d91e to
7b21501
Compare
felipemontoya
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is good, I think we are ready to merge
|
Maybe a final squash |
7b21501 to
e614bf8
Compare
f58ff1c to
7e29ca2
Compare
7e29ca2 to
7f974d1
Compare
|
@mariajgrimaldi 🎉 Your pull request was merged! Please take a moment to answer a two question survey so we can improve your experience in the future. |
|
EdX Release Notice: This PR has been deployed to the staging environment in preparation for a release to production. |
|
EdX Release Notice: This PR has been deployed to the production environment. |
<!--
🌰🌰
🌰🌰🌰🌰 🌰 Note: the Nutmeg master branch has been created. Please consider whether your change
🌰🌰🌰🌰 should also be applied to Nutmeg. If so, make another pull request against the
🌰🌰🌰🌰 open-release/nutmeg.master branch, or ping @nedbat for help or questions.
🌰🌰
Please give your pull request a short but descriptive title.
Use conventional commits to separate and summarize commits logically:
https://open-edx-proposals.readthedocs.io/en/latest/oep-0051-bp-conventional-commits.html
Use this template as a guide. Omit sections that don't apply. You may link to information rather than copy it.
More details about the template are at openedx/openedx-proposals#180
(link will be updated when that document merges)
-->
## Description
Backport filters that didn't make it to nutmeg release:
**Add filter before certificate creation starts**
(cherry picked from commit e8fa890)
**Add cohort change filter before moving users from cohorts**
(cherry picked from commit 465e5c0)
**Add filter before certificate rendering process starts**
(cherry picked from commit 7f974d1)
**Add filter before course dashboard rendering process starts**
(cherry picked from commit 895a649)
**Add filter before course about rendering process starts**
(cherry picked from commit ccfa0b4)
**Integrate cohort assignment filter definition to cohort model**
(cherry picked from commit ec69659)
## Supporting information
Refer to the BTR wg github issue for the rationale behind this PR: openedx/wg-build-test-release#187
## Testing instructions
1. Install the needed library release: `openedx-filters==0.7.0`
2. Install the samples library:
`pip install git+https://github.com/eduNEXT/openedx-filters-samples.git@master#egg=openedx_filters_samples`
3. Then, configure each filter. If you want to test all the filters simultaneously, use this configuration and try to do each operation the filter is related to; the filter sample step will stop the operation.
```
OPEN_EDX_FILTERS_CONFIG = {
"org.openedx.learning.certificate.creation.requested.v1": {
"fail_silently": False,
"pipeline": [
"openedx_filters_samples.samples.pipeline.StopCertificateCreation"
]
},
"org.openedx.learning.cohort.change.requested.v1": {
"fail_silently": False,
"pipeline": [
"openedx_filters_samples.samples.pipeline.StopCohortChange"
]
},
"org.openedx.learning.certificate.render.started.v1": {
"fail_silently": False,
"pipeline": [
"openedx_filters_samples.samples.pipeline.RenderAlternativeCertificate",
]
},
"org.openedx.learning.dashboard.render.started.v1": {
"fail_silently": False,
"pipeline": [
"openedx_filters_samples.samples.pipeline.RenderAlternativeDashboard",
]
},
"org.openedx.learning.course_about.render.started.v1": {
"fail_silently": False,
"pipeline": [
"openedx_filters_samples.samples.pipeline.RenderAlternativeCourseAbout",
]
},
"org.openedx.learning.cohort.assignment.requested.v1": {
"fail_silently": False,
"pipeline": [
"openedx_filters_samples.samples.pipeline.StopCohortAssignment"
]
},
}
```
Please, for detailed instructions on how to test each filter, refer to each of these PR(s):
Filter for certificate creation:
#29949
Filter for cohort change:
#29964
Filter for certificate rendering:
#29976
Filter for dashboard rendering:
#29994
Filter for course about rendering:
#29996
Filter for cohort assignment:
#30431
## Deadline
For the next nutmeg release.
Description
As part of the Hooks Extension Framework implementation plan, this PR adds a filter before the certificate rendering process starts.
Supporting information
ADR(s) on:
Testing instructions
With this configuration, you won't be able to:
And with this one, you'll be able to render dummy custom certificate if it doesn't already exist.
If you want to redirect to your custom certificate, then:
To override the response, use: