Modules

Modern conference management for Django.

Typed configuration for django-program.

Reads a single DJANGO_PROGRAM dict from Django settings and exposes it as composed, frozen dataclasses with sensible defaults.

Usage:

from django_program.settings import get_config

config = get_config()
config.stripe.secret_key
config.pretalx.base_url
config.currency
class django_program.settings.StripeConfig[source]

Bases: object

Stripe payment gateway configuration.

Parameters:
secret_key: str | None
publishable_key: str | None
webhook_secret: str | None
api_version: str
webhook_tolerance: int
__init__(secret_key=None, publishable_key=None, webhook_secret=None, api_version='2024-12-18', webhook_tolerance=300)
Parameters:
class django_program.settings.PretalxConfig[source]

Bases: object

Pretalx schedule API configuration.

Parameters:
  • base_url (str)

  • token (str | None)

  • schedule_delete_guard_enabled (bool)

  • schedule_delete_guard_min_existing_slots (int)

  • schedule_delete_guard_max_fraction_removed (float)

base_url: str
token: str | None
schedule_delete_guard_enabled: bool
schedule_delete_guard_min_existing_slots: int
schedule_delete_guard_max_fraction_removed: float
__init__(base_url='https://pretalx.com', token=None, schedule_delete_guard_enabled=True, schedule_delete_guard_min_existing_slots=5, schedule_delete_guard_max_fraction_removed=0.4)
Parameters:
  • base_url (str)

  • token (str | None)

  • schedule_delete_guard_enabled (bool)

  • schedule_delete_guard_min_existing_slots (int)

  • schedule_delete_guard_max_fraction_removed (float)

class django_program.settings.PSFSponsorConfig[source]

Bases: object

PSF sponsorship API configuration for PyCon US conferences.

Parameters:
api_url: str
token: str | None
auth_scheme: str
publisher: str
flight: str
__init__(api_url='https://www.python.org/api/v2', token=None, auth_scheme='Token', publisher='pycon', flight='sponsors')
Parameters:
class django_program.settings.FeaturesConfig[source]

Bases: object

Feature toggles for enabling/disabling django-program modules and UIs.

Module toggles control backend functionality (registration, sponsors, etc.) while UI toggles control the public-facing and management interfaces. The all_ui_enabled flag acts as a master switch for all UI toggles.

All features are enabled by default. Set to False in DJANGO_PROGRAM['features'] to disable.

Parameters:
  • registration_enabled (bool)

  • sponsors_enabled (bool)

  • travel_grants_enabled (bool)

  • programs_enabled (bool)

  • pretalx_sync_enabled (bool)

  • visa_letters_enabled (bool)

  • public_ui_enabled (bool)

  • manage_ui_enabled (bool)

  • all_ui_enabled (bool)

registration_enabled: bool
sponsors_enabled: bool
travel_grants_enabled: bool
programs_enabled: bool
pretalx_sync_enabled: bool
visa_letters_enabled: bool
public_ui_enabled: bool
manage_ui_enabled: bool
all_ui_enabled: bool
__init__(registration_enabled=True, sponsors_enabled=True, travel_grants_enabled=True, programs_enabled=True, pretalx_sync_enabled=True, visa_letters_enabled=True, public_ui_enabled=True, manage_ui_enabled=True, all_ui_enabled=True)
Parameters:
  • registration_enabled (bool)

  • sponsors_enabled (bool)

  • travel_grants_enabled (bool)

  • programs_enabled (bool)

  • pretalx_sync_enabled (bool)

  • visa_letters_enabled (bool)

  • public_ui_enabled (bool)

  • manage_ui_enabled (bool)

  • all_ui_enabled (bool)

class django_program.settings.ProgramConfig[source]

Bases: object

Top-level django-program configuration.

Parameters:
stripe: StripeConfig
pretalx: PretalxConfig
psf_sponsors: PSFSponsorConfig
features: FeaturesConfig
cart_expiry_minutes: int
pending_order_expiry_minutes: int
order_reference_prefix: str
currency: str
currency_symbol: str
max_grant_amount: int
attendee_profile_model: str
__init__(stripe=<factory>, pretalx=<factory>, psf_sponsors=<factory>, features=<factory>, cart_expiry_minutes=30, pending_order_expiry_minutes=15, order_reference_prefix='ORD', currency='USD', currency_symbol='$', max_grant_amount=3000, attendee_profile_model='')
Parameters:
django_program.settings.get_config()[source]

Build and return the program configuration.

Reads settings.DJANGO_PROGRAM (a plain dict) and returns a frozen ProgramConfig. The result is cached; the cache is cleared automatically when Django’s setting_changed signal fires (e.g. inside override_settings).

Return type:

ProgramConfig

django_program.settings.get_attendee_profile_model()[source]

Return the custom attendee profile model class, or None if not configured.

Reads attendee_profile_model from the DJANGO_PROGRAM configuration. When set to a non-empty app-label string (e.g. "myapp.AttendeeProfile"), resolves and returns the model class via django.apps.apps.get_model.

Return type:

type | None

Returns:

The model class, or None if no custom profile model is configured.

Conference and Section models for django-program.

class django_program.conference.models.Conference[source]

Bases: Model

A conference event with dates, venue, and integration settings.

The central model that all other apps reference. Stores Pretalx and Stripe configuration so each conference can be managed independently.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

start_date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

end_date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

timezone

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

venue

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

address

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

website_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

pretalx_event_slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_secret_key

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_publishable_key

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_webhook_secret

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_realm_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_access_token

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_refresh_token

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_token_expires_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_client_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_client_secret

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

total_capacity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

revenue_budget

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

target_attendance

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

grant_budget

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

activities

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

addons

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

attendees

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

badge_templates

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

bulk_purchases

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

carts

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

checkins

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

credits

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

discountforcategory_conditions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

discountforproduct_conditions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

door_checks

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

expense_categories

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

expenses

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

feature_flags

Accessor to the related object on the reverse side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Place.restaurant is a ReverseOneToOneDescriptor instance.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=True, **kwargs)
get_next_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=False, **kwargs)
get_previous_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
groupmembercondition_conditions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

includedproductcondition_conditions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

kpi_targets

Accessor to the related object on the reverse side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Place.restaurant is a ReverseOneToOneDescriptor instance.

letter_requests

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
orders

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

purchase_orders

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

redemptions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

room_overrides

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

rooms

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

schedule_slots

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

sections

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

session_ratings

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

speaker_overrides

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

speakercondition_conditions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

speakers

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

sponsor_levels

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

sponsor_overrides

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

sponsors

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

stripe_customers

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

submission_type_defaults

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

surveys

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

talk_overrides

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

talks

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

terminal_payments

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

ticket_types

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

timeorstocklimitcondition_conditions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

travel_grants

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

vouchers

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.conference.models.Section[source]

Bases: Model

A distinct segment of a conference (e.g. Tutorials, Talks, Sprints).

Sections divide a conference into logical time blocks, each with their own date range. They are ordered by the order field for display purposes.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

start_date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

end_date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

order

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_next_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=True, **kwargs)
get_next_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=True, **kwargs)
get_previous_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=False, **kwargs)
get_previous_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.conference.models.FeatureFlags[source]

Bases: Model

Per-conference feature toggle overrides.

Database-backed flags that override the defaults from DJANGO_PROGRAM["features"]. Changes take effect immediately without server restart. Each conference has at most one row.

All boolean fields are nullable: None means “use default from settings”, while an explicit True or False overrides.

conference

Accessor to the related object on the forward side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Restaurant.place is a ForwardOneToOneDescriptor instance.

registration_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

sponsors_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_grants_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

programs_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

pretalx_sync_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

visa_letters_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

public_ui_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

manage_ui_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

all_ui_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.conference.models.ExpenseCategory[source]

Bases: Model

A category for conference expenses (e.g. Venue, F&B, A/V, Travel, Marketing).

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

budget_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

order

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
expenses

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.conference.models.Expense[source]

Bases: Model

An individual expense record for a conference.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

category

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

vendor

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

receipt_reference

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

notes

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

category_id
conference_id
created_by_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.conference.models.KPITargets[source]

Bases: Model

Per-conference configurable KPI thresholds for the analytics dashboard.

When a field is null, the dashboard falls back to hardcoded industry averages. Setting a value overrides the default target for that metric.

conference

Accessor to the related object on the forward side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Restaurant.place is a ForwardOneToOneDescriptor instance.

target_conversion_rate

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

target_refund_rate

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

target_checkin_rate

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

target_fulfillment_rate

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

target_revenue_per_attendee

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

target_room_utilization

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>

Registration, ticketing, cart, order, and payment models for django-program.

class django_program.registration.models.AddOn[source]

Bases: Model

An optional extra attached to a ticket (e.g. workshop, t-shirt).

Add-ons can optionally be restricted to specific ticket types via the requires_ticket_types relation. When that relation is empty the add-on is available to holders of any ticket type.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

price

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

requires_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

available_from

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

available_until

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

total_quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bulk_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

order

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

bulk_purchases

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

cart_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference_id
discountforproduct_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

door_checks

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
groupmembercondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

includedproductcondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
order_line_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

purchase_order_line_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

speakercondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

timeorstocklimitcondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

vouchers

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.registration.models.Attendee[source]

Bases: Model

Links a user to a conference with registration state and check-in tracking.

Unlike AttendeeProfileBase, this uses a ForeignKey to the user because a single user can attend multiple conferences. The order field is also a ForeignKey (not OneToOne) so that replacement/upgrade orders can update the link without constraint violations.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

access_code

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

checked_in_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

completed_registration

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

save(*args, **kwargs)[source]

Auto-generate access code on first save if not already set.

Parameters:
Return type:

None

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

badges

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

checkins

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference_id
door_checks

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

letter_requests

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
order_id
redemptions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

user_id
class django_program.registration.models.AttendeeProfileBase[source]

Bases: Model

Abstract base for attendee profiles.

Projects extend this with custom fields (e.g. dietary restrictions, t-shirt size) by subclassing and pointing DJANGO_PROGRAM.attendee_profile_model at the concrete subclass.

user

Accessor to the related object on the forward side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Restaurant.place is a ForwardOneToOneDescriptor instance.

access_code

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

completed_registration

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class Meta[source]

Bases: object

abstract = False
save(*args, **kwargs)[source]

Auto-generate access code on first save if not already set.

Parameters:
Return type:

None

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
user_id
class django_program.registration.models.Badge[source]

Bases: Model

A generated badge for a specific attendee.

Tracks the generated file, format, and timestamp so badges can be cached and regenerated on demand.

class Format[source]

Bases: TextChoices

Supported badge output formats.

PDF = 'pdf'
PNG = 'png'
__new__(value)
attendee

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

template

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

format

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

file

The descriptor for the file attribute on the model instance. Return a FieldFile when accessed so you can write code like:

>>> from myapp.models import MyModel
>>> instance = MyModel.objects.get(pk=1)
>>> instance.file.size

Assign a file object on assignment so you can do:

>>> with open('/path/to/hello.world') as f:
...     instance.file = File(f)
generated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

attendee_id
get_format_display(*, field=<django.db.models.fields.CharField: format>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
template_id
class django_program.registration.models.BadgeTemplate[source]

Bases: Model

Configurable badge layout template for a conference.

Defines dimensions, visible fields, color scheme, and optional logo for generating attendee badges. Each conference can have multiple templates but only one may be marked as the default.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_default

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

width_mm

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

height_mm

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class BannerPosition[source]

Bases: TextChoices

Where to place the ticket type banner on the badge.

BELOW_HEADER = 'below_header'
ABOVE_NAME = 'above_name'
BELOW_NAME = 'below_name'
BOTTOM = 'bottom'
__new__(value)
ticket_banner_position

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

show_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

show_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

show_company

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

show_ticket_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

show_qr_code

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

show_conference_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

background_color

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

text_color

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

accent_color

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

font_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

font_body

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Just like the FileDescriptor, but for ImageFields. The only difference is assigning the width/height to the width_field/height_field, if appropriate.

background_image

Just like the FileDescriptor, but for ImageFields. The only difference is assigning the width/height to the width_field/height_field, if appropriate.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

badges

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_ticket_banner_position_display(*, field=<django.db.models.fields.CharField: ticket_banner_position>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.registration.models.Cart[source]

Bases: Model

A user’s shopping cart for a conference.

Carts hold ticket and add-on selections before checkout. They transition through statuses from OPEN to CHECKED_OUT when submitted to checkout and converted to an order (which may still be pending payment), or to EXPIRED / ABANDONED when the session times out.

class Status[source]

Bases: TextChoices

Lifecycle states for a shopping cart.

OPEN = 'open'
CHECKED_OUT = 'checked_out'
EXPIRED = 'expired'
ABANDONED = 'abandoned'
__new__(value)
user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

voucher

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

expires_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
user_id
voucher_id
class django_program.registration.models.CartItem[source]

Bases: Model

A single item (ticket or add-on) in a cart.

Each cart item references exactly one of ticket_type or addon, enforced by a database-level check constraint. The unit_price and line_total properties compute pricing from the referenced item.

cart

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

ticket_type

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

addon

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property unit_price: Decimal

Return the per-unit price of this cart item.

property line_total: Decimal

Return the total price for this line (unit_price * quantity).

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

addon_id
cart_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
ticket_type_id
class django_program.registration.models.CheckIn[source]

Bases: Model

Records a single check-in event for an attendee at the conference.

Multiple check-ins per attendee are allowed to support re-entry scenarios (e.g. leaving for lunch and returning). Each record captures who performed the check-in and at which station.

attendee

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

checked_in_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

checked_in_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

station

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

note

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

attendee_id
checked_in_by_id
conference_id
get_next_by_checked_in_at(*, field=<django.db.models.fields.DateTimeField: checked_in_at>, is_next=True, **kwargs)
get_previous_by_checked_in_at(*, field=<django.db.models.fields.DateTimeField: checked_in_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.registration.models.Credit[source]

Bases: Model

A store credit that can be applied to future orders.

Credits are typically issued as part of a refund workflow. They are tied to a specific conference and user, and can be applied to a new order or left to expire.

class Status[source]

Bases: TextChoices

Lifecycle states for a store credit.

AVAILABLE = 'available'
APPLIED = 'applied'
EXPIRED = 'expired'
__new__(value)
user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

remaining_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

applied_to_order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

source_order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

note

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

save(*args, **kwargs)[source]

Initialize remaining balance for newly created available credits.

Parameters:
Return type:

None

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

applied_to_order_id
conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
source_order_id
user_id
class django_program.registration.models.DiscountForCategory[source]

Bases: ConditionBase

Percentage discount on all products in specified categories.

Applies a flat percentage reduction to ticket types and/or add-ons for the conference. Does not use DiscountEffect because it uses its own simplified percentage-only calculation with category-level targeting.

percentage

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

apply_to_tickets

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

apply_to_addons

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

start_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

end_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

limit

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

times_used

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

evaluate(user, conference)[source]

Return True if within the time window and stock has not been exhausted.

Parameters:
  • user (auth.User) – The authenticated user (unused for category discounts).

  • conference (object) – The conference context (unused, already filtered by FK).

Return type:

bool

calculate_discount(unit_price, quantity)[source]

Calculate the percentage discount for the given price and quantity.

Parameters:
  • unit_price (Decimal) – The per-unit price of the item.

  • quantity (int) – The number of items.

Return type:

Decimal

Returns:

The total discount amount.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference_id
created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
priority

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class django_program.registration.models.DiscountForProduct[source]

Bases: ConditionBase, DiscountEffect

Direct discount on specific products, optionally time/stock limited.

Unlike other conditions, this evaluates to True for all users as long as the time window and stock limit are satisfied. Use applicable_ticket_types and applicable_addons to control which products receive the discount.

start_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

end_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

limit

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

times_used

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

evaluate(user, conference)[source]

Return True if within the time window and stock has not been exhausted.

Parameters:
  • user (auth.User) – The authenticated user (unused for product discounts).

  • conference (object) – The conference context (unused, already filtered by FK).

Return type:

bool

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

applicable_addons

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

applicable_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference_id
created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_value

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_discount_type_display(*, field=<django.db.models.fields.CharField: discount_type>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

max_quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
priority

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class django_program.registration.models.DoorCheck[source]

Bases: Model

Per-product admission tracking for a specific ticket type or add-on.

Used for checking attendees into sub-events such as tutorials, meals, or social events that require separate admission control beyond the main conference check-in.

attendee

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

ticket_type

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

addon

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

checked_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

checked_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

station

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

addon_id
attendee_id
checked_by_id
conference_id
get_next_by_checked_at(*, field=<django.db.models.fields.DateTimeField: checked_at>, is_next=True, **kwargs)
get_previous_by_checked_at(*, field=<django.db.models.fields.DateTimeField: checked_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
ticket_type_id
class django_program.registration.models.EventProcessingException[source]

Bases: Model

Records an error that occurred while processing a webhook event.

Captures the full traceback and contextual data so that failed events can be investigated and retried.

event

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

data

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

message

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

traceback

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

event_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.registration.models.GroupMemberCondition[source]

Bases: ConditionBase, DiscountEffect

Applies to members of specific Django auth groups.

Useful for staff discounts, volunteer pricing, or any role-based discount controlled via Django’s built-in group system.

groups

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

evaluate(user, conference)[source]

Return True if the user belongs to at least one of the configured groups.

Parameters:
  • user (auth.User) – The authenticated user to check.

  • conference (object) – The conference context (unused, already filtered by FK).

Return type:

bool

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

applicable_addons

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

applicable_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference_id
created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_value

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_discount_type_display(*, field=<django.db.models.fields.CharField: discount_type>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

max_quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
priority

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class django_program.registration.models.IncludedProductCondition[source]

Bases: ConditionBase, DiscountEffect

Unlocks discount on target products when user has purchased enabling products.

For example, purchasing a “Tutorial” ticket could unlock a discount on the “Tutorial Lunch” add-on.

enabling_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

evaluate(user, conference)[source]

Return True if the user has purchased at least one enabling ticket type.

Parameters:
  • user (auth.User) – The authenticated user to check.

  • conference (object) – The conference context.

Return type:

bool

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

applicable_addons

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

applicable_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference_id
created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_value

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_discount_type_display(*, field=<django.db.models.fields.CharField: discount_type>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

max_quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
priority

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class django_program.registration.models.LetterRequest[source]

Bases: Model

A request for a visa invitation letter from a conference attendee.

Captures passport and travel details needed to produce a formal letter for embassy submission. Progresses through a review workflow from SUBMITTED to SENT (or REJECTED).

class Status[source]

Bases: TextChoices

Workflow states for a letter request.

SUBMITTED = 'submitted'
UNDER_REVIEW = 'under_review'
APPROVED = 'approved'
GENERATED = 'generated'
SENT = 'sent'
REJECTED = 'rejected'
__new__(value)
ALLOWED_TRANSITIONS: dict[str, set[str]] = {LetterRequest.Status.APPROVED: {LetterRequest.Status.GENERATED}, LetterRequest.Status.GENERATED: {LetterRequest.Status.SENT}, LetterRequest.Status.SUBMITTED: {LetterRequest.Status.APPROVED, LetterRequest.Status.REJECTED, LetterRequest.Status.UNDER_REVIEW}, LetterRequest.Status.UNDER_REVIEW: {LetterRequest.Status.APPROVED, LetterRequest.Status.REJECTED}}
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

attendee

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

passport_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

passport_number

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

nationality

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

date_of_birth

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_from

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_until

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

destination_address

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

embassy_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

rejection_reason

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

generated_pdf

The descriptor for the file attribute on the model instance. Return a FieldFile when accessed so you can write code like:

>>> from myapp.models import MyModel
>>> instance = MyModel.objects.get(pk=1)
>>> instance.file.size

Assign a file object on assignment so you can do:

>>> with open('/path/to/hello.world') as f:
...     instance.file = File(f)
reviewed_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

reviewed_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

sent_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

transition_to(new_status)[source]

Transition this request to a new workflow status.

Validates that the transition is allowed before applying it.

Parameters:

new_status (str) – The target status value (one of Status choices).

Raises:

ValueError – If the transition from the current status to new_status is not permitted.

Return type:

None

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

attendee_id
conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_travel_from(*, field=<django.db.models.fields.DateField: travel_from>, is_next=True, **kwargs)
get_next_by_travel_until(*, field=<django.db.models.fields.DateField: travel_until>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_travel_from(*, field=<django.db.models.fields.DateField: travel_from>, is_next=False, **kwargs)
get_previous_by_travel_until(*, field=<django.db.models.fields.DateField: travel_until>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
reviewed_by_id
user_id
class django_program.registration.models.Order[source]

Bases: Model

A completed checkout with billing and payment info.

Orders are created when a cart is checked out. They capture a snapshot of the pricing, discounts, and billing details at the time of purchase. The reference field holds a unique human-readable order number.

class Status[source]

Bases: TextChoices

Lifecycle states for an order.

PENDING = 'pending'
PAID = 'paid'
REFUNDED = 'refunded'
PARTIALLY_REFUNDED = 'partially_refunded'
CANCELLED = 'cancelled'
__new__(value)
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

subtotal

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

total

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

voucher_code

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

voucher_details

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

billing_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

billing_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

billing_company

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reference

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

utm_source

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

utm_medium

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

utm_campaign

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

hold_expires_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

applied_credits

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

attendees

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

issued_credits

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

line_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
payments

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

user_id
class django_program.registration.models.OrderLineItem[source]

Bases: Model

A snapshot of a purchased item at checkout time.

Line items are immutable records of what was purchased, including the price and description at the time of checkout. They may reference the original TicketType or AddOn for traceability, but those links are optional since the source item could be deleted after the order is placed.

order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

unit_price

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

line_total

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

ticket_type

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

addon

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

addon_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
order_id
redemptions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

ticket_type_id
class django_program.registration.models.Payment[source]

Bases: Model

A payment record against an order.

Each payment represents a single financial transaction (Stripe charge, complimentary comp, credit application, or manual entry). An order may have multiple payments if it is partially refunded and re-paid.

class Method[source]

Bases: TextChoices

Supported payment methods.

STRIPE = 'stripe'
TERMINAL = 'terminal'
COMP = 'comp'
CREDIT = 'credit'
MANUAL = 'manual'
__new__(value)
class Status[source]

Bases: TextChoices

PENDING = 'pending'
PROCESSING = 'processing'
SUCCEEDED = 'succeeded'
FAILED = 'failed'
REFUNDED = 'refunded'
__new__(value)
order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

method

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_payment_intent_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_charge_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reference

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

note

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

created_by_id
get_method_display(*, field=<django.db.models.fields.CharField: method>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
order_id
terminal_detail

Accessor to the related object on the reverse side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Place.restaurant is a ReverseOneToOneDescriptor instance.

class django_program.registration.models.ProductRedemption[source]

Bases: Model

Tracks redemption of a purchased order line item.

Each attendee can redeem a given order line item up to its purchased quantity times. The business-layer limit is enforced by RedemptionService.redeem_product() with row-level locking; no unique constraint exists at the DB level so that quantity > 1 items can produce multiple redemption rows.

attendee

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

order_line_item

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

redeemed_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

redeemed_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

note

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

attendee_id
conference_id
get_next_by_redeemed_at(*, field=<django.db.models.fields.DateTimeField: redeemed_at>, is_next=True, **kwargs)
get_previous_by_redeemed_at(*, field=<django.db.models.fields.DateTimeField: redeemed_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
order_line_item_id
redeemed_by_id
class django_program.registration.models.PurchaseOrder[source]

Bases: Model

A corporate purchase order for bulk or invoiced ticket purchases.

Purchase orders exist outside the normal cart/checkout flow and support partial payments over time via wire, ACH, check, or Stripe. The balance_due property tracks the remaining amount after payments and credit notes.

class Status[source]

Bases: TextChoices

Lifecycle states for a purchase order.

DRAFT = 'draft'
SENT = 'sent'
PARTIALLY_PAID = 'partially_paid'
PAID = 'paid'
OVERPAID = 'overpaid'
CANCELLED = 'cancelled'
__new__(value)
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

organization_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

contact_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

contact_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

billing_address

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_invoice_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_invoice_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_invoice_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

qbo_invoice_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

notes

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reference

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

subtotal

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

total

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property total_paid: Decimal

Return the sum of all recorded payment amounts.

Uses the _annotated_total_paid annotation when available (set by list views) to avoid per-row aggregate queries.

property total_credited: Decimal

Return the sum of all credit note amounts.

Uses the _annotated_total_credited annotation when available (set by list views) to avoid per-row aggregate queries.

property balance_due: Decimal

Return the outstanding balance after payments and credit notes.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
created_by_id
credit_notes

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

line_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
payments

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.registration.models.PurchaseOrderCreditNote[source]

Bases: Model

A credit note issued against a purchase order.

Reduces the effective balance due on the purchase order. Used for adjustments, corrections, or partial cancellations.

purchase_order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reason

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

issued_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

issued_by_id
objects = <django.db.models.manager.Manager object>
purchase_order_id
class django_program.registration.models.PurchaseOrderLineItem[source]

Bases: Model

A single line item on a purchase order.

Each line references an optional ticket type or add-on for traceability, but the description and pricing are snapshotted at creation time.

purchase_order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

unit_price

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

line_total

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

ticket_type

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

addon

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

addon_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
purchase_order_id
ticket_type_id
class django_program.registration.models.PurchaseOrderPayment[source]

Bases: Model

A payment recorded against a purchase order.

Tracks individual payments received via wire transfer, ACH, check, Stripe, or other methods. Multiple payments can be recorded as partial payments arrive.

class Method[source]

Bases: TextChoices

Supported payment methods for purchase orders.

WIRE = 'wire'
ACH = 'ach'
CHECK = 'check'
STRIPE = 'stripe'
OTHER = 'other'
__new__(value)
purchase_order

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reference

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

method

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

entered_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

payment_date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

note

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

entered_by_id
get_method_display(*, field=<django.db.models.fields.CharField: method>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_payment_date(*, field=<django.db.models.fields.DateField: payment_date>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_payment_date(*, field=<django.db.models.fields.DateField: payment_date>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
purchase_order_id
class django_program.registration.models.SpeakerCondition[source]

Bases: ConditionBase, DiscountEffect

Auto-applies to users linked to a Pretalx Speaker.

Checks whether the user has a Speaker record in the pretalx app for the same conference, optionally filtering by presenter/copresenter role.

is_presenter

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_copresenter

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

evaluate(user, conference)[source]

Return True if the user is linked to a Speaker for this conference.

Pretalx has no explicit primary/copresenter role, so any linked speaker qualifies when either flag is set. When both flags are True, any speaker qualifies. When only is_presenter is True, any speaker on at least one talk qualifies. When only is_copresenter is True, the speaker must appear on a talk with at least one other speaker.

Parameters:
  • user (auth.User) – The authenticated user to check.

  • conference (object) – The conference context.

Return type:

bool

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

applicable_addons

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

applicable_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference_id
created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_value

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_discount_type_display(*, field=<django.db.models.fields.CharField: discount_type>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

max_quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
priority

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class django_program.registration.models.StripeCustomer[source]

Bases: Model

Maps a Django user to a Stripe customer for a specific conference.

Each user gets a separate Stripe customer per conference since each conference may use a different Stripe account.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

stripe_customer_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
user_id
class django_program.registration.models.StripeEvent[source]

Bases: Model

A record of a Stripe webhook event for idempotent processing.

Stores the full event payload and tracks whether the event has been successfully processed by the webhook handler.

stripe_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

kind

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

livemode

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

payload

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

customer_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

processed

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

api_version

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
processing_exceptions

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.registration.models.TerminalPayment[source]

Bases: Model

Records an in-person Stripe Terminal payment at the registration desk.

Extends the payment tracking with terminal-specific fields for reader identification, pre-authorization state, and capture lifecycle.

class CaptureStatus[source]

Bases: TextChoices

Lifecycle states for a terminal payment capture.

AUTHORIZED = 'authorized'
CAPTURED = 'captured'
CANCELLED = 'cancelled'
FAILED = 'failed'
__new__(value)
payment

Accessor to the related object on the forward side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Restaurant.place is a ForwardOneToOneDescriptor instance.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

terminal_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reader_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

payment_intent_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

capture_status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

captured_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

cancelled_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

card_brand

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

card_last4

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

receipt_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_capture_status_display(*, field=<django.db.models.fields.CharField: capture_status>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
payment_id
class django_program.registration.models.TicketType[source]

Bases: Model

A purchasable ticket category for a conference.

Defines a class of ticket (e.g. “Early Bird”, “Student”, “Corporate”) with pricing, availability windows, and optional quantity limits. Ticket types flagged with requires_voucher are hidden from the public storefront until unlocked by a matching voucher code.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

price

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

available_from

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

available_until

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

total_quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

limit_per_user

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

requires_voucher

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bulk_enabled

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

order

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property remaining_quantity: int | None

Return the number of tickets still available for purchase.

Counts tickets in paid/partially-refunded orders plus pending orders with an active inventory hold (hold_expires_at in the future).

Returns:

The remaining count, or None if this ticket type has unlimited quantity (total_quantity == 0).

property is_available: bool

Check whether this ticket type can currently be purchased.

A ticket is available when all of the following are true:

  • is_active is True

  • The current time is within the available_from / available_until window (if set)

  • There is remaining quantity (or quantity is unlimited)

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

available_addons

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

bulk_purchases

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

cart_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference_id
discountforproduct_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

door_checks

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

enabling_conditions

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
groupmembercondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

includedproductcondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
order_line_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

purchase_order_line_items

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

speakercondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

timeorstocklimitcondition_discounts

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

vouchers

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.registration.models.TimeOrStockLimitCondition[source]

Bases: ConditionBase, DiscountEffect

Condition met when within a time window and/or stock limit.

Use this for early-bird discounts, flash sales, or any promotion with a defined start/end time and optional usage cap.

start_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

end_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

limit

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

times_used

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

evaluate(user, conference)[source]

Return True if within the time window and stock has not been exhausted.

Parameters:
  • user (auth.User) – The authenticated user (unused for this condition type).

  • conference (object) – The conference context (unused, already filtered by FK).

Return type:

bool

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

applicable_addons

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

applicable_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

conference_id
created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_value

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_discount_type_display(*, field=<django.db.models.fields.CharField: discount_type>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

max_quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
priority

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class django_program.registration.models.Voucher[source]

Bases: Model

A discount or access code for tickets and add-ons.

Vouchers can provide a percentage discount, a fixed amount off, or full complimentary access (100% off). They can also unlock hidden ticket types that require a voucher to purchase.

class VoucherType[source]

Bases: TextChoices

The type of discount a voucher provides.

COMP = 'comp'
PERCENTAGE = 'percentage'
FIXED_AMOUNT = 'fixed_amount'
__new__(value)
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

code

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

voucher_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

discount_value

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

applicable_ticket_types

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

applicable_addons

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

max_uses

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

times_used

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

valid_from

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

valid_until

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

unlocks_hidden_tickets

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property is_valid: bool

Check whether this voucher can currently be redeemed.

A voucher is valid when it is active, has remaining uses, and the current time falls within the optional validity window.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

carts

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_voucher_type_display(*, field=<django.db.models.fields.CharField: voucher_type>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>

Cart management service for conference registration.

Handles cart lifecycle, item management, voucher application, and pricing summary computation. All functions are stateless and operate on Cart model instances directly.

class django_program.registration.services.cart.LineItemSummary[source]

Bases: object

Pricing breakdown for a single cart item.

Parameters:
item_id: int
description: str
quantity: int
unit_price: Decimal
discount: Decimal
line_total: Decimal
condition_discount: Decimal = Decimal('0.00')
condition_name: str = ''
__init__(item_id, description, quantity, unit_price, discount, line_total, condition_discount=Decimal('0.00'), condition_name='')
Parameters:
class django_program.registration.services.cart.CartSummary[source]

Bases: object

Full pricing summary of a cart including voucher and condition discounts.

Parameters:
items: list[LineItemSummary]
subtotal: Decimal
discount: Decimal
total: Decimal
condition_discount: Decimal = Decimal('0.00')
condition_discounts: list[object]
__init__(items, subtotal, discount, total, condition_discount=Decimal('0.00'), condition_discounts=<factory>)
Parameters:
django_program.registration.services.cart.get_or_create_cart(user, conference)[source]

Return the user’s open cart, creating one if none exists.

Expires any stale open carts for this user and conference before looking up or creating a fresh cart.

Parameters:
  • user (object) – The authenticated user (AUTH_USER_MODEL instance).

  • conference (object) – The conference to create the cart for.

Return type:

Cart

Returns:

An open Cart instance with a valid expiry time.

django_program.registration.services.cart.add_ticket(cart, ticket_type, qty=1)[source]

Add a ticket to the cart or increase its quantity.

Validates availability, stock limits, per-user limits, and voucher requirements before modifying the cart.

Parameters:
  • cart (Cart) – The open cart to add the ticket to.

  • ticket_type (TicketType) – The ticket type to add.

  • qty (int) – Number of tickets to add (must be >= 1).

Return type:

CartItem

Returns:

The created or updated CartItem.

Raises:

ValidationError – If the ticket cannot be added due to business rule violations (unavailable, out of stock, limit exceeded, or voucher required).

django_program.registration.services.cart.add_addon(cart, addon, qty=1)[source]

Add an add-on to the cart or increase its quantity.

Validates availability, stock, and ticket-type prerequisites before modifying the cart.

Parameters:
  • cart (Cart) – The open cart to add the add-on to.

  • addon (AddOn) – The add-on to add.

  • qty (int) – Number of add-ons to add (must be >= 1).

Return type:

CartItem

Returns:

The created or updated CartItem.

Raises:

ValidationError – If the add-on cannot be added due to business rule violations (inactive, out of window, prerequisite ticket missing, or out of stock).

django_program.registration.services.cart.remove_item(cart, item_id)[source]

Remove an item from the cart, cascading add-on removals if needed.

When removing a ticket type, any add-ons that require that ticket type (and no other qualifying ticket type remains in the cart) are also removed.

Parameters:
  • cart (Cart) – The cart to remove the item from.

  • item_id (int) – The primary key of the CartItem to remove.

Raises:

ValidationError – If the item does not exist or does not belong to this cart.

Return type:

None

django_program.registration.services.cart.update_quantity(cart, item_id, qty)[source]

Update the quantity of a cart item.

If the new quantity is zero or negative the item is removed instead. Re-validates stock and per-user limits for the new quantity.

Parameters:
  • cart (Cart) – The cart containing the item.

  • item_id (int) – The primary key of the CartItem to update.

  • qty (int) – The new absolute quantity.

Return type:

CartItem | None

Returns:

The updated CartItem, or None if the item was removed.

Raises:

ValidationError – If the new quantity violates stock or per-user limits, or if the item does not belong to this cart.

django_program.registration.services.cart.apply_voucher(cart, code)[source]

Apply a voucher code to the cart.

Parameters:
  • cart (Cart) – The cart to apply the voucher to.

  • code (str) – The voucher code string.

Return type:

Voucher

Returns:

The validated Voucher instance now attached to the cart.

Raises:

ValidationError – If the voucher code is not found, not valid, or does not belong to this cart’s conference.

django_program.registration.services.cart.get_summary(cart)[source]

Compute a full pricing summary of the cart.

Iterates all cart items, applies any voucher discounts, and returns a structured summary with per-item and aggregate totals.

Parameters:

cart (Cart) – The cart to summarise.

Return type:

CartSummary

Returns:

A CartSummary with line items, subtotal, discount, and total.

django_program.registration.services.cart.get_summary_from_items(cart, items)[source]

Compute pricing summary using a pre-fetched cart-item snapshot.

Condition-based discounts are applied first, then voucher discounts are calculated on the post-condition price.

Parameters:
Return type:

CartSummary

Checkout service for converting carts into orders.

Handles the atomic checkout flow, credit application, and order cancellation. All methods are stateless and operate on model instances directly.

class django_program.registration.services.checkout.CheckoutService[source]

Bases: object

Stateless service for checkout operations.

Converts carts into orders, applies credits, and handles cancellations.

static checkout(cart, *, billing_name='', billing_email='', billing_company='')[source]

Convert a cart into an order atomically.

Re-validates stock, pricing, and voucher validity at checkout time to prevent stale-cart issues. Creates an Order with PENDING status, snapshots each CartItem into OrderLineItems, records voucher details, and marks the cart as CHECKED_OUT.

Parameters:
  • cart (Cart) – The open cart to check out.

  • billing_name (str) – Customer billing name.

  • billing_email (str) – Customer billing email.

  • billing_company (str) – Customer billing company.

Return type:

Order

Returns:

The newly created Order with PENDING status.

Raises:

ValidationError – If the cart is empty, expired, not open, or if stock/price validation fails at checkout time.

static apply_credit(order, credit)[source]

Apply a store credit to an order.

Creates a CREDIT payment record and marks the credit as APPLIED. If the credit covers the full remaining balance, transitions the order to PAID and fires the order_paid signal.

Parameters:
  • order (Order) – The order to apply the credit to.

  • credit (Credit) – The available credit to apply.

Return type:

Payment

Returns:

The created Payment record.

Raises:

ValidationError – If the order is not PENDING, the credit is not AVAILABLE, or the credit belongs to a different conference/user.

static cancel_order(order)[source]

Cancel a pending order and release associated resources.

Reverses any succeeded credit payments (restoring the Credit to AVAILABLE), transitions the order to CANCELLED, and decrements the voucher usage counter if a voucher was used.

Parameters:

order (Order) – The order to cancel.

Return type:

Order

Returns:

The updated Order with CANCELLED status.

Raises:

ValidationError – If the order cannot be cancelled (not PENDING).

Payment service for processing order payments.

Handles Stripe payment initiation, complimentary order fulfillment, and manual staff-entered payments. All methods are stateless and operate on model instances directly.

class django_program.registration.services.payment.PaymentService[source]

Bases: object

Stateless service for payment operations.

Orchestrates Stripe payment flows, complimentary order fulfillment, and manual staff payments against registration orders.

static initiate_payment(order)[source]

Initiate a Stripe payment flow for the given order.

Creates a Stripe customer (if needed), a PaymentIntent, and a pending Payment record. Returns the client_secret for the frontend to confirm via Stripe.js.

Parameters:

order (Order) – The order to collect payment for.

Return type:

str

Returns:

The Stripe client_secret string for frontend confirmation.

Raises:
  • ValidationError – If the order is not in PENDING status.

  • ValueError – If the conference has no Stripe key configured, or if the client_secret format is unexpected.

static record_comp(order)[source]

Record a complimentary payment for a zero-total order.

Used for speaker comps, 100% voucher discounts, or any other scenario where the order total is zero.

Parameters:

order (Order) – The order to fulfill as complimentary.

Return type:

Payment

Returns:

The created Payment record with SUCCEEDED status.

Raises:

ValidationError – If the order is not PENDING or has a non-zero total.

static record_manual(order, *, amount, reference='', note='', staff_user=None)[source]

Record a manual payment entered by staff.

Used for at-the-door cash payments, wire transfers, or other off-platform payment methods. If the cumulative succeeded payments meet or exceed the order total, the order is transitioned to PAID.

Parameters:
  • order (Order) – The order to record payment against.

  • amount (Decimal) – The payment amount (must be positive).

  • reference (str) – An optional external reference (e.g. receipt number).

  • note (str) – An optional staff note about the payment.

  • staff_user (AbstractBaseUser | None) – The staff member recording the payment.

Return type:

Payment

Returns:

The created Payment record with SUCCEEDED status.

Raises:

ValidationError – If the order is not PENDING or the amount is not positive.

Refund service for processing order refunds and credit applications.

Handles Stripe refund creation, store credit issuance, and credit-as-payment application. All methods are stateless and operate on model instances directly.

class django_program.registration.services.refund.RefundService[source]

Bases: object

Stateless service for refund and credit operations.

Processes full and partial Stripe refunds, issues store credits, and applies existing credits as payment toward new orders.

static create_refund(order, *, amount, reason='requested_by_customer', staff_user=None)[source]

Issue a full or partial refund for a Stripe-paid order.

Validates the order state, calculates the refundable balance, calls the Stripe API to create the refund, and issues a store Credit record. The order status is updated to REFUNDED or PARTIALLY_REFUNDED depending on whether the cumulative refund total covers the full order amount.

Parameters:
  • order (Order) – The order to refund. Must be PAID or PARTIALLY_REFUNDED.

  • amount (Decimal) – The refund amount. Must be positive and not exceed the remaining refundable balance.

  • reason (str) – The Stripe refund reason string (e.g. "requested_by_customer", "duplicate", "fraudulent").

  • staff_user (AbstractBaseUser | None) – Optional staff user initiating the refund, recorded on the credit note for audit purposes.

Return type:

Credit

Returns:

The newly created Credit with AVAILABLE status.

Raises:

ValidationError – If the order is not in a refundable state, the amount is invalid, or no Stripe payment exists on the order.

static apply_credit_as_refund(credit, target_order)[source]

Apply an existing store credit as payment toward an order.

Deducts the applied amount from the credit’s remaining balance and creates a CREDIT payment on the target order. If the credit is fully consumed it transitions to APPLIED. If the order becomes fully paid it transitions to PAID and the order_paid signal fires.

Parameters:
  • credit (Credit) – The available store credit to apply.

  • target_order (Order) – The pending order to apply the credit toward.

Return type:

Payment

Returns:

The created Payment record with CREDIT method and SUCCEEDED status.

Raises:

ValidationError – If the credit is not available, has no remaining balance, the order is not pending, or the credit and order belong to different users or conferences.

Synchronization service for importing Pretalx data into Django models.

Provides PretalxSyncService which orchestrates the import of speakers, talks, and schedule slots from a Pretalx event into the corresponding Django models. Each sync method is idempotent and uses bulk operations for performance.

class django_program.pretalx.sync.PretalxSyncService[source]

Bases: object

Synchronizes speaker, talk, and schedule data from Pretalx to Django models.

Builds a PretalxClient from the conference’s pretalx_event_slug and the global Pretalx configuration, then provides methods to sync each entity type individually or all at once.

Parameters:

conference (Conference) – The conference whose Pretalx data should be synced.

Raises:

ValueError – If the conference has no pretalx_event_slug configured.

__init__(conference)[source]

Initialize the sync service for the given conference.

Parameters:

conference (Conference) – The conference whose Pretalx data should be synced.

Raises:

ValueError – If the conference has no pretalx_event_slug configured.

sync_rooms()[source]

Fetch rooms from Pretalx and upsert into the database.

Return type:

int

Returns:

The number of rooms synced.

sync_speakers()[source]

Fetch speakers from Pretalx and upsert into the database.

Uses bulk operations for performance and delegates to sync_speakers_iter() which yields progress dicts.

Return type:

int

Returns:

The number of speakers synced.

sync_speakers_iter()[source]

Bulk sync speakers from Pretalx, yielding progress updates.

Yields:

A {"phase": "fetching"} dict before the API call, dicts with current/total keys during processing, and a final dict with count when complete.

Return type:

Iterator[dict[str, int | str]]

sync_talks()[source]

Fetch talks from Pretalx and upsert into the database.

Uses bulk operations for performance and delegates to sync_talks_iter() which yields progress dicts.

Return type:

int

Returns:

The number of talks synced.

sync_talks_iter()[source]

Bulk sync talks from Pretalx, yielding progress updates.

Yields:

A {"phase": "fetching"} dict before the API call, dicts with current/total keys during processing, and a final dict with count when complete.

Return type:

Iterator[dict[str, int | str]]

sync_schedule(*, allow_large_deletions=False)[source]

Fetch schedule slots from Pretalx and upsert into the database.

Slots that no longer appear in the Pretalx schedule are deleted after the sync completes.

Parameters:

allow_large_deletions (bool) – When True, bypasses the schedule-drop safety guard and permits large stale-slot deletions.

Return type:

tuple[int, int]

Returns:

A tuple of (synced_count, unscheduled_count) where unscheduled_count is the number of talks that still have no scheduled slot after the sync.

apply_type_defaults()[source]

Apply SubmissionTypeDefault records to unscheduled talks.

For each configured submission type default, finds talks of that type that have no room assigned and applies the default room and time slot.

Return type:

int

Returns:

The number of talks that were modified by type defaults.

sync_all(*, allow_large_deletions=False)[source]

Run all sync operations in dependency order.

Return type:

dict[str, int]

Returns:

A mapping of entity type to the number synced. The schedule_slots key contains only the synced count; unscheduled_talks is added when any talks lack a slot. type_defaults_applied is added when type defaults modify any talks.

Parameters:

allow_large_deletions (bool)

Sponsor level, sponsor, benefit, and bulk purchase models for django-program.

class django_program.sponsors.models.SponsorLevel[source]

Bases: Model

A sponsorship tier for a conference.

Defines a named tier (e.g. “Gold”, “Silver”, “Bronze”) with pricing, a description of included benefits, and the number of complimentary tickets that sponsors at this level receive automatically.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

cost

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

benefits_summary

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

comp_ticket_count

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

order

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

save(*args, **kwargs)[source]

Auto-generate slug from name if not set.

Parameters:
Return type:

None

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
sponsor_overrides

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

sponsors

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.sponsors.models.Sponsor[source]

Bases: Model

A sponsoring organization for a conference.

Represents a company or organization that has purchased a sponsorship package. Each sponsor belongs to a single level and conference, with contact details and branding assets for the conference website.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

level

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

external_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

website_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Just like the FileDescriptor, but for ImageFields. The only difference is assigning the width/height to the width_field/height_field, if appropriate.

logo_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

contact_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

contact_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

save(*args, **kwargs)[source]

Auto-generate slug from name if not set.

Parameters:
Return type:

None

clean()[source]

Validate that the sponsor’s level belongs to the same conference.

Return type:

None

property effective_name: str

Return the overridden value if set, otherwise the synced value.

property effective_description: str

Return the overridden value if set, otherwise the synced value.

property effective_website_url: str

Return the overridden value if set, otherwise the synced value.

property effective_logo_url: str

Return the overridden value if set, otherwise the synced value.

property effective_contact_name: str

Return the overridden value if set, otherwise the synced value.

property effective_contact_email: str

Return the overridden value if set, otherwise the synced value.

property effective_is_active: bool

Return the overridden value if set, otherwise the synced value.

property effective_level: SponsorLevel

Return the overridden value if set, otherwise the synced value.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

benefits

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

bulk_purchases

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

level_id
objects = <django.db.models.manager.Manager object>
override

Accessor to the related object on the reverse side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Place.restaurant is a ReverseOneToOneDescriptor instance.

class django_program.sponsors.models.SponsorOverride[source]

Bases: AbstractOverride

Local override applied on top of sponsor data.

Allows conference organizers to patch individual fields of a sponsor without modifying the original record. Inherits save()/clean() conference auto-set and validation from AbstractOverride.

conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

sponsor

Accessor to the related object on the forward side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Restaurant.place is a ForwardOneToOneDescriptor instance.

override_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

override_description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

override_website_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

override_logo_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

override_contact_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

override_contact_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

override_is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

override_level

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

property is_empty: bool

Return True when no override fields carry a value.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_by_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

note

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
override_level_id
sponsor_id
updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class django_program.sponsors.models.SponsorBenefit[source]

Bases: Model

A specific benefit tracked for a sponsor.

Tracks individual deliverables owed to a sponsor as part of their sponsorship package (e.g. “Logo on website”, “Booth space”). The is_complete flag marks whether the benefit has been fulfilled.

sponsor

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_complete

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

notes

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
sponsor_id
class django_program.sponsors.models.BulkPurchase[source]

Bases: Model

Tracks a sponsor’s bulk voucher purchase order.

Represents a request by a sponsor to purchase a batch of voucher codes (e.g. discounted or comp tickets for employees/clients). Stores the payment lifecycle, Stripe references, and the voucher generation configuration used when the purchase is fulfilled.

class PaymentStatus[source]

Bases: TextChoices

Payment lifecycle states for a bulk purchase.

PENDING = 'pending'
APPROVED = 'approved'
PROCESSING = 'processing'
PAID = 'paid'
FAILED = 'failed'
REFUNDED = 'refunded'
__new__(value)
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

sponsor

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

quantity

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

product_description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

ticket_type

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

addon

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

payment_status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_payment_intent_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

stripe_checkout_session_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

unit_price

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

total_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

voucher_config

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

requested_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

approved_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

clean()[source]

Validate sponsor/conference consistency and bulk eligibility.

Return type:

None

property computed_total: Decimal

Return unit_price * quantity for verification against total_amount.

property vouchers_generated: int

Return the number of vouchers already generated for this purchase.

property is_fulfilled: bool

Return True when all vouchers have been generated.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

addon_id
approved_by_id
conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_payment_status_display(*, field=<django.db.models.fields.CharField: payment_status>)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
requested_by_id
sponsor_id
ticket_type_id
vouchers

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.sponsors.models.BulkPurchaseVoucher[source]

Bases: Model

Links a bulk purchase to its generated voucher codes.

Acts as a join table between BulkPurchase and the registration app’s Voucher model, tracking which vouchers were created as part of a given bulk order.

bulk_purchase

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

voucher

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

bulk_purchase_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
voucher_id

Activity, signup, and travel grant models for django-program.

class django_program.programs.models.Activity[source]

Bases: Model

A conference activity such as a sprint, workshop, or social event.

Represents a scheduled or unscheduled activity that attendees can sign up for. The max_participants field caps signups when set, and spots_remaining computes the live availability.

Activities can be linked to Pretalx submission types via the pretalx_submission_type field. When set, the talks M2M is populated during sync with all talks of that submission type.

class ActivityType[source]

Bases: TextChoices

Classification of conference activities.

SPRINT = 'sprint'
WORKSHOP = 'workshop'
TUTORIAL = 'tutorial'
LIGHTNING_TALK = 'lightning_talk'
SOCIAL = 'social'
OPEN_SPACE = 'open_space'
SUMMIT = 'summit'
OTHER = 'other'
__new__(value)
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

activity_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

location

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

room

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

pretalx_submission_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

talks

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

start_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

end_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

max_participants

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

requires_ticket

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

external_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

organizers

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

synced_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property spots_remaining: int | None

Return the number of remaining confirmed spots, or None if unlimited.

promote_next_waitlisted()[source]

Promote the oldest waitlisted signup to confirmed.

Must be called inside a transaction. Returns the promoted signup or None if no one is waitlisted.

Return type:

ActivitySignup | None

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_activity_type_display(*, field=<django.db.models.fields.CharField: activity_type>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
room_id
signups

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.programs.models.ActivitySignup[source]

Bases: Model

A user’s signup for an activity.

Each user may have at most one non-cancelled signup per activity, enforced by a conditional UniqueConstraint. The status field tracks whether the signup is confirmed, waitlisted, or cancelled.

class SignupStatus[source]

Bases: TextChoices

Lifecycle states for an activity signup.

CONFIRMED = 'confirmed'
WAITLISTED = 'waitlisted'
CANCELLED = 'cancelled'
__new__(value)
activity

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

note

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

cancelled_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property is_confirmed: bool

Whether this signup is confirmed.

property is_waitlisted: bool

Whether this signup is on the waitlist.

property is_cancelled: bool

Whether this signup has been cancelled.

property can_cancel: bool

Whether this signup can be cancelled (confirmed or waitlisted).

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

activity_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
user_id
class django_program.programs.models.TravelGrant[source]

Bases: Model

A travel grant application for a conference.

Modeled after PyCon US’s travel grant system. Tracks the full application lifecycle from submission through review, offer, and acceptance. Sensitive reimbursement details (bank info) are NOT stored here — they belong in a separate secure model collected only after acceptance.

class GrantStatus[source]

Bases: TextChoices

Lifecycle states for a travel grant application.

SUBMITTED = 'submitted'
WITHDRAWN = 'withdrawn'
INFO_NEEDED = 'info_needed'
OFFERED = 'offered'
NEED_MORE = 'need_more'
REJECTED = 'rejected'
DECLINED = 'declined'
ACCEPTED = 'accepted'
DISBURSED = 'disbursed'
__new__(value)
class RequestType[source]

Bases: TextChoices

What the applicant is requesting.

TICKET_ONLY = 'ticket_only'
TICKET_AND_GRANT = 'ticket_and_grant'
__new__(value)
class ExperienceLevel[source]

Bases: TextChoices

Python experience level of the applicant.

BEGINNER = 'beginner'
INTERMEDIATE = 'intermediate'
EXPERT = 'expert'
__new__(value)
class ApplicationType[source]

Bases: TextChoices

Classification of the grant application.

GENERAL = 'general'
STAFF = 'staff'
SPEAKER = 'speaker'
CORE_DEV = 'core_dev'
PSF_BOARD = 'psf_board'
COMMUNITY = 'community'
EDUCATION = 'education'
PYLADIES = 'pyladies'
OTHER = 'other'
__new__(value)
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

status

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

application_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

request_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_from

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

international

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

first_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_airfare_description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_airfare_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_lodging_description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_lodging_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_transit_description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_transit_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_visa_description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

travel_plans_visa_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

requested_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

approved_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

experience_level

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

occupation

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

involvement

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reason

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

days_attending

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

sharing_expenses

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

traveling_with

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reviewer_notes

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

promo_code

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

reviewed_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

reviewed_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

disbursed_amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

disbursed_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

disbursed_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property travel_plans_total: Decimal

Sum of airfare and lodging breakdown amounts.

property is_editable: bool

Whether the applicant can still edit their application.

property is_actionable: bool

Whether the applicant can accept/decline (offered state).

property show_accept_button: bool

Show accept button only when grant is offered.

property show_decline_button: bool

Show decline button only when grant is offered.

property show_withdraw_button: bool

Show withdraw button for submitted or info-needed grants.

property show_edit_button: bool

Show edit button for submitted or info-needed grants.

property is_ready_for_disbursement: bool

Whether grant has approved receipts and payment info, ready to disburse.

property show_provide_info_button: bool

Show provide-info button when reviewers request more info.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
disbursed_by_id
get_application_type_display(*, field=<django.db.models.fields.CharField: application_type>)
get_experience_level_display(*, field=<django.db.models.fields.CharField: experience_level>)
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_request_type_display(*, field=<django.db.models.fields.CharField: request_type>)
get_status_display(*, field=<django.db.models.fields.CharField: status>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

messages

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

objects = <django.db.models.manager.Manager object>
payment_info

Accessor to the related object on the reverse side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Place.restaurant is a ReverseOneToOneDescriptor instance.

receipts

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

reviewed_by_id
user_id
class django_program.programs.models.TravelGrantMessage[source]

Bases: Model

Message attached to a travel grant application.

Reviewers can leave internal notes (visible=False) or messages visible to the applicant (visible=True). Applicant messages are always visible to reviewers.

grant

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

visible

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

message

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
grant_id
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
user_id
django_program.programs.models.receipt_upload_path(instance, filename)[source]

Build per-user upload path: travel_grant_receipts/<username>/<filename>.

Parameters:
Return type:

str

class django_program.programs.models.Receipt[source]

Bases: Model

An expense receipt uploaded by a travel grant recipient.

class ReceiptType[source]

Bases: TextChoices

AIRFARE = 'airfare'
LODGING = 'lodging'
__new__(value)
grant

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

receipt_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

amount

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

receipt_file

The descriptor for the file attribute on the model instance. Return a FieldFile when accessed so you can write code like:

>>> from myapp.models import MyModel
>>> instance = MyModel.objects.get(pk=1)
>>> instance.file.size

Assign a file object on assignment so you can do:

>>> with open('/path/to/hello.world') as f:
...     instance.file = File(f)
approved

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

approved_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

approved_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

flagged

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

flagged_reason

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

flagged_by

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

flagged_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

property status: str

Return the current review status of this receipt.

property can_delete: bool

Whether this receipt can be deleted by the applicant.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

approved_by_id
flagged_by_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)
get_receipt_type_display(*, field=<django.db.models.fields.CharField: receipt_type>)
grant_id
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.programs.models.PaymentInfo[source]

Bases: Model

Secure payment details for travel grant reimbursement.

class PaymentMethod[source]

Bases: TextChoices

ZELLE = 'zelle'
PAYPAL = 'paypal'
ACH = 'ach'
WIRE = 'wire'
WISE = 'wise'
CHECK = 'check'
__new__(value)
grant

Accessor to the related object on the forward side of a one-to-one relation.

In the example:

class Restaurant(Model):
    place = OneToOneField(Place, related_name='restaurant')

Restaurant.place is a ForwardOneToOneDescriptor instance.

payment_method

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

legal_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

address_street

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

address_city

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

address_state

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

address_zip

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

address_country

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

paypal_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

zelle_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

wise_email

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bank_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bank_account_number

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bank_routing_number

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bank_holder_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bank_holder_address

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bank_address

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bank_additional

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_payment_method_display(*, field=<django.db.models.fields.CharField: payment_method>)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
grant_id
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
class django_program.programs.models.Survey[source]

Bases: Model

A survey for collecting attendee feedback (NPS, satisfaction, etc.).

Each conference can have multiple surveys (post-event, per-session, etc.). The survey_type field determines how responses are interpreted.

class SurveyType[source]

Bases: TextChoices

Classification of survey purpose.

NPS = 'nps'
SATISFACTION = 'satisfaction'
SESSION = 'session'
CUSTOM = 'custom'
__new__(value)
conference

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

slug

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

survey_type

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

description

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

is_active

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

updated_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

conference_id
get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_next_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
get_previous_by_updated_at(*, field=<django.db.models.fields.DateTimeField: updated_at>, is_next=False, **kwargs)
get_survey_type_display(*, field=<django.db.models.fields.CharField: survey_type>)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
responses

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class django_program.programs.models.SurveyResponse[source]

Bases: Model

An individual response to a survey.

For NPS surveys, score is 0-10. For satisfaction surveys, score is 1-5. The comment field captures optional free-text feedback.

survey

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

score

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

comment

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
survey_id
user_id