Usage¶
Overview¶
Actions¶
Use the @action decorator to add actions:
# logic/actions/module_name.py
from ckantools.decorators import action
@action(schema, helptext, get=False, *other_decorators)
def example_action(parameter_1, parameter_2):
# ...
Or the @basic_action decorator if you want to load the action but don't want any of the other features (schema loading, auto auth, etc):
from ckantools.decorators import basic_action
@basic_action
def example_action(context, data_dict):
# ...
And then load the action(s) in plugin.py:
# plugin.py
from .logic.actions import module_name
from ckantools.loaders import create_actions
from ckan.plugins import implements, interfaces, SingletonPlugin
class ExamplePlugin(SingletonPlugin):
implements(interfaces.IActions)
# IActions
def get_actions(self):
return create_actions(module_name)
Auth¶
Loading auth functions is similar to actions, i.e. use the @auth decorator.
# logic/auth/module_name.py
from ckantools.decorators import auth
@auth(anon=True)
def example_action(context, data_dict):
return {'success': True}
@auth('example_action')
def other_action(context, data_dict):
# checks access to example_action first
return {'success': True}
The auth functions can then be loaded in plugin.py:
# plugin.py
from .logic.auth import module_name
from ckantools.loaders import create_auth
from ckan.plugins import implements, interfaces, SingletonPlugin
class ExamplePlugin(SingletonPlugin):
implements(interfaces.IActions)
# IAuthFunctions
def get_auth_functions(self):
return create_auth(module_name)