Update the Menu model to include community, is_custom, community_logo_link, footer_content and footer_content fields.
Create endpoints to create, update, reset, delete, and list of admin Menu.
Create a backfill script that generates default menu instances for all communities in the database. This script should iterate over all communities, check if a menu instance exists, and if not, create a default menu instance.
Acceptance Criteria
[x] The Menu model should include community, is_custom, community_logo_link, footer_content and footer_content fields.
[x] Endpoints should exist to create, update, reset, delete, and list of admin Menu.
[x] A backfill script should exist that generates default menu instances for all communities in the database.
Additional Context
This change is part of a larger effort to improve the flexibility and scalability of our community site customization features. By storing menu items as JSON, we can easily add, remove, or reorder items without requiring database schema changes.
Tasks
Update the
Menu
model to includecommunity
,is_custom
,community_logo_link
,footer_content
andfooter_content
fields.Create endpoints to create, update, reset, delete, and list of admin
Menu
.Create a backfill script that generates default menu instances for all communities in the database. This script should iterate over all communities, check if a menu instance exists, and if not, create a default menu instance.
Acceptance Criteria
Menu
model should includecommunity
,is_custom
,community_logo_link
,footer_content
andfooter_content
fields.Menu
.Additional Context
This change is part of a larger effort to improve the flexibility and scalability of our community site customization features. By storing menu items as JSON, we can easily add, remove, or reorder items without requiring database schema changes.