Merge pull request 'address_label' (#3) from address_label into master

This commit is contained in:
Stefan Haun 2020-03-14 21:08:19 +00:00
commit 3775ff3679

View file

@ -16,50 +16,62 @@ class FormApp(npyscreen.NPSAppManaged):
f = npyscreen.Form(name='Edit Member data') f = npyscreen.Form(name='Edit Member data')
sd = self.member['stammdaten'] sd = self.member['stammdaten']
self.sd2 = {} base_data_widgets = {}
self.sd2['fullname'] = f.add(npyscreen.TitleText, name="Name: ", value=sd['fullname']) base_data_widgets['fullname'] = f.add(
self.sd2['nickname'] = f.add(npyscreen.TitleText, name="Nickname: ", npyscreen.TitleText, name="Name: ", value=sd['fullname'])
base_data_widgets['nickname'] = f.add(npyscreen.TitleText, name="Nickname: ",
value=sd['nickname']) value=sd['nickname'])
self.sd2['address_street'] = f.add( base_data_widgets['address_street'] = f.add(
npyscreen.TitleText, name="Adresse - Straße: ", value=sd['address_street']) npyscreen.TitleText, name="Adresse - Straße: ", value=sd['address_street'])
self.sd2['address_locality'] = f.add( base_data_widgets['address_locality'] = f.add(
npyscreen.TitleText, name="Adresse - Stadt: ", value=sd['address_locality']) npyscreen.TitleText, name="Adresse - Stadt: ", value=sd['address_locality'])
self.sd2['address_code'] = f.add(npyscreen.TitleText, base_data_widgets['address_code'] = f.add(npyscreen.TitleText,
name="Adresse - PLZ: ", value=sd['address_code']) name="Adresse - PLZ: ", value=sd['address_code'])
self.sd2['address_country'] = f.add( base_data_widgets['address_country'] = f.add(
npyscreen.TitleText, name="Adresse - Land: ", value=sd['address_country']) npyscreen.TitleText, name="Adresse - Land: ", value=sd['address_country'])
self.sd2['birth_date'] = f.add(npyscreen.TitleText, base_data_widgets['birth_date'] = f.add(npyscreen.TitleText,
name="Geburtstag: ", value=sd['birth_date']) name="Geburtstag: ", value=sd['birth_date'])
self.sd2['birth_location'] = f.add( base_data_widgets['birth_location'] = f.add(
npyscreen.TitleText, name="Geburtsort: ", value=sd['birth_location']) npyscreen.TitleText, name="Geburtsort: ", value=sd['birth_location'])
self.sd2['email'] = f.add(npyscreen.TitleText, base_data_widgets['email'] = f.add(npyscreen.TitleText,
name="email: ", value=sd['email']) name="email: ", value=sd['email'])
self.sd2['pgp-key'] = f.add(npyscreen.TitleText, name="URI PGP Key: ", value=sd['pgp-key']) base_data_widgets['pgp-key'] = f.add(npyscreen.TitleText,
self.sd2['ssh-key'] = f.add(npyscreen.TitleText, name="URI SSH Key: ", value=sd['ssh-key']) name="URI PGP Key: ", value=sd['pgp-key'])
base_data_widgets['ssh-key'] = f.add(npyscreen.TitleText,
name="URI SSH Key: ", value=sd['ssh-key'])
self.base_data_widgets = base_data_widgets
fin = self.member['finanzdaten'] fin = self.member['finanzdaten']
self.fin2 = {} finance_widgets = {}
self.fin2['iban'] = f.add(npyscreen.TitleText, name="IBAN: ", value=fin['iban']) finance_widgets['iban'] = f.add(
self.fin2['bic'] = f.add(npyscreen.TitleText, name="BIC: ", value=fin['bic']) npyscreen.TitleText, name="IBAN: ", value=fin['iban'])
self.fin2['holder'] = f.add(npyscreen.TitleText, name="Kontoinhaber: ", value=fin['holder']) finance_widgets['bic'] = f.add(
self.fin2['issuance'] = f.add(npyscreen.TitleText, name="Tag der Erteilung Lastschriftmandat: ", npyscreen.TitleText, name="BIC: ", value=fin['bic'])
finance_widgets['holder'] = f.add(
npyscreen.TitleText, name="Kontoinhaber: ", value=fin['holder'])
finance_widgets['issuance'] = f.add(npyscreen.TitleText, name="Tag der Erteilung Lastschriftmandat: ",
value=fin['issuance']) value=fin['issuance'])
self.fin2['reference'] = f.add(npyscreen.TitleText, name="Mandatsreferenznummer: ", finance_widgets['reference'] = f.add(npyscreen.TitleText, name="Mandatsreferenznummer: ",
value=fin['reference']) value=fin['reference'])
self.fin2['scan-sepa-mandate'] = f.add(npyscreen.TitleText, name="URI Scan SEPA-Mandat: ", finance_widgets['scan-sepa-mandate'] = f.add(npyscreen.TitleText, name="URI Scan SEPA-Mandat: ",
value=fin['scan-sepa-mandate']) value=fin['scan-sepa-mandate'])
self.finance_widgets = finance_widgets
mem = self.member['mitgliederdaten'] mem = self.member['mitgliederdaten']
self.mem2 = {} member_widgets = {}
self.mem2['status'] = f.add(npyscreen.TitleText, name="Status: ", value=mem['status']) member_widgets['status'] = f.add(
self.mem2['von'] = f.add(npyscreen.TitleText, name="Von: ", value=mem['von']) npyscreen.TitleText, name="Status: ", value=mem['status'])
self.mem2['bis'] = f.add(npyscreen.TitleText, name="Bis: ", value=mem['bis']) member_widgets['von'] = f.add(
self.mem2['mitgliedsbeitrag'] = f.add(npyscreen.TitleText, name="Mitgliedsbeitrag: ", npyscreen.TitleText, name="Von: ", value=mem['von'])
member_widgets['bis'] = f.add(
npyscreen.TitleText, name="Bis: ", value=mem['bis'])
member_widgets['mitgliedsbeitrag'] = f.add(npyscreen.TitleText, name="Mitgliedsbeitrag: ",
value=mem['mitgliedsbeitrag']) value=mem['mitgliedsbeitrag'])
self.mem2['schliessberechtigung'] = f.add(npyscreen.TitleText, name="Schliessberechtigung: ", member_widgets['schliessberechtigung'] = f.add(npyscreen.TitleText, name="Schliessberechtigung: ",
value=mem['schliessberechtigung']) value=mem['schliessberechtigung'])
self.mem2['scan-antrag'] = f.add(npyscreen.TitleText, name="URI Scan Antrag: ", member_widgets['scan-antrag'] = f.add(npyscreen.TitleText, name="URI Scan Antrag: ",
value=mem['scan-antrag']) value=mem['scan-antrag'])
self.member_widgets = member_widgets
f.edit() f.edit()
@ -70,14 +82,33 @@ def main(*_args):
else: else:
member_struct = json.load(open('example.json', 'r')) member_struct = json.load(open('example.json', 'r'))
app = FormApp(member_struct) app = FormApp(member_struct)
try:
app.run() app.run()
except Exception as e:
print(e)
return 0
new_data = {} new_data = {}
new_data['stammdaten'] = dict(zip(app.sd2.keys(), map(lambda f: f.value, app.sd2.values()))) new_data['stammdaten'] = dict(
new_data['finanzdaten'] = dict(zip(app.fin2.keys(), map(lambda f: f.value, app.fin2.values()))) zip(app.base_data_widgets.keys(), map(lambda f: f.value, app.base_data_widgets.values())))
new_data['mitgliederdaten'] = dict(zip(app.mem2.keys(), map(lambda f: f.value, app.mem2.values()))) new_data['finanzdaten'] = dict(
zip(app.finance_widgets.keys(), map(lambda f: f.value, app.finance_widgets.values())))
new_data['mitgliederdaten'] = dict(
zip(app.member_widgets.keys(), map(lambda f: f.value, app.member_widgets.values())))
new_data['stammdaten'] = dict(zip(app.base_data_widgets.keys(), map(lambda f: f.value, app.base_data_widgets.values())))
new_data['stammdaten']['address_label'] = \
f"{new_data['stammdaten']['fullname']}\n\
{new_data['stammdaten']['address_street']}\n\
{new_data['stammdaten']['address_code']} {new_data['stammdaten']['address_locality']}"
new_data['finanzdaten'] = dict(zip(app.finance_widgets.keys(), map(lambda f: f.value, app.finance_widgets.values())))
new_data['mitgliederdaten'] = dict(zip(app.member_widgets.keys(), map(lambda f: f.value, app.member_widgets.values())))
new_data['timestamp'] = datetime.datetime.now().replace(microsecond=0).isoformat() new_data['timestamp'] = datetime.datetime.now().replace(microsecond=0).isoformat()
outfile_name = '{}_{}.json'.format('_'.join(new_data['stammdaten']['fullname'].split()), datetime.datetime.now().replace(microsecond=0).isoformat()) outfile_name = '{}_{}.json'.format('_'.join(new_data['stammdaten']['fullname'].split()), datetime.datetime.now().replace(microsecond=0).isoformat())
with open(outfile_name, 'w') as outfile: with open(outfile_name, 'w') as outfile:
json.dump(new_data, outfile, sort_keys=True, indent=4) json.dump(new_data, outfile, sort_keys=True, indent=4)