Regions

Forms for creating and modifying region objects

Region Form

class integreat_cms.cms.forms.regions.region_form.CheckboxSelectMultipleWithDisabled(attrs=None, choices=())[source]

Bases: CheckboxSelectMultiple

This class adds functionality for disabling certain choices in the CheckboxSelectMultiple widget

__init__(attrs=None, choices=())[source]
add_id_index = True[source]
allow_multiple_selected = True[source]
build_attrs(base_attrs, extra_attrs=None)[source]

Build an attribute dictionary.

checked_attribute = {'checked': True}[source]
create_option(*args: Any, **kwargs: Any) dict[str, Any][source]

Overwrites the parent’s method in order to disable a set of pre-determined options

Returns:

a single option

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

dict[str, Any]

disabled_options: list[OfferTemplate] = [][source]
format_value(value)[source]

Return selected values as a list.

get_context(name, value, attrs)[source]
id_for_label(id_, index=None)[source]

Don’t include for=”field_0” in <label> to improve accessibility when using a screen reader, in addition clicking such a label would toggle the first input.

input_type = 'checkbox'[source]
property is_hidden[source]
is_localized = False[source]
is_required = False[source]
property media[source]
needs_multipart_form = False[source]
optgroups(name, value, attrs=None)[source]

Return a list of optgroups for this widget.

option_inherits_attrs = True[source]
option_template_name = 'django/forms/widgets/checkbox_option.html'[source]
options(name, value, attrs=None)[source]

Yield a flat list of options for this widget.

render(name, value, attrs=None, renderer=None)[source]

Render the widget as an HTML string.

subwidgets(name, value, attrs=None)[source]

Yield all “subwidgets” of this widget. Used to enable iterating options from a BoundField for choice widgets.

supports_microseconds = True[source]
template_name = 'django/forms/widgets/checkbox_select.html'[source]
use_fieldset = True[source]
use_required_attribute(initial)[source]
value_from_datadict(data, files, name)[source]

Given a dictionary of data and this widget’s name, return the value of this widget or None if it’s not provided.

value_omitted_from_data(data, files, name)[source]
class integreat_cms.cms.forms.regions.region_form.RegionForm(*args: Any, **kwargs: Any)[source]

Bases: CustomModelForm

Form for creating and modifying region objects

Form fields:

Parameters:
  • args (Any)

  • kwargs (Any)

__init__(*args: Any, **kwargs: Any) None[source]

Initialize region form

Parameters:
  • *args (Any) – The supplied arguments

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

Return type:

None

add_error(field, error)[source]

Update the content of self._errors.

The field argument is the name of the field to which the errors should be added. If it’s None, treat the errors as NON_FIELD_ERRORS.

The error argument can be a single error, a list of errors, or a dictionary that maps field names to lists of errors. An “error” can be either a simple string or an instance of ValidationError with its message attribute set and a “list or dictionary” can be an actual list or dict or an instance of ValidationError with its error_list or error_dict attribute set.

If error is a dictionary, the field argument must be None and errors will be added to the fields that correspond to the keys of the dictionary.

add_error_messages(request: HttpRequest) None[source]

This function accepts the current request and adds the form’s error messages to the message queue of django.contrib.messages.

Parameters:

request (HttpRequest) – The current request submitting the form

Return type:

None

add_initial_prefix(field_name)[source]

Add an ‘initial’ prefix for checking dynamic initial values.

add_prefix(field_name)[source]

Return the field name with a prefix appended, if this Form has a prefix set.

Subclasses may wish to override.

as_div()[source]

Render as <div> elements.

as_p()[source]

Render as <p> elements.

as_table()[source]

Render as <tr> elements excluding the surrounding <table> tag.

as_ul()[source]

Render as <li> elements excluding the surrounding <ul> tag.

static autofill_bounding_box(cleaned_data: dict[str, Any]) dict[str, Any][source]

Automatically fill the bounding box coordinates

Parameters:

cleaned_data (dict[str, Any]) – The partially cleaned data

Returns:

The updated cleaned data

Return type:

