Docs Menu

Docs

How To Mark Staff Attendance

Load the staff roster by date, department, or designation and mark daily attendance with row-level status controls from the Staff Attendance page.

Search docs

Search by workflow, module name, or operational keyword.

Documentation search is ready.

Last updated: March 21, 2026

This guide explains how to use the Staff Attendance page in Migdafa Smart School.

Best for

HR operators, attendance officers, and school admins responsible for daily staff presence records.

Requires

A valid attendance date, optional department or designation filters, and permission to mark or review staff attendance history.

Result

The staff roster for a selected date is loaded so daily status can be marked, reviewed, exported, or checked in history.

Before you start

  • Use a date that the page accepts as today or earlier.
  • Narrow by department or designation only when it helps.
  • Decide whether you will use row-by-row updates or bulk present marking.
  • Expect the current local environment to show a date-validation warning on first load until you set a valid past date and reload.

Important: in the current local environment, the page can initially show a validation warning for the date field. A valid earlier date still loads the staff roster correctly, so treat the warning as an environment quirk rather than the final operational state.

Attendance -> Staff Attendance

Step 1: Open Staff Attendance

Go to Attendance and choose Staff Attendance.

Staff Attendance page with date and staff filters plus a loaded staff roster table.
The Staff Attendance workspace combines date-driven loading, optional HR filters, summary cards, and row-level status controls.

The current page provides:

  • a search field for name or employee ID
  • Attendance Date
  • Department
  • Designation
  • actions such as Load, Clear Filters, Mark All Present, and Export

Step 2: Set a valid attendance date

Choose the attendance date first.

In the local environment, the page currently behaves best when you use a valid earlier date and then click Load. This avoids the initial warning state and returns the actual staff list.

Step 3: Narrow the staff roster if needed

Use Department and Designation when you want to restrict the roster to a specific team or role. You can also search by staff name or employee ID after the page is loaded.

Step 4: Load the roster

Click Load after the filter context is ready.

When the roster loads, the current UI shows:

  • summary cards such as total staff, present, and absent
  • a table with employee ID, staff name, department, designation, status, method, punch in, punch out, and actions
  • View History on each row

Step 5: Mark attendance row by row or in bulk

Each row currently exposes a Select Status control with attendance states such as:

  • Present
  • Absent
  • Late
  • Half Day
  • Holiday
  • On Leave

Use row-level selection when attendance outcomes differ across staff. Use Mark All Present when the whole visible roster shares the same outcome and only a few exceptions need follow-up.

Step 6: Review history or export when needed

Use View History to inspect an individual staff member’s recent attendance pattern. Use Export after the roster is in the right state and you need a record outside the page.

Verify the result

Use this checklist after marking staff attendance:

  • the date is correct
  • the right staff group is loaded
  • row statuses reflect the intended outcome
  • history and export actions are used only after the roster is confirmed

Expected result: the staff roster for the selected date is loaded and staff attendance can be managed through row-level status controls, history review, and export.

Troubleshooting

IssueLikely causeWhat to do
The page shows a date validation warningThe default date state in the local environment is not acceptedEnter a valid earlier date and click Load
No staff are returnedFilters are too narrow or the date context is wrongClear filters and reload with a simpler date-only context
The wrong department is loadedA stale department or designation filter is still activeUse Clear Filters and reload
Bulk present is not appropriateStaff outcomes differ on that dateUse row-level statuses instead of the bulk action

Related docs