33 Commits

Author SHA1 Message Date
7f19b3283c update regarding the complaint flow 2026-06-30 13:12:48 +03:00
c5bc9134fe fix: analytics command-center crashes for dept_manager (SurveyInstance has no department field)
All checks were successful
Build and Push Docker Image / build (push) Successful in 2m22s
UnifiedAnalyticsService._filter_by_role tried queryset.filter(department=...) on
SurveyInstance which has no department FK → FieldError → 500 for dept_manager
and director users accessing the command center.

Fixed: check if the model actually has a department field before filtering;
fall back to hospital-level filtering for models without department.

Also: RBAC matrix test updated with more accurate state-based detection.
2026-06-18 16:13:12 +03:00
badb6a9ebf feat: QI Projects — team-member task management + My Tasks + notifications
All checks were successful
Build and Push Docker Image / build (push) Successful in 2m41s
Fixed 3 gaps in the QI Projects module:

Gap 1 (critical): team members couldn't manage their own tasks — the toggle
checkbox/edit/delete were gated behind admin-only can_edit. Now:
- _can_manage_task() helper: admins OR the task assignee OR project team members
- task_toggle_status + htmx_task_toggle_status use the new helper
- task_row.html shows the toggle for assignees (task.assigned_to.user_id check)

Gap 2: no "My QI Tasks" view — added /projects/my-tasks/ showing tasks assigned
to the current user across all projects, with toggle links + stats. Sidebar link.

Gap 3: no notification on task assignment — added apps/projects/signals.py
(post_save on QIProjectTask → create_in_app_notification). apps.py ready() wired.

Tested (headed, 11 PASS / 1 FAIL):
- Cross-department team members (Contact Center + different dept) can VIEW the
  project AND toggle their assigned tasks (both PASS)
- My Tasks view loads for team members
- Excel export returns 500 (real bug, reported)
- Project close via edit form needs correct hospital UUID (test harness issue)

Also bundles accumulated in-progress work across complaints, observations,
organizations, templates, and other modules.

Harness: seed_e2e_project + get_e2e_project_state CLI + qi-projects-workflow.spec.ts
2026-06-16 23:55:58 +03:00
7369d08012 feat: unified reference numbers + feedback modules QA audit
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m14s
Reference numbers (unified scheme PREFIX-YYYYMM-HOSP-NNNN, e.g. CMP-202606-HHN-0001):
- new ReferenceSequence model + generate_reference() helper (apps/core)
- Complaint/Inquiry/Observation/Appreciation/Suggestion emit unified refs via save()
- prefix-based auto-routing in public track API (CMP/INQ/OBS trackable; APR/SGT internal-only)
- removed legacy CMP-/INQ- generators in ui_views, integrations, px_sources
- migrations: core.0003_referencesequence, appreciation.0006, feedback.0008, observations.0012
- unit tests (format, sanitization, monthly reset, 40-thread concurrency)

QA audit:
- isolated E2E hospital sandbox mirroring HH-N + 10 role users (create_e2e_isolated_env)
- feedback-modules-audit.spec.ts + audit helper (headed, run-to-completion)
- reports/feedback-modules-qa-report.md

Also bundles accumulated in-progress work across complaints, observations,
organizations, templates, and other modules.
2026-06-14 14:29:23 +03:00
fd19216b0d track migrations in git, regenerate fresh initial migrations, add staging-test compose, fix .gitignore
All checks were successful
Build and Push Docker Image / build (push) Successful in 1m5s
2026-05-11 23:34:39 +03:00
c5f76b3855 updates
Some checks are pending
Build and Push Docker Image / build (push) Waiting to run
2026-05-11 14:45:30 +03:00
e119312a9c clean up version 2026-04-19 10:53:12 +03:00
bcb9c86541 pre dep 2026-04-09 13:46:34 +03:00
177a7e0f5f updates 2026-04-08 17:13:35 +03:00
23d439f5a5 fix: harden multi-tenant data isolation across 8 modules
Pre-production security fixes to prevent cross-hospital data leaks:

