feat: Enhances navigation with collapsible menus

Introduces NavCollapse to manage grouped navigation items.
Simplifies 'features.py' by organizing items under collapsible sections.
Updates HTML generation for both NavItem and NavCollapse classes.

Improves user experience by improving sidebar organization.
This commit is contained in:
Kumi 2024-11-19 06:56:52 +01:00
parent ca2f3eda3a
commit 7f79a79a17
Signed by: kumi
GPG key ID: ECBCC9082395383F
4 changed files with 97 additions and 35 deletions

View file

@ -1,4 +1,4 @@
from frontend.classes import NavSection, NavItem, DashboardSection
from frontend.classes import NavSection, NavItem, NavCollapse, DashboardSection
from django.urls import reverse_lazy
@ -6,18 +6,24 @@ from django.urls import reverse_lazy
mood_section = NavSection("Mood")
mood_items = {
"mood_status_list": NavItem("Status List", reverse_lazy("mood:status_list")),
"mood_activity_list": NavItem("Activities", reverse_lazy("mood:activity_list")),
"mood_mood_list": NavItem("Moods", reverse_lazy("mood:mood_list")),
"mood_notification_list": NavItem(
mood_settings_collapse = NavCollapse("Settings", icon="fas fa-fw fa-cog")
mood_status_list = NavItem("Status List", reverse_lazy("mood:status_list"))
mood_settings = [
NavItem("Activities", reverse_lazy("mood:activity_list")),
NavItem("Moods", reverse_lazy("mood:mood_list")),
NavItem(
"Notifications", reverse_lazy("mood:notification_list")
),
"mood_statistics": NavItem("Statistics", reverse_lazy("mood:statistics")),
}
NavItem("Statistics", reverse_lazy("mood:statistics")),
]
for _, item in mood_items.items():
mood_section.add_item(item)
for setting in mood_settings:
mood_settings_collapse.add_item(setting)
mood_section.add_item(mood_status_list)
mood_section.add_item(mood_settings_collapse)
NAV_SECTIONS = [mood_section]