Utils
Content Edit Lock
- integreat_cms.cms.views.utils.content_edit_lock.content_edit_lock_heartbeat(request: HttpRequest, region_slug: str | None = None) JsonResponse [source]
This function handles heartbeat requests. When a heartbeat is received, this function tries to extend the lock for a user who is editing some content.
- Parameters:
request (HttpRequest) – The current request
region_slug (str | None) – The slug of the current region, unused
- Returns:
Json object containing success: true if the lock could be acquired
- Return type:
JsonResponse
- integreat_cms.cms.views.utils.content_edit_lock.content_edit_lock_release(request: HttpRequest, region_slug: str | None = None) JsonResponse [source]
This function handles unlock requests
- Parameters:
request (HttpRequest) – The current request
region_slug (str | None) – The slug of the current region, unused
- Returns:
Json object containing success: true if the content object could be unlocked
- Return type:
JsonResponse
Hix
This file contains functionality to communicate with the Textlab api to get the hix-value for a given text.
- exception integreat_cms.cms.views.utils.hix.CacheMeIfYouCan[source]
Bases:
Exception
Helper exception used for stopping @lru_cache from caching
- integreat_cms.cms.views.utils.hix.get_hix_score(request: HttpRequest, region_slug: str) JsonResponse [source]
Calculates the hix score for the param ‘text’ in the request body and returns it.
- Parameters:
request (HttpRequest) – The request
region_slug (str) – The slug of the current region
- Returns:
A json response, of {“score”: value} in case of success
- Return type:
JsonResponse
- integreat_cms.cms.views.utils.hix.get_translation_over_hix_threshold(region: Region) QuerySet [source]
Filter page translations which are over the hix threshold
- Parameters:
region (Region) – The region for which to get all of the translations
- Return type:
QuerySet
- integreat_cms.cms.views.utils.hix.get_translation_under_hix_threshold(region: Region) QuerySet [source]
Filter page translations which are under the hix threshold
- Parameters:
region (Region) – The region for which to get all of the translations
- Return type:
QuerySet
- integreat_cms.cms.views.utils.hix.get_translations_relevant_to_hix(region: Region) QuerySet [source]
Get page translations for a region sorted by hix score.
- Parameters:
region (Region) – The region for which to get all of the translations
- Return type:
QuerySet
- integreat_cms.cms.views.utils.hix.lookup_hix_score(text: str) TextlabResult | None [source]
This function returns the hix score for the given text. It either performs an api request or returns the value from cache.
- Parameters:
text (str) – The text to calculate the hix score for
- Returns:
The score for the given text
- Return type:
TextlabResult | None
- integreat_cms.cms.views.utils.hix.lookup_hix_score_helper(text: str) TextlabResult [source]
This function returns the hix score for the given text. It either performs an api request or returns the value from cache, unless it is None, in which case an exception is raised to prevent caching.
- Parameters:
text (str) – The text to calculate the hix score for
- Returns:
The score for the given text
- Return type:
Machine Translations
This module contains the generalized function to build the AJAX call for the machine translation popup
- integreat_cms.cms.views.utils.machine_translations.build_json_for_machine_translation(request: HttpRequest, region_slug: str, language_slug: str, model_type: Literal['page', 'event', 'poi']) JsonResponse [source]
This function collects the hix score and the amount of words per content entry from the source
- Parameters:
- Returns:
A dictionary that contains the data for the machine translation popup (page id, title, amount of words and optional hix value)
- Return type:
JsonResponse
Publication Status
This file contains the helper function to change the publication status of translations
Search Content Ajax
- integreat_cms.cms.views.utils.search_content_ajax.format_object_translation(object_translation: AbstractContentTranslation, typ: Literal['page', 'event', 'poi'], target_language_slug: str) dict [source]
Formats the [poi/event/page]-translation as json
- Parameters:
object_translation (AbstractContentTranslation) – A translation object which has a title and a permalink
typ (Literal['page', 'event', 'poi']) – The type of this object
target_language_slug (str) – The slug that the object translation should ideally have
- Returns:
A dictionary with the title, path, url and type of the translation object
- Return type:
- integreat_cms.cms.views.utils.search_content_ajax.search_content_ajax(request: HttpRequest, region_slug: str | None = None, language_slug: str | None = None) JsonResponse [source]
Searches all pois, events and pages for the current region and returns all that match the search query. Results which match the query in the title or slug get ranked higher than results which only match through their text content.
- Parameters:
- Raises:
PermissionDenied – If the user has no permission to the object type
AttributeError – If the request contains an object type which is unknown or if the user has no permission for it
- Returns:
Json object containing all matching elements, of shape {title: str, url: str, type: str}
- Return type:
JsonResponse
Slugify Ajax
- integreat_cms.cms.views.utils.slugify_ajax.slugify_ajax(request: HttpRequest, region_slug: str, language_slug: str, model_type: Literal['page', 'event', 'poi']) JsonResponse [source]
checks the current user input for title and generates unique slug for permalink
- Parameters:
- Returns:
unique translation slug
- Raises:
PermissionDenied – If the user does not have the permission to access this function
- Return type:
JsonResponse