Places

This package contains all views related to places

Place Actions

This module contains view actions for objects related to places.

integreat_cms.cms.views.places.place_actions.archive_place(request: HttpRequest, place_id: int, region_slug: str, language_slug: str) HttpResponseRedirect[source]

Archive place object

Parameters:
  • request (HttpRequest) – The current request

  • place_id (int) – The id of the place which should be archived

  • region_slug (str) – The slug of the current region

  • language_slug (str) – The slug of the current language

Returns:

A redirection to the PlaceListView

Return type:

HttpResponseRedirect

integreat_cms.cms.views.places.place_actions.auto_complete_address(request: HttpRequest, region_slug: str) JsonResponse[source]

Autocomplete place address and coordinates

Parameters:
  • request (HttpRequest) – The current request

  • region_slug (str)

Raises:

Http404 – If no place was found for the given address

Returns:

The address and coordinates of the place

Return type:

JsonResponse

integreat_cms.cms.views.places.place_actions.copy_place(request: HttpRequest, place_id: int, region_slug: str, language_slug: str) HttpResponseRedirect[source]

Duplicates the given event and all of its translations.

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

  • place_id (int) – internal id of the place to be copied

  • region_slug (str) – slug of the region which the event belongs to

  • language_slug (str) – current GUI language slug

Returns:

The rendered template response

Return type:

HttpResponseRedirect

integreat_cms.cms.views.places.place_actions.delete_place(request: HttpRequest, place_id: int, region_slug: str, language_slug: str) HttpResponseRedirect[source]

Delete place object

Parameters:
  • request (HttpRequest) – The current request

  • place_id (int) – The id of the place which should be deleted

  • region_slug (str) – The slug of the current region

  • language_slug (str) – The slug of the current language

Returns:

A redirection to the PlaceListView

Return type:

HttpResponseRedirect

integreat_cms.cms.views.places.place_actions.get_address_from_coordinates(request: HttpRequest, region_slug: str) JsonResponse[source]

Derive address from the coordinates (map pin position)

Parameters:
  • request (HttpRequest) – The current request

  • region_slug (str)

Raises:

Http404 – If no address was found for the given coordinates

Returns:

The address of the place

Return type:

JsonResponse

integreat_cms.cms.views.places.place_actions.restore_place(request: HttpRequest, place_id: int, region_slug: str, language_slug: str) HttpResponseRedirect[source]

Restore place object (set archived=False)

Parameters:
  • request (HttpRequest) – The current request

  • place_id (int) – The id of the place which should be restored

  • region_slug (str) – The slug of the current region

  • language_slug (str) – The slug of the current language

Returns:

A redirection to the PlaceListView

Return type:

HttpResponseRedirect

integreat_cms.cms.views.places.place_actions.view_place(request: HttpRequest, place_id: int, region_slug: str, language_slug: str) HttpResponse[source]

View place object

Parameters:
  • request (HttpRequest) – The current request

  • place_id (int) – The id of the place which should be viewed

  • language_slug (str) – The slug of the current language

  • region_slug (str)

Raises:

Http404 – If user no translation exists for the requested place and language

Returns:

A redirection to the PlaceListView

Return type:

HttpResponse

Place Context Mixin

class integreat_cms.cms.views.places.place_context_mixin.PlaceContextMixin[source]

Bases: ContextMixin

This mixin provides extra context for language tree views

get_context_data(**kwargs: Any) dict[str, Any][source]

Returns a dictionary representing the template context (see get_context_data()).

Parameters:

**kwargs (Any) – The given keyword arguments

Returns:

The template context

Return type:

dict[str, Any]

related_class[source]

alias of Place

Place Form Ajax View

class integreat_cms.cms.views.places.place_form_ajax_view.PlaceFormAjaxView(**kwargs)[source]

Bases: TemplateView, PlaceContextMixin

View for the ajax place widget

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

Render a place form widget template

Parameters:
  • request (HttpRequest) – The current request

  • *args (Any) – The supplied arguments

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

Returns:

The html template of a place form

Return type:

HttpResponse

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

Add a new place to the database

Parameters:
  • request (HttpRequest) – The current request

  • *args (Any) – The supplied arguments

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

Raises:

Http404 – If no language for the given language slug was found

Returns:

A status message, either a success or an error message

Return type:

HttpResponse

template = 'ajax_place_form/_place_form_widget.html'[source]

Template for ajax place widget

Place Form View

A view representing an instance of a place. Places can be created or updated via this view.

class integreat_cms.cms.views.places.place_form_view.PlaceFormView(**kwargs)[source]

Bases: TemplateView, PlaceContextMixin, MediaContextMixin, ContentEditLockMixin

View for editing places

adjust_status_of_dependent_translations(place_translation_form: PlaceTranslationForm, language: Language, region: Region) None[source]

Change the status of all dependent translations of the place according to the status of the current translation.

Parameters:
Return type:

None

back_url_name: str | None = 'places'[source]

The url name of the view to show if the user decides to go back (see ContentEditLockMixin)

check_if_place_is_locked(request: HttpRequest, place: Place | None) bool[source]

Check if the content is locked for editing.

Parameters:
  • request (HttpRequest)

  • place (Place | None)

Return type:

bool

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

Render PlaceForm and PlaceTranslationForm

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

is_qualified_for_save(request: HttpRequest, place_form: PlaceForm, place_translation_form: PlaceTranslationForm) bool[source]

Checks whether the current request should proceed with saving the page and translation.