dict[str, Any]

changed_data[source]
clean() dict[str, Any][source]

Validate form fields which depend on each other, see django.forms.Form.clean()

Returns:

The cleaned form data

Return type:

dict[str, Any]

clean_aliases() dict[source]

Validate the aliases field (see Overriding the clean() method).

Returns:

The valid aliases

Return type:

dict

clean_custom_prefix() str[source]

Validate the custom prefix field. (see Overriding the clean() method)

Returns:

The given prefix or None if it is invalid

Return type:

str

clean_hix_enabled() bool[source]

Validate the hix_enabled field (see Overriding the clean() method).

Returns:

The validated field

Return type:

bool

clean_slug() str[source]

Validate the slug field (see Overriding the clean() method)

Returns:

A unique slug based on the input value

Return type:

str

clean_summ_ai_enabled() bool[source]

Validate the summ_ai_enabled field (see Overriding the clean() method)

Returns:

The validated field whether SUMM.AI is enabled

Return type:

bool

clean_zammad_access_token() str[source]

Validate the zammad_access_token field (see Overriding the clean() method). If the value is empty, keep the original one.

Returns:

The validated field

Return type:

str

clean_zammad_url() str[source]

Validate the zammad_url field (see Overriding the clean() method).

Returns:

The validated field

Return type:

str

default_renderer = None[source]
property errors[source]

Return an ErrorDict for the data provided for the form.

field_order = None[source]
full_clean()[source]

Clean all of self.data and populate self._errors and self.cleaned_data.

get_context()[source]
get_error_messages() list[dict[str, str]][source]

Return all error messages of this form and append labels to field-errors

Returns:

The errors of this form

Return type:

list[dict[str, str]]

get_initial_for_field(field, field_name)[source]

Return initial data for field on form. Use initial data from the form or the field, in that order. Evaluate callable values.

has_changed()[source]

Return True if data differs from initial.

has_error(field, code=None)[source]
hidden_fields()[source]

Return a list of all the BoundField objects that are hidden fields. Useful for manual form layout in templates.

is_multipart()[source]

Return True if the form needs to be multipart-encoded, i.e. it has FileInput, or False otherwise.

is_valid()[source]

Return True if the form has no errors, or False otherwise.

property media[source]

Return all media required to render the widgets on this form.

non_field_errors()[source]

Return an ErrorList of errors that aren’t associated with a particular field – i.e., from Form.clean(). Return an empty ErrorList if there are none.

order_fields(field_order)[source]

Rearrange the fields according to field_order.

field_order is a list of field names specifying the order. Append fields not included in the list in the default order for backward compatibility with subclasses not overriding field_order. If field_order is None, keep all fields in the order defined in the class. Ignore unknown fields in field_order to allow disabling fields in form subclasses without redefining ordering.

prefix = None[source]
render(template_name=None, context=None, renderer=None)[source]
save(commit: bool = True) Region[source]

This method extends the default save()-method of the base ModelForm to set attributes which are not directly determined by input fields.

Parameters:

commit (bool) – Whether or not the changes should be written to the database

Returns:

The saved region object

Return type:

Region

property template_name[source]
template_name_div = 'django/forms/div.html'[source]
template_name_label = 'django/forms/label.html'[source]
template_name_p = 'django/forms/p.html'[source]
template_name_table = 'django/forms/table.html'[source]
template_name_ul = 'django/forms/ul.html'[source]
use_required_attribute = True[source]
validate_unique()[source]

Call the instance’s validate_unique() method and update the form’s validation errors if any were raised.

visible_fields()[source]

Return a list of BoundField objects that aren’t hidden fields. The opposite of the hidden_fields() method.

Create all links for the latest versions of the region’s page translations, then replace all links in the content. This is run as a background task.

Parameters:
  • source_region (Region) – The region with the slug of the to be replaced links

  • region (Region) – The region in which the links should be replaced and created

Return type:

None

integreat_cms.cms.forms.regions.region_form.duplicate_imprint(source_region: Region, target_region: Region, only_root: bool = False) None[source]

