Offers

This package contains OfferTemplate

Offer Template

class integreat_cms.cms.models.offers.offer_template.OfferTemplate(*args, **kwargs)[source]

Bases: AbstractBaseModel

The OfferTemplate model is used to store templates of offers which can be activated for specific regions. The information stored in an offer template is global, so if you need parameters, which depend on local information of a region, it has to be added to the Region model.

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

  • name (CharField) – Name

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

  • thumbnail (URLField) – Thumbnail URL

  • url (URLField) – URL. This will be an external API endpoint in most cases.

  • post_data (JSONField) – POST parameter. Additional POST data for retrieving the URL. Specify as JSON.

  • use_postal_code (CharField) –

    Use postal code. Whether and how to insert the postcode of the region into the URL or POST data

    Manage choices in postal_code

  • supported_by_app_in_content (BooleanField) – Supported by app in content. Whether the Integreat app supports displaying offers from this provider in pages

  • is_zammad_form (BooleanField) – Is Zammad form. Whether this offer should be treated as a Zammad form by the App

  • created_date (DateTimeField) – Creation date

  • last_updated (DateTimeField) – Modification date

Reverse relationships:

Parameters:
exception DoesNotExist[source]

Bases: ObjectDoesNotExist

__init__(*args, **kwargs)[source]
add_note()[source]

Exception.add_note(note) – add a note to the exception

args[source]
silent_variable_failure = True[source]
with_traceback()[source]

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception MultipleObjectsReturned[source]

Bases: MultipleObjectsReturned

__init__(*args, **kwargs)[source]
add_note()[source]

Exception.add_note(note) – add a note to the exception

args[source]
with_traceback()[source]

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

__init__(*args, **kwargs)[source]
async adelete(using=None, keep_parents=False)[source]
async arefresh_from_db(using=None, fields=None)[source]
async asave(force_insert=False, force_update=False, using=None, update_fields=None)[source]
classmethod check(**kwargs)[source]
clean()[source]

Hook for doing any extra model-wide validation after clean() has been called on every field by self.clean_fields. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field defined by NON_FIELD_ERRORS.

clean_fields(exclude=None)[source]

Clean all fields and raise a ValidationError containing a dict of all validation errors if any occur.

created_date[source]

Type: DateTimeField

Creation date

date_error_message(lookup_type, field_name, unique_for)[source]
delete(using=None, keep_parents=False)[source]
feedback[source]

Type: Reverse ForeignKey from OfferFeedback

All feedback of this offer template (related name of offer)

classmethod from_db(db, field_names, values)[source]
full_clean(exclude=None, validate_unique=True, validate_constraints=True)[source]

Call clean_fields(), clean(), validate_unique(), and validate_constraints() on the model. Raise a ValidationError for any errors that occur.

get_constraints()[source]
get_deferred_fields()[source]

Return a set containing names of deferred fields for this instance.

classmethod get_model_name_plural() str[source]

Get the plural representation of this model name

Returns:

The plural model name

Return type:

str

get_next_by_created_date(*, field=<django.db.models.DateTimeField: created_date>, is_next=True, **kwargs)[source]

Finds next instance based on created_date. See get_next_by_FOO() for more information.

get_next_by_last_updated(*, field=<django.db.models.DateTimeField: last_updated>, is_next=True, **kwargs)[source]

Finds next instance based on last_updated. See get_next_by_FOO() for more information.

get_previous_by_created_date(*, field=<django.db.models.DateTimeField: created_date>, is_next=False, **kwargs)[source]

Finds previous instance based on created_date. See get_previous_by_FOO() for more information.

get_previous_by_last_updated(*, field=<django.db.models.DateTimeField: last_updated>, is_next=False, **kwargs)[source]

Finds previous instance based on last_updated. See get_previous_by_FOO() for more information.

get_repr() str[source]

This overwrites the default Django __repr__() method which would return <OfferTemplate: OfferTemplate object (id)>. It is used for logging.

Returns:

The canonical string representation of the offer template

Return type:

str

get_use_postal_code_display(*, field=<django.db.models.CharField: use_postal_code>)[source]

Shows the label of the use_postal_code. See get_FOO_display() for more information.

id[source]

Type: BigAutoField

Primary key: ID

is_zammad_form[source]

Type: BooleanField

Is Zammad form. Whether this offer should be treated as a Zammad form by the App

last_updated[source]

Type: DateTimeField

Modification date

name[source]

Type: CharField

Name

objects = <django.db.models.Manager object>[source]
pages[source]

Type: Reverse ManyToManyField from Page

All pages of this offer template (related name of embedded_offers)

property pk[source]
post_data[source]

Type: JSONField

POST parameter. Additional POST data for retrieving the URL. Specify as JSON.

prepare_database_save(field)[source]
refresh_from_db(using=None, fields=None)[source]

Reload field values from the database.

By default, the reloading happens from the database this instance was loaded from, or by the read router if this instance wasn’t loaded from any database. The using parameter will override the default.

Fields can be used to specify which fields to reload. The fields should be an iterable of field attnames. If fields is None, then all non-deferred fields are reloaded.

When accessing deferred fields of an instance, the deferred loading of the field will call this method.

regions[source]

Type: Reverse ManyToManyField from Region

All regions of this offer template (related name of offers)

save(force_insert=False, force_update=False, using=None, update_fields=None)[source]

Save the current instance. Override this in a subclass if you want to control the saving process.

The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.

save_base(raw=False, force_insert=False, force_update=False, using=None, update_fields=None)[source]

Handle the parts of saving which should be done only once per save, yet need to be done in raw saves, too. This includes some sanity checks and signal sending.

The ‘raw’ argument is telling save_base not to save any parent models and not to do any changes to the values before save. This is used by fixture loading.

serializable_value(field_name)[source]

Return the value of the field name for this instance. If the field is a foreign key, return the id value instead of the object. If there’s no Field object with this name on the model, return the model attribute’s value.

Used to serialize a field’s value (in the serializer, or form output, for example). Normally, you would just access the attribute directly and not use this method.

slug[source]

Type: SlugField

Slug. String identifier without spaces and special characters. Unique per region and language. Leave blank to generate unique parameter from name

supported_by_app_in_content[source]

Type: BooleanField

Supported by app in content. Whether the Integreat app supports displaying offers from this provider in pages

thumbnail[source]

Type: URLField

Thumbnail URL

unique_error_message(model_class, unique_check)[source]
url[source]

Type: URLField

URL. This will be an external API endpoint in most cases.

use_postal_code[source]

Type: CharField

Use postal code. Whether and how to insert the postcode of the region into the URL or POST data

Choices:

  • NONE

  • GET

  • POST

Manage choices in postal_code

validate_constraints(exclude=None)[source]
validate_unique(exclude=None)[source]

Check unique constraints on the model and raise ValidationError if any failed.