diff --git a/example.json b/example.json index 5e5008c..482abd5 100644 --- a/example.json +++ b/example.json @@ -29,7 +29,10 @@ "bis": "", "mitgliedsbeitrag": "", "spendenbeitrag": "", - "schliessberechtigung": "", + "schliessberechtigung": [ + "BLE", + "SSH" + ], "scan-antrag": "" } -} \ No newline at end of file +} diff --git a/membership_data_model.py b/membership_data_model.py index df0eedb..7ecef38 100644 --- a/membership_data_model.py +++ b/membership_data_model.py @@ -6,6 +6,12 @@ class membership_data_model(): 'E': 'Ermäßigt', 'F': 'Fördermitglied' } + schliessberechtigung_values = [ + 'SSH', + 'BLE', + 'Telefon', + 'Metallschluessel' + ] def __init__(self, membership_data_dict): self.membership_data_dict = membership_data_dict @@ -13,6 +19,12 @@ class membership_data_model(): def add_edit_fields(self, parent_form): mem = self.membership_data_dict + + schliessberechtigung_value = [] + if 'schliessberechtigung' in mem.keys() and set(mem['schliessberechtigung']).issubset(set(self.schliessberechtigung_values)): + for entry in mem['schliessberechtigung']: + schliessberechtigung_value.append(self.schliessberechtigung_values.index(entry)) + 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']) @@ -27,14 +39,23 @@ class membership_data_model(): 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['schliessberechtigung'] = parent_form.add(npyscreen.TitleMultiSelect, name="Schliessberechtigung: ", + values = self.schliessberechtigung_values, + value = schliessberechtigung_value, + max_height = len(self.schliessberechtigung_values) + 1, + scroll_exit = True) 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]] + + if self.forms['schliessberechtigung'].get_selected_objects() is not None: + membership_data_model['schliessberechtigung'] = list(self.forms['schliessberechtigung'].get_selected_objects()) + else: + membership_data_model['schliessberechtigung'] = [] + return membership_data_model def has_changed(self):