| Announcement banner | Custom Widget (dismissible) | announcements where active and audience matches Ahmad's role ∩ factory (Operators+Supervisors · CTSB), pinned first; ack_required=true on this one | Worked example of D47: the UI chrome stays in Ahmad's locale, but the announcement body itself is free text the author (Leo) wrote in whatever language reads best on the floor — here English + Burmese side by side, never machine-translated. Acknowledge ✓ and dismiss ✕ both write announcement_reads (ack sets ack + read_at; dismiss just hides — house rule, decorative here); ack count rolls up on admin-announcements.html. |
| Now card | Custom Widget (single record) | The one MO operation assigned to auth user with an open time entry (else the top-ranked assigned task); shows step + machine + MO ref only | One current task, two one-tap actions: green books time / marks done, red raises a breakdown work order with asset pre-filled |
| Next up | TableWidget (card layout) on tasks | Tasks assigned_to = me, status queued, factory-scoped, ordered by schedule; Start = one tap that opens the step and starts the timer | Operator never chooses from the whole schedule — the system feeds the next two steps in order |
| Checklists due | TableWidget (card layout) on daily_cleaning_records + cleaning logs | Pending cleaning checklists for rooms/assets on my line today (Weighing Room AM; FL-01 changeover after run) | Every item defaults to PASS (house rule) — Ahmad only marks exceptions, so a clean run is two taps: open, submit |
| Snap photos | Action widget → FileUpload (camera capture) | Evidence requests from the executing BMR (BMR-26-031 wants sachet close-up + expiry print check); upload writes media rows auto-tagged mo_id + operation_id + bmr_id | No filing, no renaming — the tag comes from context so QA finds the photo inside the BMR automatically |
| View instruction (Book time modal) | TextEntry (read-only, collapsible) | Reads mo_operations.work_instruction + machine_settings for the current step (Sachet Packing, frozen at MO creation — D45); same text as prints on the job traveler | Ahmad can check the setup without leaving the one-tap flow; read-only for operators — edits happen only on the item's Operations tab and never touch this open MO |