add ticketing
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
from typing import Optional
|
||||
|
||||
from rio import Component, Rectangle, Column, Text, Row, PointerEventListener, TextInput
|
||||
from rio.event import on_populate
|
||||
|
||||
from elm.types import UserSession
|
||||
from elm.types import UserSession, Ticket
|
||||
from elm.components import ElmButton
|
||||
from elm.services import UserService
|
||||
|
||||
@@ -13,13 +15,18 @@ class AccountInfoBox(Component):
|
||||
account_info_is_error: bool = False
|
||||
password_input_blocked: bool = False
|
||||
password_change_in_progress: bool = False
|
||||
ticket: Optional[Ticket] = None
|
||||
|
||||
@on_populate
|
||||
async def on_populate(self) -> None:
|
||||
user = await self.session[UserService].get_user(self.session[UserSession].user_name)
|
||||
if user:
|
||||
self.mail = user.user_mail
|
||||
else:
|
||||
try:
|
||||
user = await self.session[UserService].get_user(self.session[UserSession].user_name)
|
||||
if user:
|
||||
self.mail = user.user_mail
|
||||
self.ticket = await Ticket.find_one({"owner.$id": user.id})
|
||||
else:
|
||||
self.session.navigate_to("./login")
|
||||
except KeyError:
|
||||
self.session.navigate_to("./login")
|
||||
|
||||
async def set_new_password(self) -> None:
|
||||
@@ -55,6 +62,9 @@ class AccountInfoBox(Component):
|
||||
|
||||
def build(self) -> Component:
|
||||
row_col = Row
|
||||
ticket_text = "-"
|
||||
if self.ticket:
|
||||
ticket_text = self.ticket.category
|
||||
if self.session.is_mobile():
|
||||
row_col = Column
|
||||
|
||||
@@ -75,13 +85,13 @@ class AccountInfoBox(Component):
|
||||
row_col(
|
||||
PointerEventListener(
|
||||
Rectangle(
|
||||
content=Row(Text("Ticket:", margin=1, overflow="wrap", justify="left"), Text("-", margin=1, overflow="wrap", justify="right")),
|
||||
fill=self.session.theme.danger_color_dark,
|
||||
content=Row(Text("Ticket:", margin=1, overflow="wrap", justify="left"), Text(ticket_text, margin=1, overflow="wrap", justify="right")),
|
||||
fill=self.session.theme.success_color if self.ticket else self.session.theme.danger_color_dark,
|
||||
stroke_width=0.1,
|
||||
stroke_color=self.session.theme.danger_color,
|
||||
hover_fill=self.session.theme.danger_color,
|
||||
stroke_color=self.session.theme.success_color if self.ticket else self.session.theme.danger_color,
|
||||
hover_fill=self.session.theme.success_color if self.ticket else self.session.theme.danger_color,
|
||||
hover_stroke_width=0.1,
|
||||
hover_stroke_color=self.session.theme.danger_color_dark,
|
||||
hover_stroke_color=self.session.theme.success_color if self.ticket else self.session.theme.danger_color_dark,
|
||||
transition_time=0.2,
|
||||
cursor="pointer"
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user