TUI: add card management screen
parent
e93fcfd706
commit
0cf41ff389
83
tui.py
83
tui.py
|
@ -190,19 +190,29 @@ class ManageUser(Frame):
|
||||||
layout.add_widget((Divider()))
|
layout.add_widget((Divider()))
|
||||||
|
|
||||||
usr_cards = []
|
usr_cards = []
|
||||||
#if state.selected_user.id != 0:
|
if state.selected_user.id != 0:
|
||||||
#cards = data.card.get_user_cards(state.selected_user.id)
|
cards = loop.run_until_complete(data.card.get_user_cards(state.selected_user.id))
|
||||||
#for card in cards:
|
for card in cards:
|
||||||
#usr_cards.append(card._asdict())
|
usr_cards.append(card._asdict())
|
||||||
|
|
||||||
if len(usr_cards) > 0:
|
if len(usr_cards) > 0:
|
||||||
layout3 = Layout([100], True)
|
layout3 = Layout([100], True)
|
||||||
self.add_layout(layout3)
|
self.add_layout(layout3)
|
||||||
|
|
||||||
|
card_status = "Available"
|
||||||
|
if card['is_locked'] and card['is_banned']:
|
||||||
|
card_status = "Locked and Banned"
|
||||||
|
if card['is_locked']:
|
||||||
|
card_status = "Locked"
|
||||||
|
if card['is_banned']:
|
||||||
|
card_status = "Banned"
|
||||||
|
|
||||||
layout3.add_widget(RadioButtons(
|
layout3.add_widget(RadioButtons(
|
||||||
[(f"{card['id']}\t{card['access_code']}\t{card['status']}", card['id']) for card in usr_cards],
|
[(f"{card['id']} | {card['access_code']} | {card_status} | {card['memo'] if card['memo'] else '-'}", state.SelectedCard(card['id'], card['access_code'])) for card in usr_cards],
|
||||||
"Cards:",
|
"Cards:",
|
||||||
"usr_cards"
|
"usr_cards"
|
||||||
))
|
))
|
||||||
|
layout3.add_widget(Button('Select Card', self._sel_card))
|
||||||
layout3.add_widget(Divider())
|
layout3.add_widget(Divider())
|
||||||
|
|
||||||
layout2 = Layout([1, 1, 1])
|
layout2 = Layout([1, 1, 1])
|
||||||
|
@ -214,6 +224,12 @@ class ManageUser(Frame):
|
||||||
|
|
||||||
self.fix()
|
self.fix()
|
||||||
|
|
||||||
|
def _sel_card(self):
|
||||||
|
self.save()
|
||||||
|
a = self.data.get('usr_cards')
|
||||||
|
state.set_card(a.id, a.access_code)
|
||||||
|
raise NextScene("Card Management")
|
||||||
|
|
||||||
def _create_user(self):
|
def _create_user(self):
|
||||||
self.save()
|
self.save()
|
||||||
raise NextScene("Create User")
|
raise NextScene("Create User")
|
||||||
|
@ -234,6 +250,62 @@ class ManageUser(Frame):
|
||||||
self.save()
|
self.save()
|
||||||
raise NextScene("Main")
|
raise NextScene("Main")
|
||||||
|
|
||||||
|
class ManageCard(Frame):
|
||||||
|
def __init__(self, screen: Screen):
|
||||||
|
super(ManageCard, self).__init__(
|
||||||
|
screen,
|
||||||
|
screen.height * 2 // 3,
|
||||||
|
screen.width * 2 // 3,
|
||||||
|
hover_focus=True,
|
||||||
|
can_scroll=False,
|
||||||
|
title="Card Management",
|
||||||
|
on_load=self._redraw
|
||||||
|
)
|
||||||
|
|
||||||
|
layout = Layout([3])
|
||||||
|
self.add_layout(layout)
|
||||||
|
layout.add_widget(Button("Create Card", self._create_card))
|
||||||
|
layout.add_widget(Button("Lookup Card", self._lookup))
|
||||||
|
|
||||||
|
def _redraw(self):
|
||||||
|
self._layouts = [self._layouts[0]]
|
||||||
|
|
||||||
|
layout = Layout([3])
|
||||||
|
self.add_layout(layout)
|
||||||
|
layout.add_widget(Button("Edit Card", self._edit_card, disabled=state.selected_card.id == 0 or state.selected_card.id is None))
|
||||||
|
layout.add_widget(Button("Reassign Card", self._edit_card, disabled=state.selected_card.id == 0 or state.selected_card.id is None))
|
||||||
|
layout.add_widget(Button("Delete Card", self._del_card, disabled=state.selected_card.id == 0 or state.selected_card.id is None))
|
||||||
|
layout.add_widget((Divider()))
|
||||||
|
|
||||||
|
layout2 = Layout([1, 1, 1])
|
||||||
|
self.add_layout(layout2)
|
||||||
|
a = Text("", f"status", readonly=True, disabled=True)
|
||||||
|
a.value = f"Selected Card: {state.selected_card}"
|
||||||
|
layout2.add_widget(a)
|
||||||
|
layout2.add_widget(Button("Back", self._back), 2)
|
||||||
|
|
||||||
|
self.fix()
|
||||||
|
|
||||||
|
def _create_card(self):
|
||||||
|
self.save()
|
||||||
|
raise NextScene("Create Card")
|
||||||
|
|
||||||
|
def _lookup(self):
|
||||||
|
self.save()
|
||||||
|
raise NextScene("Lookup Card")
|
||||||
|
|
||||||
|
def _edit_card(self):
|
||||||
|
self.save()
|
||||||
|
raise NextScene("Edit Card")
|
||||||
|
|
||||||
|
def _del_card(self):
|
||||||
|
self.save()
|
||||||
|
raise NextScene("Delete Card")
|
||||||
|
|
||||||
|
def _back(self):
|
||||||
|
self.save()
|
||||||
|
raise NextScene("Main")
|
||||||
|
|
||||||
class CreateUserView(Frame):
|
class CreateUserView(Frame):
|
||||||
def __init__(self, screen: Screen):
|
def __init__(self, screen: Screen):
|
||||||
super(CreateUserView, self).__init__(
|
super(CreateUserView, self).__init__(
|
||||||
|
@ -463,6 +535,7 @@ def demo(screen:Screen, scene: Scene):
|
||||||
Scene([CreateUserView(screen)], -1, name="Create User"),
|
Scene([CreateUserView(screen)], -1, name="Create User"),
|
||||||
Scene([LookupUserView(screen)], -1, name="Lookup User"),
|
Scene([LookupUserView(screen)], -1, name="Lookup User"),
|
||||||
Scene([SearchResultsView(screen)], -1, name="Search Results"),
|
Scene([SearchResultsView(screen)], -1, name="Search Results"),
|
||||||
|
Scene([ManageCard(screen)], -1, name="Card Management"),
|
||||||
]
|
]
|
||||||
|
|
||||||
screen.play(scenes, stop_on_resize=False, start_scene=scene, allow_int=True)
|
screen.play(scenes, stop_on_resize=False, start_scene=scene, allow_int=True)
|
||||||
|
|
Loading…
Reference in New Issue