Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughAdds per-channel token rotation in Django admin; supports CalDAV Apple ChangesBackend: Token Rotation Admin and CalDAV Protocol Tests
Frontend: Calendar List Reordering via calendar-order
Frontend: Scheduler View Updates and Mobile UX Improvements
Sequence DiagramsequenceDiagram
participant UI as CalendarList (UI)
participant Context as CalendarContext
participant Service as CalDavService
participant Backend as CalDAV server
UI->>Context: moveCalendar(calendarUrl, "up"/"down")
Context->>Service: updateCalendar(url, { order })
Service->>Backend: PROPPATCH (calendar-order)
Backend-->>Service: 200/4xx
Service-->>Context: { success, error? }
Context-->>UI: refreshCalendars / { success:false, error }
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/backend/core/tests/test_cross_org_e2e.py`:
- Around line 2230-2244: The PROPFIND test uses string assertions and misses
HTTP status checks; update the owner_client.generic call handling to assert
check.status_code (expect 207), parse check.content as XML (e.g., using
ElementTree), locate the A:calendar-order property for cal_url's response, and
assert its text equals "42" (instead of checking for ">42<"), repeating the same
explicit status and XML-value assertions for the similar block referenced at
lines around 2268-2283; reference the owner_client.generic call, the check
response variable, and cal_url when implementing these changes.
In
`@src/frontend/apps/calendars/src/features/calendar/components/scheduler/scheduler-theme.scss`:
- Line 265: Remove the two empty SCSS comment lines (the standalone "//"
occurrences) that are causing stylelint's scss/comment-no-empty rule to fail;
locate the empty comments in scheduler-theme.scss (the standalone // lines
around the existing rule blocks) and either delete them or replace them with
meaningful comments (non-empty text) so the linter no longer flags
scss/comment-no-empty.
In
`@src/frontend/apps/calendars/src/features/calendar/contexts/CalendarContext.tsx`:
- Around line 354-365: In moveCalendar, Promise.all(updates) currently assumes
each caldavService.updateCalendar resolves to success; instead await Promise.all
to get an array of results, inspect each result (the resolved values from
caldavService.updateCalendar) and if any has success: false (or an unexpected
shape) throw or return a failure before calling refreshCalendars; update the
code around the updates variable and the try block (referencing moveCalendar,
caldavService.updateCalendar, and refreshCalendars) to validate every response
and only proceed to refreshCalendars and return { success: true } when all
responses indicate success.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: a4ba5413-c22d-40ff-af4d-c8778af4b13a
📒 Files selected for processing (20)
src/backend/core/admin.pysrc/backend/core/templates/admin/core/channel/change_form.htmlsrc/backend/core/tests/test_cross_org_e2e.pysrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/CalendarItemMenu.tsxsrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/CalendarList.tsxsrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/CalendarListItem.tsxsrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/types.tssrc/frontend/apps/calendars/src/features/calendar/components/scheduler/Scheduler.tsxsrc/frontend/apps/calendars/src/features/calendar/components/scheduler/SchedulerToolbar.tsxsrc/frontend/apps/calendars/src/features/calendar/components/scheduler/hooks/useSchedulerInit.tssrc/frontend/apps/calendars/src/features/calendar/components/scheduler/mobile/MobileToolbar.tsxsrc/frontend/apps/calendars/src/features/calendar/components/scheduler/mobile/WeekDayBar.tsxsrc/frontend/apps/calendars/src/features/calendar/components/scheduler/scheduler-theme.scsssrc/frontend/apps/calendars/src/features/calendar/components/scheduler/types.tssrc/frontend/apps/calendars/src/features/calendar/contexts/CalendarContext.tsxsrc/frontend/apps/calendars/src/features/calendar/services/dav/CalDavService.tssrc/frontend/apps/calendars/src/features/calendar/services/dav/caldav-helpers.tssrc/frontend/apps/calendars/src/features/calendar/services/dav/types/caldav-service.tssrc/frontend/apps/calendars/src/features/i18n/translations.jsonsrc/frontend/apps/calendars/src/pages/index.scss
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@src/frontend/apps/calendars/src/features/calendar/components/scheduler/scheduler-theme.scss`:
- Around line 321-332: Update the visually-hidden pseudo-element (&::after) to
replace the deprecated clip declaration: remove clip: rect(0, 0, 0, 0); and add
clip-path: inset(50%); (keep position: absolute, width: 1px, height: 1px,
padding: 0, margin: -1px, overflow: hidden, white-space: nowrap, border: 0 and
content unchanged) so the element remains hidden while using the modern
clip-path approach.
In
`@src/frontend/apps/calendars/src/features/calendar/services/dav/caldav-helpers.ts`:
- Around line 512-520: parseCalendarOrder accepts strings like "10abc" because
it uses Number.parseInt; update parseCalendarOrder to first trim the string and
only parse when the entire trimmed string is an integer (e.g. test with a
full-match regex such as /^\d+$/ or /^[+-]?\d+$/), then convert to number
(Number.parseInt or Number) and return it; otherwise return undefined. Target
the parseCalendarOrder function in caldav-helpers.ts and perform the trim +
full-match check before parsing.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 736f0d8c-324c-4e55-b99d-d2f001ee01d8
📒 Files selected for processing (13)
src/backend/core/tests/conftest.pysrc/backend/core/tests/test_cross_org_e2e.pysrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/CalendarItemMenu.tsxsrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/CalendarList.tsxsrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/CalendarListItem.tsxsrc/frontend/apps/calendars/src/features/calendar/components/calendar-list/types.tssrc/frontend/apps/calendars/src/features/calendar/components/scheduler/scheduler-theme.scsssrc/frontend/apps/calendars/src/features/calendar/components/scheduler/types.tssrc/frontend/apps/calendars/src/features/calendar/contexts/CalendarContext.tsxsrc/frontend/apps/calendars/src/features/calendar/services/dav/CalDavService.tssrc/frontend/apps/calendars/src/features/calendar/services/dav/__tests__/caldav-helpers.test.tssrc/frontend/apps/calendars/src/features/calendar/services/dav/caldav-helpers.tssrc/frontend/apps/calendars/src/pages/index.scss
💤 Files with no reviewable changes (1)
- src/frontend/apps/calendars/src/features/calendar/components/scheduler/types.ts
|
Actionable comments posted: 0 |
Summary by CodeRabbit
New Features
UI/UX Improvements
Tests