Parameters:
Return type:

bool

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

Submit PlaceForm and PlaceTranslationForm and save Place and PlaceTranslation objects

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

set_success_messages(is_edit: bool, request: HttpRequest, place_translation_form: PlaceTranslationForm, place_form: PlaceForm) None[source]

Show success messages after saving the place and PlaceTranslation forms.

Parameters:
Return type:

None

show_slug_changed_message(request: HttpRequest, language: Language, region: Any, user_slug: str, place_translation_form: PlaceTranslationForm) None[source]

Shows a message to the user if the slug they provided was not unique and therefore changed.

Parameters:
Return type:

None

template_name = 'places/place_form.html'[source]

The template to render (see TemplateResponseMixin)

update_contact_cards(place_form: PlaceForm) None[source]

Send the post save signal of contact model to trigger contact card update

Parameters:

place_form (PlaceForm)

Return type:

None

warn_if_coordinates_too_far(request: HttpRequest, place_form: PlaceForm) None[source]

Warn the user if the manually entered coordinates are too far from the entered address.

Parameters:
  • request (HttpRequest)

  • place_form (PlaceForm)

Return type:

None

Place List View

class integreat_cms.cms.views.places.place_list_view.PlaceListView(**kwargs)[source]

Bases: TemplateView, PlaceContextMixin, MachineTranslationContextMixin, FilterSortMixin, PaginationMixin

View for listing places

archived = False[source]

Whether or not to show archived places

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

Render place list

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

get_filtered_sorted_queryset(queryset: QuerySet) QuerySet[source]

Annotate sort keys that match what the user actually sees in the list:

  • _sort_title and _sort_status: latest translation (any version, including auto-saves) in the language slug from the URL — this is the translation rendered by place_list_row.html.

  • _sort_status ranks status values by workflow order (AUTO_SAVE, DRAFT, REVIEW, PUBLIC) instead of by the lexicographic order of the choice keys, which has no relation to the localized labels shown.

  • _sort_category_name: name of the category in the active backend (UI) language, mirroring how PlaceCategory.__str__ renders the column.

Parameters:

queryset (QuerySet)

Return type:

QuerySet

model[source]

alias of Place

template_name = 'places/place_list.html'[source]

Template for list of non-archived and archived places

translation_model[source]

The translation model of this list view (used to determine whether machine translations are permitted)

Parameters:
  • id (BigAutoField) – Primary key: ID

  • title (TruncatingCharField) – Name of the place

  • slug (SlugField) – Link to the place. String identifier without spaces and special characters. Unique per region and language. Leave blank to generate unique parameter from title.

  • status (CharField) – Status

  • content (TextField) – Description

  • currently_in_translation (BooleanField) – Currently in translation. Flag to indicate a translation is being updated by an external translator

  • machine_translated (BooleanField) – Machine translated. Flag to indicate whether a translations is machine translated

  • version (PositiveIntegerField) – Revision

  • minor_edit (BooleanField) – Minor edit. Tick if this change does not require an update of translations in other languages.

  • last_updated (DateTimeField) – Modification date

  • published_at (DateTimeField) – Publication date

  • automatic_translation (BooleanField) – Automatic translation. Tick if updating this content should automatically refresh or create its translations.

  • meta_description (CharField) – Meta description. Describe the place in one or two short sentences. This text will be displayed in the Google search results below the title.

Relationship fields:

Parameters:

Reverse relationships:

Parameters:

feedback (Reverse ForeignKey from PlaceFeedback) – All feedback of this place translation (related name of place_translation)

alias of PlaceTranslation

Place Version View

class integreat_cms.cms.views.places.place_version_view.PlaceVersionView(**kwargs)[source]

Bases: PlaceContextMixin, ContentVersionView

View for browsing the place versions and restoring old place versions

back_to_form_label = 'Back to the place form'[source]

The label of the “back to form” button

has_publish_permission() bool[source]

All users who can change places also can publish these changes

Returns:

Whether the user can publish places

Return type:

bool

model[source]

The current content model (see SingleObjectMixin)

Parameters:
  • id (BigAutoField) – Primary key: ID

  • created_date (DateTimeField) – Creation date

  • do_not_translate_title (BooleanField) – Do not translate the title. Tick if you do not want to translate the title by automatic translation.

  • address (CharField) – Street and house number

  • postcode (CharField) – Postal code

  • city (CharField) – City

  • country (CharField) – Country

  • latitude (FloatField) – Latitude. The latitude coordinate

  • longitude (FloatField) – Longitude. The longitude coordinate

  • place_on_map (BooleanField) – Show this place on map. Tick if you want to show this place on map

  • archived (BooleanField) – Archived. Whether or not the place is read-only and hidden in the API.

  • temporarily_closed (BooleanField) – Temporarily closed. Whether or not the place is temporarily closed. The opening hours remain and are only hidden.

  • appointment_url (URLField) – Appointment link. Link to an external website where an appointment for this place can be made.

  • opening_hours (JSONField) – Opening hours

  • barrier_free (BooleanField) – Barrier free. Indicate if the place is barrier free.

Relationship fields:

Parameters:

Reverse relationships:

Parameters:
  • translations (Reverse ForeignKey from PlaceTranslation) – All translations of this place (related name of place)

  • contacts (Reverse ForeignKey from Contact) – All contacts of this place (related name of place)

  • events (Reverse ForeignKey from Event) – All events of this place (related name of place)

alias of Place