Remove deprecated legacy frontend code, UserProfile, and Twilio SMS#967
Draft
alexdlaird wants to merge 11 commits into
Draft
Remove deprecated legacy frontend code, UserProfile, and Twilio SMS#967alexdlaird wants to merge 11 commits into
alexdlaird wants to merge 11 commits into
Conversation
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | -26 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
966d1e2 to
99fc6bc
Compare
99fc6bc to
a1b7fe2
Compare
Frees the platform from legacy frontend support ahead of frontend-legacy shutdown on August 1, 2026. API surface - Drop legacy token endpoint, serializer, and longer-TTL token classes - Drop deprecated PUT on user profile and GET on user push token - Drop CourseSchedule-as-Events views and DELETE on CourseSchedule - Drop legacy CSRF/CORS origins, throttle scope, and PROJECT_APP_LEGACY_HOST - Drop FRONTEND_LEGACY_VERSION setting Models, services, tasks - Delete UserProfile model entirely (only held phone fields, all legacy) - Drop User.last_login_legacy field - Migration 0060 removes the model and field - Delete Twilio integration: phoneservice, send_text task, process_text_reminders - Drop twilio dependency from requirements.txt - Add deprecation comment to User.username explaining it stays only because Django's AbstractBaseUser requires USERNAME_FIELD CI - Drop legacy cluster-tests stages from release/deploy/build workflows
- Delete entire testcasecoursescheduleresourceviews.py (tested the CourseScheduleAsEvents views removed in this PR) - Delete test_get_push_token_by_id (tested the deprecated GET removed) - Update test_delete_course_schedule_by_id to expect 405 (DELETE method was removed; DRF now returns Method Not Allowed) - Drop UserProfile assertions from test_get_user (UserProfile is gone)
This reverts commit 7fd1a97.
a1b7fe2 to
87e0316
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #967 +/- ##
===========================================
- Coverage 87.66% 87.50% -0.17%
===========================================
Files 141 136 -5
Lines 7509 7212 -297
Branches 754 730 -24
===========================================
- Hits 6583 6311 -272
+ Misses 736 713 -23
+ Partials 190 188 -2 ☔ View full report in Codecov by Sentry. |
Rename Django migration file from 0047_alter_reminder_type.py to 0048_alter_reminder_type.py and update the generated timestamp. Update the migration dependency from ('planner', '0046_alter_category_title_and_more') to ('planner', '0047_alter_category_weight_alter_course_credits_and_more') so the migration ordering remains correct.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removes everything in platform marked deprecated for the legacy frontend, plus the
UserProfilemodel (only held phone fields) and the Twilio SMS integration. Lands alongside the Aug 1, 2026 frontend-legacy shutdown.API
/auth/token/legacy/, deprecatedPUT /auth/user/profile/, deprecatedGET /auth/user/pushtoken/<pk>/CourseScheduleAsEventsviews and the deprecatedDELETEonCourseScheduleApiDetailViewuser_legacythrottle,PROJECT_APP_LEGACY_HOST,FRONTEND_LEGACY_VERSIONUserRateThrottle(the customhelium.common.throttles.UserRateThrottlewas legacy-only)PUTremoved,PATCH-onlyusernamefromUserCreateSerializer(auto-generated from email)material_groupmade read-only onMaterialSerializerPOPUP/TEXTreminder types, alias toPUSH, shrinkREMINDER_TYPE_CHOICESto(EMAIL, PUSH); import service forward-maps legacy type valuesModels / services / CI
UserProfilemodel andUser.last_login_legacyfieldphoneservice,send_texttask,process_text_reminders,text_remindersperiodic tasktwiliofromrequirements.txtUser.username(kept only becauseAbstractBaseUserrequiresUSERNAME_FIELD; auto-generated from email)run_legacy_cluster_testsand the cluster-tests stage fromrelease.yml/deploy.yml/build.ymlLinked PRs — do not merge before Aug 1, 2026
Merge in order — this PR last so the deploy doesn't 404 routes the legacy frontend is still calling:
Test plan
helium_auth/0060,helium_auth/0061,helium_planner/0047apply cleanly on a copy of prod dataPOST /auth/token/legacy/returns 404GET /planner/courseschedules/events/returns 404