diff --git a/paramecio/citoplasma/mtemplates.py b/paramecio/citoplasma/mtemplates.py index 4871204..2ac7395 100644 --- a/paramecio/citoplasma/mtemplates.py +++ b/paramecio/citoplasma/mtemplates.py @@ -52,7 +52,7 @@ class ptemplate: self.module_directory="./tmp/modules" - self.env=self.env_theme(module) + self.inject_folder=None self.filters={} @@ -75,41 +75,35 @@ class ptemplate: self.add_filter(I18n.lang) - self.add_filter(add_css_home) + self.headerhtml=HeaderHTML() - self.add_filter(add_js_home) + self.add_filter(self.headerhtml.add_css_home) - self.add_filter(add_css_home_local) + self.add_filter(self.headerhtml.add_js_home) - self.add_filter(add_js_home_local) + self.add_filter(self.headerhtml.add_css_home_local) - self.add_filter(add_header_home) + self.add_filter(self.headerhtml.add_js_home_local) - self.filters['HeaderHTML']=HeaderHTML + self.add_filter(self.headerhtml.add_header_home) - self.filters['show_flash_message']=show_flash_message + self.filters['HeaderHTML']=self.headerhtml + + self.filters['show_flash_message']=self.headerhtml.show_flash_message + + self.env=self.env_theme(module) #self.auto_reload=True # Clean HeaderHTML - + """ HeaderHTML.css=[] HeaderHTML.js=[] HeaderHTML.header=[] HeaderHTML.cache_header=[] HeaderHTML.css_local={} HeaderHTML.js_local={} - - - @staticmethod - def clean_header_cache(): - - HeaderHTML.css=[] - HeaderHTML.js=[] - HeaderHTML.css_local={} - HeaderHTML.js_local={} - HeaderHTML.header=[] - HeaderHTML.cache_header=[] + """ def guess_autoescape(self, template_name): @@ -127,9 +121,14 @@ class ptemplate: theme_templates='themes/'+config.theme+'/templates' + search_folders=[theme_templates, module_templates, standard_templates] + + #if self.inject_folder is not None: + #search_folders.insert(1, self.inject_folder+'/templates') + #Standard templates #print(standard_templates) - return TemplateLookup(directories=[theme_templates, module_templates, standard_templates], default_filters=['h'], input_encoding='utf-8', encoding_errors='replace', cache_enabled=self.cache_enabled, cache_impl=self.cache_impl, cache_args=self.cache_args, module_directory=self.module_directory) + return TemplateLookup(directories=search_folders, default_filters=['h'], input_encoding='utf-8', encoding_errors='replace', cache_enabled=self.cache_enabled, cache_impl=self.cache_impl, cache_args=self.cache_args, module_directory=self.module_directory) #, cache_enabled=self.cache_enabled, cache_impl=self.cache_impl, cache_args=self.cache_args @@ -164,121 +163,125 @@ class ptemplate: class HeaderHTML: - css=[] - js=[] - header=[] - cache_header={} + def __init__(self): + + self.css=[] + self.js=[] + self.header=[] + self.cache_header={} + self.css_local={} + self.js_local={} - def header_home(): + def header_home(self): - final_header="\n".join(HeaderHTML.header) + final_header="\n".join(self.header) - HeaderHTML.header=[] + self.header=[] return final_header - def js_home(): + def js_home(self): final_js=[] - for js in HeaderHTML.js: + for js in self.js: final_js.append('') - for module, arr_js in HeaderHTML.js_local.items(): + for module, arr_js in self.js_local.items(): for js in arr_js: final_js.append('') - HeaderHTML.js=[] - HeaderHTML.js_local={} + self.js=[] + self.js_local={} return "\n".join(final_js) - def css_home(): + def css_home(self): final_css=[] - for css in HeaderHTML.css: + for css in self.css: final_css.append('') - - for module, arr_css in HeaderHTML.css_local.items(): + + for module, arr_css in self.css_local.items(): for css in arr_css: final_css.append('') - HeaderHTML.css=[] - HeaderHTML.css_local={} + self.css=[] + self.css_local={} return "\n".join(final_css) -def add_header_home(variable, only_one_time=False): - - - if only_one_time==True: - HeaderHTML.cache_header.get(variable, 0) + def add_header_home(self, variable, only_one_time=False): - if cache_header[variable]==1: - return '' - #HeaderHTML.cache_header[variable]=1 + + if only_one_time==True: + self.cache_header.get(variable, 0) + + if cache_header[variable]==1: + return '' + #self.cache_header[variable]=1 + + self.header.append(variable) + + return '' + + def add_css_home(self, css): - HeaderHTML.header.append(variable) + if not css in self.css: + self.css.append(css) + + return '' + + def add_js_home(self, js): + if not js in self.js: + self.js.append(js) + return '' -def add_css_home(css): - - if not css in HeaderHTML.css: - HeaderHTML.css.append(css) + def add_css_home_local(self, css, module): - return '' + if not css in self.css_local: + + self.css_local[module]=self.css_local.get(module, []) + + self.css_local[module].append(css) + + return '' + + def add_js_home_local(self, js, module): -def add_js_home(js): - - if not js in HeaderHTML.js: - HeaderHTML.js.append(js) + if not js in self.js_local: + + self.js_local[module]=self.js_local.get(module, []) + + self.js_local[module].append(js) - return '' - -def add_css_home_local(css, module): - - if not css in HeaderHTML.css_local: + return '' - HeaderHTML.css_local[module]=HeaderHTML.css_local.get(module, []) + def show_flash_message(self): - HeaderHTML.css_local[module].append(css) - - return '' - -def add_js_home_local(js, module): - - if not js in HeaderHTML.js_local: + message="" - HeaderHTML.js_local[module]=HeaderHTML.js_local.get(module, []) + s=get_session() - HeaderHTML.js_local[module].append(js) + s['flash']=s.get('flash', "") + + if s['flash']!="": + message='
'+s['flash']+'
' + + s['flash']='' + + return message - return '' - -def set_flash_message(message): - +def set_flash_message(self, message): + s=get_session() s['flash']=message - -def show_flash_message(): - - message="" - - s=get_session() - - s['flash']=s.get('flash', "") - - if s['flash']!="": - message='
'+s['flash']+'
' - - s['flash']='' - - return message - + standard_t=ptemplate(__file__) diff --git a/paramecio/cromosoma/databases/mysqldb.py b/paramecio/cromosoma/databases/mysqldb.py index d2231a9..5315805 100644 --- a/paramecio/cromosoma/databases/mysqldb.py +++ b/paramecio/cromosoma/databases/mysqldb.py @@ -10,8 +10,8 @@ class SqlClass: def __init__(self): - self.max_overflow=30 - self.pool_size=15 + self.max_overflow=45 + self.pool_size=30 self.error_connection="" self.connection={} self.connected=False @@ -90,9 +90,7 @@ class SqlClass: """ def __del__(self): - for key in self.connection: - - self.close(self.connection) + self.close() """ def close(self, name_connection="default"): @@ -100,7 +98,7 @@ class SqlClass: if self.connection[name_connection]: self.connection[name_connection].close() - self.connection[name_connection]=False + #self.connection[name_connection]=False pass diff --git a/paramecio/cromosoma/webmodel.py b/paramecio/cromosoma/webmodel.py index e5e84ab..174f16b 100644 --- a/paramecio/cromosoma/webmodel.py +++ b/paramecio/cromosoma/webmodel.py @@ -421,7 +421,9 @@ class WebModel: def select_a_row_where(self, fields_selected=[], raw_query=0): - self.limit="limit 1" + if self.limit=='': + + self.limit="limit 1" cursor=self.select(fields_selected, raw_query) @@ -846,18 +848,21 @@ class WebModel: def show_errors(self): + arr_error=[] error_txt='' for k_error in self.fields_errors.values(): for error in k_error: - error_txt+=error+"\n" + arr_error.append(error) for type_error in self.errors.values(): for error in type_error: - error_txt+=error+"\n" + arr_error.append(error) - error_txt=self.query_error+"\n" + arr_error.append(self.query_error) + + error_txt="\n".join(arr_error) return error_txt diff --git a/paramecio/index.py b/paramecio/index.py index 56ecc2e..af73f94 100644 --- a/paramecio/index.py +++ b/paramecio/index.py @@ -122,19 +122,20 @@ if config.ssl==True: app = application = default_app() -app.add_hook('before_request', print_memory) +#app.add_hook('before_request', print_memory) #app.add_hook('after_request', WebModel.close) if config.session_enabled==True: #Create dir for sessions - """ - key_encrypt=config.key_encrypt if 'session.data_dir' in config.session_opts: if not os.path.isdir(config.session_opts['session.data_dir']): os.makedirs(config.session_opts['session.data_dir'], 0o700, True) + + """ + key_encrypt=config.key_encrypt if config.session_opts['session.type']=='file': diff --git a/paramecio/modules/admin/index.py b/paramecio/modules/admin/index.py index e7f937c..4cf9d03 100644 --- a/paramecio/modules/admin/index.py +++ b/paramecio/modules/admin/index.py @@ -33,6 +33,12 @@ module_admin=path.dirname(__file__) t=ptemplate(__file__) +def make_admin_url(url): + + return make_url('%s/%s' % (config.admin_folder, url)) + +t.add_filter(make_admin_url) + @get('/'+config.admin_folder) @get('/'+config.admin_folder+'/') @post('/'+config.admin_folder+'/') @@ -102,7 +108,12 @@ def home(module='', submodule=''): try: new_module=import_module(menu[module][1]) - + + #t.inject_folder=path.dirname(new_module.__file__).replace('/admin', '') + + #t.env=t.env_theme(path.dirname(__file__)) + t.env.directories.insert(1, path.dirname(new_module.__file__).replace('/admin', '')+'/templates') + #print(t.env.directories) if config.reloader: reload(new_module) @@ -327,7 +338,7 @@ def logout(): #return "" redirect('/'+config.admin_folder) - + """ def set_extra_forms_user(user_admin): diff --git a/paramecio/modules/admin/templates/admin/home.html b/paramecio/modules/admin/templates/admin/home.html index 2f3b0b8..1daf643 100644 --- a/paramecio/modules/admin/templates/admin/home.html +++ b/paramecio/modules/admin/templates/admin/home.html @@ -7,8 +7,8 @@ --> ${add_css_home_local('admin.css', 'admin')} ${add_css_home_local('font-awesome.min.css', 'admin')} -${HeaderHTML.css_home()|n} ${add_js_home_local('jquery.min.js', 'admin')} +${HeaderHTML.css_home()|n} ${HeaderHTML.js_home()|n} ${HeaderHTML.header_home()|n} @@ -59,4 +59,4 @@ ${HeaderHTML.header_home()|n}
- \ No newline at end of file +