django_program.manage.forms

Model forms for the conference management dashboard.

Each form that wraps a pretalx-synced model accepts an is_synced flag. When the record has been synced from Pretalx (synced_at is not None), all fields are rendered as disabled so organizers cannot accidentally overwrite upstream data.

Classes

ActivityForm

Form for editing a conference activity.

AddOnForm

Form for creating and editing add-ons.

BadgeTemplateForm

Form for creating and editing badge templates.

ConferenceForm

Form for editing conference details.

DisbursementForm

Form for marking a travel grant as disbursed.

DiscountForCategoryForm

Form for creating and editing category-wide percentage discounts.

DiscountForProductForm

Form for creating and editing direct product discounts.

ExpenseCategoryForm

Form for creating and editing expense categories.

ExpenseForm

Form for creating and editing individual expenses.

GroupMemberConditionForm

Form for creating and editing group member conditions.

ImportFromPretalxForm

Form for importing a new conference from a Pretalx event slug.

IncludedProductConditionForm

Form for creating and editing included product conditions.

KPITargetsForm

Form for editing per-conference KPI target thresholds.

ManualPaymentForm

Form for organizers to record a manual payment against an order.

ReceiptFlagForm

Form for flagging a receipt with a reason.

ReviewerMessageForm

Form for reviewers to send a message on a travel grant.

RoomForm

Form for editing a room.

ScheduleSlotForm

Form for editing a schedule slot.

SectionForm

Form for editing a conference section.

SpeakerConditionForm

Form for creating and editing speaker conditions.

SponsorForm

Form for editing a sponsor.

SponsorLevelForm

Form for editing a sponsor level.

TalkForm

Form for editing a talk.

TicketTypeForm

Form for creating and editing ticket types.

TimeOrStockLimitConditionForm

Form for creating and editing time/stock limit conditions.

TravelGrantForm

Form for reviewing a travel grant application.

VoucherForm

Form for creating and editing vouchers.

class django_program.manage.forms.ImportFromPretalxForm[source]

Bases: Form

Form for importing a new conference from a Pretalx event slug.

Accepts a Pretalx event slug and optional conference slug override. The event slug is used to fetch event metadata from the Pretalx API and bootstrap a new Conference object with a full data sync.

base_fields = {'api_token': <django.forms.fields.CharField object>, 'conference_slug': <django.forms.fields.SlugField object>, 'pretalx_event_slug': <django.forms.fields.CharField object>}
declared_fields = {'api_token': <django.forms.fields.CharField object>, 'conference_slug': <django.forms.fields.SlugField object>, 'pretalx_event_slug': <django.forms.fields.CharField object>}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ConferenceForm[source]

Bases: ModelForm

Form for editing conference details.

Stripe secret keys are excluded for security, along with auto-managed timestamp fields. The slug is excluded because it serves as the URL identifier and should not be casually changed.

class Meta[source]

Bases: object

model

alias of Conference

