From 97ab25c162ee1eb6e2b84cf1be314f1fd8db1191 Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Fri, 5 Feb 2016 15:37:33 +0100 Subject: [PATCH] Added support for post install scripts when a model is created --- paramecio/cromosoma/dbadmin.py | 30 ++++++++++++++++++++++++++++-- paramecio/cromosoma/webmodel.py | 2 ++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/paramecio/cromosoma/dbadmin.py b/paramecio/cromosoma/dbadmin.py index 1652aab..9b6a476 100644 --- a/paramecio/cromosoma/dbadmin.py +++ b/paramecio/cromosoma/dbadmin.py @@ -49,8 +49,6 @@ def start(): if '/' in args.model: args.model=args.model.replace('/', '.')[:-3] #.replace('.py', '') - - try: @@ -307,7 +305,35 @@ def start(): else: if not os.path.isfile(backup_path): create_backup(original_file_path, backup_path) + + # Execute script + + arr_script_model=args.model.split('.') + + arr_script_model.pop() + + script_model='.'.join(arr_script_model)+'.scripts.install' + + script_py=script_model.replace('.', '/')+'.py' + + if os.path.isfile(script_py): + locked_file='/'.join(arr_script_model)+'/scripts/locked' + + if not os.path.isfile(locked_file): + + script_install=import_module(script_model) + + script_install.run() + + f=open(locked_file, 'w') + + f.write('OK') + + f.close() + + + #script_model=args.model+'' print(Style.BRIGHT+"All tasks finished") diff --git a/paramecio/cromosoma/webmodel.py b/paramecio/cromosoma/webmodel.py index e372ce7..045c809 100644 --- a/paramecio/cromosoma/webmodel.py +++ b/paramecio/cromosoma/webmodel.py @@ -309,6 +309,8 @@ class WebModel: # Add extra fields from related table from select_fields ForeignKeyField class member for extra_field in self.fields[field].select_fields: + + # Check if extra_field is ForeignKeyField, if yes, call this function recursively. extra_fields.append("`"+table_name+"`.`"+extra_field+"` as `"+table_name+"_"+extra_field+"`") else: