Stewards & Members
The Stewards app (obed.stewards) manages the profiles of people who serve in the church. It separates the concept of a "User" (Authentication) from a "Steward" (Service Profile).
Concept: Users vs. Stewards
The system uses a two-model approach to handle people:
User (
obed.users.User):- Handles authentication (Email/Password).
- Grants access to the system (Groups, Permissions).
- Required for logging in.
Steward (
obed.stewards.Steward):- Represents a person in the context of scheduling.
- Stores personal details (Name, Phone, Title).
- Tracks service preferences (Responsibilities, Notification settings).
- Can exist without a User account (e.g., Guest Preachers).
Why the separation?
- Guest Speakers: You can schedule a visiting preacher (creating a Steward record) without forcing them to create an account or giving them login access.
- Data Integrity: If a user deletes their account, the Steward record (and historical assignment data) can be preserved.
Models
Steward
The core profile model.
| Field | Description |
|---|---|
user | Link to User model (optional). |
first_name / last_name | Name of the person. |
email | Contact email. |
phone | Contact phone (required for SMS). |
is_guest | Boolean flag for non-members. |
title | Honorific (e.g., "Pastor", "Dr."). |
office | (Property) Derived from User groups ("Elder", "Deacon"). |
notify_email | Opt-in for email notifications. |
notify_sms | Opt-in for SMS notifications. |
responsibilities | Many-to-Many link to Responsibility. |
Responsibility
Represents a role or spiritual gift that a steward is qualified for.
- Examples: "Preaching", "Song Leading", "Ushering".
- Usage: Used to filter the list of available stewards when filling a slot in a schedule.
Management
Creating a Steward
Stewards can be created via the Admin interface or the Stewards management view (/stewards/).
- Members: Usually created automatically or manually linked when a User registers.
- Guests: Created manually by Admins when needed for a schedule.
Notification Preferences
Each Steward controls their notification channels:
- If
notify_emailis False, the system will skip email generation for them. - If
notify_smsis False (or phone is missing), SMS will be skipped.