Added more docs

This commit is contained in:
Antonio de la Rosa 2022-03-20 00:33:32 +01:00
parent 131e93c679
commit eb93be38ea
2 changed files with 88 additions and 3 deletions

View file

@ -18,7 +18,14 @@ def env_theme(module, cache_enabled=True, cache_impl='', cache_args={}, module_d
Args:
module (str): The module where the templates can be founded
cache_enabled (boolean): If True
cache_enabled (boolean): If True then mako template cache is enabled, is False, mako template cache is disabled.
cache_args (dict): Cache Args dict parameter for TemplateLookup function from Mako templates. View Mako Templates documentation.
module_directory (str): Module directory parameter for TemplateLookup function from Mako templates. View Mako Templates documentation.
Returns:
TemplateLookup: Return TemplateLookup object
"""
ext=module[len(module)-3:]
@ -45,10 +52,26 @@ def env_theme(module, cache_enabled=True, cache_impl='', cache_args={}, module_d
return TemplateLookup(directories=search_folders, default_filters=['h'], input_encoding='utf-8', encoding_errors='replace', cache_enabled=cache_enabled, cache_impl=cache_impl, cache_args=cache_args, module_directory=module_directory, filesystem_checks=config.reloader)
class PTemplate:
"""A class used how shortcuts for Mako template functions.
"""
templates_loaded={}
def __init__(self, environment, prepare_gettext=True):
def __init__(self, environment):
"""A class used how shortcuts for Mako template functions.
This class is used to have a set of shortcuts and hooks to Mako templates functions and methods over a series of default options.
Args:
environment (TemplateLookup): A TemplateLookup object generated with env_theme function
Attributes:
autoescape_ext (set): A set of extensions file where automatic autoescape is used
environment (TemplateLookup): A TemplateLookup object generated with env_theme function
filters (list): A list of functions used for add filters to your templates.
js (list): A list of javascript sources for generate js html load tags.
"""
self.autoescape_ext=('html', 'htm', 'xml', 'phtml', 'js')
@ -75,6 +98,17 @@ class PTemplate:
self.add_filter(self.load_js)
def add_js(self, js, module=''):
"""Function for add js to self.js attribute
Add a js file name to an attribute list called self.js with the <script> tag to add it to the header of an html code
Args:
js (str): The name of js file. Normally you save the file in media/js folder in module or theme
module (str): Optional. Where is saved the js file.
Returns:
None: Dummy return necessary because mako expect return something
"""
if not js in self.js:
self.js[js]='<script language="Javascript" src="{}"></script>'.format(make_media_url('js/'+js, module))
@ -91,6 +125,18 @@ class PTemplate:
"""
def load_template(self, template_file, **arguments):
"""Load a mako template and return the result
Load a mako template and return the results with different arguments applied
Args:
template_file (str): The name of template file. The template is searched using configuration defined in self.env
**arguments (mixed): Extra arguments with variables passed to template
Returns:
Return a template rendered using mako class from self.env
"""
"""
if self.prepare_gettext:
@ -111,6 +157,11 @@ class PTemplate:
return template.render(**arguments)
def guess_autoescape(self, template_name):
"""Simple helper method for get an extension from filename
Args:
template_name (str): The template name
"""
if template_name is None or '.' not in template_name:
return False
@ -120,6 +171,17 @@ class PTemplate:
return ext in self.autoescape_ext
def render_template(self, template_file, **arguments):
"""Experimental method for parse a template
Experimental method for parse a template, similar to load_template but try cache the template loaded
Args:
js (str): The name of js file. Normally you save the file in media/js folder in module or theme
module (str): Optional. Where is saved the js file.
Returns:
None: Dummy return necessary because mako expect return something
"""
if not str(self.env.directories)+'/'+template_file in PTemplate.templates_loaded:
PTemplate.templates_loaded[str(self.env.directories)+'/'+template_file]=self.env.get_template(template_file)
@ -129,6 +191,13 @@ class PTemplate:
return PTemplate.templates_loaded[str(self.env.directories)+'/'+template_file].render(**arguments)
def add_filter(self, filter_name):
"""Method for add filters to self.filters attributes
Method for add filters to self.filters attributes for use in templates
Args:
filter_name (function): Filter function
"""
self.filters[filter_name.__name__]=filter_name

View file

@ -5,11 +5,27 @@ from paramecio2.libraries.urls import add_get_parameters
from paramecio2.libraries.i18n import I18n
class Pages:
"""Simple class for create html pagination code"""
css_class='link_pages'
@staticmethod
def show( begin_page, total_elements, num_elements, link ,initial_num_pages=20, variable='begin_page', label='', func_jscript=''):
"""Static method for create the html pagination
With this method, you can create html pagination code with automated urls for load every page. You can use it also how base for ajax pagination
Args:
begin_page (int): The number where pagination begin
total_elements (int): The total items in pages
num_elements (int): The number of items for every page
link (str): The url of every page
initial_num_pages (int): Optional. Number of pages showed in pagination, if you have 50 pages, if this value is 20, an interval of 20 pages is showed, with first pages links, and after pages links for navigate between many pages.
variable (str): Optional. The name of GET url variable used for send the first element in the query for get the page.
label (str): Optional. In the future will be used for identify some html tags
func_jscript (str): Javascript function to be executed when page url is clicked.
"""
pages='';