Skip to content

feat: allow library linked problem edits#38901

Open
asadali145 wants to merge 1 commit into
openedx:masterfrom
mitodl:asad/allow-library-linked-problem-to-be-edited
Open

feat: allow library linked problem edits#38901
asadali145 wants to merge 1 commit into
openedx:masterfrom
mitodl:asad/allow-library-linked-problem-to-be-edited

Conversation

@asadali145

Copy link
Copy Markdown
Contributor

Description

Problem block edit should be allowed when used from a V2 Library. When editing a problem block in the library, we don't see certain course-specific fields, and they were meant to be allowed to be edited in the course. All of this was discussed in openedx/frontend-app-authoring#1317.

Due to changes in #36553 and #37124, it only allowed HTML/Text blocks to be edited in the course. This PR adds back the problem in the allowlist. It is understood that resyncing upstream will erase problem content changes and fields that are meant to be synced.

Supporting information

openedx/frontend-app-authoring#1317
#37124
#36553

Testing instructions

  • Checkout master branch
  • Create a V2 library and a problem block in it.
  • Notice that fields like scoring are not available in the editor.
  • Create a course and use a problem from the library.
  • Click on the edit icon and notice it only allows you to edit the title of the problem and does not open the editor.
  • Check out this branch, and the editor should open when you try to edit the block in the course.
  • You should see extra fields like scoring and be able to change those. Change some of the scoring settings.
  • Go back to the library and make changes to the problem content.
  • Sync the problem block in the course and verify that changes are synced with the library and scoring field settings remain the same as changed.

@openedx-webhooks

Copy link
Copy Markdown

Thanks for the pull request, @asadali145!

This repository is currently maintained by @openedx/wg-maintenance-openedx-platform.

Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review.

🔘 Get product approval

If you haven't already, check this list to see if your contribution needs to go through the product review process.

  • If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
    • This process (including the steps you'll need to take) is documented here.
  • If it doesn't, simply proceed with the next step.
🔘 Provide context

To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:

  • Dependencies

    This PR must be merged before / after / at the same time as ...

  • Blockers

    This PR is waiting for OEP-1234 to be accepted.

  • Timeline information

    This PR must be merged by XX date because ...

  • Partner information

    This is for a course on edx.org.

  • Supporting documentation
  • Relevant Open edX discussion forum threads
🔘 Get a green build

If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.

Details
Where can I find more information?

If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:

When can I expect my changes to be merged?

Our goal is to get community contributions seen and reviewed as efficiently as possible.

However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:

  • The size and impact of the changes that it introduces
  • The need for product review
  • Maintenance status of the parent repository

💡 As a result it may take up to several weeks or months to complete a review and merge your PR.

@openedx-webhooks openedx-webhooks added the open-source-contribution PR author is not from Axim or 2U label Jul 17, 2026
@github-project-automation github-project-automation Bot moved this to Needs Triage in Contributions Jul 17, 2026
@asadali145

Copy link
Copy Markdown
Contributor Author

@kdmccormick @bradenmacdonald @navinkarkera Can you please take a look at this PR?

CC: @jmakowski1123

@asadali145 asadali145 changed the title feat: allow library linked problem edit feat: allow library linked problem edits Jul 17, 2026
@mphilbrick211 mphilbrick211 moved this from Needs Triage to Ready for Review in Contributions Jul 20, 2026
@kdmccormick

Copy link
Copy Markdown
Member

@pdpinch @asadali145 I want to differentiate two potential workflows:

1 - Local config overrides, preserved on sync. This is what I see discussed on openedx/frontend-app-authoring#1317.

... Instead, I would expect to configure these fields within the course outline, such that my configurations are specific to the grading schema of that particular course:

  • Scoring - point weight
  • Scoring - number of attempts/unlimited attempts
  • Time between attempts
  • Show answer parameters
  • Show reset option

2. Local content overrides, deleted after sync. This would mean, for example, changing the wording of a library-linked problem, or adding an answer option to it. As noted in the PR description, these edits would necessarily be deleted if the user syncs from the library.

Does MIT ODL need both of these workflows, or would (1) be sufficient?

@kdmccormick

Copy link
Copy Markdown
Member

@edschema @sdaitzman I'd be curious to hear if you any thoughts on this too ^

@edschema

Copy link
Copy Markdown

Hi! I support this PR but want to give some context because there may be some that do not agree with me. I'll give my thoughts below:

The decision in the ticket openedx/frontend-app-authoring#1317 hasn't changed to my knowledge, but I wouldn't call this a regression.

The original intent was to allow more local edit capability of library components within courses, but we had a some concerns that we wanted to work out. This was why we decided to limit the types of local edits of library components to blocks on the allow list editable_library_components, and all titles.

This list(editable_library_components) was meant to be revisited after some learning in use: is the publish/accept changes flow clear enough to avoid potential errors? Do we need to introduce mitigations before allowing more local control?

Those concerns are still valid, but I feel we should allow local edits to problem blocks. v1 libraries supported local edits to problem blocks. Course authors may want to give context referring to surrounding content that local edits allow. Scoring fields would be very important for course teams to adjust per course.

The rename vs open xblock editor behavior is also unintuitive. For library blocks (that are not on the editable_library_components list) and for structural blocks, the edit icon means "rename". For library blocks that are on the editable_library_components list and local content blocks, it means "open XBlock editor"... I'll open an issue to fix this.

@kdmccormick

Copy link
Copy Markdown
Member

To confirm @edschema , you're in favor of supporting both kinds of edits (config vs. content) that I described here? #38901 (comment)

Given that config edits are preserved upon sync but content edits aren't, would you want them to have different UXs, or use the same UX (as it was in legacy libraries)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

open-source-contribution PR author is not from Axim or 2U

Projects

Status: Ready for Review

Development

Successfully merging this pull request may close these issues.

5 participants