- Standards API: add get_queryset() filtering by department__hospital
- Reports service: add user param with hospital filtering to all querysets
- RCA views: replace is_superuser with tenant_hospital pattern, add access
  checks to all 11 mutation views
- Notifications views: replace is_superuser patterns with _get_notification_hospital
  helper across all 5 settings functions
- Appreciation API: add tenant_hospital fallback to AppreciationViewSet,
  AppreciationStatsViewSet, and LeaderboardView
- AI Analytics: add tenant_hospital fallback in ExecutiveSummaryGenerator and
  ActionRecommendationEngine
- SourceUserRestrictionMiddleware: remove None from ALLOWED_URL_NAMES
- Complaint export: fix nullable patient/due_at/description crashes in CSV
  and Excel export, fix invalid get_category_display/get_source_display calls

E2E test updates:
- Update isolation gap tests to actively assert hospital filtering
- Fix CSV export test to use API context for download handling
- Switch clinical-staff tests to serial mode to prevent race conditions
2026-04-07 01:23:10 +03:00
6b51b0870d More updates 2026-03-28 14:03:56 +03:00
Marwan Alwali
3c2593de78 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	data.json
2026-03-16 02:12:48 +03:00
b57ce661bb Clean up redundant hospital filtering in views
Removed ~300 lines of redundant hospital filtering code from views.
Templates no longer use hospital dropdowns, so views don't need to:
- Query Hospital.objects.filter()
- Apply RBAC filtering to hospitals queryset
- Pass hospitals to context

The middleware (TenantMiddleware) already handles hospital filtering
via request.tenant_hospital for all users.

Files cleaned:
- apps/surveys/ui_views.py
- apps/callcenter/ui_views.py
- apps/complaints/ui_views.py
- apps/analytics/ui_views.py
- apps/physicians/ui_views.py
- apps/projects/ui_views.py
- apps/feedback/views.py
- apps/dashboard/views.py
- apps/journeys/ui_views.py
- apps/appreciation/ui_views.py
2026-03-11 00:49:42 +03:00
Marwan Alwali
b383991053 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	apps/dashboard/views.py
#	config/celery.py
2026-03-10 19:42:39 +03:00
01fa26c59a updates 2026-03-09 16:10:24 +03:00
Marwan Alwali
fa966a3574 Merge remote-tracking branch 'origin/main' 2026-02-25 21:20:10 +03:00
b3d9bd17cb more changes 2026-02-25 04:47:05 +03:00
Marwan Alwali
cce11c0f62 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	PX360/settings.py
#	config/settings/base.py
#	templates/layouts/partials/sidebar.html
2026-02-22 10:14:03 +03:00
39b1dcb8c0 lots of updates 2026-02-22 08:35:53 +03:00
4f2c8e2dbb changes to tik tok 2026-02-12 15:09:48 +03:00
72dd1e8e3c more updates in complaint and survey 2026-02-10 12:33:31 +03:00
3c44f28d33 survey charts and analytics 2026-01-25 10:39:37 +03:00
9d586a4ed3 update on the complaint sla and staff hierarchy 2026-01-24 15:26:30 +03:00
d0a2d5db7b standards app done 2026-01-24 15:24:58 +03:00
aac8698df4 update on the complaint sla and staff hierarchy 2026-01-24 15:24:39 +03:00
4dd3c3e505 standards app done 2026-01-24 15:07:27 +03:00
Marwan Alwali
524efbead9 update-po-file 2026-01-18 14:04:23 +03:00
1f9d8a7198 update on the complaint sla and staff hierarchy 2026-01-15 14:32:49 +03:00
ec675dbc4e social and source app 2026-01-15 14:31:58 +03:00
Marwan Alwali
1ae0e763be update 2026-01-08 10:34:08 +03:00
eb578d9f9b update complain and add ai and sentiment analysis 2026-01-06 18:23:04 +03:00
Marwan Alwali
db60217012 update-command-center-dashboard 2026-01-05 19:40:24 +03:00
Marwan Alwali
2e15c5db7c first commit 2025-12-24 12:42:31 +03:00