WBS for Course Content Outline page
- 1 Course Outline [CO]
- 1.1 Top level page (FE)
- 1.2 Status Bar (FE)
- 1.3 Status Bar: Course Highlight Emails (FE)
- 1.4 Porting: Video Sharing - blocker - TBD
- 1.5 Status Bar: Video Sharing (FE) - TBD
- 1.6 Status Bar: Video Sharing (BE) - TBD
- 1.7 Tool Bar: New Section (FE)
- 1.8 Tool Bar: Reindex (FE)
- 1.9 Tool Bar: View Live (FE)
- 1.10 Generic: Processing Feedback (FE)
- 1.11 Content: Empty (FE)
- 1.12 Content: Not empty (FE)
- 1.13 Content: Sections list (FE)
- 1.14 Content: Section Highlights (FE)
- 1.15 Content: Section Edit (FE)
- 1.16 Content: Section Publish (FE)
- 1.17 Content: Section Configure (FE)
- 1.18 Content: Section Duplicate (FE)
- 1.19 Duplicated Section scroll effect - TBD
- 1.20 Content: Section Delete (FE)
- 1.21 Content: Section Move (FE) - TBD
- 1.22 Content: Subsections list (FE)
- 1.23 Content: New Subsection (FE)
- 1.24 Content: Subsection Edit (FE)
- 1.25 Content: Subsection Publish (FE)
- 1.26 Content: Subsection Configure (FE)
- 1.27 Content: Subsection Configure (FE)
- 1.28 Tool Bar: Collapse All Sections (FE)
- 1.29 Content: Subsection Duplicate (FE)
- 1.30 Content: Subsection Delete (FE)
- 1.31 Content: Subsection Move (FE) - TBD
- 1.32 Content: Subsection Units list (FE)
- 1.33 Content: New Unit (FE)
- 1.34 Content: Unit Edit (FE)
- 1.35 Content: Unit Publish (FE)
- 1.36 Content: Unit Configure (FE) - TBD
- 1.37 Content: Unit Duplicate (FE)
- 1.38 Content: Unit Delete (FE)
- 1.39 Content: Unit Move (FE) - TBD
- 1.40 Content: Entrance Exam (FE) - TBD
Unit = Vertical
Subsection = Sequential
Section = Chapter
Page | WBS | Acceptance Criteria | Comments | Status |
---|---|---|---|---|
Course Outline [CO] |
|
| ||
| Top level page (BE) |
| @Volodymyr Bergman investigated see: Status Bar API (BE) we need to investigate two endpoint when user enter to the page, and create ticket for creating we need to figure out if we're going to rewrite them or union with with the previous one endpoint http://localhost:18010/api/courses/v1/quality/course-v1:edx+10101+1012/?exclude_graded=true&all=true http://localhost:18010/api/courses/v1/validation/course-v1:edx+10101+1012/?graded_only=true&all=true Because it give us additional variables for status bar | Delivered
|
| Top level page (FE) |
|
| Delivered
|
| Status Bar (FE)
|
| Current implementation
Assumptions
| Delivered |
| Status Bar: Course Highlight Emails (FE)
|
| Assumptions
|
|
| Porting: Video Sharing - blocker - TBD(legacy backport)
|
|
|
|
| Status Bar: Video Sharing (FE) - TBD
blocked | blocked by Video Sharing legacy backport
| resolved
BE utils:
|
|
| Status Bar: Video Sharing (BE) - TBD | blocked by Video Sharing legacy backport
| Assumptions
|
|
| Status Bar API (BE)
|
|
|
|
|
| Course validation metrics API |
|
|
|
| Course quality metrics API |
|
|
| Tool Bar: New Section (FE)
| AC
Tech
|
|
|
| Tool Bar: New Section (BE) |
|
|
|
| Tool Bar: Reindex (FE)
|
|
| Delivered |
| Tool Bar: Reindex (BE) |
|
| Delivered |
| Tool Bar: View Live (FE)
|
|
| Delivered |
| Generic: Processing Feedback (FE)
|
|
| Delivered |
| Content: Empty (FE)
|
|
| Delivered |
| Content: Not empty (FE)
|
| Assumptions
|
|
| Content: Sections list (FE)
|
|
| Partially delivered |
| Update Section card
| AC
Tech update
|
| Delivered |
| Content: Section Highlights (FE) | AC
Tech
| Section highlights update: # API details
POST <CMS>/xblock/<section-id>
## payload
{
"publish":"republish",
"metadata": {
"highlights":[
"asdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdgg"
]
}
}
## response example
{
"id": "block-v1:RG+DEV+TL0+type@chapter+block@060085dc25e34eeb958d6cb6540d4f8c",
"data": null,
"metadata": {
"display_name": "Section1",
"highlights": [
"asdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdfasdfasdfasdfasdfasdfasdfasdfasAPI detailsasdfasdgg"
]
}
}
| Delivered |
| Content: Section Highlights (BE) |
|
|
|
| Content: Section Edit (FE) | AC
Tech
| Design
Section editing save: # API details
POST <CMS>/xblock/<chapter-block-id>
## payload
{
metadata: {
display_name: <new-value>
}
}
## response example
{
"id": "block-v1:RG+DEV+TL0+type@chapter+block@060085dc25e34eeb958d6cb6540d4f8c",
"data": null,
"metadata": {
"display_name": <saved-value>
}
}
| Delivered |
| Content: Section Edit (BE) |
|
|
|
| Content: Section Publish (FE) | AC
Tech
| Section publishing: # API details
POST <CMS>/xblock/<section-id>
## payload
{
"publish":"make_public"
}
## response example
{
"id": "block-v1:RG+DEV+TL0+type@chapter+block@060085dc25e34eeb958d6cb6540d4f8c",
"data": null,
"metadata": {
"display_name": "Section1",
"highlights": [
...
]
}
}
| Delivered |
| Content: Section Publish (BE) |
|
|
|
| Content: Section Configure (FE) | AC
Tech
| Section configuration: # API details
POST <CMS>/xblock/<section-id>
## payload
{
"publish":"republish",
"metadata":{
"visible_to_staff_only":true,
"start":"2031-01-01T00:00:00.000Z"
}
}
## response example
{
"id": "block-v1:RG+DEV+TL0+type@chapter+block@060085dc25e34eeb958d6cb6540d4f8c",
"data": null,
"metadata": {
"display_name": "Section1",
"visible_to_staff_only": true,
"start": "2031-01-01T00:00:00Z",
"highlights": [
...
]
}
}
|
|
| Content: Section Configure (BE) |
|
|
|
| Content: Section Duplicate (FE) | AC
Tech
| Section duplication: # API details
POST <CMS>/xblock/
## payload
{
"duplicate_source_locator":<section-block-id>,
"parent_locator":<course-block-id>
}
## response example
{
"locator": <new-section-block-id>,
"courseKey": "course-v1:RG+DEV+TL0"
}
| Delivered |
| Duplicated Section scroll effect - TBD |
|
|
|
| Content: Section Duplicate (BE) |
|
|
|
| Content: Section Delete (FE) | AC
Tech
| Section deletion: # API details
DELETE <CMS>/xblock/<section-id>
## response HTTP code
204 | Delivered |
| Content: Section Delete (BE) |
|
|
|
| Content: Section Move (FE) - TBD | How exactly moving action should work?
declined via Slack
| Only drag-n-drop is available. |
|
| Content: Subsections list (FE)
| AC
Tech
| Subsection card hover cursors Pointer Move Subsection card elements
|
|
| Content: New Subsection (FE) | AC
Tech
| UI:
Section editing save: # API details
POST <CMS>/xblock/
## payload
{
"parent_locator":<chapter-block-id>,
"category":"sequential",
"display_name":"Subsection"
}
## response example
{
"locator": <new-sequential-block-id>,
"courseKey": "course-v1:RG+DEV+TL0"
}
|
|
| Content: New Subsection (BE) |
|
|
|
| Content: Subsection Edit (FE) | AC
Tech
|
Subsection editing save: # API details
POST <CMS>/xblock/<sequential-block-id>
## payload
{
metadata: {
display_name: <new-value>
}
}
## response example
{
"id": <sequential-block-id>,
"data": null,
"metadata": {
"display_name": <saved-value>
}
}
|
|
| Content: Subsection Edit (BE) |
|
|
|
| Content: Subsection Publish (FE) | AC
Tech
| Subsection publishing: # API details
POST <CMS>/xblock/<sequential-block-id>
## payload
{
"publish":"make_public"
}
## response example
{
"id": <sequential-block-id>,
"data": null,
"metadata": {
"display_name": "Subsection1",
"highlights": [
...
]
}
}
|
|
| Content: Subsection Edit (BE) |
|
|
|
| Content: Subsection Configure (FE)
| AC
Tech
| Section configuration: # API details
POST <CMS>/xblock/<sequential-block-id>
## payload example
{
"graderType":"notgraded",
"metadata":{
"due":null,
"visible_to_staff_only":null,
"hide_after_due":true,
"show_correctness":"never",
"is_practice_exam":false,
"is_time_limited":false,
"exam_review_rules":"",
"is_proctored_enabled":false,
"default_time_limit_minutes":0,
"is_onboarding_exam":false
},
"publish":"republish"
}
## response example
{
"id": "block-v1:RG+DEV+TL0+type@sequential+block@6c953a45b291461a8648a1157ca6bdb8",
"data": null,
"metadata": {
"display_name": "Subsection Name",
"show_correctness": "never",
"default_time_limit_minutes": 0,
"exam_review_rules": "",
"hide_after_due": true,
"is_onboarding_exam": false,
"is_practice_exam": false,
"is_proctored_enabled": false,
"is_time_limited": false
},
"graderType": "notgraded"
}
|
|
| Content: Subsection Configure (FE)
| depends on previous
|
|
|
| Content: Subsection Configure (BE) |
|
|
|
| Tool Bar: Collapse All Sections (FE)
| AC
Tech
|
|
|
| Content: Subsection Duplicate (FE) | AC
Tech
| Subsection duplication: # API details
POST <CMS>/xblock/
## payload
{
"duplicate_source_locator":<subsection-block-id>,
"parent_locator":<section-block-id>
}
## response example
{
"locator": <new-subsection-block-id>,
"courseKey": "course-v1:RG+DEV+TL0"
}
|
|
| Content: Subsection Duplicate (BE) |
|
|
|
| Content: Subsection Delete (FE) | AC
Tech
| Subsection deletion: # API details
DELETE <CMS>/xblock/<subsection-id>
## response HTTP code
204
|
|
| Content: Subsection Delete (BE) |
|
|
|
| Content: Subsection Move (FE) - TBDdeclined via Slack | How exactly moving action should work?
| Only drag-n-drop is available. |
|
| Content: Subsection Units list (FE)
| AC
Tech
|
|
|
| Content: New Unit (FE) | AC
Tech
| UI: Section editing save: # API details
POST <CMS>/xblock/
## payload
{
"parent_locator":<sequential-block-id>,
"category":"vertical",
"display_name":<unit-title>
}
|
|
| Content: New Unit (BE) |
|
|
|
| Content: Unit Edit (FE) | AC
Tech
| Design Unit editing save: # API details
POST <CMS>/xblock/<vertical-block-id>
## payload
{
metadata: {
display_name: <new-value>
}
}
## response example
{
"id": <vertical-block-id>,
"data": null,
"metadata": {
"display_name": <saved-value>
}
}
|
|
| Content: Unit Edit (BE) |
|
|
|
| Content: Unit Publish (FE) | AC
Tech
| Unit publishing: # API details
POST <CMS>/xblock/<unit-id>
## payload
{
"publish":"make_public"
}
## response example
{
"id": "block-v1:RG+DEV+TL0+type@chapter+block@060085dc25e34eeb958d6cb6540d4f8c",
"data": null,
"metadata": {
"display_name": <unit-title>,
"highlights": [
...
]
}
}
|
|
| Content: Unit Publish (BE) |
|
|
|
| Content: Unit Configure (FE) - TBD | AC
Tech
| Unit configuration: # API details
POST <CMS>/xblock/<vertical-block-id>
## payload
{
"publish":"republish",
"metadata":{
"visible_to_staff_only":true
}
}
## response example
{
"id": <vertical-block-id>,
"data": null,
"metadata": {
"display_name": <unit-title>,
"visible_to_staff_only": true
}
}
|
|
| Content: Unit Configure (BE) |
|
|
|
| Content: Unit Duplicate (FE) | AC
Tech
| Unit duplication: # API details
POST <CMS>/xblock/
## payload
{
"duplicate_source_locator":<vertical-block-id>,
"parent_locator":<sequential-block-id>
}
## response example
{
"locator": <new-vertical-block-id>,
"courseKey": "course-v1:RG+DEV+TL0"
}
|
|
| Content: Unit Duplicate (BE) |
|
|
|
| Content: Unit Delete (FE) | AC
Tech
| Unit deletion: # API details
DELETE <CMS>/xblock/<vertical-block-id>
## response HTTP code
204
|
|
| Content: Unit Delete (BE) |
|
|
|
| Content: Unit Move (FE) - TBD |
| Only drag-n-drop is available. |
|
| Content: Entrance Exam (FE) - TBD |
|
|
|