Ticket-specific recurring schedule adapter built on the generic ObjRecurringMixin.
Provides creation, listing, checking, and cancellation of recurring ticket schedules. Uses the shared def_recurring table with ModuleType = "TICKET". Tickets are created from existing templates in def_ticket_template when their schedule is due.
Delegates all cron parsing, scheduling, and table management to ObjRecurringMixin in factory.core/extend.delegate/.
ObjRecurringMixin (generic, def_recurring table)
└── ObjTicketRecurringMixin (module_type=TICKET)
└── _recurring_execute() → template_create_from_template()
| Method | Description |
|---|---|
create_recurring(template_name, cron_expression, package, project, created_by) |
Schedule a new recurring ticket. Validates cron and computes first NextRunDate. |
check_due_recurring() |
Find schedules where NextRunDate <= NOW(), create tickets from templates, advance NextRunDate. Returns list of {recurring_guid, ticket_guid}. |
list_recurring(package) |
List all recurring ticket schedules for a package. |
cancel_recurring(guid) |
Deactivate a recurring schedule. |
python ObjTicket.py list-recurring --package homechoice
python ObjTicket.py add-recurring "TEMPLATE_NAME" "0 9 * * 1"
python ObjTicket.py check-recurring
ObjRecurringMixin (generic mixin in extend.delegate)croniter (in requirements.txt)ObjTicketTemplateMixin for template_create_from_template()