The 4W Report is a standard humanitarian coordination tool that answers four key questions about relief operations: Who is doing What, Where, and When.
flowchart LR
subgraph "4W Dimensions"
WHO[Who<br/>Organizations]
WHAT[What<br/>Clusters/Items]
WHERE[Where<br/>Areas]
WHEN[When<br/>Dates]
end
subgraph "Data Sources"
REQ[Requests]
DON[Donations]
DIS[Dispatches]
end
REQ --> WHO
REQ --> WHAT
REQ --> WHERE
REQ --> WHEN
DON --> WHO
DIS --> WHERE
| Dimension | Field | Description |
|---|---|---|
| Who | requester_id / cluster_id.partner_id |
Organization requesting or providing assistance |
| What | cluster_id / product categories |
Type of assistance (OCHA cluster or item category) |
| Where | destination_area_id |
Geographic location of distribution |
| When | date_requested / date_needed |
Time period of the operation |
DRIMS > Reports > 4W Report
The 4W Report Wizard allows filtering before generating the report:
- Select Incident (required)
- Set Date Range (optional)
- Filter by Clusters/Sectors (optional)
- Filter by Area (optional)
- Choose status filters:
- Include Planned/Pending
- Include Completed
- Click Generate Report
The wizard generates a pivot view with:
- Rows: Destination Area (Where)
- Columns: Requester (Who)
- Measures: Total items, Total value
| View | Purpose |
|---|---|
| Pivot | Tabular cross-reference of dimensions |
| Graph | Visual charts for presentations |
Model: spp.drims.report.4w.wizard
| Field | Type | Description |
|---|---|---|
incident_id |
Many2one | Required - Filter by incident |
date_from |
Date | Start of date range |
date_to |
Date | End of date range |
cluster_ids |
Many2many | Filter by humanitarian clusters |
area_id |
Many2one | Filter by geographic area (uses hierarchy) |
include_planned |
Boolean | Include draft/pending/approved requests |
include_completed |
Boolean | Include dispatched/delivered requests |
Each request can be tagged with an OCHA/IASC humanitarian cluster:
flowchart TD
REQ[Request] --> CL[Cluster Field]
CL --> FS[Food Security]
CL --> HE[Health]
CL --> WA[WASH]
CL --> SH[Shelter]
CL --> PR[Protection]
CL --> ED[Education]
See COORDINATION.md for the full list of OCHA clusters.
Generate report showing:
- All requests grouped by cluster
- Filter to specific incident
- Include both planned and completed
wizard = env['spp.drims.report.4w.wizard'].create({
'incident_id': incident.id,
'include_planned': True,
'include_completed': True,
})
action = wizard.generate_report()Generate report showing:
- Requests from the past 7 days
- Grouped by area and status
from datetime import date, timedelta
wizard = env['spp.drims.report.4w.wizard'].create({
'incident_id': incident.id,
'date_from': date.today() - timedelta(days=7),
'date_to': date.today(),
})
action = wizard.generate_report()Generate report for a specific district:
wizard = env['spp.drims.report.4w.wizard'].create({
'incident_id': incident.id,
'area_id': colombo_district.id, # Includes all sub-areas
})
action = wizard.generate_report()To add custom measures to the pivot view, extend views/report_4w_wizard_views.xml:
<field name="affected_population" type="measure"/>
<field name="total_value" type="measure"/>Add filters to the search view for additional dimensions:
<filter
name="priority_high"
string="High Priority"
domain="[('priority_id.code', '=', 'high')]"
/>The pivot view supports:
- Excel Export - Download as XLSX
- PDF Print - Generate printable PDF
- Copy/Paste - Select cells for external use
- Generate report before meeting
- Group by cluster for sector leads
- Include both planned and completed
- Filter to relevant time period
- Filter to donor's funded clusters
- Include completed operations only
- Export as Excel for detailed analysis
- Group by area (district/province)
- Show totals and percentages
- Use graph view for visual impact
- COORDINATION.md - OCHA clusters and coordination modes
- WORKFLOWS.md - Request workflow states
- DASHBOARDS.md - Real-time KPIs