8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-25 08:23:46 +00:00

Pylint & Pep8 compliance

This commit is contained in:
Maël Kervella 2017-12-02 00:42:07 +00:00 committed by root
parent 24a4069aab
commit 0f8df0988d

View file

@ -20,7 +20,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
""" """
Set of templatags for using acl in templates: Set of templatetags for using acl in templates:
- can_create - can_create
- cannot_create - cannot_create
@ -41,11 +41,18 @@ Set of templatags for using acl in templates:
**Example**: **Example**:
{% can_create Machine targeted_user %} {% can_create Machine targeted_user %}
<p>I'm authorized to create new machines for this guy \o/</p> <p>I'm authorized to create new machines for this guy \\o/</p>
{% can_else %} {% can_else %}
<p>Why can't I create a little machine for this guy ? :(</p> <p>Why can't I create a little machine for this guy ? :(</p>
{% can_end %} {% can_end %}
**How to modify**:
To add a new acl function (can_xxx or cannot_xxx), add an entry in
'get_callback' and register your tag with the other ones juste before
'can_generic' definition
To add a new model, add an entry in 'get_model' and be sure the acl
function exists in the model definition
""" """
from django import template from django import template
@ -61,6 +68,8 @@ register = template.Library()
def get_model(model_name): def get_model(model_name):
"""Retrieve the model object from its name"""
# cotisations # cotisations
# TODO # TODO
# logs # logs
@ -127,20 +136,25 @@ def get_callback(tag_name, model_name):
) )
def acl_fct(cb, reverse): def acl_fct(callback, reverse):
"""Build a function to use as an acl checker""" """Build a function to use as an acl checker"""
def acl_fct_normal(*args, **kwargs): def acl_fct_normal(*args, **kwargs):
return cb(*args, **kwargs) """The can_xxx checker callback"""
return callback(*args, **kwargs)
def acl_fct_reverse(*args, **kwargs): def acl_fct_reverse(*args, **kwargs):
can, msg = cb(*args, **kwargs) """The cannot_xxx checker callback"""
can, msg = callback(*args, **kwargs)
return not can, msg return not can, msg
return acl_fct_reverse if reverse else acl_fct_normal return acl_fct_reverse if reverse else acl_fct_normal
@register.tag('can_create') @register.tag('can_create')
@register.tag('cannot_create') @register.tag('cannot_create')
def can_generic(parser, token): def can_generic(parser, token):
"""Generic definition of an acl templatetag"""
try: try:
tag_content = token.split_contents() tag_content = token.split_contents()
@ -149,7 +163,8 @@ def can_generic(parser, token):
args = tag_content[2:] args = tag_content[2:]
except ValueError: except ValueError:
raise template.TemplateSyntaxError( raise template.TemplateSyntaxError(
"%r tag require at least 1 argument : the model" % token.contents.split()[0] "%r tag require at least 1 argument : the model"
% token.contents.split()[0]
) )
callback = get_callback(tag_name, model_name) callback = get_callback(tag_name, model_name)
@ -168,10 +183,11 @@ def can_generic(parser, token):
# {% can_create_end %} # {% can_create_end %}
assert token.contents == 'can_end' assert token.contents == 'can_end'
return CanNode( callback, oknodes, konodes, *args ) return CanNode(callback, oknodes, konodes, *args)
class CanNode(Node): class CanNode(Node):
"""A node for the compiled ACL block"""
def __init__(self, callback, oknodes, konodes, *args): def __init__(self, callback, oknodes, konodes, *args):
self.callback = callback self.callback = callback