How macho25/donors_registry works
This is a Flask registry for managing blood donors for the Czech Red Cross in Frýdek-Místek. Staff sign in, import donation records into batches, and use the resulting donor overview to review donor details and medal eligibility, award medals, and prepare documents. Separate workflows maintain donor contacts, overrides, and ignored-donor records. The sampled code shows Flask blueprints dispatching these workflows and SQLAlchemy-backed state; several less-sampled capabilities are represented only where the tree or README supports them.
Main entry points: donor/views.py Donor management · batch/views.py Batch workflows · app.py App factory · public/views.py Login and session
Components 22
Web application
- App factory
registry/app.py - Login and session
registry/public/views.py - Public dashboard
registry/public/views.py - Donor overview UI
registry/templates/donor/overview_table.js
Donor records
- Batch workflows
registry/batch/views.py - Import validation
registry/batch/forms.py - Import parsing
registry/batch/utils.py - Batches and records
registry/donor/models.py - Donor overview
registry/donor/models.py - Donor management
registry/donor/views.py - Donor forms
registry/donor/forms.py
Medals and awards
- Medal definitions
registry/list/models.py - Eligibility snapshots
registry/donor/models.py - Award records
registry/donor/models.py - Award documents
registry/templates/donor/award_document.html
Contacts and exceptions
- Contact import
registry/batch/views.py - Contact validation
registry/batch/forms.py - Donor notes
registry/donor/models.py - Contact import log
registry/donor/models.py - Overrides and ignored
registry/donor/models.py
Other components
- Registry staff
- Application database
Connections 36
- Registry staff → App factory: uses
- App factory → Login and session: registers
- App factory → Public dashboard: registers
- App factory → Batch workflows: registers
- App factory → Donor management: registers
- Login and session → Application database: reads users
- Login and session → Public dashboard: signs in
- Public dashboard → Application database: reads dashboard
- Registry staff → Batch workflows: imports records
- Batch workflows → Import validation: validates input
- Import validation → Import parsing: parses lines
- Batch workflows → Batches and records: creates batches
- Batch workflows → Application database: saves records
- Batches and records → Application database: stores records
- Batch workflows → Donor overview: refreshes overview
- Donor overview → Application database: stores donor summary
- Registry staff → Donor management: manages donors
- Donor management → Donor overview: queries donors
- Donor management → Donor forms: validates actions
- Donor management → Donor overview UI: renders overview
- Donor overview UI → Donor management: requests table data
- Donor management → Application database: reads and updates
- Donor management → Medal definitions: selects medal
- Donor management → Eligibility snapshots: checks eligibility
- Eligibility snapshots → Application database: stores snapshots
- Donor management → Award records: records awards
- Award records → Application database: stores awards
- Donor management → Award documents: renders documents
- Registry staff → Contact import: imports contacts
- Contact import → Contact validation: validates input
- Contact import → Donor notes: updates contacts
- Contact import → Contact import log: records import
- Donor notes → Application database: stores notes
- Contact import log → Application database: stores audit log
- Donor management → Overrides and ignored: manages exceptions
- Overrides and ignored → Application database: stores overrides