46 Commits

Author SHA1 Message Date
85980f232b feat(department): surface appreciations on the department dashboard
Per the workflow realignment, the point of appreciation is recognition —
managers should see the appreciations their department received alongside
other feedback. Adds an 'Appreciations Received' card (amber theme) after
the Pending Actions section, showing the count and the 10 most recent
SENT appreciations. The card only renders when the department has at
least one appreciation.
2026-07-20 22:23:35 +03:00
8783d738f9 chore: pre-realignment cleanup
- department_record_complaint: broaden permission to include any involved
  department (mirrors the OR-filter used to surface complaints in the list)
- send_to_modal: simplify — sends directly to champion+manager, drop the
  contact-person picker (loadDepartmentContacts is now a no-op stub)
- department_inquiry_detail: confirm dialogs on Resolve/Close; fold No-Response
  into the contact_status dropdown
- department_detail: JS string-escaping fixes
2026-07-20 21:14:00 +03:00
41bb9b5dd7 update api doc 2026-07-19 12:27:55 +03:00
fe0a643607 update 2026-07-12 11:18:20 +03:00
6baa34dec3 update and nug fixes 2026-07-11 19:24:28 +03:00
d63ed6f956 more update 2026-07-05 21:34:34 +03:00
5dc61c8e30 update on the px-actions 2026-07-05 14:49:45 +03:00
7f19b3283c update regarding the complaint flow 2026-06-30 13:12:48 +03:00
5e4926d98e fix: 3 API endpoint bugs found in comprehensive API sweep
All checks were successful
Build and Push Docker Image / build (push) Successful in 2m5s
1. /organizations/api/organizations/ 500 — OrganizationSerializer referenced
   non-existent fields (website, license_number, logo). Removed, added
   preferred_language. Now returns 200 with correct data.

2. /journeys/api/stage-templates/ 500 — DRF auto-filter (DjangoFilterBackend)
   tried to create filters for serializer computed fields (survey_template_name).
   Added filter_backends=[] to disable auto-generation. Now returns 200.

3. /journeys/api/stage-instances/ 500 — same DRF filter issue + stale
   select_related referencing non-existent FKs (physician, survey_instance).
   Added filter_backends=[] + explicit select_related on valid FKs.
   NOTE: still crashes the dev server (segfault during DRF request chain).
   The queryset evaluates correctly in Python but the HTTP server dies.
   This is a minor read-only API endpoint; the journey UI pages all work.
   Needs further investigation of the DRF request middleware chain.
2026-06-20 02:23:14 +03:00
50a41f9f3c fix: 4 more bugs from extended URL sweep (123 pages tested)
All checks were successful
Build and Push Docker Image / build (push) Successful in 2m13s
1. /complaints/templates/ — FieldError: order_by('name_en') on ComplaintTemplate
   model which has 'name' (not 'name_en'). Fixed.
2. /executive/* (4 URLs) — NoReverseMatch: redirect('core:home') referenced a
   non-existent URL name. Fixed to redirect('/').
3. /my/ and /my/performance/ — ValueError: QIProjectTask.filter(assigned_to=user)
   passed a User to a Staff FK. Fixed to use user.staff_profile.
4. /organizations/hospitals/ — FieldError: Hospital.objects.filter(hospital=...)
   on a self-referential field that doesn't exist. Fixed to filter by pk.
2026-06-17 20:42:06 +03:00
8a944ad696 fix: 3 system-wide bugs found in URL health sweep (242 URLs, 0 errors after fix)
All checks were successful
Build and Push Docker Image / build (push) Successful in 2m27s
1. /config/test/ — json.loads(request.body) on GET crashed with JSONDecodeError.
   Added @require_http_methods(['POST']) so GET returns 405 instead of 500.

2. /organizations/dropdowns/subsections/ — LegacySubSection.objects.order_by('name')
   used wrong field name (model has name_en/name_ar, not 'name'). Fixed to 'name_en'.

3. /rca/create/ — RCACreateView.dispatch() called _check_rca_create(request) before
   LoginRequiredMixin ran, so AnonymousUser hit is_px_admin() → AttributeError.
   Added auth check before the RBAC check in dispatch().

Post-fix: authenticated sweep of all 242 UI URLs → 233 OK, 0 errors (500s).
2026-06-17 20:32:07 +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
6b51b0870d More updates 2026-03-28 14:03:56 +03:00
0fc06151eb data 2026-03-15 23:48:45 +03:00
01fa26c59a updates 2026-03-09 16:10:24 +03:00
d787d41bc9 export 2026-02-25 08:15:25 +03:00
b3d9bd17cb more changes 2026-02-25 04:47:05 +03:00
39b1dcb8c0 lots of updates 2026-02-22 08:35:53 +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
42cf7bf8f1 update on the surevey 2026-01-24 15:27:30 +03:00
3ce62d80e1 small changes 2026-01-24 15:27:27 +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
Marwan Alwali
02984811ab update 2026-01-13 17:01:46 +03:00
350607d0cc update on the staff model 2026-01-12 12:19:19 +03:00
3a1910a617 temp commit 2026-01-12 12:08:18 +03:00
Marwan Alwali
1ae0e763be update 2026-01-08 10:34:08 +03:00
97de5919f2 add reference and standard 2026-01-08 09:50:46 +03:00
fe0f2c5cea update in forms 2026-01-06 18:26:17 +03:00
d5a2cbda21 update 2026-01-06 18:26:15 +03:00
eb578d9f9b update complain and add ai and sentiment analysis 2026-01-06 18:23:04 +03:00
7d56370811 1 2026-01-06 18:18:35 +03:00
Marwan Alwali
4841e92aa8 added-appreciation-and-updated-po-file 2026-01-01 16:44:42 +03:00
Marwan Alwali
4e367c780c update 2025-12-31 10:52:00 +03:00
Marwan Alwali
2e15c5db7c first commit 2025-12-24 12:42:31 +03:00