Many fixes

This commit is contained in:
Antonio de la Rosa 2016-05-21 05:41:19 +02:00
parent 31d693756f
commit a2e8c937f7
6 changed files with 127 additions and 109 deletions

View file

@ -52,7 +52,7 @@ class ptemplate:
self.module_directory="./tmp/modules" self.module_directory="./tmp/modules"
self.env=self.env_theme(module) self.inject_folder=None
self.filters={} self.filters={}
@ -75,41 +75,35 @@ class ptemplate:
self.add_filter(I18n.lang) 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 #self.auto_reload=True
# Clean HeaderHTML # Clean HeaderHTML
"""
HeaderHTML.css=[] HeaderHTML.css=[]
HeaderHTML.js=[] HeaderHTML.js=[]
HeaderHTML.header=[] HeaderHTML.header=[]
HeaderHTML.cache_header=[] HeaderHTML.cache_header=[]
HeaderHTML.css_local={} HeaderHTML.css_local={}
HeaderHTML.js_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): def guess_autoescape(self, template_name):
@ -127,9 +121,14 @@ class ptemplate:
theme_templates='themes/'+config.theme+'/templates' 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 #Standard templates
#print(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 #, cache_enabled=self.cache_enabled, cache_impl=self.cache_impl, cache_args=self.cache_args
@ -164,109 +163,107 @@ class ptemplate:
class HeaderHTML: class HeaderHTML:
css=[] def __init__(self):
js=[]
header=[]
cache_header={}
def header_home(): self.css=[]
self.js=[]
self.header=[]
self.cache_header={}
self.css_local={}
self.js_local={}
final_header="\n".join(HeaderHTML.header) def header_home(self):
HeaderHTML.header=[] final_header="\n".join(self.header)
self.header=[]
return final_header return final_header
def js_home(): def js_home(self):
final_js=[] final_js=[]
for js in HeaderHTML.js: for js in self.js:
final_js.append('<script language="Javascript" src="'+make_media_url('js/'+js)+'"></script>') final_js.append('<script language="Javascript" src="'+make_media_url('js/'+js)+'"></script>')
for module, arr_js in HeaderHTML.js_local.items(): for module, arr_js in self.js_local.items():
for js in arr_js: for js in arr_js:
final_js.append('<script language="Javascript" src="'+make_media_url_module('js/'+js, module)+'"></script>') final_js.append('<script language="Javascript" src="'+make_media_url_module('js/'+js, module)+'"></script>')
HeaderHTML.js=[] self.js=[]
HeaderHTML.js_local={} self.js_local={}
return "\n".join(final_js) return "\n".join(final_js)
def css_home(): def css_home(self):
final_css=[] final_css=[]
for css in HeaderHTML.css: for css in self.css:
final_css.append('<link href="'+make_media_url('css/'+css)+'" rel="stylesheet" type="text/css"/>') final_css.append('<link href="'+make_media_url('css/'+css)+'" rel="stylesheet" type="text/css"/>')
for module, arr_css in HeaderHTML.css_local.items(): for module, arr_css in self.css_local.items():
for css in arr_css: for css in arr_css:
final_css.append('<link href="'+make_media_url_module('css/'+css, module)+'" rel="stylesheet" type="text/css"/>') final_css.append('<link href="'+make_media_url_module('css/'+css, module)+'" rel="stylesheet" type="text/css"/>')
HeaderHTML.css=[] self.css=[]
HeaderHTML.css_local={} self.css_local={}
return "\n".join(final_css) return "\n".join(final_css)
def add_header_home(variable, only_one_time=False): def add_header_home(self, variable, only_one_time=False):
if only_one_time==True: if only_one_time==True:
HeaderHTML.cache_header.get(variable, 0) self.cache_header.get(variable, 0)
if cache_header[variable]==1: if cache_header[variable]==1:
return '' return ''
#HeaderHTML.cache_header[variable]=1 #self.cache_header[variable]=1
HeaderHTML.header.append(variable) self.header.append(variable)
return '' return ''
def add_css_home(css): def add_css_home(self, css):
if not css in HeaderHTML.css: if not css in self.css:
HeaderHTML.css.append(css) self.css.append(css)
return '' return ''
def add_js_home(js): def add_js_home(self, js):
if not js in HeaderHTML.js: if not js in self.js:
HeaderHTML.js.append(js) self.js.append(js)
return '' return ''
def add_css_home_local(css, module): def add_css_home_local(self, css, module):
if not css in HeaderHTML.css_local: if not css in self.css_local:
HeaderHTML.css_local[module]=HeaderHTML.css_local.get(module, []) self.css_local[module]=self.css_local.get(module, [])
HeaderHTML.css_local[module].append(css) self.css_local[module].append(css)
return '' return ''
def add_js_home_local(js, module): def add_js_home_local(self, js, module):
if not js in HeaderHTML.js_local: if not js in self.js_local:
HeaderHTML.js_local[module]=HeaderHTML.js_local.get(module, []) self.js_local[module]=self.js_local.get(module, [])
HeaderHTML.js_local[module].append(js) self.js_local[module].append(js)
return '' return ''
def set_flash_message(message): def show_flash_message(self):
s=get_session()
s['flash']=message
def show_flash_message():
message="" message=""
@ -281,4 +278,10 @@ def show_flash_message():
return message return message
def set_flash_message(self, message):
s=get_session()
s['flash']=message
standard_t=ptemplate(__file__) standard_t=ptemplate(__file__)

View file

@ -10,8 +10,8 @@ class SqlClass:
def __init__(self): def __init__(self):
self.max_overflow=30 self.max_overflow=45
self.pool_size=15 self.pool_size=30
self.error_connection="" self.error_connection=""
self.connection={} self.connection={}
self.connected=False self.connected=False
@ -90,9 +90,7 @@ class SqlClass:
""" """
def __del__(self): def __del__(self):
for key in self.connection: self.close()
self.close(self.connection)
""" """
def close(self, name_connection="default"): def close(self, name_connection="default"):
@ -100,7 +98,7 @@ class SqlClass:
if self.connection[name_connection]: if self.connection[name_connection]:
self.connection[name_connection].close() self.connection[name_connection].close()
self.connection[name_connection]=False #self.connection[name_connection]=False
pass pass

View file

@ -421,6 +421,8 @@ class WebModel:
def select_a_row_where(self, fields_selected=[], raw_query=0): def select_a_row_where(self, fields_selected=[], raw_query=0):
if self.limit=='':
self.limit="limit 1" self.limit="limit 1"
cursor=self.select(fields_selected, raw_query) cursor=self.select(fields_selected, raw_query)
@ -846,18 +848,21 @@ class WebModel:
def show_errors(self): def show_errors(self):
arr_error=[]
error_txt='' error_txt=''
for k_error in self.fields_errors.values(): for k_error in self.fields_errors.values():
for error in k_error: for error in k_error:
error_txt+=error+"\n" arr_error.append(error)
for type_error in self.errors.values(): for type_error in self.errors.values():
for error in type_error: 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 return error_txt

View file

@ -122,20 +122,21 @@ if config.ssl==True:
app = application = default_app() 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) #app.add_hook('after_request', WebModel.close)
if config.session_enabled==True: if config.session_enabled==True:
#Create dir for sessions #Create dir for sessions
"""
key_encrypt=config.key_encrypt
if 'session.data_dir' in config.session_opts: if 'session.data_dir' in config.session_opts:
if not os.path.isdir(config.session_opts['session.data_dir']): if not os.path.isdir(config.session_opts['session.data_dir']):
os.makedirs(config.session_opts['session.data_dir'], 0o700, True) os.makedirs(config.session_opts['session.data_dir'], 0o700, True)
"""
key_encrypt=config.key_encrypt
if config.session_opts['session.type']=='file': if config.session_opts['session.type']=='file':
def load_session(): def load_session():

View file

@ -33,6 +33,12 @@ module_admin=path.dirname(__file__)
t=ptemplate(__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)
@get('/'+config.admin_folder+'/<module>') @get('/'+config.admin_folder+'/<module>')
@post('/'+config.admin_folder+'/<module>') @post('/'+config.admin_folder+'/<module>')
@ -103,6 +109,11 @@ def home(module='', submodule=''):
try: try:
new_module=import_module(menu[module][1]) 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: if config.reloader:
reload(new_module) reload(new_module)

View file

@ -7,8 +7,8 @@
<link href="{{'css/font-awesome.min.css'|make_media_url}}" rel="stylesheet" type="text/css"/>--> <link href="{{'css/font-awesome.min.css'|make_media_url}}" rel="stylesheet" type="text/css"/>-->
${add_css_home_local('admin.css', 'admin')} ${add_css_home_local('admin.css', 'admin')}
${add_css_home_local('font-awesome.min.css', 'admin')} ${add_css_home_local('font-awesome.min.css', 'admin')}
${HeaderHTML.css_home()|n}
${add_js_home_local('jquery.min.js', 'admin')} ${add_js_home_local('jquery.min.js', 'admin')}
${HeaderHTML.css_home()|n}
${HeaderHTML.js_home()|n} ${HeaderHTML.js_home()|n}
${HeaderHTML.header_home()|n} ${HeaderHTML.header_home()|n}
</head> </head>