ask for a destination if instantiated without a filename #15

Merged
tux merged 3 commits from ask-for-destination into master 2020-07-28 11:14:49 +02:00

View file

@ -4,7 +4,7 @@
import npyscreen
import json
import datetime
from sys import argv
import sys
import pathlib
from base_data_model import base_data_model
@ -15,7 +15,7 @@ from membership_data_model import membership_data_model
class FormApp(npyscreen.NPSAppManaged):
def __init__(self, filename):
super().__init__()
self.is_new_member = self.is_default_file(filename)
self.dir_path = pathlib.Path(filename).absolute().parent
self.member = json.load(open(filename, 'r'))
@ -47,23 +47,32 @@ class FormApp(npyscreen.NPSAppManaged):
name = self.base_data.get_form_values_dict()['fullname']
date = datetime.datetime.now().replace(microsecond=0).isoformat()
fn = '{}_{}.json'.format('_'.join(name.lower().split()), date.replace(':',''))
if self.is_new_member:
print('Enter destination directory for new Member data:')
self.dir_path = input()
file_path = pathlib.Path(self.dir_path, fn)
return file_path
def is_default_file(self, filename):
return pathlib.Path(filename).name == 'example.json'
def main(*_args):
if len(argv) > 1:
filename = argv[1]
if len(sys.argv) > 1:
file_path = pathlib.Path(sys.argv[1])
if not file_path.exists():
print("Trying to open nonexistent file. Aborting.")
sys.exit(0)
else:
filename = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json')
file_path = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json')
app = FormApp(filename)
app = FormApp(file_path)
try:
app.run()
except Exception as e:
print(e)
return 0
sys.exit(0)
if app.data_has_changed():
out_data = app.get_data_from_form()