Commands

Bulk Replace Page Icons

class integreat_cms.core.management.commands.bulk_replace_page_icons.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to change references of media files from a source path to a target path. This command reads a CSV file and then changes the reference from the first and second column (source region and path) to the one of the third and fourth column (target region and path).

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, **options: Any) None[source]

The actual logic of the command. Subclasses must implement this method.

Parameters:
Return type:

None

integreat_cms.core.management.commands.bulk_replace_page_icons.remove_protocol(url: str) str[source]

Removes the protocol (http:// or https://) from the BASE_URL setting.

Parameters:

url (str) – The URL to remove the protocol from

Return type:

str

Copy POIs

class integreat_cms.core.management.commands.copy_pois.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: BaseCommand

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, username: str, contacts: bool, events: bool, add_suffix: bool, **options: Any) None[source]

Try to run the command

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

  • contact – Whether contacts should be copied too

  • **options (Any) – The supplied keyword options

  • username (str)

  • contacts (bool)

  • events (bool)

  • add_suffix (bool)

  • **options

Return type:

None

integreat_cms.core.management.commands.copy_pois.copy_icon(region: Region, obj: POI | Event) None[source]

Ensure the icon of an object is accessible from the target region as well

Parameters:
Return type:

None

integreat_cms.core.management.commands.copy_pois.get_user(username: str) User[source]

Get a user by username or raise an error if not found

Parameters:

username (str) – Username

Returns:

User

Return type:

User

integreat_cms.core.management.commands.copy_pois.make_hardlink(file_field: FileField, region_id: int) FileField[source]

Create a hardlink to the original file in the media path for the target region

Parameters:
  • file_field (FileField)

  • region_id (int)

Return type:

FileField

Drop Expired User Accounts

class integreat_cms.core.management.commands.drop_expired_user_accounts.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to delete users who were not activated within 7 days of creation

handle(*args: Any, **options: Any) None[source]

The actual logic of the command. Subclasses must implement this method.

Parameters:
  • args (Any)

  • options (Any)

Return type:

None

Duplicate Pages

class integreat_cms.core.management.commands.duplicate_pages.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: DebugCommand

Management command to duplicate all pages of a region

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, region_slug: str, **options: Any) None[source]

Try to run the command

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

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

  • **options (Any) – The supplied keyword options

Raises:

CommandError – When the input is invalid

Return type:

None

integreat_cms.core.management.commands.duplicate_pages.duplicate_page(old_page: Page, new_parent: Page | None = None) Page[source]

Duplicate a page and insert it as child of the given new parent

Parameters:
  • old_page (Page) – The old page which should be copied

  • new_parent (Page | None) – The new parent where the duplicate should reside

Returns:

The copied page

Return type:

Page

integreat_cms.core.management.commands.duplicate_pages.duplicate_pages(region: Region, old_parent: Page | None = None, new_parent: Page | None = None) None[source]

Duplicate pages recursively for the given region

Parameters:
  • region (Region) – The given region

  • old_parent (Page | None) – The old parent page which descendants should be copied

  • new_parent (Page | None) – The new parent where the duplicates should reside

Return type:

None

Fetch Page Accesses

class integreat_cms.core.management.commands.fetch_page_accesses.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to fetch page accesses from matomo

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, start_date: str, end_date: str, region_slug: str | None, sync: bool | None, **options: Any) None[source]

Try to run the command

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

  • start_date (str) – The earliest date

  • end_date (str) – The latest date

  • period – The period (one of CHOICES)

  • region_slug (str | None) – The slug of the given region

  • **options (Any) – The supplied keyword options

  • sync (bool | None)

  • **options

Return type:

None

Find Large Files

class integreat_cms.core.management.commands.find_large_files.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to find large media files

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, limit: int, threshold: int, **options: Any) None[source]

Try to run the command

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

  • limit (int) – Limit the result to this number

  • threshold (int) – Only show the files larger than this value

  • **options (Any) – The supplied keyword options

Raises:

CommandError – When the input is invalid

Return type:

None

Find Missing Versions

class integreat_cms.core.management.commands.find_missing_versions.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to find missing versions

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, model: ModelBase, **options: Any) None[source]

Try to run the command

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

  • model (ModelBase) – The model to check

  • **options (Any) – The supplied keyword options

Return type:

None

integreat_cms.core.management.commands.find_missing_versions.MODELS: dict[str, ModelBase] = {'event': <class 'integreat_cms.cms.models.events.event_translation.EventTranslation'>, 'page': <class 'integreat_cms.cms.models.pages.page_translation.PageTranslation'>, 'poi': <class 'integreat_cms.cms.models.pois.poi_translation.POITranslation'>}[source]

The possible model choices

{
    'event': <class 'integreat_cms.cms.models.events.event_translation.EventTranslation'>,
    'page': <class 'integreat_cms.cms.models.pages.page_translation.PageTranslation'>,
    'poi': <class 'integreat_cms.cms.models.pois.poi_translation.POITranslation'>,
}
integreat_cms.core.management.commands.find_missing_versions.get_model(model_str: str) ModelBase[source]

Convert a model string to a translation model class

Parameters:

model_str (str) – The model string

Returns:

The model class

Raises:

ArgumentTypeError – When the input is invalid

Return type:

ModelBase

Firebase Data Backup

class integreat_cms.core.management.commands.firebase_data_backup.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command for backing up Firebase Cloud Messaging (FCM) data.

property client: FirebaseDataClient[source]

Lazy version of the firebase data client because otherwise the documentation build fails.

handle(*args: Any, **options: Any) None[source]

The actual logic of the command. Subclasses must implement this method.

Parameters:
  • args (Any)

  • options (Any)

Return type:

None

Hix Bulk

class integreat_cms.core.management.commands.hix_bulk.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Command to calculate the hix values for public page translations which do not currently have a score

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, region_slugs: list[str], **options: Any) None[source]

Try to run the command

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

  • region_slugs (list[str]) – The slugs of the given regions

  • **options (Any) – The supplied keyword options

Return type:

None

integreat_cms.core.management.commands.hix_bulk.calculate_hix_for_region(region: Region) None[source]

Calculates the hix score for all missing pages in the region. Assumes that hix is globally enabled and enabled for the region

Parameters:

region (Region) – The region

Return type:

None

Import Events

class integreat_cms.core.management.commands.import_events.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to import events from external calendars

handle(*args: Any, **options: Any) None[source]

Try to run the command

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

  • **options (Any) – The supplied keyword options

Return type:

None

Import POIs From Csv

class integreat_cms.core.management.commands.import_pois_from_csv.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to import POIs from CSV

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

autocomplete_address(poi: dict) dict[source]

Fill in missing address details

Parameters:

poi (dict) – The input POI dict

Returns:

The updated POI dict

Return type:

dict

get_category(category_name: str, default_language: Language) POICategory[source]

Get a POI category object from the category’s name

Parameters:
  • category_name (str) – The translated name of the category

  • default_language (Language) – The default language of the current region

Returns:

The given POI category

Return type:

POICategory

get_opening_hours(poi: dict) list[source]

Parse the opening hour columns into our JSON structure

Parameters:

poi (dict) – The input POI dict

Returns:

The opening hour list

Return type:

list

get_or_create_default_category(default_language: Language) POICategory[source]

Get the default POI category or create if not exists

Parameters:

default_language (Language) – The default language of the current region

Returns:

The default POI category

Return type:

POICategory

handle(*args: Any, csv_filename: str, region_slug: str, username: str, **options: Any) None[source]

Try to run the command

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

  • csv_filename (str) – The source CSV file to import from

  • region_slug (str) – Import the POI objects into this region

  • username (str) – The username of the creator

  • **options (Any) – The supplied keyword options

Raises:

CommandError – When the input is invalid

Return type:

None

integreat_cms.core.management.commands.import_pois_from_csv.strtobool(val: str) bool[source]

A slightly adapted variant of strtobool which treats an empty string as false

Parameters:

val (str) – The value as string

Returns:

The value as boolean

Return type:

bool

Repair Tree

class integreat_cms.core.management.commands.repair_tree.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to repair a broken Treebeard page tree

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, page_id: Iterable[int], commit: bool, **options: Any) None[source]

Try to run the command

Parameters:
  • args (Any)

  • page_id (Iterable[int])

  • commit (bool)

  • options (Any)

Return type:

None

Reset Mt Budget

class integreat_cms.core.management.commands.reset_mt_budget.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to reset MT budget

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, force: bool, **options: Any) None[source]

Try to run the command

Parameters:
  • args (Any)

  • force (bool)

  • options (Any)

Return type:

None

Send Push Notifications

class integreat_cms.core.management.commands.send_push_notifications.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to send timed push notifications

handle(*args: Any, **options: Any) None[source]

Try to run the command

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

  • **options (Any) – The supplied keyword options

Return type:

None

send_push_notification(counter: int, total: int, push_notification: PushNotification) None[source]

Sends a push notification

Parameters:
  • counter (int) – The current counter

  • total (int) – How many push notifications are scheduled for this slot

  • push_notification (PushNotification) – The push notification object

Return type:

None

SUMM.AI Bulk

class integreat_cms.core.management.commands.summ_ai_bulk.Command(stdout=None, stderr=None, no_color=False, force_color=False)[source]

Bases: LogCommand

Management command to create an initial translation for Easy German via SUMM.AI

add_arguments(parser: CommandParser) None[source]

Define the arguments of this command

Parameters:

parser (CommandParser) – The argument parser

Return type:

None

handle(*args: Any, region_slug: str, username: str, initial: bool, **options: Any) None[source]

Try to run the command

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

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

  • username (str) – The username of the creator

  • initial (bool) – Whether existing translations should not be updated

  • **options (Any) – The supplied keyword options

Return type:

None

integreat_cms.core.management.commands.summ_ai_bulk.summ_ai_bulk(region: Region, username: str, initial: bool = True) None[source]

Translate a complete region into Easy German

Parameters:
  • region (Region) – The current region

  • username (str) – The username of the creator of the translation objects

  • initial (bool) – Whether existing translations should not be updated

Return type:

None