Function to duplicate the imprint from one region to another.

Parameters:
  • source_region (Region) – the source region from which the imprint should be duplicated

  • target_region (Region) – the target region

  • only_root (bool) – Set if only the root node should be copied, not its children

Return type:

None

integreat_cms.cms.forms.regions.region_form.duplicate_language_tree(source_region: Region, target_region: Region, source_parent: LanguageTreeNode | None = None, target_parent: LanguageTreeNode | None = None, logging_prefix: str = '', only_root: bool = False) None[source]

Function to duplicate the language tree of one region to another.

Usage: duplicate_language_tree(source_region, target_region)

This is a recursive function to walk the whole language tree. It starts at root level with the default parent None. The recursion is necessary because the new nodes need their correct (also duplicated) parent node.

Parameters:
  • source_region (Region) – The region from which the language tree should be duplicated

  • target_region (Region) – The region to which the language tree should be added

  • source_parent (LanguageTreeNode | None) – The current parent node id of the recursion

  • target_parent (LanguageTreeNode | None) – The node of the target region which is the duplicate of the source parent node

  • logging_prefix (str) – recursion level to get a pretty log output

  • only_root (bool) – Set if only the root node should be copied, not its children

Return type:

None

integreat_cms.cms.forms.regions.region_form.duplicate_media(source_region: Region, target_region: Region) None[source]

Function to duplicate all media of one region to another.

Parameters:
  • source_region (Region) – the source region from which the pages should be duplicated

  • target_region (Region) – the target region

Return type:

None

integreat_cms.cms.forms.regions.region_form.duplicate_page_translations(source_page: Page, target_page: Page, logging_prefix: str, keep_status: bool) None[source]

Duplicate all translations of a given source page to a given target page

Parameters:
  • source_page (Page) – The given source page

  • target_page (Page) – The desired target page

  • logging_prefix (str) – The prefix to be used for logging

  • keep_status (bool) – Parameter to indicate whether the status of the cloned pages should be kept

Return type:

None

integreat_cms.cms.forms.regions.region_form.duplicate_pages(source_region: Region, target_region: Region, source_parent: Page | None = None, target_parent: Page | None = None, logging_prefix: str = '', keep_status: bool = False, offers_to_discard: QuerySet[OfferTemplate] | None = None, only_root: bool = False) None[source]

Function to duplicate all non-archived pages from one region to another

Usage: duplicate_pages(source_region, target_region)

This is a recursive function to walk the whole page tree. It starts at root level with the default parent None. The recursion is necessary because the new pages need their correct (also duplicated) parent page.

Parameters:
  • source_region (Region) – The region from which the pages should be duplicated

  • target_region (Region) – The region to which the pages should be added

  • source_parent (Page | None) – The current parent page id of the recursion

  • target_parent (Page | None) – The page of the target region which is the duplicate of the source parent page

  • logging_prefix (str) – Recursion level to get a pretty log output

  • keep_status (bool) – Parameter to indicate whether the status of the cloned pages should be kept

  • offers_to_discard (QuerySet[OfferTemplate] | None) – Offers which might be embedded in the source region, but not in the target region

  • only_root (bool) – Set if only the root node should be copied, not its children

Return type:

None

Find all link objects in the latest versions of the region’s page translations

Parameters:

region (Region) – The region which should be scanned for links

Return type:

None

integreat_cms.cms.forms.regions.region_form.get_timezone_area_choices() list[tuple[str, str]][source]

This method generates the options for the first timezone dropdown. It displays the general area of a country or city. Often the continent.

Returns:

A list of the general areas of the timezones

Return type:

list[tuple[str, str]]

integreat_cms.cms.forms.regions.region_form.get_timezone_choices() list[tuple[str, str]][source]

This method generates the options for the second timezone dropdown

Returns:

A list of all available timezones

Return type:

list[tuple[str, str]]

Replace all internal link objects with the latest versions of the region’s page translations

Parameters:
  • source_region (Region) – The region with the slug of the to be replaced links

  • region (Region) – The region in which the links should be replaced

Return type:

None