Record daily attendance and lock the reviewed sheet
Use a daily attendance sheet to record one class's attendance for one date. Generate the roster, replace the suggested statuses with the actual attendance, then Confirm and Lock. Locking protects the recorded attendance from direct edits and records who completed the action.
This guide covers Odoo 20 Community. It is based on source and supplied forms, with no complete browser journey performed. The suite's limited compatibility qualification does not establish full product acceptance; earlier Phase 3 gates remain unfinished. See Education: getting started for the qualification scope.
Before you begin
Attendance is included in Students, which depends on Academics, Documents, and Contacts; Academics and Documents use Core. Classroom assignments are a separate workflow and are not required for daily attendance.
| Role | Responsibility in this workflow |
|---|---|
| Teacher (Education Academics) alone | Read attendance records within the permitted campus and company scope. |
| Attendance Officer | Create and update sheets, generate students, confirm, lock, and create correction requests within assigned campuses and enabled companies. |
| Student Officer | Includes Attendance Officer; also sees Workflow Attribution on the sheet. |
| Student Manager | Includes Student Officer; can reset Confirmed or Cancelled sheets to Draft, decide correction requests, and edit a locked sheet's Notes. Access remains limited to enabled companies. |
Daily attendance does not require the course-offering teacher assignment used by the classroom assignment guide. Student Officer and Student Manager include attendance permissions; the classroom assignment guide's role-combination restriction does not apply here.
Have the student-records team prepare the class and its student placements. A placement links a student's enrollment to a class; the class must match the enrollment's campus, academic year, program, and grade. Check that the chosen attendance date belongs to the intended school calendar.
Generate Students selects visible, non-cancelled placements for that class whose start and end dates cover the attendance date, with a missing end date treated as open-ended. It is not restricted to placements currently marked Active: historical Completed, Transferred, or Withdrawn placements can qualify on a date they cover. Daily attendance does not automatically validate a term boundary or require today's date. Review the resulting roster against the school's records.
Generate and check the roster
- Open Education → Attendance → Attendance Sheets. Search for the class and date before creating a sheet. The list initially filters to Draft; remove that filter when checking for an existing Confirmed or Locked sheet.
- Create a sheet, select Class, enter Attendance Date, and keep Scope as Daily. Check the derived Campus, Academic Year, and Company. A daily sheet needs no Teaching Session. Taken By is optional; if set, its staff profile must include the class's campus. Save the draft.
- Choose Generate Students. Inspect the Attendance tab and compare every student and roll number with the intended dated class roster. Resolve missing or unexpected placements with the student-records team before proceeding. Repeating Generate Students adds eligible students not already on the sheet; it does not refresh existing statuses or remove existing rows.
- Check the generated statuses. Students with matching approved leave for the campus, company, and attendance date start as Excused, with Approved Leave linked. Other generated students start as Present. These are defaults, not observations of actual attendance.
Expected result: a Draft sheet with the expected students and placements, ready for the attendance officer to record what happened.
Record actual attendance and confirm
- Set each student's Status to Present, Late, Absent, Excused, or Remote, as appropriate. Enter nonnegative Minutes Late for a Late record and add a useful Note where needed. For Excused attendance, check the Approved Leave belongs to that student and covers the campus and date. Optional Check In and Check Out fields are available; Check Out cannot precede Check In.
- Keep Source as Manual for attendance entered through this procedure. Other source labels do not establish that a device or integration has supplied the record. Save your edits and review the class, date, roster, statuses, and totals.
- Use Set All Present only when that matches the actual attendance of every non-excused student. It overwrites their statuses with Present and resets late minutes to zero, while preserving Excused rows. Review again if you use it.
- Choose Confirm. Confirmed status requires a Draft sheet with at least one attendance row; the action does not verify that the roster is complete or that its statuses are accurate. Attendance rows remain editable while Confirmed, so finish the review before locking. A Student Officer or Student Manager can inspect Confirmed By and Confirmed On under Workflow Attribution.
Expected result: a Confirmed sheet with confirmation attribution recorded. Confirmation alone does not freeze its attendance rows.
Lock the reviewed sheet
- After checking the final entries, choose Lock. Confirm Locked status. A Student Officer or Student Manager can inspect Locked By and Locked On under Workflow Attribution.
- If there are Absent or Late rows, inspect Education → Attendance → Notification Intents and Interventions for the related records. Locking creates internal follow-up records for those statuses. Notification intents show Pending Provider Bridge; interventions show Open, with Student Officer as their owner role. These records do not prove that an email, SMS, or guardian notification was sent.
Expected result: a Locked sheet whose attendance rows cannot be directly added, edited, or deleted. A locked sheet cannot be cancelled, reset to Draft, or deleted. A Student Manager may change its Notes, but attendance values require an approved correction.
Correct an error after locking
An Attendance Officer, Student Officer, or Student Manager can create a correction request in their permitted scope. A Student Manager decides it.
- Review the current locked attendance line first. Then open Education → Attendance → Corrections and create a request. Select the affected locked attendance Line and enter a clear Reason.
- Enter the complete intended values under Proposed Current Projection, including values that should remain unchanged. Check status, check-in/out times, late minutes, Approved Leave, and note before saving. A change to Excused requires matching approved leave for the student, campus, company, and date; other statuses must not retain leave. Only Late may retain late minutes.
- Save. The request is immediately Pending, with the original values retained under Retained Before Snapshot. At least one attendance value must change. The saved request is immutable and cannot be deleted; there is no separate Submit action.
- The Student Manager reviews it and chooses Approve and Apply or Reject. Approval updates the locked line, records the decision, and reconciles its internal follow-up records. If the line has changed since the request was saved, approval is blocked and a new correction is needed. The sheet stays Locked.
The supplied workflow restricts the decision to Student Manager but does not enforce a different requester and approver. Apply your organization's review responsibilities separately.
Try it with fictional records
In an authorized training environment, ask the student-records team to prepare a five-student practice class with placements covering one school day. Use fictional students Ari, Bea, Chen, Dev, and Ellis; arrange approved leave for Dev on that date. These are exercise instructions, not records supplied by this guide.
Follow the main steps and record Ari as Present, Bea as Late by 10 minutes, Chen as Absent, Dev as Excused, and Ellis as Remote. Before confirming, expect five rows: one in each status. After locking, the source predicts one notification intent and one intervention for Bea, and one of each for Chen. None of these internal records establishes delivery to a recipient.
For an optional correction exercise, request Chen's status change from Absent to Present with a reason, preserving other intended values. After a Student Manager approves it, expect the sheet to remain Locked and Chen's former absence follow-up records to be Superseded. The follow-up lists default to Current Actionable; switch to the Superseded filter to inspect that history.
Troubleshooting
| Stopping point | What to check |
|---|---|
| Existing sheet seems missing | Remove the default Draft filter and search by class, date, and Daily scope. A non-cancelled sheet for that combination prevents another daily sheet. |
| Generate Students produces no rows | Check placement dates, class, cancellation state, campus/company access, and whether all eligible students are already listed. |
| Taken By is rejected | Select a staff profile assigned to the class's campus, or leave the optional field empty. |
| Confirm is blocked | The sheet must be Draft and have at least one row. Verify the roster before confirming. |
| Attribution fields are absent | Workflow Attribution is shown to Student Officer and Student Manager, although Attendance Officer can perform the main actions. |
| Lock is unavailable | The sheet must first be Confirmed. Locked values use the correction procedure above. |
| Correction will not save or approve | Check a nonblank reason, a real value change, valid times/late minutes/leave, Student Manager decision authority, and whether the before snapshot is still current. |
This guide covers daily sheets and internal correction evidence. It does not qualify portal access, official grades, progression, outbound delivery, PDF reports, or a complete runtime attendance journey.
Continue with Education setup and access or classroom assignments and internal submissions.