Push Notifications

This package contains all views related to push notifications

Push Notification Form View

class integreat_cms.cms.views.push_notifications.push_notification_form_view.PushNotificationFormView(**kwargs)[source]

Bases: TemplateView

Class that handles HTTP POST and GET requests for editing push notifications

__init__(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

classmethod as_view(**initkwargs)[source]

Main entry point for a request-response process.

content_type = None[source]
dispatch(request, *args, **kwargs)[source]
extra_context = {'current_menu_item': 'push_notifications_form', 'schedule_interval': 60}[source]

The context dict passed to the template (see ContextMixin)

get(request: HttpRequest, *args: Any, **kwargs: Any) HttpResponse[source]

Open form for creating or editing a push notification

Parameters:
  • request (HttpRequest) – Object representing the user call

  • *args (Any) – The supplied arguments

  • **kwargs (Any) – The supplied keyword arguments

Returns:

The rendered template response

Return type:

HttpResponse

get_context_data(**kwargs)[source]
get_template_names()[source]

Return a list of template names to be used for the request. Must return a list. May not be called if render_to_response() is overridden.

http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace'][source]
http_method_not_allowed(request, *args, **kwargs)[source]
options(request, *args, **kwargs)[source]

Handle responding to requests for the OPTIONS HTTP verb.

post(request: HttpRequest, *args: Any, **kwargs: Any) HttpResponse[source]

Save and show form for creating or editing a push notification. Send push notification if asked for by user.

Parameters:
  • request (HttpRequest) – Object representing the user call

  • *args (Any) – The supplied arguments

  • **kwargs (Any) – The supplied keyword arguments

Raises:
Returns:

The rendered template response

Return type:

HttpResponse

render_to_response(context, **response_kwargs)[source]

Return a response, using the response_class for this view, with a template rendered with the given context.

Pass response_kwargs to the constructor of the response class.

response_class[source]

alias of TemplateResponse

setup(request, *args, **kwargs)[source]

Initialize attributes shared by all view methods.

template_engine = None[source]
template_name = 'push_notifications/push_notification_form.html'[source]

The template to render (see TemplateResponseMixin)

view_is_async = False[source]
integreat_cms.cms.views.push_notifications.push_notification_form_view.create_from_template(request: HttpRequest, pn_form: PushNotificationForm) PushNotification | None[source]

Create a push notification from a template

Parameters:
  • request (HttpRequest) – The current request

  • pn_form (PushNotificationForm) – The push notification form

Returns:

The new created push notification object

Return type:

PushNotification | None

integreat_cms.cms.views.push_notifications.push_notification_form_view.extract_pn_details(request: HttpRequest, push_notification: PushNotification | None, sort_for_region: Region | None = None) dict[str, Any][source]

Save and show form for creating or editing a push notification. Send push notification if asked for by user.

Parameters:
  • request (HttpRequest) – Object representing the user call

  • push_notification (PushNotification | None) – The existing PushNotification or None

  • sort_for_region (Region | None) – Region for which to keep sorting order (according to language tree)

Returns:

A dict containing * all_regions, a list of all Region objects of the existing PushNotification (or the current region, if it doesn’t exist yet), * other_regions, the sublist of all_regions which the current user doesn’t have access to, * all_languages, a cumulative list of all active languages across all regions in all_regions and * disable_edit, a boolean determining whether the user should be able to edit the PushNotification given his status (superuser, staff) and the vacancy of other_regions.

Return type:

dict[str, Any]

integreat_cms.cms.views.push_notifications.push_notification_form_view.save_forms(instance: PushNotification, pn_form: PushNotificationForm, pnt_formset: Any) None[source]

Saves the forms :param instance: The push notification instance :param pn_form: The push notification form :param pnt_formset: The push notification translation formset

Parameters:
Return type:

None

integreat_cms.cms.views.push_notifications.push_notification_form_view.send_pn(request: HttpRequest, pn_form: PushNotificationForm, schedule: bool = False) bool[source]

Send (or schedule) a push notification

Parameters:
  • request (HttpRequest) – The current request

  • pn_form (PushNotificationForm) – The push notification form

  • schedule (bool) – Whether the message should be scheduled instead of sent directly

Raises:

PermissionDenied – When the user does not have the permission to send notifications

Returns:

Whether sending (or scheduling) was successful

Return type:

bool

integreat_cms.cms.views.push_notifications.push_notification_form_view.validate_forms(request: HttpRequest, details: dict, pn_form: PushNotificationForm, pnt_formset: Any) bool[source]

Validates the forms and returns True iff no errors occurred. :param request: The request :param details: The push notification details :param pn_form: The push notification form :param pnt_formset: The push notification translation formset :return: whether verification was successful

Parameters:
Return type:

bool

Push Notification List View

class integreat_cms.cms.views.push_notifications.push_notification_list_view.PushNotificationListView(**kwargs)[source]

Bases: TemplateView

Class that handles HTTP GET requests for listing push notifications

__init__(**kwargs)[source]

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

classmethod as_view(**initkwargs)[source]

Main entry point for a request-response process.

content_type = None[source]
dispatch(request, *args, **kwargs)[source]
extra_context = {'current_menu_item': 'push_notifications'}[source]

The context dict passed to the template (see ContextMixin)

get(request: HttpRequest, *args: Any, **kwargs: Any) HttpResponse[source]

Create a list that shows existing push notifications and translations

Parameters:
  • request (HttpRequest) – Object representing the user call

  • *args (Any) – The supplied arguments

  • **kwargs (Any) – The supplied keyword arguments

Returns:

The rendered template response

Return type:

HttpResponse

get_context_data(**kwargs)[source]
get_template_names()[source]

Return a list of template names to be used for the request. Must return a list. May not be called if render_to_response() is overridden.

http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace'][source]
http_method_not_allowed(request, *args, **kwargs)[source]
options(request, *args, **kwargs)[source]

Handle responding to requests for the OPTIONS HTTP verb.

post(request: HttpRequest, *args: Any, **kwargs: Any) HttpResponse[source]

Apply the query and filter the rendered push notifications

Parameters:
  • request (HttpRequest) – The current request

  • *args (Any) – The supplied arguments

  • **kwargs (Any) – The supplied keyword arguments

Returns:

The rendered template response

Return type:

HttpResponse

render_to_response(context, **response_kwargs)[source]

Return a response, using the response_class for this view, with a template rendered with the given context.

Pass response_kwargs to the constructor of the response class.

response_class[source]

alias of TemplateResponse

setup(request, *args, **kwargs)[source]

Initialize attributes shared by all view methods.

template = 'push_notifications/push_notification_list.html'[source]

The template to render if templates is False

template_engine = None[source]
property template_name: str[source]

Select correct HTML template, depending on templates flag (see TemplateResponseMixin)

Returns:

Path to HTML template

template_templates = 'push_notifications/push_notification_template_list.html'[source]

The template to render if templates is True

templates = False[source]

If true, shows the template push notification list

view_is_async = False[source]