Merge branch 'feature/implement-more-social-links' into 'main'

implement more social links

See merge request ezgg/ezgg-website!19
This commit is contained in:
David Rodenkirchen 2024-06-06 17:24:20 +00:00
commit 31937ce791
19 changed files with 152 additions and 53 deletions

View File

@ -16,6 +16,54 @@ rio.Icon.register_single_icon(
icon_source=from_root("ezgg_website/assets/icons/steam.svg") icon_source=from_root("ezgg_website/assets/icons/steam.svg")
) )
rio.Icon.register_single_icon(
set_name="custom",
icon_name="discord",
icon_source=from_root("ezgg_website/assets/icons/discord.svg")
)
rio.Icon.register_single_icon(
set_name="custom",
icon_name="x",
icon_source=from_root("ezgg_website/assets/icons/x.svg")
)
rio.Icon.register_single_icon(
set_name="custom",
icon_name="facebook",
icon_source=from_root("ezgg_website/assets/icons/facebook.svg")
)
rio.Icon.register_single_icon(
set_name="custom",
icon_name="youtube",
icon_source=from_root("ezgg_website/assets/icons/youtube.svg")
)
rio.Icon.register_single_icon(
set_name="custom",
icon_name="twitch",
icon_source=from_root("ezgg_website/assets/icons/twitch.svg")
)
rio.Icon.register_single_icon(
set_name="custom",
icon_name="instagram",
icon_source=from_root("ezgg_website/assets/icons/instagram.svg")
)
rio.Icon.register_single_icon(
set_name="custom",
icon_name="linkedin",
icon_source=from_root("ezgg_website/assets/icons/linkedin.svg")
)
rio.Icon.register_single_icon(
set_name="custom",
icon_name="git",
icon_source=from_root("ezgg_website/assets/icons/git.svg")
)
themes = [ themes = [
# Grey/Purple # Grey/Purple
rio.Theme.from_colors( rio.Theme.from_colors(
@ -169,9 +217,9 @@ app = rio.App(
# "Pragma": "cache", # Temporarily disabled until "http-equiv" is supported by Rio # "Pragma": "cache", # Temporarily disabled until "http-equiv" is supported by Rio
"robots": "INDEX,FOLLOW", "robots": "INDEX,FOLLOW",
# "content-Language": "de", # Temporarily disabled until "http-equiv" is supported by Rio # "content-Language": "de", # Temporarily disabled until "http-equiv" is supported by Rio
"description": "Homepage der Einfach Zocken Genussgesellschaft. Ein eingetragener Verein der sich mit " "description": "Homepage der Einfach Zocken Gaming Gesellschaft. Ein eingetragener Verein der sich mit "
"Videospielen und themenverwandten Aktivitäten befasst.", "Videospielen und themenverwandten Aktivitäten befasst.",
"og:description": "Homepage der Einfach Zocken Genussgesellschaft. Ein eingetragener Verein der sich mit " "og:description": "Homepage der Einfach Zocken Gaming Gesellschaft. Ein eingetragener Verein der sich mit "
"Videospielen und themenverwandten Aktivitäten befasst.", "Videospielen und themenverwandten Aktivitäten befasst.",
"keywords": "Gaming, Clan, Guild, Verein, Club, Einfach, Zocken, Genuss, Gesellschaft, Videospiele, " "keywords": "Gaming, Clan, Guild, Verein, Club, Einfach, Zocken, Genuss, Gesellschaft, Videospiele, "
"Videogames, LAN, Party", "Videogames, LAN, Party",

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-discord" viewBox="0 0 16 16">
<path d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0"?><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"> <path d="M41,4H9C6.24,4,4,6.24,4,9v32c0,2.76,2.24,5,5,5h32c2.76,0,5-2.24,5-5V9C46,6.24,43.76,4,41,4z M37,19h-2c-2.14,0-3,0.5-3,2 v3h5l-1,5h-4v15h-5V29h-4v-5h4v-3c0-4,2-7,6-7c2.9,0,4,1,4,1V19z"/></svg>

After

Width:  |  Height:  |  Size: 313 B

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 122.87" style="enable-background:new 0 0 122.88 122.87" xml:space="preserve"><style type="text/css">.st0{fill:#03dac5;}</style><g><path class="st0" d="M120.56,55.96L66.91,2.32c-3.09-3.09-8.1-3.09-11.19,0L44.58,13.46l14.13,14.13c3.29-1.11,7.05-0.37,9.67,2.25 c2.63,2.63,3.37,6.43,2.23,9.73l13.62,13.62c3.3-1.14,7.1-0.4,9.73,2.23c3.68,3.68,3.68,9.64,0,13.31c-3.68,3.68-9.64,3.68-13.32,0 c-2.77-2.77-3.45-6.83-2.05-10.24l-12.7-12.7l0,33.43c0.9,0.44,1.74,1.04,2.49,1.78c3.68,3.68,3.68,9.64,0,13.32 c-3.68,3.68-9.64,3.68-13.31,0c-3.68-3.68-3.68-9.64,0-13.32c0.91-0.91,1.96-1.59,3.08-2.05V45.21c-1.12-0.46-2.17-1.14-3.08-2.05 c-2.79-2.78-3.46-6.87-2.03-10.29L39.1,18.93L2.32,55.72c-3.09,3.09-3.09,8.1,0,11.19l53.65,53.65c3.09,3.09,8.1,3.09,11.19,0 l53.4-53.39C123.65,64.07,123.65,59.06,120.56,55.96L120.56,55.96L120.56,55.96z M120.56,55.96L120.56,55.96L120.56,55.96 L120.56,55.96z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 512"><path fill-rule="nonzero" d="M170.663 256.157c-.083-47.121 38.055-85.4 85.167-85.482 47.121-.092 85.407 38.029 85.499 85.159.091 47.13-38.047 85.4-85.176 85.492-47.112.09-85.399-38.039-85.49-85.169zm-46.108.092c.141 72.602 59.106 131.327 131.69 131.185 72.592-.14 131.35-59.089 131.209-131.691-.141-72.577-59.114-131.336-131.715-131.194-72.585.141-131.325 59.114-131.184 131.7zm237.104-137.092c.033 16.954 13.817 30.682 30.772 30.649 16.961-.034 30.689-13.811 30.664-30.765-.033-16.954-13.818-30.69-30.78-30.656-16.962.033-30.689 13.818-30.656 30.772zm-208.696 345.4c-24.958-1.086-38.511-5.234-47.543-8.709-11.961-4.628-20.496-10.177-29.479-19.093-8.966-8.951-14.532-17.461-19.202-29.397-3.508-9.033-7.73-22.569-8.9-47.527-1.269-26.983-1.559-35.078-1.683-103.433-.133-68.338.116-76.434 1.294-103.441 1.069-24.941 5.242-38.512 8.709-47.536 4.628-11.977 10.161-20.496 19.094-29.478 8.949-8.983 17.459-14.532 29.403-19.202 9.025-3.526 22.561-7.715 47.511-8.9 26.998-1.278 35.085-1.551 103.423-1.684 68.353-.133 76.448.108 103.456 1.294 24.94 1.086 38.51 5.217 47.527 8.709 11.968 4.628 20.503 10.145 29.478 19.094 8.974 8.95 14.54 17.443 19.21 29.413 3.524 8.999 7.714 22.552 8.892 47.494 1.285 26.998 1.576 35.094 1.7 103.432.132 68.355-.117 76.451-1.302 103.442-1.087 24.957-5.226 38.52-8.709 47.56-4.629 11.953-10.161 20.488-19.103 29.471-8.941 8.949-17.451 14.531-29.403 19.201-9.009 3.517-22.561 7.714-47.494 8.9-26.998 1.269-35.086 1.56-103.448 1.684-68.338.133-76.424-.124-103.431-1.294zM149.977 1.773c-27.239 1.286-45.843 5.648-62.101 12.019-16.829 6.561-31.095 15.353-45.286 29.603C28.381 57.653 19.655 71.944 13.144 88.79c-6.303 16.299-10.575 34.912-11.778 62.168C.172 178.264-.102 186.973.031 256.489c.133 69.508.439 78.234 1.741 105.548 1.302 27.231 5.649 45.827 12.019 62.092 6.569 16.83 15.353 31.089 29.611 45.289 14.25 14.2 28.55 22.918 45.404 29.438 16.282 6.294 34.902 10.583 62.15 11.777 27.305 1.203 36.022 1.468 105.521 1.336 69.532-.133 78.25-.44 105.555-1.734 27.239-1.302 45.826-5.664 62.1-12.019 16.829-6.585 31.095-15.353 45.288-29.611 14.191-14.251 22.917-28.55 29.428-45.404 6.304-16.282 10.592-34.904 11.777-62.134 1.195-27.323 1.478-36.049 1.344-105.557-.133-69.516-.447-78.225-1.741-105.522-1.294-27.256-5.657-45.844-12.019-62.118-6.577-16.829-15.352-31.08-29.602-45.288-14.25-14.192-28.55-22.935-45.404-29.429-16.29-6.304-34.903-10.6-62.15-11.778C333.747.164 325.03-.101 255.506.031c-69.507.133-78.224.431-105.529 1.742z"/></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 509.64"><rect width="512" height="509.64" rx="115.61" ry="115.61"/><path fill="#1e1e1e" d="M204.97 197.54h64.69v33.16h.94c9.01-16.16 31.04-33.16 63.89-33.16 68.31 0 80.94 42.51 80.94 97.81v116.92h-67.46l-.01-104.13c0-23.81-.49-54.45-35.08-54.45-35.12 0-40.51 25.91-40.51 52.72v105.86h-67.4V197.54zm-38.23-65.09c0 19.36-15.72 35.08-35.08 35.08-19.37 0-35.09-15.72-35.09-35.08 0-19.37 15.72-35.08 35.09-35.08 19.36 0 35.08 15.71 35.08 35.08zm-70.17 65.09h70.17v214.73H96.57V197.54z"/></svg>

After

Width:  |  Height:  |  Size: 692 B

View File

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.54689 1L1 4.77575V20.2087H6.49952V23H9.5933L12.5153 20.2087H16.9842L23 14.4622V1H2.54689V1ZM20.9368 13.4777L17.4995 16.7612H12L9.07799 19.5524V16.7612H4.43732V2.96992H20.9368V13.4777ZM17.4995 6.74658V12.4868H15.4373V6.74658H17.4995ZM12 6.74658V12.4868H9.9378V6.74658H12Z"/>
</svg>

After

Width:  |  Height:  |  Size: 429 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 500.64"><rect width="480" height="470" rx="115.61" ry="115.61"/><path fill="#1e1e1e" fill-rule="nonzero" d="M323.74 148.35h36.12l-78.91 90.2 92.83 122.73h-72.69l-56.93-74.43-65.15 74.43h-36.14l84.4-96.47-89.05-116.46h74.53l51.46 68.04 59.53-68.04zm-12.68 191.31h20.02l-129.2-170.82H180.4l130.66 170.82z"/></svg>

After

Width:  |  Height:  |  Size: 515 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 660 640"><path d="M633.468 192.038s-6.248-44.115-25.477-63.485c-24.366-25.477-51.65-25.642-64.123-27.118-89.493-6.52-223.904-6.52-223.904-6.52h-.236s-134.352 0-223.893 6.52c-12.52 1.523-39.768 1.63-64.123 27.118-19.24 19.37-25.358 63.485-25.358 63.485S-.012 243.806-.012 295.681v48.509c0 51.768 6.366 103.643 6.366 103.643s6.248 44.114 25.358 63.52c24.355 25.477 56.363 24.65 70.655 27.367 51.237 4.89 217.644 6.366 217.644 6.366s134.529-.237 224.022-6.638c12.52-1.477 39.756-1.63 64.123-27.119 19.24-19.37 25.476-63.532 25.476-63.532S640 396.03 640 344.154v-48.508c-.13-51.769-6.497-103.643-6.497-103.643l-.035.035zm-379.8 211.007V223.173L426.56 313.41l-172.892 89.635z"/></svg>

After

Width:  |  Height:  |  Size: 902 B

View File

@ -47,7 +47,7 @@ class Header(rio.Component):
texts=[ texts=[
"Die EZ GG wurde in einer schlecht beleuchteten Kellerbar gegründet", "Die EZ GG wurde in einer schlecht beleuchteten Kellerbar gegründet",
"Aktuelle hat der EZ GG e.V. sieben Mitglieder", "Aktuelle hat der EZ GG e.V. sieben Mitglieder",
"Bist du auch ein Genießer? Dann tritt uns doch bei!", "Bist du auch ein Gamer? Dann tritt uns doch bei!",
"Auch Wasser wird zum edlen Tropfen, mischt man es mit Malz und Hopfen." "Auch Wasser wird zum edlen Tropfen, mischt man es mit Malz und Hopfen."
], ],
refresh_interval=30, refresh_interval=30,

View File

@ -1,41 +1,29 @@
from pathlib import Path
from dataclasses import dataclass
from typing import Optional
import rio import rio
from ..models import MemberInfo, SOCIAL_PLATFORM_ICON_MAP
@dataclass
class MemberInfo:
picture_path: Path
name: str
position: str
entry_date: str
contact_mail: Optional[str]
contact_steam: Optional[str]
class MemberCard(rio.Component): class MemberCard(rio.Component):
info: MemberInfo info: MemberInfo
def build(self) -> rio.Component: def build(self) -> rio.Component:
contact_row = rio.Row() social_links_grid = rio.Grid(align_x=0.5, row_spacing=0.5, column_spacing=0.5, margin_bottom=0.3, height=3)
content = rio.Column( content = rio.Column(
rio.Image(self.info.picture_path, height=9, margin_bottom=1.3, margin_top=0.8), rio.Image(self.info.picture_path, height=9, margin_bottom=1.3, margin_top=0.8),
rio.Text(self.info.name, margin_bottom=0.4, style=rio.TextStyle(font_weight="bold")), rio.Text(self.info.name, margin_bottom=0.4, style=rio.TextStyle(font_weight="bold")),
rio.Text(self.info.position, margin_bottom=0.4, style=rio.TextStyle(italic=True)), rio.Text(self.info.position, margin_bottom=0.4, style=rio.TextStyle(italic=True)),
rio.Text(f"Mitglied seit {self.info.entry_date}", style=rio.TextStyle(italic=True), margin_bottom=0.4), rio.Text(f"Mitglied seit {self.info.entry_date}", style=rio.TextStyle(italic=True), margin_bottom=0.4),
contact_row social_links_grid
) )
# @Todo: Icon alignment broken if only one icon should be shown. for i, social_link in enumerate(self.info.socials):
if self.info.contact_mail: social_links_grid.add(
contact_row.add(rio.Link(rio.Icon("material/mail"), f"mailto://{self.info.contact_mail}", open_in_new_tab=True, margin_top=1, margin_bottom=1, align_x=0.9)) rio.Link(
if self.info.contact_steam: rio.Icon(SOCIAL_PLATFORM_ICON_MAP[social_link.platform], height=1.3, width=1.3, fill="primary"),
contact_row.add(rio.Link(rio.Icon("custom/steam"), self.info.contact_steam, open_in_new_tab=True, margin_top=1, margin_bottom=1, align_x=0.1)) social_link.url,
open_in_new_tab=True
if not self.info.contact_steam and not self.info.contact_mail: ), i//5, i if i < 5 else i - 5)
contact_row.add(rio.Text("", margin_top=2))
return rio.Rectangle( return rio.Rectangle(
content=content, content=content,

View File

@ -0,0 +1,2 @@
from .socials import SocialPlatform, SocialLink, SOCIAL_PLATFORM_ICON_MAP
from .member_info import MemberInfo

View File

@ -0,0 +1,14 @@
from dataclasses import dataclass, field
from pathlib import Path
from typing import Optional
from ..models import SocialLink
@dataclass
class MemberInfo:
picture_path: Path
name: str
position: str
entry_date: str
socials: list[SocialLink] = field(default_factory=list)

View File

@ -0,0 +1,35 @@
from dataclasses import dataclass
from enum import Enum
class SocialPlatform(Enum):
MAIL = 0
STEAM = 1
DISCORD = 2
X = 3
FACEBOOK = 4
YOUTUBE = 5
TWITCH = 6
INSTAGRAM = 7
LINKEDIN = 8
GIT = 9
@dataclass
class SocialLink:
platform: SocialPlatform
url: str
SOCIAL_PLATFORM_ICON_MAP = {
SocialPlatform.MAIL: "material/mail",
SocialPlatform.STEAM: "custom/steam",
SocialPlatform.DISCORD: "custom/discord",
SocialPlatform.X: "custom/x",
SocialPlatform.FACEBOOK: "custom/facebook",
SocialPlatform.YOUTUBE: "custom/youtube",
SocialPlatform.TWITCH: "custom/twitch",
SocialPlatform.INSTAGRAM: "custom/instagram",
SocialPlatform.LINKEDIN: "custom/linkedin",
SocialPlatform.GIT: "custom/git"
}

View File

@ -20,9 +20,9 @@ class About(rio.Component):
def build(self) -> rio.Component: def build(self) -> rio.Component:
return build_page(rio.Column( return build_page(rio.Column(
comps.build_news_post( comps.build_news_post(
header="Die \"Einfach Zocken Genuss Gesellschaft\"", header="Die \"Einfach Zocken Gaming Gesellschaft\"",
article_text_path_or_text=""" article_text_path_or_text="""
Die Einfach Zocken Genussgesellschaft wurde am 29. Oktober 2023 in Bad Endbach-Bottenhorn gegründet. Der Verein entstand aus der gemeinsamen Begeisterung für Videospiele, die einige Freunde in einer gemütlichen Kellerbar zusammenbrachte. Unsere Mission ist es, die Freizeitbeschäftigung "Videospiele" zu fördern und Menschen zusammenzubringen, die diese Leidenschaft teilen. Die Einfach Zocken Gaming Gesellschaft wurde am 29. Oktober 2023 in Bad Endbach-Bottenhorn gegründet. Der Verein entstand aus der gemeinsamen Begeisterung für Videospiele, die einige Freunde in einer gemütlichen Kellerbar zusammenbrachte. Unsere Mission ist es, die Freizeitbeschäftigung "Videospiele" zu fördern und Menschen zusammenzubringen, die diese Leidenschaft teilen.
### Unsere Ziele und Mission ### Unsere Ziele und Mission

View File

@ -22,7 +22,7 @@ class Imprint(rio.Component):
comps.build_news_post( comps.build_news_post(
header="Impressum", header="Impressum",
article_text_path_or_text=""" article_text_path_or_text="""
#### Einfach Zocken Genuss Gesellschaft e.V. #### Einfach Zocken Gaming Gesellschaft e.V.
```txt ```txt
Im Elchgrund 18 Im Elchgrund 18
@ -46,8 +46,9 @@ Eingetragen im Vereinsregister.
Registergericht: Amtsgericht Marburg Registergericht: Amtsgericht Marburg
Registernummer: - folgt - Aktenzeichen: VR 5837
``` ```
""", """,
date="" date=""
) )

View File

@ -23,7 +23,7 @@ class Join(rio.Component):
comps.build_news_post( comps.build_news_post(
header="Eintritt in die EZ GG e.V.", header="Eintritt in die EZ GG e.V.",
article_text_path_or_text=""" article_text_path_or_text="""
Wir freuen uns sehr, dass du Interesse daran hast, Mitglied bei der Einfach Zocken Genussgesellschaft zu werden! Unsere Gemeinschaft lebt von der Begeisterung und dem Engagement unserer Mitglieder. Wir freuen uns sehr, dass du Interesse daran hast, Mitglied bei der Einfach Zocken Gaming Gesellschaft zu werden! Unsere Gemeinschaft lebt von der Begeisterung und dem Engagement unserer Mitglieder.
Als Mitglied hast du die Möglichkeit, aktiv an unseren Veranstaltungen teilzunehmen und die Entwicklung des Vereins mitzugestalten. Egal, ob du ein erfahrener Gamer oder ein Neuling bist bei uns bist du herzlich willkommen! Als Mitglied hast du die Möglichkeit, aktiv an unseren Veranstaltungen teilzunehmen und die Entwicklung des Vereins mitzugestalten. Egal, ob du ein erfahrener Gamer oder ein Neuling bist bei uns bist du herzlich willkommen!

View File

@ -33,7 +33,7 @@ Stand: _27. Mai 2024_
#### Verantwortlicher: #### Verantwortlicher:
```txt ```txt
Einfach Zocken Genuss Gesellschaft e.V. Einfach Zocken Gaming Gesellschaft e.V.
Im Elchgrund 18 Im Elchgrund 18
35080 Bad Endbach - Bottenhorn 35080 Bad Endbach - Bottenhorn
Deutschland Deutschland

View File

@ -1,9 +1,7 @@
import rio import rio
from from_root import from_root from from_root import from_root
from ezgg_website.components import MemberInfo from ..models import SocialPlatform, SocialLink, MemberInfo
from ezgg_website.components.member_card import MemberInfo
# @ToDo: Make real database service at some point # @ToDo: Make real database service at some point
@ -18,50 +16,51 @@ class DatabaseService:
name="David \"Typhus\" R.", name="David \"Typhus\" R.",
position="1. Vorsitzender", position="1. Vorsitzender",
entry_date="29.10.2023", entry_date="29.10.2023",
contact_mail="vorstand@ezgg-ev.de", socials=[
contact_steam="https://steamcommunity.com/id/originaltyphus" SocialLink(SocialPlatform.MAIL, "mailto://vorstand@ezgg-ev.de"),
SocialLink(SocialPlatform.STEAM, "https://steamcommunity.com/id/originaltyphus"),
SocialLink(SocialPlatform.DISCORD, "https://discordapp.com/users/384329938292965382"),
SocialLink(SocialPlatform.FACEBOOK, "https://www.facebook.com/david.kaiser.5661"),
SocialLink(SocialPlatform.GIT, "https://git.jdrodenkirchen.de/drodenkirchen")
]
), MemberInfo( ), MemberInfo(
picture_path=from_root("ezgg_website/assets/member_pictures/jule.png"), picture_path=from_root("ezgg_website/assets/member_pictures/jule.png"),
name="Julia \"Ravenchild\" A.", name="Julia \"Ravenchild\" A.",
position="2. Vorsitzende", position="2. Vorsitzende",
entry_date="29.10.2023", entry_date="29.10.2023",
contact_mail="vorstand@ezgg-ev.de", socials=[
contact_steam="https://steamcommunity.com/profiles/76561198089911312" SocialLink(SocialPlatform.MAIL, "mailto://vorstand@ezgg-ev.de"),
SocialLink(SocialPlatform.STEAM, "https://steamcommunity.com/profiles/76561198089911312"),
SocialLink(SocialPlatform.INSTAGRAM, "https://www.instagram.com/j.u.l.e.1995")
]
), MemberInfo( ), MemberInfo(
picture_path=from_root("ezgg_website/assets/member_pictures/jessy.png"), picture_path=from_root("ezgg_website/assets/member_pictures/jessy.png"),
name="Jessy \"JessySixx\" R.", name="Jessy \"JessySixx\" R.",
position="Schatzmeisterin", position="Schatzmeisterin",
entry_date="29.10.2023", entry_date="29.10.2023",
contact_mail=None, socials=[
contact_steam=None SocialLink(SocialPlatform.TWITCH, "https://twitch.tv/jessysixx88/home")
]
), MemberInfo( ), MemberInfo(
picture_path=from_root("ezgg_website/assets/member_pictures/tim.png"), picture_path=from_root("ezgg_website/assets/member_pictures/tim.png"),
name="Tim \"Matschwicht\" B.", name="Tim \"Matschwicht\" B.",
position="Mitglied", position="Mitglied",
entry_date="29.10.2023", entry_date="29.10.2023"
contact_mail=None,
contact_steam=None
), MemberInfo( ), MemberInfo(
picture_path=from_root("ezgg_website/assets/member_pictures/dennis.png"), picture_path=from_root("ezgg_website/assets/member_pictures/dennis.png"),
name="Dennis \"Goodman\" P.", name="Dennis \"Goodman\" P.",
position="Mitglied", position="Mitglied",
entry_date="29.10.2023", entry_date="29.10.2023"
contact_mail=None,
contact_steam=None
), MemberInfo( ), MemberInfo(
picture_path=from_root("ezgg_website/assets/member_pictures/tom.png"), picture_path=from_root("ezgg_website/assets/member_pictures/tom.png"),
name="Tom \"Tcprod\" C.", name="Tom \"Tcprod\" C.",
position="Mitglied", position="Mitglied",
entry_date="29.10.2023", entry_date="29.10.2023"
contact_mail=None,
contact_steam=None
), MemberInfo( ), MemberInfo(
picture_path=from_root("ezgg_website/assets/member_pictures/chris.png"), picture_path=from_root("ezgg_website/assets/member_pictures/chris.png"),
name="Chris \"Meliodas\" K.", name="Chris \"Meliodas\" K.",
position="Mitglied", position="Mitglied",
entry_date="29.10.2023", entry_date="29.10.2023"
contact_mail=None,
contact_steam=None
) )
] ]