election_day.directives

Classes

InputScreenWidget

Base class for protocol classes.

ManageHtmlAction

HTML directive for manage views which makes sure the permission is set

ManageFormAction

HTML directive for manage forms which makes sure the permission is set

SvgFileViewAction

View directive for viewing SVG files from filestorage. The SVGs

PdfFileViewAction

View directive for viewing PDF files from filestorage. The PDFs

JsonFileAction

View directive for viewing JSON data as file.

CsvFileAction

View directive for viewing CSV data as file.

ScreenWidgetRegistry

dict() -> new empty dictionary

ScreenWidgetAction

Register a screen widget.

Functions

render_svg(→ morepath.request.Response)

render_pdf(→ morepath.request.Response)

render_json(→ morepath.request.Response)

render_csv(→ morepath.request.Response)

Module Contents

class election_day.directives.InputScreenWidget[source]

Bases: Protocol

Base class for protocol classes.

Protocol classes are defined as:

class Proto(Protocol):
    def meth(self) -> int:
        ...

Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).

For example:

class C:
    def meth(self) -> int:
        return 0

def func(x: Proto) -> int:
    return x.meth()

func(C())  # Passes static type check

See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:

class GenProto[T](Protocol):
    def meth(self) -> T:
        ...
property tag: str[source]
property template: str[source]
property usage: str[source]
class election_day.directives.ManageHtmlAction(model: type, render: collections.abc.Callable[[Any, RequestT], webob.Response] | None = None, template: str | None = None, load: collections.abc.Callable[[RequestT], Any] | None = None, permission: object | None = None, internal: bool = False, **predicates: Any)[source]

Bases: morepath.directive.HtmlAction

HTML directive for manage views which makes sure the permission is set to private.

class election_day.directives.ManageFormAction(model: type, form: type[wtforms.Form] | collections.abc.Callable[[Any, RequestT], type[wtforms.Form]] = EmptyForm, render: collections.abc.Callable[[Any, RequestT], webob.Response] | None = None, template: str = 'form.pt', load: collections.abc.Callable[[RequestT], Any] | None = None, permission: object | None = None, internal: bool = False, **predicates: Any)[source]

Bases: onegov.core.directives.HtmlHandleFormAction

HTML directive for manage forms which makes sure the permission is set to private. Sets a valid default for the template and form class.

election_day.directives.render_svg(content: dict[str, Any], request: onegov.core.request.CoreRequest) → morepath.request.Response[source]
election_day.directives.render_pdf(content: dict[str, Any], request: onegov.core.request.CoreRequest) → morepath.request.Response[source]
election_day.directives.render_json(content: dict[str, Any], request: onegov.core.request.CoreRequest) → morepath.request.Response[source]
election_day.directives.render_csv(content: dict[str, Any], request: onegov.core.request.CoreRequest) → morepath.request.Response[source]
class election_day.directives.SvgFileViewAction(model: type, load: collections.abc.Callable[[RequestT], Any] | None = None, permission: object = Public, internal: bool = False, **predicates: Any)[source]

Bases: morepath.directive.ViewAction

View directive for viewing SVG files from filestorage. The SVGs are created using a cronjob and might not be available.

class election_day.directives.PdfFileViewAction(model: type, load: collections.abc.Callable[[RequestT], Any] | None = None, permission: object = Public, internal: bool = False, **predicates: Any)[source]

Bases: morepath.directive.ViewAction

View directive for viewing PDF files from filestorage. The PDFs are created using a cronjob and might not be available.

class election_day.directives.JsonFileAction(model: type, load: collections.abc.Callable[[RequestT], Any] | None = None, permission: object = Public, internal: bool = False, **predicates: Any)[source]

Bases: morepath.directive.ViewAction

View directive for viewing JSON data as file.

class election_day.directives.CsvFileAction(model: type, load: collections.abc.Callable[[RequestT], Any] | None = None, permission: object = Public, internal: bool = False, **predicates: Any)[source]

Bases: morepath.directive.ViewAction

View directive for viewing CSV data as file.

class election_day.directives.ScreenWidgetRegistry[source]

Bases: dict[str, dict[str, ScreenWidget]]

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s

(key, value) pairs

dict(iterable) -> new dictionary initialized as if via:

d = {} for k, v in iterable:

d[k] = v

dict(**kwargs) -> new dictionary initialized with the name=value pairs

in the keyword argument list. For example: dict(one=1, two=2)

by_categories(categories: collections.abc.Iterable[str]) → dict[str, ScreenWidget][source]
class election_day.directives.ScreenWidgetAction(tag: str, category: str)[source]

Bases: dectate.Action

Register a screen widget.

config[source]

Describe configuration.

A dict mapping configuration names to factory functions. The resulting configuration objects are passed into Action.identifier(), Action.discriminators(), Action.perform(), and Action.before() and Action.after().

After commit completes, the configured objects are found as attributes on App.config.

tag[source]
category[source]
identifier(screen_widget_registry: ScreenWidgetRegistry) → str[source]
perform(func: collections.abc.Callable[[], InputScreenWidget], screen_widget_registry: ScreenWidgetRegistry) → None[source]