You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parent: #59
Follows the route/product naming slice: #115
Product decision
cadmin is a legacy CMP implementation name, not a product concept on the unified website. The logical name is Studio → Courses. The final internal Django/Python namespace should be studio_courses; Django /admin/ remains separate.
Scope
After the copied CMP baseline and #115 behavior are independently accepted, move the copied course-operations package from cadmin to studio_courses as a mechanical rename. Preserve the copied implementation rather than reimplementing it. Keep legacy /cadmin/* only in a small, explicitly owned compatibility route module until its removal gate is approved.
Acceptance criteria
Perform the implementation move mechanically (mv/cp plus imports and Django configuration); do not rewrite course logic during the rename.
The active app config, imports, template namespace, static namespace, test modules, and internal route includes use studio_courses, not cadmin.
Any remaining cadmin reference is limited to the legacy URL compatibility adapter, provenance/inventory history, migrations that must remain immutable, or an explicit allowlist entry with owner and removal gate.
Public and staff-visible language uses only DataTalks.Club, Studio, Courses, or course operations.
Canonical human routes remain /studio/courses... and logical route names remain studio_courses_*; no redirect chain is introduced.
The copied behavior/provenance inventory proves that no original CMP behavior or source file was silently lost in the move.
Run all course-operation, Studio, account, authorization, redirect/replay, API-parity, readable-template, lint/type/Django, desktop, and mobile gates.
Non-goals
Do not combine this mechanical namespace move with model redesign, course/cohort behavior changes, Relay migration, API implementation, or removal of accepted legacy URL redirects.
Parent: #59
Follows the route/product naming slice: #115
Product decision
cadminis a legacy CMP implementation name, not a product concept on the unified website. The logical name is Studio → Courses. The final internal Django/Python namespace should bestudio_courses; Django/admin/remains separate.Scope
After the copied CMP baseline and #115 behavior are independently accepted, move the copied course-operations package from
cadmintostudio_coursesas a mechanical rename. Preserve the copied implementation rather than reimplementing it. Keep legacy/cadmin/*only in a small, explicitly owned compatibility route module until its removal gate is approved.Acceptance criteria
mv/cpplus imports and Django configuration); do not rewrite course logic during the rename.studio_courses, notcadmin.cadminreference is limited to the legacy URL compatibility adapter, provenance/inventory history, migrations that must remain immutable, or an explicit allowlist entry with owner and removal gate./studio/courses...and logical route names remainstudio_courses_*; no redirect chain is introduced./cadmin/*compatibility behavior remains authorization-safe and behaviorally identical to the accepted Make Studio → Courses the canonical course-operations surface #115 contract.Non-goals
Do not combine this mechanical namespace move with model redesign, course/cohort behavior changes, Relay migration, API implementation, or removal of accepted legacy URL redirects.