LMS Core › Manage Specialization › Edit Specialization
๐ŸŽฌ Simulate: Recoverable ยท AF-2A Reset

Edit Specialization

Basic information
Member courses

Select courses to include in this Specialization โ€” drag to reorder. Learners must complete courses in the specified order.

โ ฟ 1 HTML & CSS Fundamentals published
โ ฟ 2 JavaScript Essentials published
โ ฟ 3 Introduction to Python Programming unpublished
โ ฟ 4 React & Frontend Frameworks published
Shows only published courses within Program Admin's scope
Tags

Tags from selected courses auto-pulled

Web Development (paid) Science (paid) Programming Data Science

Additional tags free groups only

Only tags from free (non-paid) tag groups can be added at the Specialization level

Screen Flow (from flow.puml):

โ†’ Save / Cancel / Publish success โ†’ Manage Specialization List โ†’ Validation fail / Unpublished warning โ†’ (stays on this page)
๐Ÿ“ Spec notes โ€” UC-LMS.02 / SCR-LMS.12 (fields, actions, requirements)
Identity
  • Screen: SCR-LMS.12 โ€” Manage Specialization Editor
  • Use case: UC-LMS.02 โ€” Manage Specialization
Brief description

Form page for Program Admin to create or edit a Specialization. All information on one page โ€” name, description, objectives, member course list (drag-and-drop reordering), and tags. When courses are selected the system auto-pulls their tags; tags from a Paid Tag Group are locked chips; tags from a Free Tag Group are removable. Additional tags from a Free Tag Group can be added at the Specialization level.

Fields
  • title "Specialization Name" โ€” text ยท required ยท max 200 chars ยท Specialization.title
  • description "Description" โ€” textarea ยท optional ยท Specialization.description
  • objectives "Objectives" โ€” textarea ยท optional ยท Specialization.objectives
  • member_courses "Member Courses" โ€” multi-select enum ยท SpecializationCourse.course_id; sequence from drag-and-drop โ†’ SpecializationCourse.sequence
  • unpublished_course_warning "Unpublished Course Warning" โ€” text ยท read-only ยท visible when any(member_courses) where Course.status != published
  • course_tags "Tags from selected courses" โ€” auto-pulled from selected courses ยท Tag.id via SpecializationTag; Paid Tag Group โ†’ locked chip (non-removable); Free Tag Group โ†’ removable chip
  • additional_tags "Additional tags" โ€” picker restricted to tags from a Free Tag Group only ยท Tag.id via SpecializationTag
Actions
  • save "Save" โ€” enabled when title != '' && member_courses.length ≥ 1 && (course_tags.length + additional_tags.length) ≥ 1 ยท triggers UC-LMS.02-M-8
  • cancel "Cancel" โ€” enabled always
  • continue_with_unpublished "Continue" โ€” enabled when unpublished_course_warning != '' ยท governed by UC-LMS.02 additional_requirements #3 (keep unpublished course)
  • remove_unpublished_course "Remove" โ€” enabled when unpublished_course_warning != '' ยท governed by UC-LMS.02 additional_requirements #3 (remove unpublished course)
Additional requirements
  1. Course picker filters to status=published within Program Admin's scope โ€” courses unpublished after assignment still appear in the member list with a status badge
  2. Drag-and-drop reorders courses in the member list โ€” order is stored as SpecializationCourse.sequence (1-based) on save
  3. Warning banner appears when any member course has been unpublished โ€” checked on opening edit page and on clicking Save; shows Continue and Remove buttons
  4. Save failure (Validation-Failed) โ€” system shows inline error identifying missing fields (name / at least 1 course / at least 1 tag) and scrolls to the section with errors
  5. When courses are selected the system auto-pulls their tags into course_tags; tags from a Paid Tag Group โ†’ locked chip; tags from a Free Tag Group โ†’ removable chip
  6. Additional tags via additional_tags picker are restricted to tags from a Free Tag Group only
Mode notes
  • Create mode (scenario: main) โ€” empty form, page title "Create Specialization"; tags section empty until courses are selected
  • Edit mode (scenario: AF-2A) โ€” pre-filled with current data, page title "Edit Specialization"; inherited tags and additional tags pre-populated
  • Unpublished warning (scenario: Course-Unpublished) โ€” warning banner shown with Continue / Remove buttons
  • Save validation error (scenario: Validation-Failed) โ€” error alert summary + inline error on affected fields