Files

102 lines
4.0 KiB
Python

import flet as ft
from pages.documents.ba import Documents
from pages.publications.articles import Articles as ExpertArticlesPage
from pages.settings.settings import Settings
class NavigationBA:
def __init__(self, page: ft.Page, home):
self.page = page
self.home = home
self.documente_juridice = ft.NavigationRailDestination(
icon=ft.Icons.BALANCE_OUTLINED,
selected_icon=ft.Icons.BALANCE,
label="Documente Custom",
)
self.articole_si_publicatii = ft.NavigationRailDestination(
icon=ft.Icons.MENU_BOOK_OUTLINED, # Icon mai potrivit pentru articole/blog
selected_icon=ft.Icons.MENU_BOOK,
label="Articole si Publicatii",
)
self.comunicare = ft.NavigationRailDestination(
icon=ft.Icons.CHAT_BUBBLE_OUTLINE,
selected_icon=ft.Icons.CHAT,
label=ft.Text("Comunicare"),
)
self.consultanta = ft.NavigationRailDestination(
icon=ft.Icons.HANDSHAKE_OUTLINED,
selected_icon=ft.Icons.HANDSHAKE,
label=ft.Text("Consultanta"),
)
self.convocator = ft.NavigationRailDestination(
icon=ft.Icons.BUSINESS_OUTLINED,
selected_icon=ft.Icons.BUSINESS,
label=ft.Text("Convocator"),
)
self.licitatii_si_lucrari = ft.NavigationRailDestination(
icon=ft.Icons.ASSIGNMENT_TURNED_IN_OUTLINED,
selected_icon=ft.Icons.ASSIGNMENT_TURNED_IN,
label=ft.Text("Licitatii si Lucrari"),
)
self.profil = ft.NavigationRailDestination(
icon=ft.Icons.ACCOUNT_BOX_OUTLINED,
selected_icon=ft.Icons.ACCOUNT_BOX,
label=ft.Text("Profil"),
)
self.abonamente = ft.NavigationRailDestination(
icon=ft.Icons.REPEAT_OUTLINED,
selected_icon=ft.Icons.REPEAT_ON,
label=ft.Text("Abonamente"),
)
self.setari = ft.NavigationRailDestination(
icon=ft.Icons.SETTINGS_OUTLINED,
selected_icon=ft.Icons.SETTINGS,
label=ft.Text("Setari"),
)
self.logout = ft.NavigationRailDestination(
icon=ft.Icons.LOGOUT_OUTLINED,
selected_icon=ft.Icons.LOGOUT,
label=ft.Text("Deconectare"),
)
def build(self):
return [
self.documente_juridice,
self.articole_si_publicatii,
self.abonamente,
self.setari,
self.logout
]
def build_documente_juridice(self):
self.docs = Documents(self.page, self.home)
return self.docs.build()
def build_articole_si_publicatii_expert(self):
self.articles_page = ExpertArticlesPage(self.page, self.home)
return self.articles_page.build()
def build_subscriptions(self):
from pages.subscriptions.subscriptions import SubscriptionsPage
self.subs_page = SubscriptionsPage(self.page)
return self.subs_page.build()
async def on_nav_change(self, e):
print( "Selected destination:", e.control.selected_index)
if e.control.selected_index == 0:
self.home.placeholder.content = self.build_documente_juridice()
self.page.update()
elif e.control.selected_index == 1: # Index for Articole si Publicatii
self.home.placeholder.content = self.build_articole_si_publicatii_expert()
self.page.update()
elif e.control.selected_index == 2: # Abonamente
self.home.placeholder.content = self.build_subscriptions()
self.page.update()
elif e.control.selected_index == 3: # Setari
self.settings = Settings(self.page, self)
self.home.placeholder.content = self.settings.build()
self.page.update() # Actualizează întreaga pagină inclusiv overlay-ul
elif e.control.selected_index == 4: # Logout
await ft.SharedPreferences().clear()
self.page.session.store.clear()
self.page.go('/auth')