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()))
|
||||
|
||||
usr_cards = []
|
||||
#if state.selected_user.id != 0:
|
||||
#cards = data.card.get_user_cards(state.selected_user.id)
|
||||
#for card in cards:
|
||||
#usr_cards.append(card._asdict())
|
||||
if state.selected_user.id != 0:
|
||||
cards = loop.run_until_complete(data.card.get_user_cards(state.selected_user.id))
|
||||
for card in cards:
|
||||
usr_cards.append(card._asdict())
|
||||
|
||||
if len(usr_cards) > 0:
|
||||
layout3 = Layout([100], True)
|
||||
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(
|
||||
[(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:",
|
||||
"usr_cards"
|
||||
))
|
||||
layout3.add_widget(Button('Select Card', self._sel_card))
|
||||
layout3.add_widget(Divider())
|
||||
|
||||
layout2 = Layout([1, 1, 1])
|
||||
|
@ -214,6 +224,12 @@ class ManageUser(Frame):
|
|||
|
||||
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):
|
||||
self.save()
|
||||
raise NextScene("Create User")
|
||||
|
@ -234,6 +250,62 @@ class ManageUser(Frame):
|
|||
self.save()
|
||||
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):
|
||||
def __init__(self, screen: Screen):
|
||||
super(CreateUserView, self).__init__(
|
||||
|
@ -463,6 +535,7 @@ def demo(screen:Screen, scene: Scene):
|
|||
Scene([CreateUserView(screen)], -1, name="Create User"),
|
||||
Scene([LookupUserView(screen)], -1, name="Lookup User"),
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue