What's Changed
- feat(persona): redesign onboarding as a data-driven card flow by @raizasafeel in #2574
- fix: lesson code blocks render, highlight, and store correctly by @raizasafeel in #2580
- fix(settings): checkbox toggle doesn't render until another field changes by @raizasafeel in #2581
- fix(styles): import frappe-ui list stylesheet explicitely by @raizasafeel in #2586
- feat: raven membership integration by @raizasafeel in #2591
- fix(lessons): inline pdf.js PDF viewer for iOS Safari + macro fixes by @raizasafeel in #2592
- fix: miscellaneous fixes (sidebar request dedup, popovers, 404 routes, signup, lesson conversion) by @raizasafeel in #2597
- fix(a11y): keyboard operability and semantic html across frontend by @raizasafeel in #2598
- fix: drop the razorpay dependency by @raizasafeel in #2604
- fix(course_lesson): resolve private lesson media whose file_url contains _ or % by @raizasafeel in #2601
- fix(course_lesson): resolve lesson media with the query builder, not raw SQL by @raizasafeel in #2608
- fix: count a coupon redemption once per payment that was actually paid by @raizasafeel in #2602
- fix: broken access control by @raizasafeel in #2607
- fix(settings): seed Google Meet account form on mount by @raizasafeel in #2609
- fix: lesson editor formatting, profile permissions, and Razorpay order creation by @raizasafeel in #2613
- fix: count a coupon redemption once per payment that was actually paid (backport #2602) by @mergify[bot] in #2617
- feat: give every list page one declarative layout by @raizasafeel in #2622
- fix(link): Open link in new tab to avoid context by @Bowrna in #2621
- fix(patches): batch fix_progress_percentage so migrate survives large sites by @raizasafeel in #2623
- fix(billing): accept any casing of an Indian state at checkout by @raizasafeel in #2627
- fix(patches): batch fix_progress_percentage so migrate survives large sites (backport #2623) by @mergify[bot] in #2626
- feat: make student view a real route instead of editor mode by @raizasafeel in #2629
- feat(raven): let Moderators manage the Raven integration by @raizasafeel in #2632
- fix(settings): stop Settings > Raven dumping a traceback when raven_integration is absent by @raizasafeel in #2633
- fix(lessons): serve the inline PDF viewer only on WebKit, and stop it hanging by @raizasafeel in #2631
Full Changelog: v2.60.1...v2.61.0