News Managers

Abstract News Manager

class integreat_cms.news_managers.abstract_news_manager.AbstractNewsManager[source]

Bases: ABC

abstract collect_news_items(region_slug: str, language_slug: str, channel: str) list[NewsItem][source]

Returns news items imported from the source

To be implemented in the inheriting model

Parameters:
  • region_slug (str)

  • language_slug (str)

  • channel (str)

Return type:

list[NewsItem]

abstract get_single_news(request: HttpRequest, region: Region, language: Language, news_id: str) JsonResponse[source]

Returns a news item that is imported from the source and matches the id

Parameters:
Return type:

JsonResponse

abstract import_news_items() None[source]

Imports news items from the source

To be implemented in the inheriting model

Return type:

None

abstract social_media_headers(request: HttpRequest, region: Region, language: Language, news_raw_id: str) HttpResponse[source]

Tries rendering the social media headers for a news page in a specified region and language To be implemented in the inheriting model

Parameters:
Return type:

HttpResponse

class integreat_cms.news_managers.abstract_news_manager.NewsItem[source]

Bases: TypedDict

Pushnews Manager

class integreat_cms.news_managers.pushnews_manager.PushnewsManager[source]

Bases: AbstractNewsManager

collect_news_items(region_slug: str, language_slug: str, channel: str) list[NewsItem][source]

Returns push notification news for common news endpoint

Parameters:
  • region_slug (str)

  • language_slug (str)

  • channel (str)

Return type:

list[NewsItem]

collect_news_items_for_fcm(region_slug: str, language_slug: str, channel: str) list[dict[str, Any]][source]

Returns push notification news for fcm endpoint

Parameters:
  • region_slug (str)

  • language_slug (str)

  • channel (str)

Return type:

list[dict[str, Any]]

get_single_news(request: HttpRequest, region: Region, language: Language, news_id: str) JsonResponse[source]

Returns a push notification that matches the id

Parameters:
Return type:

JsonResponse

import_news_items() None[source]

Push notifications live in our own database, so there is nothing to import.

Return type:

None

social_media_headers(request: HttpRequest, region: Region, language: Language, news_raw_id: str) HttpResponse[source]

Tries rendering the social media headers for a news page in a specified region and language

Parameters:
Return type:

HttpResponse

transform_notification(pnt: PushNotificationTranslation) NewsItem[source]

Function to create a JSON from a single push notification translation Object.

Parameters:

pnt (PushNotificationTranslation) – A push notification translation

Returns:

data necessary for API

Return type:

NewsItem

transform_notification_for_fcm(pnt: PushNotificationTranslation) dict[str, Any][source]

Function to create a JSON from a single push notification translation Object for fcm endpoint

The endpoint fcm/ requires timestamp and id in int.

Parameters:

pnt (PushNotificationTranslation) – A push notification translation

Returns:

data necessary for API

Return type:

dict[str, Any]

Registry

Registry of the available news source managers.

Tunews Manager

class integreat_cms.news_managers.tunews_manager.TunewsManager[source]

Bases: AbstractNewsManager

collect_news_items(region_slug: str, language_slug: str, _channel: str) list[NewsItem][source]

Returns Tü News posts

Parameters:
  • region_slug (str)

  • language_slug (str)

  • _channel (str)

Return type:

list[NewsItem]

find_post(region: Region, language: Language, news_raw_id: str) NewsItem[source]

Find and return a news item which matches the given ID

Parameters:
Return type:

NewsItem

get_single_news(request: HttpRequest, region: Region, language: Language, news_id: str) JsonResponse[source]

Returns a Tü News post that matches the id

Parameters:
Return type:

JsonResponse

import_news_items() None[source]

Imports Tü News posts and save them as cache

Return type:

None

social_media_headers(request: HttpRequest, region: Region, language: Language, news_raw_id: str) HttpResponse[source]

Tries rendering the social media headers for a news page in a specified region and language

Parameters:
Return type:

HttpResponse

transform_post(post: _TunewsPost) NewsItem[source]

Transforms a post of Tü News so it can be used by the news endpoint directly

Parameters:

post (_TunewsPost)

Return type:

NewsItem

integreat_cms.news_managers.tunews_manager.clean_html(html_string: str) str[source]

Remove unnecessary HTML elements from a Tü News post body.

Parameters:

html_string (str)

Return type:

str