endi.views.admin package

Subpackages

Submodules

endi.views.admin.layout module

class endi.views.admin.layout.AdminLayout(context, request)

Bases : object

endi_version = '2024.1.0b1'
endi.views.admin.layout.includeme(config)

endi.views.admin.tools module

class endi.views.admin.tools.AdminCrudListView(context, request=None)

Bases : BaseView, TreeMixin

children = []
columns = []
get_actions(items)

Return additionnal list related actions (other than add)

Renvoie:

An iterator providing endi.utils.widgets.Link instances

Type renvoyé:

iterator

get_addurl()

Build the url to the add form Override and return None if you don’t want an add button

Renvoie:

An url string

Type renvoyé:

str

get_icon(name)

Build a <span> tag rendering the icon with given name

load_items()

Perform the listing query and return the result

Renvoie:

List of SQLAlchemy object to present in the UI

Type renvoyé:

obj

more_template_vars(result)

Add template vars to the result

Paramètres:

result (dict) – The currently built dict that will be returned as

templating context :returns: The templating context for the given view :rtype: dict

stream_actions(item)

For each column, we stream an action corresponding to it

Paramètres:

item – the SQLAlchemy model we wish to have action for

Renvoie:

List of 4uples (url, label, title, icon)

stream_columns(item)

Each item is a row in a table, here we stream the different columns for the given row except the actions column

Paramètres:

item (obj) – A SQLAlchemy model instance

Renvoie:

an iterator (can be used in a for loop) of column contents

Type renvoyé:

iterator

title = 'Missing title'
class endi.views.admin.tools.AdminOption(*args, **kwargs)

Bases : BaseAdminFormView

Main view for option configuration It allows to configure a sequence of models

factory

The model we are manipulating.

disable

True : If the model has an « active » column, it can be used to enable/disable elements (default) False : Elements are deleted

validation_msg

The message shown to the end user on successfull validation

redirect_route_name

The route we’re redirecting to after successfull validation

js_resources

specific fanstatic javascript resources we want to add to the page

widget_options

Options passed to the sequence widget used here

customize_schema

Method taking schema as parameter that allows to customize the given schema by, for example, adding a global validator

before(form)

Populate the form with existing elements

children = []
customize_schema(schema)
dbsession: DBSESSION
disable = True
factory = None
get_appstruct()

Return the appstruct used to generate default form entries :results: A data structure (list or dict) representing the existing datas :rtype: dict or list

js_resources = []
property message

Return an optionnal message to help to configure datas

query_items()

the query used to retrieve items in the database :results: a list of element we want to display as default in the form :rtype: list

request: Request
property schema
session: ISession
submit_success(appstruct)

Handle successfull submission

title = ''
validation_msg = ''
widget_options = {}
class endi.views.admin.tools.BaseAdminAddView(context, request=None)

Bases : BaseAddView, TreeMixin

add_template_vars = ('help_msg',)
children = []
dbsession: DBSESSION
redirect(appstruct, model=None)
request: Request
session: ISession
title = 'Ajoutez'
class endi.views.admin.tools.BaseAdminDeleteView(context, request=None)

Bases : DeleteView, TreeMixin

children = []
dbsession: DBSESSION
redirect()
request: Request
session: ISession
class endi.views.admin.tools.BaseAdminDisableView(context, request=None)

Bases : DisableView, TreeMixin

children = []
dbsession: DBSESSION
redirect()
request: Request
session: ISession
class endi.views.admin.tools.BaseAdminEditView(context, request=None)

Bases : BaseEditView, TreeMixin

add_template_vars = ('help_msg',)
children = []
dbsession: DBSESSION
redirect(appstruct)
request: Request
session: ISession
class endi.views.admin.tools.BaseAdminFormView(context, request=None)

Bases : BaseFormView, TreeMixin

add_template_vars = ('message',)
children = []
dbsession: DBSESSION
get_icon(icon_name)
info_message = ''
property message
redirect_route_name = 'admin_index'
request: Request
session: ISession
class endi.views.admin.tools.BaseAdminIndexView(context, request=None)

Bases : BaseView, TreeMixin

Base admin view

Used to manage Admin view hierachies

add_template_vars

property or attribute names to add to the templating context dict

add_template_vars = ()
children = []
more_template_vars(result)
class endi.views.admin.tools.BaseConfigView(context, request=None)

Bases : BaseAdminFormView

Base view for configuring elements in the config key-value table

before(form)

Performs some processing on the form prior to rendering.

By default, this method does nothing. Override this method in your dervived class to modify the form. Your function will be executed immediately after instansiating the form instance in __call__() (thus before obtaining widget resources, considering buttons, or rendering).

children = []
dbsession: DBSESSION
keys = ()
redirect_route_name = None
request: Request
schema = None

Colander schema instance to be used to create the form instance. Provide your schema in your derived class.

session: ISession
submit_success(appstruct)

Handle successfull configuration

validation_msg = 'Vos modifications ont été enregistrées'
endi.views.admin.tools.get_model_admin_view(model, js_requirements=[], r_path='admin_userdatas')

Return a view object and a route_name for administrating a sequence of models instances (like options)

endi.views.admin.tools.make_enter_point_view(parent_route, views_to_link_to, title='')

Builds a view with links to the views passed as argument

views_to_link_to

list of 2-uples (view_obj, route_name) we’d like to link to

parent_route

route of the parent page

Module contents

class endi.views.admin.AdminIndexView(context, request=None)

Bases : BaseAdminIndexView

children = []
dbsession: DBSESSION
request: Request
route_name = '/admin'
session: ISession
title = 'Configuration de votre instance enDI'
endi.views.admin.add_admin_view(config, *args, **kwargs)
endi.views.admin.includeme(config)