diff --git a/paramecio/citoplasma/i18n.py b/paramecio/citoplasma/i18n.py
index a8b5130..6e65d8c 100644
--- a/paramecio/citoplasma/i18n.py
+++ b/paramecio/citoplasma/i18n.py
@@ -40,7 +40,9 @@ class I18n:
s=get_session()
- if s!=None:
+ if s==None:
+
+ s={}
s['lang']=s.get('lang', I18n.default_lang)
diff --git a/paramecio/citoplasma/mtemplates.py b/paramecio/citoplasma/mtemplates.py
index a2181bd..a95deb2 100644
--- a/paramecio/citoplasma/mtemplates.py
+++ b/paramecio/citoplasma/mtemplates.py
@@ -33,7 +33,7 @@ class ptemplate:
show_basic_template=True
- def __init__(self, module):
+ def __init__(self, module, cache_enabled=True, cache_impl='', cache_args={}):
ext=module[len(module)-3:]
@@ -43,10 +43,22 @@ class ptemplate:
self.autoescape_ext=('html', 'htm', 'xml', 'phtml')
+ self.cache_enabled=cache_enabled
+
+ self.cache_impl=cache_impl
+
+ self.cache_args=cache_args
+
+ self.module_directory="./tmp/modules"
+
self.env=self.env_theme(module)
self.filters={}
+ #Place where templates contexts is loaded
+
+ self.templates={}
+
#Adding basic filters for urls
self.add_filter(make_url)
@@ -114,22 +126,34 @@ class ptemplate:
#Standard templates
#print(standard_templates)
- return TemplateLookup(directories=[theme_templates, module_templates, standard_templates], default_filters=['h'], input_encoding='utf-8', encoding_errors='replace')
+ 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)
+
+ #, cache_enabled=self.cache_enabled, cache_impl=self.cache_impl, cache_args=self.cache_args
#return Environment(autoescape=self.guess_autoescape, auto_reload=True, loader=FileSystemLoader([theme_templates, module_templates]))
+ def load_templates(self, template_files):
+
+ for template_file in template_files:
+
+ self.templates[template_file]=self.env.get_template(template_file)
+
def load_template(self, template_file, **arguments):
template = self.env.get_template(template_file)
- #Will be nice add hooks here
-
- #z = x.copy()
-
arguments.update(self.filters)
+ #arguments['make_media_url']=make_media_url
+
return template.render(**arguments)
+ def render_template(self, template_file, **arguments):
+
+ arguments['make_media_url']=make_media_url
+
+ return self.templates[template_file].render(**arguments)
+
def add_filter(self, filter_name):
self.filters[filter_name.__name__]=filter_name
diff --git a/paramecio/citoplasma/templates.py b/paramecio/citoplasma/templates.py
index bcab461..44138d4 100644
--- a/paramecio/citoplasma/templates.py
+++ b/paramecio/citoplasma/templates.py
@@ -1,9 +1,9 @@
#!/usr/bin/python
from jinja2 import Template, Environment, FileSystemLoader
-from citoplasma.urls import make_url, make_media_url, make_media_url_module, add_get_parameters
-from citoplasma.i18n import I18n
-from citoplasma.sessions import get_session
+from paramecio.citoplasma.urls import make_url, make_media_url, make_media_url_module, add_get_parameters
+from paramecio.citoplasma.i18n import I18n
+from paramecio.citoplasma.sessions import get_session
from settings import config
# Preparing envs for views of modules, and views of
@@ -62,9 +62,11 @@ class ptemplate:
def env_theme(self, module):
- theme_templates='themes/'+config.theme+'/templates'
+ #standard_templates=path.dirname(__file__)+'/templates'
- module_templates=config.base_modules+'/'+module+'/templates'
+ module_templates=module+'/templates'
+
+ theme_templates='themes/'+config.theme+'/templates'
return Environment(autoescape=self.guess_autoescape, auto_reload=True, loader=FileSystemLoader([theme_templates, module_templates]))
@@ -107,6 +109,8 @@ class HeaderHTML:
for js in HeaderHTML.js:
final_js.append('')
+ HeaderHTML.js=[]
+
return "\n".join(final_js)
def css_home():
@@ -116,6 +120,8 @@ class HeaderHTML:
for css in HeaderHTML.css:
final_css.append('')
+ HeaderHTML.css=[]
+
return "\n".join(final_css)
@@ -170,3 +176,4 @@ def show_flash_message():
return message
+standard_t=ptemplate(__file__)
diff --git a/paramecio/index.py b/paramecio/index.py
index 5ba55c4..d2aa32b 100644
--- a/paramecio/index.py
+++ b/paramecio/index.py
@@ -3,42 +3,47 @@ from importlib import import_module
from bottle import route, get, post, run, default_app, abort, request, static_file, load
from settings import config, modules
from beaker.middleware import SessionMiddleware
+from mimetypes import guess_type
#Prepare links for static.
#WARNING: only use this feature in development, not in production.
#def create_app():
-
+workdir=os.getcwd()
arr_module_path={}
-
if config.yes_static==True:
@route('/media/')
def send_static(filename):
- return static_file(filename, root='themes/'+config.theme+'/media/')
+ mimetype=guess_type(workdir+'/themes/'+config.theme+'/media/'+filename)
+ return static_file(filename, root=workdir+'/themes/'+config.theme+'/media/', mimetype=mimetype)
- def add_func_static_module(module):
+ #def add_func_static_module(module):
- @route('/mediafrom//')
- def send_static_module(module, filename):
+ @route('/mediafrom//')
+ def send_static_module(module, filename):
+
+ path_module=arr_module_path[module]+'/media/'
+
+ file_path_module=path_module+filename
+
+ path=workdir+'/themes/'+config.theme+'/media/'+module
+
+ file_path=path+filename
+
+ if os.path.isfile(file_path):
+ mimetype=guess_type(path+'/'+filename)
+ return static_file(filename, root=path)
- path_module=arr_module_path[module]+'/media/'
-
- file_path_module=path_module+filename
-
- path='themes/'+config.theme+'/media/'+module
-
- file_path=path+filename
-
- if os.path.isfile(file_path):
- return static_file(filename, root=path)
-
- else:
- return static_file(filename, root=path_module)
+ else:
+ mimetype=guess_type(path_module+'/'+filename)
+ return static_file(filename, root=path_module)
+"""
else:
def add_func_static_module(module):
pass
+"""
routes={}
@@ -58,8 +63,9 @@ for module in config.modules:
dir_controllers=os.listdir(controller_base)
- add_func_static_module(controller_base)
-
+ #add_func_static_module(controller_base)
+
+
"""
try: