Pages
Forms for creating and modifying page and page translation objects
Mirrored Page Field Widget
- class integreat_cms.cms.forms.pages.mirrored_page_field_widget.MirroredPageFieldWidget(attrs=None, choices=())[source]
Bases:
SelectThis Widget class is used to append the url for retrieving the preview of the mirrored page to the data attributes of the options
- create_option(name: str, value: int, label: str, selected: bool, index: int, subindex: int | None = None, attrs: dict | None = None) dict[source]
This function creates an option which can be selected in the parent field
- Parameters:
name (str) – The name of the option
value (int) – the value of the option (the page id)
label (str) – The label of the option
selected (bool) – Whether or not the option is selected
index (int) – The index of the option
subindex (int | None) – The subindex of the option
attrs (dict | None) – The attributes of the option
- Returns:
The option dict
- Return type:
- id_for_label(id_, index='0')[source]
Use an incremented id for each option where the main widget references the zero index.
- subwidgets(name, value, attrs=None)[source]
Yield all “subwidgets” of this widget. Used to enable iterating options from a BoundField for choice widgets.
- use_required_attribute(initial)[source]
Don’t render ‘required’ if the first <option> has a value, as that’s invalid HTML.
Page Filter Form
- class integreat_cms.cms.forms.pages.page_filter_form.PageFilterForm(**kwargs: Any)[source]
Bases:
CustomFilterFormForm for filtering page objects
Form fields:
status: Publication status (ChoiceField)date_from: From (DateField)date_to: To (DateField)translation_status: Translation status (MultipleChoiceField)exclude_pages_without_content: Exclude pages without content (BooleanField)query: Query (CharField)
- Parameters:
kwargs (Any)
- __init__(**kwargs: Any) None[source]
Initialize page filter form
- Parameters:
**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_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.
- apply(pages: list[Page], language_slug: str) list[Page][source]
Filter the pages list according to the given filter data
- clean()[source]
Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.
- filter_by_end_date(pages: list[Page], language_slug: str) list[Page][source]
Filter the pages list by end date
- filter_by_pages_with_content(pages: list[Page], language_slug: str) list[Page][source]
Filter only by pages that have content (including empty pages with live content) :param pages: The list of pages :param language_slug: The slug of the current language :return: pages that have content
- filter_by_publication_status(pages: list[Page], language_slug: str) list[Page][source]
Filter the pages list by publication status
- filter_by_query(pages: list[Page], language_slug: str) list[Page][source]
Filter the pages list by a given search query
- filter_by_start_date(pages: list[Page], language_slug: str) list[Page][source]
Filter the pages list by start date
- filter_by_translation_status(pages: list[Page], language_slug: str) list[Page][source]
Filter the pages list by a given translation status
- property filters_visible: bool[source]
This function determines whether the filter form is visible by default.
- Returns:
Whether any filters (other than search) were changed
- 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.
Return a list of all the BoundField objects that are hidden fields. Useful for manual form layout in templates.
- property is_enabled: bool[source]
This function determines whether the filters are applied.
- Returns:
Whether filtering should be performed
- is_multipart()[source]
Return True if the form needs to be multipart-encoded, i.e. it has FileInput, or False otherwise.
- 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.
Page Form
- class integreat_cms.cms.forms.pages.page_form.PageForm(**kwargs: Any)[source]
Bases:
CustomModelForm,CustomTreeNodeFormForm for creating and modifying page objects
Form fields:
icon: Icon (ModelChoiceField)mirrored_page: Mirrored page (ModelChoiceField)mirrored_page_first: Position of mirrored page (NullBooleanField)organization: Responsible organization (ModelChoiceField)parent: Parent page (ModelChoiceField)api_token: API access token (CharField)hix_ignore: Ignore HIX value (BooleanField)embedded_offers: Page based offer (ModelMultipleChoiceField)do_not_translate_title: Do not translate the title (BooleanField)_position: Position (ChoiceField)_ref_node_id: Relative to (ChoiceField)authors: Authors (ModelChoiceField)editors: Editors (ModelChoiceField)mirrored_page_region: Source region for live content (ModelChoiceField)enable_api_token: Enable write access via API for this page (BooleanField)
- Parameters:
kwargs (Any)
- __init__(**kwargs: Any) None[source]
Initialize page form
- Parameters:
**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.
- clean() dict[str, Any][source]
This method extends the default
clean()-method of the baseModelFormto provide debug logging- Returns:
The cleaned data (see Overriding the clean() method)
- Return type:
- get_author_queryset() QuerySet[source]
This method retrieves all users, who are eligible to be defined as page authors because they don’t yet have the permission to edit this page.
- Returns:
All potential page authors
- Return type:
QuerySet
- get_editor_queryset() QuerySet[source]
This method retrieves all users, who are eligible to be defined as page editors because they don’t yet have the permission to publish this page.
- Returns:
All potential page editors
- Return type:
QuerySet
- get_error_messages() list[dict[str, str]][source]
Return all error messages of this form and append labels to field-errors
- 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.
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.
- classmethod mk_dropdown_tree(model: ModelBase, for_node: None | LanguageTreeNode | Page = None) list[source]
Creates a tree-like list of choices. Overwrites the parent method because the field is hidden anyway and additional queries to render the node titles should be avoided.
- Parameters:
model (ModelBase) – ~integreat_cms.cms.models.abstract_tree_node.AbstractTreeNode
for_node (None | (LanguageTreeNode | Page)) – The instance of this form
- Returns:
A list of select options
- Return type:
- 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.
- save(commit: bool = True) Any[source]
This method extends the default
save()-method of the baseModelFormto provide debug logging- Parameters:
commit (bool) – Whether or not the changes should be written to the database
- Returns:
The saved object returned by The save() method
- Return type:
Any
Page Translation Form
- class integreat_cms.cms.forms.pages.page_translation_form.PageTranslationForm(**kwargs: Any)[source]
Bases:
MachineTranslationFormForm for creating and modifying page translation objects
Form fields:
title: Title of the page (CharField)status: Status (TypedChoiceField)content: Content of the page (CharField)minor_edit: Minor edit (BooleanField)automatic_translation: Automatic translation (BooleanField)machine_translated: Machine translated (BooleanField)slug: Page link (SlugField)hix_score: HIX score (FloatField)hix_feedback: HIX feedback (JSONField)mt_translations_to_create: Create new translations: (ModelMultipleChoiceField)mt_translations_to_update: Update existing translations: (ModelMultipleChoiceField)
- Parameters:
kwargs (Any)
- __init__(**kwargs: Any) None[source]
Initialize MT translation form. If request and language kwargs are missing, MTs are disabled.
- Parameters:
**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.
- add_success_message(request: HttpRequest) None[source]
This adds a success message for a translation form. Requires the attributes “title”, “status” and “foreign_object” on the form instance.
- Parameters:
request (HttpRequest) – The current request submitting the translation form
- Return type:
None
- clean() dict[str, Any][source]
Validate form fields which depend on each other, see
django.forms.Form.clean()
- clean_content() str[source]
Validate the content field (see Overriding the clean() method) and applies changes to any element to match the guidelines.
- Raises:
ValidationError – When a heading 1 (
<h1>) is used in the text content- Returns:
The valid content
- Return type:
- clean_slug() str[source]
Validate the slug field (see Overriding the clean() method)
- Returns:
A unique slug based on the input value
- Return type:
- get_error_messages() list[dict[str, str]][source]
Return all error messages of this form and append labels to field-errors
- 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.
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.
- mt_form_is_enabled() NS_NodeQuerySet[source]
For pages, machine translations should only be enabled if the user has publishing rights
- Return type:
NS_NodeQuerySet
- 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.
- save(commit: bool = True, foreign_form_changed: bool = False)[source]
Create machine translations and save them to the database
- Parameters:
- Returns:
The saved content translation object
- Return type:
- user_has_publish_rights() bool[source]
Helper method to check if the current user has permission to publish the page
- Return type:
Parent Field Widget
- class integreat_cms.cms.forms.pages.parent_field_widget.ParentFieldWidget(attrs=None, choices=())[source]
Bases:
SelectThis Widget class is used to append the url for retrieving the page order tables to the data attributes of the options
- create_option(name: str, value: int | str, label: SafeString | str, selected: bool, index: int, subindex: Any | None = None, attrs: dict[str, Any] | None = None) dict[str, Any][source]
This function creates an option which can be selected in the parent field
- Parameters:
- Returns:
The option dict
- Return type:
- id_for_label(id_, index='0')[source]
Use an incremented id for each option where the main widget references the zero index.
- subwidgets(name, value, attrs=None)[source]
Yield all “subwidgets” of this widget. Used to enable iterating options from a BoundField for choice widgets.
- use_required_attribute(initial)[source]
Don’t render ‘required’ if the first <option> has a value, as that’s invalid HTML.