diff --git a/src/ez_lan_manager/components/NewsPost.py b/src/ez_lan_manager/components/NewsPost.py index edf6f8e..87daa35 100644 --- a/src/ez_lan_manager/components/NewsPost.py +++ b/src/ez_lan_manager/components/NewsPost.py @@ -5,6 +5,8 @@ class NewsPost(Component): title: str = "" text: str = "" date: str = "" + subtitle: str = "" + author: str = "" def build(self) -> Component: return Rectangle( @@ -12,7 +14,6 @@ class NewsPost(Component): Row( Text( self.title, - align_x=0, grow_x=True, margin=2, margin_bottom=0, @@ -20,7 +21,7 @@ class NewsPost(Component): fill=self.session.theme.background_color, font_size=1.3 ), - wrap=False + wrap="ellipsize" ), Text( self.date, @@ -33,6 +34,18 @@ class NewsPost(Component): wrap=True ) ), + Text( + self.subtitle, + grow_x=True, + margin=2, + margin_top=0, + margin_bottom=0, + style=TextStyle( + fill=self.session.theme.background_color, + font_size=0.8 + ), + wrap="ellipsize" + ), Text( self.text, margin=2, @@ -40,6 +53,20 @@ class NewsPost(Component): fill=self.session.theme.background_color ), wrap=True + ), + Text( + f"Geschrieben von {self.author}", + align_x=0, + grow_x=True, + margin=2, + margin_top=0, + margin_bottom=1, + style=TextStyle( + fill=self.session.theme.background_color, + font_size=0.5, + italic=True + ), + wrap=False ) ), fill=self.session.theme.primary_color, diff --git a/src/ez_lan_manager/pages/NewsPage.py b/src/ez_lan_manager/pages/NewsPage.py index a187c15..ec241f3 100644 --- a/src/ez_lan_manager/pages/NewsPage.py +++ b/src/ez_lan_manager/pages/NewsPage.py @@ -1,6 +1,6 @@ -from rio import Text, Column, Rectangle, TextStyle, Component, event +from rio import Column, Component, event -from src.ez_lan_manager import ConfigurationService +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 @@ -10,25 +10,16 @@ class NewsPage(Component): await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Neuigkeiten") def build(self) -> Component: + posts = [NewsPost( + title=news.title, + subtitle=news.subtitle, + text=news.content, + date=news.news_date.strftime("%d.%m.%Y"), + author=news.author.user_name + ) for news in self.session[NewsService].get_news()[:8]] return BasePage( content=Column( - NewsPost( - title="EZ LAN Manager", - text="Der EZ LAN Manager ist die offizielle Software der EZ GG e.V. um LAn-Parties zu verwalten." - "Ist schon echt cool wie der funktioniert! So kann LAN Party richtig geschmeidig ablaufen.", - date="23.08.2024" - ), - NewsPost( - title="Alkohöl", - text="Der Verein 'EZ GG e.V.' ist bekannt für seinen unstillbaren Durst. " - "Bei jedem Treffen fließt der Alkohol in Strömen – egal ob Bier, Wein oder Hochprozentiges. " - "Kein Glas bleibt lange leer, und bevor der Pegel auch nur ansatzweise sinkt, " - "wird schon nachgefüllt. Die Mitglieder feiern ausgiebig und trinken dabei so viel, " - "dass die Vorräte nie lange halten. Bei jeder Gelegenheit wird angestoßen, " - "die Stimmung steigt und der Alkohol fließt ohne Ende. " - "Ihr Motto: 'Kein Abend ohne reichlich Alkohol!'", - date="23.08.2024" - ), + *posts, align_y=0, ) )