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:
Select
This 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:
CustomFilterForm
Form 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
,CustomTreeNodeForm
Form 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
)_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 baseModelForm
to 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 baseModelForm
to 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:
MachineTranslationForm
Form 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]
Helper method to decide if this form should be shown, or if it should be hidden for the current language due to a lack of MT-compatible child language nodes
- Returns:
Whether this form is enabled
- 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:
Parent Field Widget
- class integreat_cms.cms.forms.pages.parent_field_widget.ParentFieldWidget(attrs=None, choices=())[source]
Bases:
Select
This 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.