Skip to main content
Promotions are a school-scoped academic operation that move students from one class to the next for a target year.

Capabilities

The promotion workflow supports:
  • controlled year-end student movement
  • immutable promotion history
  • year and class filtering
  • school-wide atomic execution

Operational rules

  • promotions should be run intentionally, not as a side effect of school edits
  • the operation is all-or-nothing for a school
  • promotion history is read-only through the normal client API
  • exceptional cleanup belongs in the Django admin only

Ordering

Promotion relies on the configured class hierarchy so students are processed in a safe order.

Sections during promotion

If a student’s current section is tied to a different class than the promoted class, that section cannot remain attached after the move. Client workflows should make this outcome explicit so operators understand when a section will become empty.

Viewing history

Use the promotions page to:
  • review promotion history
  • filter by year
  • filter by class
  • paginate through results
This is the recommended place to run and verify school promotions. Task page: