TODO

  • Add in views for allowing inviting of users (registered or not) into a schema.
  • Provide a better error when loaddata is run without --schema, and an error occurred.
  • Use the schema attribute on serialised objects to load them into the correct schema. I think this is possible. It will likely require a separate insert per model-schema.

Tests to write

  • Test middleware handling of boardinghouse.schema.TemplateSchemaActivated.
  • Ensure get_admin_url (non-schema-aware model) still works.
  • Test boardinghouse.schema.get_active_schema_name()
  • Test saving a schema clears the global active schemata cache

User.visible_schemata property testing:

  • Test adding schemata to a user clears the cache.
  • Test removing schemata from a user clears the cache.
  • Test adding users to schema clears the cache.
  • Test removing users from a schema clears the cache.
  • Test saving a schema clears the cache for all associated users.
  • Test admin with different BOARDINGHOUSE_SCHEMA_MODEL (coverage)
  • Test django.contrib.admin.models.LogEntry already having object_schema attribute. Perhaps this should raise an exception? Maybe a django.core.checks.Error?

Example Project

  • include user and log-entry data in fixtures
  • write some non-admin views and templates