feat: Add time block approval workflow and staff permission system

- Add TimeBlock approval status with manager approval workflow
- Create core mixins for staff permission restrictions (DenyStaffWritePermission, etc.)
- Add StaffDashboard page for staff-specific views
- Refactor MyAvailability page for time block management
- Update field mobile status machine and views
- Add per-user permission overrides via JSONField
- Document core mixins and permission system in CLAUDE.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-07 17:49:37 -05:00
parent 01020861c7
commit 410b46a896
27 changed files with 3192 additions and 1237 deletions

View File

@@ -491,7 +491,39 @@
"reactivateAccount": "Reactivate Account",
"deactivateHint": "Prevent this user from logging in while keeping their data",
"reactivateHint": "Allow this user to log in again",
"deactivate": "Deactivate"
"deactivate": "Deactivate",
"canSelfApproveTimeOff": "Can self-approve time off",
"canSelfApproveTimeOffHint": "Add time off without requiring manager/owner approval"
},
"staffDashboard": {
"welcomeTitle": "Welcome, {{name}}!",
"weekOverview": "Here's your week at a glance",
"noResourceLinked": "Your account is not linked to a resource yet. Please contact your manager to set up your schedule.",
"currentAppointment": "Current Appointment",
"nextAppointment": "Next Appointment",
"viewSchedule": "View Schedule",
"todayAppointments": "Today",
"thisWeek": "This Week",
"completed": "Completed",
"hoursWorked": "Hours Worked",
"appointmentsLabel": "appointments",
"totalAppointments": "total appointments",
"completionRate": "completion rate",
"thisWeekLabel": "this week",
"upcomingAppointments": "Upcoming",
"noUpcoming": "No upcoming appointments",
"weeklyOverview": "This Week",
"appointments": "Appointments",
"today": "Today",
"tomorrow": "Tomorrow",
"scheduled": "Scheduled",
"inProgress": "In Progress",
"cancelled": "Cancelled",
"noShows": "No-Shows",
"viewMySchedule": "View My Schedule",
"viewScheduleDesc": "See your daily appointments and manage your time",
"manageAvailability": "Manage Availability",
"availabilityDesc": "Set your working hours and time off"
},
"tickets": {
"title": "Support Tickets",