This hook allows plugins to replace or extend the standard logic for opening polls.
This hook can be imported from misago.polls.hooks:
from misago.polls.hooks import open_poll_hookdef custom_open_poll_filter(
action: OpenPollHookAction,
poll: Poll,
user: 'User',
request: HttpRequest | None,
) -> bool:
...A function implemented by a plugin that can be registered in this hook.
Next function registered in this hook, either a custom function or Misago's standard one.
See the action section for details.
The poll to open.
The user who closed the poll.
The request object, or None if not provided.
A bool: True if the poll was opened, False if it wasn't (e.g., it was already open).
def open_poll_action(
poll: Poll, user: 'User', request: HttpRequest | None
) -> bool:
...Misago function for opening a poll.
The poll to open.
The user who closed the poll.
The request object, or None if not provided.
A bool: True if the poll was opened, False if it wasn't (e.g., it was already opened).
Run extra code after poll was opened.
from django.http import HttpRequest
from misago.polls.hooks import open_poll_hook
from misago.polls.models import Poll
from msiago.users.models import User
@open_poll_hook.append_filter
def open_poll(
action, poll: Poll, user: User, request: HttpRequest | None
) -> bool:
result = action(poll, user, request)
if result:
pass # Run extra code here
return result