102 lines
4.0 KiB
Python
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') |