Revoke Learner Certificate › Certificate Management
🎬 Simulate:

Certificate Management

Search / Filter
Certificate List
# Learner Name Course Name Institution Issue Date Status
1 John Smith Python Basics NUOL 01 Jan 2026 issued
2 Jane Doe Data Science Fundamentals UDL 15 Feb 2026 revoked β€”
3 Bob Johnson AI for Everyone NUOL 20 Mar 2026 issued
4 Alice Brown Data Analysis with Excel UDL 05 Apr 2026 issued
Showing 4 certificates

Screen Flow (from flow.puml):

πŸ“ Spec notes β€” UC-LMS.20 / SCR-LMS.54 + SCR-LMS.55 (embedded dialog)
Identity
  • Screen: SCR-LMS.54 β€” Certificate Management
  • Use case: UC-LMS.20 β€” Revoke Learner Certificate
  • Primary actor: ACT-04 Super Administrator
Brief description

Lists all certificates issued to learners system-wide. Super Admin uses this page to search, filter, and select a certificate to revoke before proceeding to the confirmation dialog (SCR-LMS.55). Table is sorted newest-to-oldest by issue date by default.

Fields (SCR-LMS.54)
  • search_learner "Search by Learner Name" β€” text Β· data_ref: null Β· always Β· not required
  • search_course "Search by Course Name" β€” text Β· data_ref: null Β· always Β· not required
  • filter_status "Status" β€” enum [all, issued, revoked] Β· data_ref: Enrollment.certificate_status Β· default: all
  • learner_name "Learner Name" β€” text Β· data_ref: LearnerProfile.full_name (cross-module IDP) Β· read-only
  • course_title "Course Name" β€” text Β· data_ref: Course.title Β· read-only
  • institute_name "Institution" β€” text Β· data_ref: Institute.name (cross-module IDP) Β· read-only
  • certificate_issued_date "Issue Date" β€” date Β· data_ref: Enrollment.certificate_issued_date Β· read-only Β· sort default: DESC
  • certificate_status "Status" β€” enum [issued, revoked] Β· data_ref: Enrollment.certificate_status Β· read-only
  • certificate_revoked_date "Revocation Date" β€” date Β· visible when row.certificate_status == revoked Β· data_ref: Enrollment.certificate_revoked_date ⚠ gap field β€” pending /analyze-entities
Actions (SCR-LMS.54)
  • search "Search" β€” enabled: always Β· triggers UC-LMS.20-M-1
  • revoke_row "Revoke" (per row) β€” enabled when row.certificate_status == issued Β· triggers UC-LMS.20-M-3
Additional requirements (SCR-LMS.54)
  1. Table sorted newest-to-oldest by certificate_issued_date by default
  2. Display empty state "No certificates found matching the search criteria" with guidance when result set is empty (per UC-LMS.20 additional requirement #3)
  3. The "Revoke" action button is shown only for rows where certificate_status = issued; rows with revoked status do not display this button
↳ Embedded dialog: SCR-LMS.55 β€” Revoke Certificate Confirmation Dialog
Fields (SCR-LMS.55)
  • learner_name "Learner Name" β€” text Β· read-only Β· pre-populated from SCR-LMS.54 row Β· data_ref: LearnerProfile.full_name (cross-module IDP)
  • course_title "Course Name" β€” text Β· read-only Β· pre-populated Β· data_ref: Course.title
  • certificate_issued_date "Issue Date" β€” date Β· read-only Β· pre-populated Β· data_ref: Enrollment.certificate_issued_date
  • revoke_reason "Revocation Reason" β€” textarea Β· required Β· max 500 chars Β· data_ref: Enrollment.certificate_revoke_reason ⚠ gap field β€” pending /analyze-entities
Actions (SCR-LMS.55)
  • confirm_revoke "Confirm Revoke" β€” enabled when required_fields_valid Β· triggers UC-LMS.20-M-5
  • cancel "Cancel" β€” enabled: always Β· data-bs-dismiss="modal" Β· triggers UC-LMS.20-A-4A-1
Additional requirements (SCR-LMS.55)
  1. Dialog must display a prominent warning that the revocation action cannot be undone
  2. Certificate Details fields are pre-populated from the selected row and cannot be edited in the dialog
data-bs-backdrop="static" data-bs-keyboard="false" β€” not dismissible by Escape / click outside