41 lines
No EOL
2.2 KiB
Python
41 lines
No EOL
2.2 KiB
Python
import npyscreen
|
|
|
|
class membership_data_model():
|
|
status_values = {
|
|
'V': 'Vollzahler',
|
|
'E': 'Ermäßigt',
|
|
'F': 'Fördermitglied'
|
|
}
|
|
|
|
def __init__(self, membership_data_dict):
|
|
self.membership_data_dict = membership_data_dict
|
|
self.forms = {}
|
|
|
|
def add_edit_fields(self, parent_form):
|
|
mem = self.membership_data_dict
|
|
status_value = 0
|
|
if 'status' in mem.keys() and mem['status'] in self.status_values.keys():
|
|
status_value = list(self.status_values.keys()).index(mem['status'])
|
|
|
|
self.forms['status'] = parent_form.add(npyscreen.TitleSelectOne, name="Status: ",
|
|
values=list(self.status_values.values()),
|
|
value=status_value,
|
|
max_height=3, scroll_exit=True)
|
|
self.forms['von'] = parent_form.add(npyscreen.TitleText, name="Von: ", value=mem['von'])
|
|
self.forms['bis'] = parent_form.add(npyscreen.TitleText, name="Bis: ", value=mem['bis'])
|
|
self.forms['mitgliedsbeitrag'] = parent_form.add(npyscreen.TitleText, begin_entry_at=20, use_two_lines=False, name="Mitgliedsbeitrag: ",
|
|
value=mem['mitgliedsbeitrag'])
|
|
self.forms['spendenbeitrag'] = parent_form.add(npyscreen.TitleText, begin_entry_at=20, use_two_lines=False, name="Spendenbeitrag: ",
|
|
value=mem['spendenbeitrag'])
|
|
self.forms['schliessberechtigung'] = parent_form.add(npyscreen.TitleText, begin_entry_at=24, use_two_lines=False, name="Schliessberechtigung: ",
|
|
value=mem['schliessberechtigung'])
|
|
self.forms['scan-antrag'] = parent_form.add(npyscreen.TitleText, begin_entry_at=18, use_two_lines=False, name="URI Scan Antrag: ",
|
|
value=mem['scan-antrag'])
|
|
|
|
def get_form_values_dict(self):
|
|
membership_data_model = dict(zip(self.forms.keys(), map(lambda f: f.value, self.forms.values())))
|
|
membership_data_model['status'] = list(self.status_values.keys())[self.forms['status'].value[0]]
|
|
return membership_data_model
|
|
|
|
def has_changed(self):
|
|
return self.membership_data_dict != self.get_form_values_dict() |