move db error handling from per-page to base page
This commit is contained in:
@@ -2,9 +2,9 @@ from __future__ import annotations
|
||||
|
||||
from typing import * # type: ignore
|
||||
|
||||
from rio import Component, event, Spacer, Card, Container, Column, Row, Rectangle, TextStyle, Color, Text
|
||||
from rio import Component, event, Spacer, Card, Container, Column, Row, TextStyle, Color, Text
|
||||
|
||||
from src.ez_lan_manager import ConfigurationService
|
||||
from src.ez_lan_manager import ConfigurationService, DatabaseService
|
||||
from src.ez_lan_manager.components.DesktopNavigation import DesktopNavigation
|
||||
|
||||
class BasePage(Component):
|
||||
@@ -14,6 +14,11 @@ class BasePage(Component):
|
||||
async def on_window_size_change(self):
|
||||
await self.force_refresh()
|
||||
|
||||
@event.on_populate
|
||||
async def check_db_connection(self):
|
||||
if not self.session[DatabaseService].is_connected:
|
||||
self.session.navigate_to("./db-error")
|
||||
|
||||
def build(self) -> Component:
|
||||
if self.content is None:
|
||||
content = Spacer()
|
||||
@@ -63,3 +68,4 @@ class BasePage(Component):
|
||||
align_y=0.5,
|
||||
style=TextStyle(fill=Color.from_hex("FFFFFF"), font_size=0.8)
|
||||
)
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ from rio import Column, Component, event
|
||||
from src.ez_lan_manager import ConfigurationService, NewsService
|
||||
from src.ez_lan_manager.components.NewsPost import NewsPost
|
||||
from src.ez_lan_manager.pages import BasePage
|
||||
from src.ez_lan_manager.services.DatabaseService import NoDatabaseConnectionError
|
||||
from src.ez_lan_manager.types.News import News
|
||||
|
||||
|
||||
@@ -13,10 +12,7 @@ class NewsPage(Component):
|
||||
@event.on_populate
|
||||
async def on_populate(self) -> None:
|
||||
await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Neuigkeiten")
|
||||
try:
|
||||
self.news_posts = self.session[NewsService].get_news()[:8]
|
||||
except NoDatabaseConnectionError:
|
||||
self.session.navigate_to("db-error")
|
||||
self.news_posts = self.session[NewsService].get_news()[:8]
|
||||
|
||||
def build(self) -> Component:
|
||||
posts = [NewsPost(
|
||||
|
||||
Reference in New Issue
Block a user