Overview
Admin modules (module_type="manage") provide tools for program directors and administrators to manage all aspects of a program. These modules appear in the admin interface at /manage/<program>/ and require admin permissions to access.
Core Module
AdminCore
File:esp/esp/program/modules/handlers/admincore.py
Purpose: Provides the main program dashboard and core administrative functions.
Module Properties:
- Link Title: “Program Dashboard”
- Module Type: “manage”
- Seq: 0
- Choosable: Yes
- Program dashboard with statistics
- Deadline/permission management
- Program settings configuration
- Quick access to all admin modules
- Statistics overview (students, teachers, classes)
- Testing data cleanup
dashboard- Main program dashboarddeadlines- Manage registration deadlinessettings- Program settings editordelete_test_data- Remove test accountsnewpermission- Create custom permissionspermissions_mgmt- Permission management interface
- Student registration numbers
- Teacher registration numbers
- Class statistics (submitted, approved, scheduled)
- Resource usage
- Capacity tracking
Class Management
AdminClass
File:esp/esp/program/modules/handlers/adminclass.py
Purpose: Comprehensive class management and bulk editing tools.
Module Properties:
- Admin Title: “Class Management for Admin”
- Link Title: “Manage Classes”
- Module Type: “manage”
- Inline Template: “listclasses.html”
- Seq: 1
- Choosable: Yes
- Bulk class approval/rejection
- Change class status (accepted, cancelled, etc.)
- Bulk edit class properties
- Assign rooms to multiple classes
- Manage class flags
- Export class data
manageclass- Individual class managementreviewclass- Approve/reject classesbulkchangeclass- Bulk edit multiple classesclass_status- View class status reports
- Status changes (Cancelled, Rejected, Accepted, etc.)
- Room assignments
- Resource assignments
- Grade range modifications
- Duration changes
AdminReviewApps
File:esp/esp/program/modules/handlers/adminreviewapps.py
Purpose: Review student applications for admission to the program or specific classes.
Module Properties:
- Admin Title: “Application Review”
- Link Title: “Review Applications”
- Module Type: “manage”
- Choosable: Yes
ClassFlagModule
File:esp/esp/program/modules/handlers/classflagmodule.py
Purpose: Tag classes with custom flags for organization and filtering.
Module Properties:
- Admin Title: “Class Flags”
- Link Title: “Flag Classes”
- Module Type: “manage”
- Choosable: Yes
- Create custom flag types
- Apply flags to classes
- Filter by flags
- Bulk flag operations
ClassSearchModule
File:esp/esp/program/modules/handlers/classsearchmodule.py
Purpose: Advanced search and filtering for classes.
Module Properties:
- Admin Title: “Class Search”
- Link Title: “Search Classes”
- Module Type: “manage”
- Choosable: Yes
- Teacher name
- Class title/description
- Status
- Grade range
- Category
- Resources
- Scheduling status
Scheduling Modules
AJAXSchedulingModule
File:esp/esp/program/modules/handlers/ajaxschedulingmodule.py
Purpose: Interactive drag-and-drop scheduling interface.
Module Properties:
- Link Title: “AJAX Scheduling”
- Module Type: “manage”
- Seq: 7
- Choosable: Yes
- Drag-and-drop class scheduling
- Real-time conflict detection
- Room capacity checking
- Teacher availability verification
- Resource availability checking
- Multi-user collaboration (change log)
- Schedule comments and locking
ajax_scheduling- Main scheduling interfaceajax_schedule_class- Schedule a single classajax_change_log- View scheduling changes
AutoschedulerFrontendModule
File:esp/esp/program/modules/handlers/autoschedulerfrontendmodule.py
Purpose: Interface to the automated scheduling algorithm.
Module Properties:
- Admin Title: “Automatic Scheduler”
- Link Title: “Automatic Scheduler”
- Module Type: “manage”
- Choosable: Yes
- Configure scheduling constraints
- Run automated scheduling
- Review suggested schedules
- Apply or reject suggestions
SchedulingCheckModule
File:esp/esp/program/modules/handlers/schedulingcheckmodule.py
Purpose: Validate and check for scheduling conflicts.
Module Properties:
- Admin Title: “Scheduling Diagnostics”
- Link Title: “Check Schedule”
- Module Type: “manage”
- Choosable: Yes
- Teacher conflicts (teaching multiple classes at once)
- Room conflicts (double-booked rooms)
- Student conflicts
- Resource conflicts
- Lunch/break validation
Resource Management
ResourceModule
File:esp/esp/program/modules/handlers/resourcemodule.py
Purpose: Manage classrooms and resources (projectors, whiteboards, etc.).
Module Properties:
- Admin Title: “Resources”
- Link Title: “Manage Resources”
- Module Type: “manage”
- Choosable: Yes
- Create/edit classrooms
- Define resource types (projectors, computers, etc.)
- Assign resources to rooms
- View resource requests from teachers
- Assign requested resources
- Resource availability by timeslot
resources- Main resource managementresource_timeslots- Resource availability by timeassign_resources- Fulfill teacher requests
AdminMaterials
File:esp/esp/program/modules/handlers/adminmaterials.py
Purpose: Track and manage materials provided to teachers.
Module Properties:
- Admin Title: “Materials Tracking”
- Link Title: “Track Materials”
- Module Type: “manage”
- Choosable: Yes
Communication Modules
CommModule
File:esp/esp/program/modules/handlers/commmodule.py
Purpose: Send emails to program participants based on flexible criteria.
Module Properties:
- Admin Title: “Communications Panel”
- Link Title: “Send Email”
- Module Type: “manage”
- Seq: 3
- Choosable: Yes
- Select recipients by multiple criteria:
- Registration status
- Classes enrolled/taught
- Grade level
- Geographic location
- Custom queries
- Email templates
- HTML and plain text
- CC and BCC support
- Email preview
- Send test emails
- Students: confirmed, enrolled, waitlisted, by grade, etc.
- Teachers: with classes, by approval status, etc.
- Volunteers
- Custom filters
GroupTextModule
File:esp/esp/program/modules/handlers/grouptextmodule.py
Purpose: Send SMS/text messages to groups of users.
Module Properties:
- Admin Title: “Group Texting”
- Link Title: “Send Text Messages”
- Module Type: “manage”
- Choosable: Yes
Reports and Lists
ListGenModule
File:esp/esp/program/modules/handlers/listgenmodule.py
Purpose: Generate lists and reports of program participants.
Module Properties:
- Admin Title: “Generate Lists”
- Link Title: “Lists”
- Module Type: “manage”
- Seq: 4
- Choosable: Yes
- Student lists (confirmed, enrolled, by class, etc.)
- Teacher lists (with classes, by status, etc.)
- Volunteer lists
- Custom filtered lists
- Export to CSV/Excel
ProgramPrintables
File:esp/esp/program/modules/handlers/programprintables.py
Purpose: Generate a wide variety of printable documents for program operation.
Module Properties:
- Link Title: “Program Printables”
- Module Type: “manage”
- Seq: 5
- Choosable: Yes
- Class rosters
- Student schedules
- Teacher schedules
- Room schedules
- Attendance sheets
- Nametags
- Catalog
- Certificate
- Checklists
- Student labels
- Many more…
NameTagModule
File:esp/esp/program/modules/handlers/nametagmodule.py
Purpose: Generate customizable name tags.
Module Properties:
- Admin Title: “Name Tags”
- Link Title: “Name Tags”
- Module Type: “manage”
- Choosable: Yes
- Multiple name tag formats
- Custom fields (name, school, grade, etc.)
- Barcode generation
- PDF output
MailingLabels
File:esp/esp/program/modules/handlers/mailinglabels.py
Purpose: Generate mailing labels for participants.
Module Properties:
- Admin Title: “Mailing Labels”
- Link Title: “Mailing Labels”
- Module Type: “manage”
- Choosable: Yes
User Management
AdminMorph
File:esp/esp/program/modules/handlers/adminmorph.py
Purpose: Morph into another user’s account for testing and support.
Module Properties:
- Admin Title: “User Morphing Capability”
- Link Title: “Morph into User”
- Module Type: “manage”
- Seq: 34
- Choosable: Yes
- Search for any user
- Pre-filtered searches (students, teachers, volunteers)
- Morph into their account
- See what they see
- Test registration flows
- Switch back to admin account
- Testing user experience
- Troubleshooting registration issues
- Demonstrating features
BulkCreateAccountModule
File:esp/esp/program/modules/handlers/bulkcreateaccountmodule.py
Purpose: Create multiple user accounts from a CSV file.
Module Properties:
- Admin Title: “Bulk Account Creation”
- Link Title: “Create Accounts”
- Module Type: “manage”
- Choosable: Yes
UserGroupModule
File:esp/esp/program/modules/handlers/usergroupmodule.py
Purpose: Manage user groups and roles.
Module Properties:
- Admin Title: “User Groups”
- Link Title: “User Groups”
- Module Type: “manage”
- Choosable: Yes
UserRecordsModule
File:esp/esp/program/modules/handlers/userrecordsmodule.py
Purpose: View and manage user records (bits) for the program.
Module Properties:
- Admin Title: “User Records”
- Link Title: “User Records”
- Module Type: “manage”
- Choosable: Yes
Financial Modules
LineItemsModule
File:esp/esp/program/modules/handlers/lineitemsmodule.py
Purpose: Configure program costs and optional items.
Module Properties:
- Admin Title: “Line Items”
- Link Title: “Manage Costs”
- Module Type: “manage”
- Choosable: Yes
- Set base program fee
- Create optional items (meals, t-shirts, etc.)
- Set prices and availability
- Define financial aid line items
AccountingModule
File:esp/esp/program/modules/handlers/accountingmodule.py
Purpose: View and manage program finances and payments.
Module Properties:
- Admin Title: “Accounting”
- Link Title: “Accounting”
- Module Type: “manage”
- Choosable: Yes
FinAidApproveModule
File:esp/esp/program/modules/handlers/finaidapprovemodule.py
Purpose: Review and approve financial aid applications.
Module Properties:
- Admin Title: “Financial Aid Approval”
- Link Title: “Approve Financial Aid”
- Module Type: “manage”
- Choosable: Yes
- View applications
- Approve/deny requests
- Set award amounts
- Send notifications
CreditCardViewer
File:esp/esp/program/modules/handlers/creditcardviewer.py
Purpose: View credit card payment information.
Module Properties:
- Admin Title: “Credit Card Viewer”
- Link Title: “View Payments”
- Module Type: “manage”
- Choosable: Yes
Volunteer Management
VolunteerManage
File:esp/esp/program/modules/handlers/volunteermanage.py
Purpose: Manage volunteer registrations and assignments.
Module Properties:
- Admin Title: “Volunteer Management”
- Link Title: “Manage Volunteers”
- Module Type: “manage”
- Choosable: Yes
Survey Management
SurveyManagement
File:esp/esp/program/modules/handlers/surveymanagement.py
Purpose: Create and manage surveys for students and teachers.
Module Properties:
- Admin Title: “Survey Management”
- Link Title: “Manage Surveys”
- Module Type: “manage”
- Choosable: Yes
- Create surveys
- Define questions
- Per-class or per-program surveys
- View responses
- Export results
Display Modules
BigBoardModule
File:esp/esp/program/modules/handlers/bigboardmodule.py
Purpose: Large display board for program status and announcements.
Module Properties:
- Admin Title: “Big Board”
- Link Title: “Big Board”
- Module Type: “manage”
- Choosable: Yes
AdmissionsDashboard
File:esp/esp/program/modules/handlers/admissionsdashboard.py
Purpose: Real-time dashboard for program admissions and registration.
Module Properties:
- Admin Title: “Admissions Dashboard”
- Link Title: “Admissions”
- Module Type: “manage”
- Choosable: Yes
AdminVitals
File:esp/esp/program/modules/handlers/adminvitals.py
Purpose: Quick view of vital program statistics.
Module Properties:
- Admin Title: “Program Vitals”
- Link Title: “Vitals”
- Module Type: “manage”
- Choosable: Yes
Testing and Development
AdminTestingModule
File:esp/esp/program/modules/handlers/admintestingmodule.py
Purpose: Tools for testing program functionality.
Module Properties:
- Admin Title: “Testing Tools”
- Link Title: “Testing”
- Module Type: “manage”
- Choosable: Yes
DeactivationModule
File:esp/esp/program/modules/handlers/deactivationmodule.py
Purpose: Deactivate or archive old programs.
Module Properties:
- Admin Title: “Program Deactivation”
- Link Title: “Deactivate”
- Module Type: “manage”
- Choosable: Yes
Specialized Modules
ClassChangeRequestModule
File:esp/esp/program/modules/handlers/classchangerequestmodule.py
Purpose: Manage requests from teachers to change their classes.
Module Properties:
- Admin Title: “Class Change Requests”
- Link Title: “Class Changes”
- Module Type: “manage”
- Choosable: Yes
CheckAvailabilityModule
File:esp/esp/program/modules/handlers/checkavailabilitymodule.py
Purpose: Bulk check teacher availability.
Module Properties:
- Admin Title: “Check Availability”
- Link Title: “Check Teacher Availability”
- Module Type: “manage”
- Choosable: Yes
TeacherEventsManageModule
File:esp/esp/program/modules/handlers/teachereventsmanagemodule.py
Purpose: Manage teacher training events and interviews.
Module Properties:
- Admin Title: “Teacher Events Management”
- Link Title: “Manage Teacher Events”
- Module Type: “manage”
- Choosable: Yes
MapGenModule
File:esp/esp/program/modules/handlers/mapgenmodule.py
Purpose: Generate maps showing program participant locations.
Module Properties:
- Admin Title: “Map Generation”
- Link Title: “Generate Maps”
- Module Type: “manage”
- Choosable: Yes
JSONDataModule
File:esp/esp/program/modules/handlers/jsondatamodule.py
Purpose: Provide JSON API endpoints for program data.
Module Properties:
- Admin Title: “JSON Data API”
- Link Title: “JSON Data”
- Module Type: “json”
- Choosable: Yes
- Export data in JSON format
- API endpoints for integration
- Used by mobile apps and external tools
Development Notes
Creating a Custom Admin Module
Admin Module Best Practices
- Always use
@needs_admin: Protect admin views with the decorator - Provide clear documentation: Use the
docattribute to explain what the module does - Handle bulk operations carefully: Validate before making mass changes
- Log important actions: Use Django logging for administrative actions
- Provide confirmation: Ask for confirmation before destructive operations