date-website

Gallery Development Notes

Scope

The gallery app owns photo albums and uploaded photos. It replaced the previous archive.Collection(type="Pictures") and archive.Picture responsibility.

Models

Migration Notes

Routing

Public routes are still exposed through archive.urls under /archive/pictures/... with the existing archive:years, archive:pictures, archive:detail, and archive:upload names.

The app intentionally renders the shared archive/... templates so the public gallery pages keep their historical layout while the data ownership lives in gallery.

When ARCHIVE_ACCESS_REQUIRES_ELIGIBILITY is enabled for SF, the shared Member.has_archive_access() check protects the gallery year index, yearly album index, and album detail. Both SF membership types require the individual archive_access_eligible flag; superusers remain allowed. Associations without the setting retain the historical permission-profile behavior.

Admin Permissions

Legacy picture-collection permissions grant the same module and inline photo access in classic admin and Unfold during the permission migration period.