diff --git a/paramecio/citoplasma/sessions.py b/paramecio/citoplasma/sessions.py index 754e9b8..18ba60a 100644 --- a/paramecio/citoplasma/sessions.py +++ b/paramecio/citoplasma/sessions.py @@ -115,7 +115,13 @@ def get_session(): if os.path.isfile(path_cookie): with open(path_cookie) as f: - s=json.loads(f.read()) + + json_txt=f.read() + + if(json_txt).strip()!='': + s=json.loads(json_txt) + else: + s={'token': cookie} else: s={'token': cookie} diff --git a/paramecio/cromosoma/databases/mysqldb.py b/paramecio/cromosoma/databases/mysqldb.py index 7ddc18e..f25c048 100644 --- a/paramecio/cromosoma/databases/mysqldb.py +++ b/paramecio/cromosoma/databases/mysqldb.py @@ -19,40 +19,43 @@ class SqlClass: # Sql connection self.conn=None self.connected=False - #self.connection_method=self.connect_to_db_sql - self.caching=False - try: - def getconn(): - return MySQLdb.connect(connection['host'], - user=connection['user'], - passwd=connection['password'], - db=connection['db'], - charset='utf8mb4', - cursorclass=MySQLdb.cursors.DictCursor) - - if SqlClass.mypool==None: - SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size) - - self.conn=SqlClass.mypool.connect() - - self.conn.ping(True) - - self.connected=True - - except: - e = sys.exc_info()[0] - v = sys.exc_info()[1] - - self.error_connection="Error in connection: %s %s" % (e, v) - - #return False - raise NameError(self.error_connection) + def connect(self): + + if self.conn==None: + try: + def getconn(): + return MySQLdb.connect(self.connection['host'], + user=self.connection['user'], + passwd=self.connection['password'], + db=self.connection['db'], + charset='utf8mb4', + cursorclass=MySQLdb.cursors.DictCursor) + + if SqlClass.mypool==None: + SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size) + + self.conn=SqlClass.mypool.connect() + + self.conn.ping(True) + + self.connected=True + + except: + e = sys.exc_info()[0] + v = sys.exc_info()[1] + + self.error_connection="Error in connection: %s %s" % (e, v) + + raise NameError(self.error_connection) + #Make def query more simple if not debugging. def query(self, sql_query, arguments=[], name_connection="default"): + self.connect() + #if fetch_type=="ASSOC": #fetch_type=MySQLdb.cursors.DictCursor @@ -83,17 +86,19 @@ class SqlClass: #def fetch(self, cursor): #return cursor.fetchone() - """ + def __del__(self): - self.close() - """ + if self.conn: + + self.conn.close() + def close(self, name_connection="default"): if self.conn: self.conn.close() - #self.conn=False + self.conn=None pass diff --git a/paramecio/cromosoma/databases/pymysql.py b/paramecio/cromosoma/databases/pymysql.py index 74f61f7..cbf162b 100644 --- a/paramecio/cromosoma/databases/pymysql.py +++ b/paramecio/cromosoma/databases/pymysql.py @@ -20,40 +20,43 @@ class SqlClass: # Sql connection self.conn=None self.connected=False - #self.connection_method=self.connect_to_db_sql - self.caching=False - try: - def getconn(): - return pymysql.connect(connection['host'], - user=connection['user'], - passwd=connection['password'], - db=connection['db'], - charset='utf8mb4', - cursorclass=pymysql.cursors.DictCursor) - - if SqlClass.mypool==None: - SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size) - - self.conn=SqlClass.mypool.connect() - - self.conn.ping(True) - - self.connected=True - - except: - e = sys.exc_info()[0] - v = sys.exc_info()[1] - - self.error_connection="Error in connection: %s %s" % (e, v) - - #return False - raise NameError(self.error_connection) + def connect(self): + + if self.conn==None: + try: + def getconn(): + return pymysql.connect(self.connection['host'], + user=self.connection['user'], + passwd=self.connection['password'], + db=self.connection['db'], + charset='utf8mb4', + cursorclass=pymysql.cursors.DictCursor) + + if SqlClass.mypool==None: + SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size) + + self.conn=SqlClass.mypool.connect() + + self.conn.ping(True) + + self.connected=True + + except: + e = sys.exc_info()[0] + v = sys.exc_info()[1] + + self.error_connection="Error in connection: %s %s" % (e, v) + + raise NameError(self.error_connection) + #Make def query more simple if not debugging. def query(self, sql_query, arguments=[], name_connection="default"): + self.connect() + #if fetch_type=="ASSOC": #fetch_type=pymysql.cursors.DictCursor diff --git a/paramecio/cromosoma/webmodel.py b/paramecio/cromosoma/webmodel.py index 507cfc8..a818bcb 100644 --- a/paramecio/cromosoma/webmodel.py +++ b/paramecio/cromosoma/webmodel.py @@ -5,7 +5,7 @@ import re import uuid from importlib import import_module, reload from collections import OrderedDict -from paramecio.cromosoma.databases.pymysql import SqlClass +from paramecio.cromosoma.databases.mysqldb import SqlClass from paramecio.cromosoma.coreforms import BaseForm, HiddenForm import copy import traceback @@ -141,9 +141,11 @@ class PhangoField: def create_form(self): #self.name, self.default_value, - self.extra_parameters.insert(0, self.name) - self.extra_parameters.insert(1, self.default_value) - form=self.name_form(*self.extra_parameters) + final_parameters=copy.copy(self.extra_parameters) + + final_parameters.insert(0, self.name) + final_parameters.insert(1, self.default_value) + form=self.name_form(*final_parameters) form.default_value=self.default_value form.required=self.required form.label=self.label @@ -240,9 +242,11 @@ class WebModel: def __init__(self, sqlclass, name_field_id="id"): - cached=self.global_cached + self.cached=self.global_cached - cached_runquery=self.global_cached + self.cached_runquery=self.global_cached + + self.type_cache='file' #The name of the table @@ -347,7 +351,7 @@ class WebModel: self.fields[field_model.name].model=self - self.fields[field_model.name].required=required + #self.fields[field_model.name].required=required self.fields[field_model.name].post_register() @@ -1071,6 +1075,8 @@ class WebModel: def create_forms(self, arr_fields=[]): + self.forms={} + if len(arr_fields)==0: arr_fields=list(self.fields.keys()) diff --git a/paramecio/modules/admin/index.py b/paramecio/modules/admin/index.py index f7c0620..e7f66f4 100644 --- a/paramecio/modules/admin/index.py +++ b/paramecio/modules/admin/index.py @@ -65,7 +65,10 @@ for k, v in menu.items(): def home(module='', submodule=''): # A simple boolean used for show or not the code of admin module in standard template + connection=WebModel.connection() + user_admin=UserAdmin(connection) + #Fix, make local variable t=PTemplate(env) @@ -81,8 +84,6 @@ def home(module='', submodule=''): #check if login - user_admin=UserAdmin(connection) - s=get_session() if check_login():