fields = ['name', 'start_date', 'end_date', 'timezone', 'venue', 'address', 'website_url', 'pretalx_event_slug', 'total_capacity', 'revenue_budget', 'target_attendance', 'grant_budget', 'is_active']
widgets = {'end_date': <django.forms.widgets.DateInput object>, 'start_date': <django.forms.widgets.DateInput object>}
base_fields = {'address': <django.forms.fields.CharField object>, 'end_date': <django.forms.fields.DateField object>, 'grant_budget': <django.forms.fields.DecimalField object>, 'is_active': <django.forms.fields.BooleanField object>, 'name': <django.forms.fields.CharField object>, 'pretalx_event_slug': <django.forms.fields.CharField object>, 'revenue_budget': <django.forms.fields.DecimalField object>, 'start_date': <django.forms.fields.DateField object>, 'target_attendance': <django.forms.fields.IntegerField object>, 'timezone': <django.forms.fields.CharField object>, 'total_capacity': <django.forms.fields.IntegerField object>, 'venue': <django.forms.fields.CharField object>, 'website_url': <django.forms.fields.URLField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.KPITargetsForm[source]

Bases: ModelForm

Form for editing per-conference KPI target thresholds.

class Meta[source]

Bases: object

model

alias of KPITargets

fields = ['target_conversion_rate', 'target_refund_rate', 'target_checkin_rate', 'target_fulfillment_rate', 'target_revenue_per_attendee', 'target_room_utilization']
base_fields = {'target_checkin_rate': <django.forms.fields.DecimalField object>, 'target_conversion_rate': <django.forms.fields.DecimalField object>, 'target_fulfillment_rate': <django.forms.fields.DecimalField object>, 'target_refund_rate': <django.forms.fields.DecimalField object>, 'target_revenue_per_attendee': <django.forms.fields.DecimalField object>, 'target_room_utilization': <django.forms.fields.DecimalField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.SectionForm[source]

Bases: ModelForm

Form for editing a conference section.

Parameters:
class Meta[source]

Bases: object

model

alias of Section

fields = ['name', 'start_date', 'end_date', 'order']
widgets = {'end_date': <django.forms.widgets.DateInput object>, 'start_date': <django.forms.widgets.DateInput object>}
__init__(*args, conference=None, **kwargs)[source]

Build date select choices from the conference date range.

Parameters:
base_fields = {'end_date': <django.forms.fields.DateField object>, 'name': <django.forms.fields.CharField object>, 'order': <django.forms.fields.IntegerField object>, 'start_date': <django.forms.fields.DateField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.RoomForm[source]

Bases: ModelForm

Form for editing a room.

When the room has been synced from Pretalx, all fields are disabled to prevent overwriting upstream data.

Parameters:
class Meta[source]

Bases: object

model

alias of Room

fields = ['name', 'description', 'capacity', 'position']
__init__(*args, **kwargs)[source]

Initialise the form and disable fields when synced from Pretalx.

Parameters:
is_synced: bool
base_fields = {'capacity': <django.forms.fields.IntegerField object>, 'description': <django.forms.fields.CharField object>, 'name': <django.forms.fields.CharField object>, 'position': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.TalkForm[source]

Bases: ModelForm

Form for editing a talk.

Pretalx-synced fields are disabled when the record was last synced from the upstream API.

Parameters:
SYNCED_FIELDS: list[str] = ['pretalx_code', 'title', 'abstract', 'description', 'submission_type', 'track', 'duration', 'state', 'speakers', 'room', 'slot_start', 'slot_end']
class Meta[source]

Bases: object

model

alias of Talk

fields = ['pretalx_code', 'title', 'abstract', 'description', 'submission_type', 'track', 'duration', 'state', 'speakers', 'room', 'slot_start', 'slot_end']
__init__(*args, **kwargs)[source]

Initialise the form and disable synced fields when locked by Pretalx.

Parameters:
is_synced: bool
base_fields = {'abstract': <django.forms.fields.CharField object>, 'description': <django.forms.fields.CharField object>, 'duration': <django.forms.fields.IntegerField object>, 'pretalx_code': <django.forms.fields.CharField object>, 'room': <django.forms.models.ModelChoiceField object>, 'slot_end': <django.forms.fields.DateTimeField object>, 'slot_start': <django.forms.fields.DateTimeField object>, 'speakers': <django.forms.models.ModelMultipleChoiceField object>, 'state': <django.forms.fields.CharField object>, 'submission_type': <django.forms.fields.CharField object>, 'title': <django.forms.fields.CharField object>, 'track': <django.forms.fields.CharField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ScheduleSlotForm[source]

Bases: ModelForm

Form for editing a schedule slot.

Pretalx-synced fields are disabled when the slot has been synced from the upstream Pretalx API.

Parameters:
SYNCED_FIELDS: list[str] = ['talk', 'title', 'room', 'start', 'end', 'slot_type']
class Meta[source]

Bases: object

model

alias of ScheduleSlot

fields = ['talk', 'title', 'room', 'start', 'end', 'slot_type']
__init__(*args, **kwargs)[source]

Initialise the form and disable synced fields when locked by Pretalx.

Parameters:
is_synced: bool
base_fields = {'end': <django.forms.fields.DateTimeField object>, 'room': <django.forms.models.ModelChoiceField object>, 'slot_type': <django.forms.fields.TypedChoiceField object>, 'start': <django.forms.fields.DateTimeField object>, 'talk': <django.forms.models.ModelChoiceField object>, 'title': <django.forms.fields.CharField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.SponsorLevelForm[source]

Bases: ModelForm

Form for editing a sponsor level.

class Meta[source]

Bases: object

model

alias of SponsorLevel

fields = ['name', 'cost', 'description', 'benefits_summary', 'comp_ticket_count', 'order']
base_fields = {'benefits_summary': <django.forms.fields.CharField object>, 'comp_ticket_count': <django.forms.fields.IntegerField object>, 'cost': <django.forms.fields.DecimalField object>, 'description': <django.forms.fields.CharField object>, 'name': <django.forms.fields.CharField object>, 'order': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.SponsorForm[source]

Bases: ModelForm

Form for editing a sponsor.

When the sponsor has an external_id (synced from the PSF API), fields that come from the upstream API are disabled to prevent overwriting synced data.

Parameters:
SYNCED_FIELDS: list[str] = ['name', 'level', 'website_url', 'logo_url', 'description']
class Meta[source]

Bases: object

model

alias of Sponsor

fields = ['name', 'level', 'website_url', 'logo', 'logo_url', 'description', 'contact_name', 'contact_email', 'is_active']
__init__(*args, **kwargs)[source]

Initialise the form and disable synced fields when locked by PSF sync.

Parameters:
is_synced: bool
base_fields = {'contact_email': <django.forms.fields.EmailField object>, 'contact_name': <django.forms.fields.CharField object>, 'description': <django.forms.fields.CharField object>, 'is_active': <django.forms.fields.BooleanField object>, 'level': <django.forms.models.ModelChoiceField object>, 'logo': <django.forms.fields.ImageField object>, 'logo_url': <django.forms.fields.URLField object>, 'name': <django.forms.fields.CharField object>, 'website_url': <django.forms.fields.URLField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ActivityForm[source]

Bases: ModelForm

Form for editing a conference activity.

The slug field is excluded because it is auto-generated from the activity name. The room field provides an optional link to a Pretalx-synced room for venue assignment.

class Meta[source]

Bases: object

model

alias of Activity

fields = ['name', 'activity_type', 'description', 'room', 'location', 'pretalx_submission_type', 'start_time', 'end_time', 'max_participants', 'requires_ticket', 'external_url', 'is_active', 'organizers']
widgets = {'end_time': <django.forms.widgets.DateTimeInput object>, 'organizers': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'start_time': <django.forms.widgets.DateTimeInput object>}
base_fields = {'activity_type': <django.forms.fields.TypedChoiceField object>, 'description': <django.forms.fields.CharField object>, 'end_time': <django.forms.fields.DateTimeField object>, 'external_url': <django.forms.fields.URLField object>, 'is_active': <django.forms.fields.BooleanField object>, 'location': <django.forms.fields.CharField object>, 'max_participants': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'organizers': <django.forms.models.ModelMultipleChoiceField object>, 'pretalx_submission_type': <django.forms.fields.CharField object>, 'requires_ticket': <django.forms.fields.BooleanField object>, 'room': <django.forms.models.ModelChoiceField object>, 'start_time': <django.forms.fields.DateTimeField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.TravelGrantForm[source]

Bases: ModelForm

Form for reviewing a travel grant application.

class Meta[source]

Bases: object

model

alias of TravelGrant

fields = ['status', 'approved_amount', 'promo_code', 'reviewer_notes']
widgets = {'status': <django.forms.widgets.Select object>}
base_fields = {'approved_amount': <django.forms.fields.DecimalField object>, 'promo_code': <django.forms.fields.CharField object>, 'reviewer_notes': <django.forms.fields.CharField object>, 'status': <django.forms.fields.TypedChoiceField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ReviewerMessageForm[source]

Bases: ModelForm

Form for reviewers to send a message on a travel grant.

class Meta[source]

Bases: object

model

alias of TravelGrantMessage

fields = ['message', 'visible']
widgets = {'message': <django.forms.widgets.Textarea object>}
labels = {'visible': 'Visible to applicant'}
base_fields = {'message': <django.forms.fields.CharField object>, 'visible': <django.forms.fields.BooleanField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ReceiptFlagForm[source]

Bases: Form

Form for flagging a receipt with a reason.

base_fields = {'reason': <django.forms.fields.CharField object>}
declared_fields = {'reason': <django.forms.fields.CharField object>}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.DisbursementForm[source]

Bases: Form

Form for marking a travel grant as disbursed.

base_fields = {'disbursed_amount': <django.forms.fields.DecimalField object>}
declared_fields = {'disbursed_amount': <django.forms.fields.DecimalField object>}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.TicketTypeForm[source]

Bases: ModelForm

Form for creating and editing ticket types.

Provides datetime-local widgets for availability windows and auto-populates the slug from the ticket name on creation.

class Meta[source]

Bases: object

model

alias of TicketType

fields = ['name', 'slug', 'description', 'price', 'available_from', 'available_until', 'total_quantity', 'limit_per_user', 'requires_voucher', 'is_active', 'bulk_enabled', 'order']
widgets = {'available_from': <django.forms.widgets.DateTimeInput object>, 'available_until': <django.forms.widgets.DateTimeInput object>, 'description': <django.forms.widgets.Textarea object>}
base_fields = {'available_from': <django.forms.fields.DateTimeField object>, 'available_until': <django.forms.fields.DateTimeField object>, 'bulk_enabled': <django.forms.fields.BooleanField object>, 'description': <django.forms.fields.CharField object>, 'is_active': <django.forms.fields.BooleanField object>, 'limit_per_user': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'order': <django.forms.fields.IntegerField object>, 'price': <django.forms.fields.DecimalField object>, 'requires_voucher': <django.forms.fields.BooleanField object>, 'slug': <django.forms.fields.SlugField object>, 'total_quantity': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.AddOnForm[source]

Bases: ModelForm

Form for creating and editing add-ons.

Provides datetime-local widgets for availability windows.

class Meta[source]

Bases: object

model

alias of AddOn

fields = ['name', 'slug', 'description', 'price', 'available_from', 'available_until', 'total_quantity', 'is_active', 'bulk_enabled', 'order']
widgets = {'available_from': <django.forms.widgets.DateTimeInput object>, 'available_until': <django.forms.widgets.DateTimeInput object>, 'description': <django.forms.widgets.Textarea object>}
base_fields = {'available_from': <django.forms.fields.DateTimeField object>, 'available_until': <django.forms.fields.DateTimeField object>, 'bulk_enabled': <django.forms.fields.BooleanField object>, 'description': <django.forms.fields.CharField object>, 'is_active': <django.forms.fields.BooleanField object>, 'name': <django.forms.fields.CharField object>, 'order': <django.forms.fields.IntegerField object>, 'price': <django.forms.fields.DecimalField object>, 'slug': <django.forms.fields.SlugField object>, 'total_quantity': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.VoucherForm[source]

Bases: ModelForm

Form for creating and editing vouchers.

Uses checkbox widgets for the many-to-many ticket type and add-on fields so organizers can quickly select applicable items.

class Meta[source]

Bases: object

model

alias of Voucher

fields = ['code', 'voucher_type', 'discount_value', 'max_uses', 'valid_from', 'valid_until', 'unlocks_hidden_tickets', 'is_active', 'applicable_ticket_types', 'applicable_addons']
widgets = {'applicable_addons': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'applicable_ticket_types': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'valid_from': <django.forms.widgets.DateTimeInput object>, 'valid_until': <django.forms.widgets.DateTimeInput object>}
base_fields = {'applicable_addons': <django.forms.models.ModelMultipleChoiceField object>, 'applicable_ticket_types': <django.forms.models.ModelMultipleChoiceField object>, 'code': <django.forms.fields.CharField object>, 'discount_value': <django.forms.fields.DecimalField object>, 'is_active': <django.forms.fields.BooleanField object>, 'max_uses': <django.forms.fields.IntegerField object>, 'unlocks_hidden_tickets': <django.forms.fields.BooleanField object>, 'valid_from': <django.forms.fields.DateTimeField object>, 'valid_until': <django.forms.fields.DateTimeField object>, 'voucher_type': <django.forms.fields.TypedChoiceField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ManualPaymentForm[source]

Bases: Form

Form for organizers to record a manual payment against an order.

Supports comp, credit, and manual payment methods. The note field allows attaching context (e.g. check number, approval reference).

base_fields = {'amount': <django.forms.fields.DecimalField object>, 'method': <django.forms.fields.ChoiceField object>, 'note': <django.forms.fields.CharField object>}
declared_fields = {'amount': <django.forms.fields.DecimalField object>, 'method': <django.forms.fields.ChoiceField object>, 'note': <django.forms.fields.CharField object>}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.TimeOrStockLimitConditionForm[source]

Bases: ModelForm

Form for creating and editing time/stock limit conditions.

Provides datetime-local widgets for the time window and checkbox widgets for the M2M product fields.

class Meta[source]

Bases: object

model

alias of TimeOrStockLimitCondition

fields = ['name', 'description', 'is_active', 'priority', 'discount_type', 'discount_value', 'max_quantity', 'applicable_ticket_types', 'applicable_addons', 'start_time', 'end_time', 'limit']
widgets = {'applicable_addons': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'applicable_ticket_types': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'description': <django.forms.widgets.Textarea object>, 'end_time': <django.forms.widgets.DateTimeInput object>, 'start_time': <django.forms.widgets.DateTimeInput object>}
base_fields = {'applicable_addons': <django.forms.models.ModelMultipleChoiceField object>, 'applicable_ticket_types': <django.forms.models.ModelMultipleChoiceField object>, 'description': <django.forms.fields.CharField object>, 'discount_type': <django.forms.fields.TypedChoiceField object>, 'discount_value': <django.forms.fields.DecimalField object>, 'end_time': <django.forms.fields.DateTimeField object>, 'is_active': <django.forms.fields.BooleanField object>, 'limit': <django.forms.fields.IntegerField object>, 'max_quantity': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'priority': <django.forms.fields.IntegerField object>, 'start_time': <django.forms.fields.DateTimeField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.SpeakerConditionForm[source]

Bases: ModelForm

Form for creating and editing speaker conditions.

Controls whether primary speakers and/or copresenters qualify for the configured discount.

class Meta[source]

Bases: object

model

alias of SpeakerCondition

fields = ['name', 'description', 'is_active', 'priority', 'discount_type', 'discount_value', 'max_quantity', 'applicable_ticket_types', 'applicable_addons', 'is_presenter', 'is_copresenter']
widgets = {'applicable_addons': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'applicable_ticket_types': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'description': <django.forms.widgets.Textarea object>}
base_fields = {'applicable_addons': <django.forms.models.ModelMultipleChoiceField object>, 'applicable_ticket_types': <django.forms.models.ModelMultipleChoiceField object>, 'description': <django.forms.fields.CharField object>, 'discount_type': <django.forms.fields.TypedChoiceField object>, 'discount_value': <django.forms.fields.DecimalField object>, 'is_active': <django.forms.fields.BooleanField object>, 'is_copresenter': <django.forms.fields.BooleanField object>, 'is_presenter': <django.forms.fields.BooleanField object>, 'max_quantity': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'priority': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.GroupMemberConditionForm[source]

Bases: ModelForm

Form for creating and editing group member conditions.

Uses checkbox widgets for the groups and product M2M fields.

class Meta[source]

Bases: object

model

alias of GroupMemberCondition

fields = ['name', 'description', 'is_active', 'priority', 'discount_type', 'discount_value', 'max_quantity', 'applicable_ticket_types', 'applicable_addons', 'groups']
widgets = {'applicable_addons': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'applicable_ticket_types': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'description': <django.forms.widgets.Textarea object>, 'groups': <class 'django.forms.widgets.CheckboxSelectMultiple'>}
base_fields = {'applicable_addons': <django.forms.models.ModelMultipleChoiceField object>, 'applicable_ticket_types': <django.forms.models.ModelMultipleChoiceField object>, 'description': <django.forms.fields.CharField object>, 'discount_type': <django.forms.fields.TypedChoiceField object>, 'discount_value': <django.forms.fields.DecimalField object>, 'groups': <django.forms.models.ModelMultipleChoiceField object>, 'is_active': <django.forms.fields.BooleanField object>, 'max_quantity': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'priority': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.IncludedProductConditionForm[source]

Bases: ModelForm

Form for creating and editing included product conditions.

Uses checkbox widgets for both the enabling and target product M2M fields.

class Meta[source]

Bases: object

model

alias of IncludedProductCondition

fields = ['name', 'description', 'is_active', 'priority', 'discount_type', 'discount_value', 'max_quantity', 'applicable_ticket_types', 'applicable_addons', 'enabling_ticket_types']
widgets = {'applicable_addons': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'applicable_ticket_types': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'description': <django.forms.widgets.Textarea object>, 'enabling_ticket_types': <class 'django.forms.widgets.CheckboxSelectMultiple'>}
base_fields = {'applicable_addons': <django.forms.models.ModelMultipleChoiceField object>, 'applicable_ticket_types': <django.forms.models.ModelMultipleChoiceField object>, 'description': <django.forms.fields.CharField object>, 'discount_type': <django.forms.fields.TypedChoiceField object>, 'discount_value': <django.forms.fields.DecimalField object>, 'enabling_ticket_types': <django.forms.models.ModelMultipleChoiceField object>, 'is_active': <django.forms.fields.BooleanField object>, 'max_quantity': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'priority': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.DiscountForProductForm[source]

Bases: ModelForm

Form for creating and editing direct product discounts.

Provides datetime-local widgets for the time window and checkbox widgets for the M2M product fields.

class Meta[source]

Bases: object

model

alias of DiscountForProduct

fields = ['name', 'description', 'is_active', 'priority', 'discount_type', 'discount_value', 'max_quantity', 'applicable_ticket_types', 'applicable_addons', 'start_time', 'end_time', 'limit']
widgets = {'applicable_addons': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'applicable_ticket_types': <class 'django.forms.widgets.CheckboxSelectMultiple'>, 'description': <django.forms.widgets.Textarea object>, 'end_time': <django.forms.widgets.DateTimeInput object>, 'start_time': <django.forms.widgets.DateTimeInput object>}
base_fields = {'applicable_addons': <django.forms.models.ModelMultipleChoiceField object>, 'applicable_ticket_types': <django.forms.models.ModelMultipleChoiceField object>, 'description': <django.forms.fields.CharField object>, 'discount_type': <django.forms.fields.TypedChoiceField object>, 'discount_value': <django.forms.fields.DecimalField object>, 'end_time': <django.forms.fields.DateTimeField object>, 'is_active': <django.forms.fields.BooleanField object>, 'limit': <django.forms.fields.IntegerField object>, 'max_quantity': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'priority': <django.forms.fields.IntegerField object>, 'start_time': <django.forms.fields.DateTimeField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.DiscountForCategoryForm[source]

Bases: ModelForm

Form for creating and editing category-wide percentage discounts.

Provides datetime-local widgets for the time window and boolean toggles for ticket/add-on category targeting.

class Meta[source]

Bases: object

model

alias of DiscountForCategory

fields = ['name', 'description', 'is_active', 'priority', 'percentage', 'apply_to_tickets', 'apply_to_addons', 'start_time', 'end_time', 'limit']
widgets = {'description': <django.forms.widgets.Textarea object>, 'end_time': <django.forms.widgets.DateTimeInput object>, 'start_time': <django.forms.widgets.DateTimeInput object>}
base_fields = {'apply_to_addons': <django.forms.fields.BooleanField object>, 'apply_to_tickets': <django.forms.fields.BooleanField object>, 'description': <django.forms.fields.CharField object>, 'end_time': <django.forms.fields.DateTimeField object>, 'is_active': <django.forms.fields.BooleanField object>, 'limit': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'percentage': <django.forms.fields.DecimalField object>, 'priority': <django.forms.fields.IntegerField object>, 'start_time': <django.forms.fields.DateTimeField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.BadgeTemplateForm[source]

Bases: ModelForm

Form for creating and editing badge templates.

Provides color input widgets for the color fields and a file input for the optional logo upload.

class Meta[source]

Bases: object

model

alias of BadgeTemplate

fields = ['name', 'slug', 'is_default', 'width_mm', 'height_mm', 'show_name', 'show_email', 'show_company', 'show_ticket_type', 'show_qr_code', 'show_conference_name', 'ticket_banner_position', 'font_name', 'font_body', 'background_color', 'text_color', 'accent_color', 'logo', 'background_image']
widgets = {'accent_color': <django.forms.widgets.TextInput object>, 'background_color': <django.forms.widgets.TextInput object>, 'text_color': <django.forms.widgets.TextInput object>}
base_fields = {'accent_color': <django.forms.fields.CharField object>, 'background_color': <django.forms.fields.CharField object>, 'background_image': <django.forms.fields.ImageField object>, 'font_body': <django.forms.fields.CharField object>, 'font_name': <django.forms.fields.CharField object>, 'height_mm': <django.forms.fields.IntegerField object>, 'is_default': <django.forms.fields.BooleanField object>, 'logo': <django.forms.fields.ImageField object>, 'name': <django.forms.fields.CharField object>, 'show_company': <django.forms.fields.BooleanField object>, 'show_conference_name': <django.forms.fields.BooleanField object>, 'show_email': <django.forms.fields.BooleanField object>, 'show_name': <django.forms.fields.BooleanField object>, 'show_qr_code': <django.forms.fields.BooleanField object>, 'show_ticket_type': <django.forms.fields.BooleanField object>, 'slug': <django.forms.fields.SlugField object>, 'text_color': <django.forms.fields.CharField object>, 'ticket_banner_position': <django.forms.fields.TypedChoiceField object>, 'width_mm': <django.forms.fields.IntegerField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ExpenseCategoryForm[source]

Bases: ModelForm

Form for creating and editing expense categories.

class Meta[source]

Bases: object

model

alias of ExpenseCategory

fields = ['name', 'slug', 'description', 'budget_amount', 'order']
widgets = {'description': <django.forms.widgets.Textarea object>}
base_fields = {'budget_amount': <django.forms.fields.DecimalField object>, 'description': <django.forms.fields.CharField object>, 'name': <django.forms.fields.CharField object>, 'order': <django.forms.fields.IntegerField object>, 'slug': <django.forms.fields.SlugField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class django_program.manage.forms.ExpenseForm[source]

Bases: ModelForm

Form for creating and editing individual expenses.

Parameters:
class Meta[source]

Bases: object

model

alias of Expense

fields = ['category', 'description', 'amount', 'vendor', 'date', 'receipt_reference', 'notes']
widgets = {'date': <django.forms.widgets.DateInput object>, 'notes': <django.forms.widgets.Textarea object>}
__init__(*args, **kwargs)[source]

Initialise the form, scoping category choices to the conference.

Parameters:
base_fields = {'amount': <django.forms.fields.DecimalField object>, 'category': <django.forms.models.ModelChoiceField object>, 'date': <django.forms.fields.DateField object>, 'description': <django.forms.fields.CharField object>, 'notes': <django.forms.fields.CharField object>, 'receipt_reference': <django.forms.fields.CharField object>, 'vendor': <django.forms.fields.CharField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.