pyceo/ceo/tui/views/AddUserView.py

79 lines
2.7 KiB
Python

import urwid
from .ColumnView import ColumnView
class AddUserView(ColumnView):
def __init__(self, model, controller, app):
super().__init__(model, controller, app)
membership_types_group = []
self.username_edit = urwid.Edit()
self.full_name_edit = urwid.Edit()
self.first_name_edit = urwid.Edit()
self.last_name_edit = urwid.Edit()
self.program_edit = urwid.Edit()
self.forwarding_address_edit = urwid.Edit()
self.num_terms_edit = urwid.IntEdit(default=1)
rows = [
(
urwid.Text('Membership type:', align='right'),
urwid.RadioButton(
membership_types_group,
'General membership ($2)',
on_state_change=self.controller.on_membership_type_changed,
user_data='general_member'
)
),
(
urwid.Divider(),
urwid.RadioButton(
membership_types_group,
'Club rep (free)',
on_state_change=self.controller.on_membership_type_changed,
user_data='club_rep'
)
),
(
urwid.Text('Username:', align='right'),
self.username_edit
),
(
urwid.Text('Full name:', align='right'),
self.full_name_edit
),
(
urwid.Text('First name:', align='right'),
self.first_name_edit
),
(
urwid.Text('Last name:', align='right'),
self.last_name_edit
),
(
urwid.Text('Program:', align='right'),
self.program_edit
),
(
urwid.Text('Forwarding address:', align='right'),
self.forwarding_address_edit
),
(
urwid.Text('Number of terms:', align='right'),
self.num_terms_edit
),
]
self.set_rows(
rows,
# We want to know when the username field loses focus
notify_when_focus_changes=True,
right_col_weight=2
)
def update_fields(self):
self.full_name_edit.edit_text = self.model.full_name
self.first_name_edit.edit_text = self.model.first_name
self.last_name_edit.edit_text = self.model.last_name
self.program_edit.edit_text = self.model.program
self.forwarding_address_edit.edit_text = self.model.forwarding_address
self.num_terms_edit.edit_text = str(self.model.num_terms)