Attendance & Quota System

Attendance types, membership-based quotas, and substitute management.

Attendance Types

Each portal can configure custom attendance types (e.g., Present, Absent, Substitute, Medical Leave). Navigate to Superuser → Attendance Types to manage them.

Each type has:

  • Name: Display name (e.g., "Absent", "Substitute", "Medical")
  • Color: Visual indicator color
  • Counts as Present: Whether this type counts toward attendance rate
  • Max Quota per Membership: Maximum times this type can be used within a member's current membership plan

Membership-Based Quota System

The quota system limits how many times a member can use a specific attendance type within their current membership. This replaces the old days-based policy.

How it works

  • Set Max Quota per Membership on any attendance type (leave empty for unlimited)
  • The system counts usage where attendance.membership_id = member.membership_id
  • When a member renews their membership, a new membership record is created with a new ID — the counter automatically resets to zero
  • This is completely name-agnostic — works regardless of what you call your attendance types

Example Configuration

TypeCounts as PresentMax Quota
PresentYesUnlimited
AbsentNo3
SubstituteYes2
Medical LeaveNo2

In this example, a member can be absent up to 3 times and send a substitute up to 2 times per membership period.

Quota Display

During Attendance Marking

When marking attendance (Superuser or Franchise), each member row shows:

  • A "Quota Usage" column with badges like Absent: 2/3
  • Badges turn red when the quota is reached
  • In the attendance dropdown, exceeded types show ⚠ QUOTA FULL
  • Members without a membership show "No membership"

On Meeting Show Pages

Members who have exceeded any quota show red badges beside their name, e.g.:

  • Absent: 3/3
  • Substitute: 2/2

On Print Attendance

Exceeded quotas are shown as small ⚠ symbols beside the member name, with a legend at the bottom of the page explaining each symbol.

On Mobile App (Home Page)

Members see their quota usage in the Meeting Attendance section:

  • All attendance types listed with usage count
  • Types with a limit show used/max, unlimited types show just the count
  • Exceeded types show a red "Quota Reached" badge
  • Alert banners appear for any exceeded quota

Substitutes

Members can designate substitute persons who attend meetings on their behalf.

  • Members manage their substitutes from the mobile app (My Substitutes)
  • During attendance marking, admin selects a substitute from the member's list
  • Admin can also create a new substitute inline using the (+) button on the attendance page
  • Substitute details (name, mobile, email, designation) are stored on the attendance record

Attendance Records

Each attendance record stores:

  • portal_id — the member's portal at the time of marking
  • membership_id — the member's active membership at the time of marking
  • Substitute details if applicable

This ensures quota calculations are always tied to the correct membership period.