Ticket Component Reference

This section documents the critical Ticket component modules (eventyay_common and control).

Eventyay Common Module

Core Components

class eventyay.eventyay_common.apps.EventyayConfig(app_name, app_module)

Bases: AppConfig

name = 'eventyay.eventyay_common'
class eventyay.eventyay_common.utils.EventCreatedFor(value)

Bases: StrEnum

BOTH = 'all'
TALK = 'talk'
TICKET = 'tickets'
eventyay.eventyay_common.utils.check_create_permission(request)

Check if the user has permission to create videos (‘can_create_events’ permission) and has admin session mode (admin session mode has full permissions) @param request: user request @return: true if the user has permission to create videos or has admin session mode else false

eventyay.eventyay_common.utils.encode_email(email)

Generate a unique UID token by hashing the email address using SHA-256 and return the first 7 characters. @param email: The user’s email address. @return: The UID token, which consists of the first 7 characters of the hashed email.

eventyay.eventyay_common.utils.generate_token(request)

Generate token for video system @param request: user request @return: jwt

eventyay.eventyay_common.utils.get_subevent(request: HttpRequest) SubEvent | None

Retrieve a specific subevent based on request parameters.

class eventyay.eventyay_common.navigation.MenuItem

Bases: TypedDict

active: bool
icon: str
label: str
url: str
eventyay.eventyay_common.navigation.get_account_navigation(request: HttpRequest) List[MenuItem]

Generate navigation items for account.

eventyay.eventyay_common.navigation.get_event_navigation(request: HttpRequest, event: Event) List[MenuItem]

Generate navigation items for an event.

eventyay.eventyay_common.navigation.get_global_navigation(request: HttpRequest) List[MenuItem]

Generate navigation items for global.

class eventyay.eventyay_common.base_tasks.CreateWorldTask

Bases: Task

A base class for handling video platform creation tasks for events.

This class is responsible for: - Setting up video plugins for events - Managing plugin attachments - Configuring video settings and JWT authentication - Handling post-task success operations

Raises:

ValueError: When event doesn’t exist or validation fails ConfigurationError: When plugin setup fails

add_plugin(event: Event, plugin_name: str) str

Add a plugin to an event’s plugin list.

Args:

event: The event instance to add the plugin to plugin_name: Name of the plugin to add

Returns:

str: Comma-separated string of all plugins including the new one

attach_plugin_to_event(plugin_name: str, event_slug: str) None

Attach a plugin to an event by updating its plugins list.

Args:

plugin_name: Name of the plugin to attach event_slug: Unique slug identifier of the event

Raises:

ValueError: If the event does not exist

check_installed_plugin(plugin_name: str) bool

Check if a plugin is installed.

Args:

plugin_name: Name of the plugin to check

Returns:

Boolean: True if installed, False otherwise

extract_jwt_config(world_data: dict) dict

Extract JWT configuration from world data.

Args:

world_data: Dictionary containing world configuration data

Returns:

dict: JWT configuration with secret, issuer, and audience

on_success(retval: Any, task_id: str, args: tuple, kwargs: dict) Any

Handle successful task completion by setting up the video plugin. Enable video plugin for the event

Args:

retval: Task return value containing world data task_id: ID of the completed task args: Original task arguments kwargs: Original task keyword arguments

Returns:

Any: Result from parent class on_success method

priority = None

Default task priority.

rate_limit = None

Rate limit for this task type. Examples: None (no rate limit), ‘100/s’ (hundred tasks a second), ‘100/m’ (hundred tasks a minute),`’100/h’` (hundred tasks an hour)

request_stack = <celery.utils.threads._LocalStack object>

Task request stack, the current request will be the topmost.

save_video_settings_information(event_id: str, video_settings: dict) None

Save video configuration settings for an event.

Args:

event_id: The event identifier video_settings: Dictionary containing video configuration parameters

Raises:

ValueError: If event doesn’t exist or settings validation fails

serializer = 'json'

The name of a serializer that are registered with kombu.serialization.registry. Default is ‘json’.

setup_video_plugin(world_data: dict) None

Setup and configure the video plugin for an event.

Args:

world_data: Dictionary containing world configuration data

Raises:

ValueError: If plugin is not installed or configuration fails

store_errors_even_if_ignored = False

When enabled errors will be stored even if the task is otherwise configured to ignore results.

typing = True

Enable argument checking. You can set this to false if you don’t want the signature to be checked when calling the task. Defaults to app.strict_typing.

class eventyay.eventyay_common.base_tasks.SendEventTask

Bases: Task

on_success(retval: Any, task_id: str, args: tuple, kwargs: dict) Any

Handle successful task completion by updating event settings. Set the event settings to “create_for” both: indicate that the event is created for both tickets and talk

Args:

retval: Task return value task_id: ID of the completed task args: Original task arguments kwargs: Original task keyword arguments

Returns:

Any: Result from parent class on_success method

priority = None

Default task priority.

rate_limit = None

Rate limit for this task type. Examples: None (no rate limit), ‘100/s’ (hundred tasks a second), ‘100/m’ (hundred tasks a minute),`’100/h’` (hundred tasks an hour)

request_stack = <celery.utils.threads._LocalStack object>

Task request stack, the current request will be the topmost.

serializer = 'json'

The name of a serializer that are registered with kombu.serialization.registry. Default is ‘json’.

store_errors_even_if_ignored = False

When enabled errors will be stored even if the task is otherwise configured to ignore results.

typing = True

Enable argument checking. You can set this to false if you don’t want the signature to be checked when calling the task. Defaults to app.strict_typing.

class eventyay.eventyay_common.billing_invoice.InvoicePDFGenerator(billing_invoice: BillingInvoice, organizer_billing_info: OrganizerBillingModel)

Bases: object

A class to generate beautifully styled PDF invoices.

ACCENT_COLOR = Color(.917647,.262745,.207843,1)
PRIMARY_COLOR = Color(.101961,.45098,.909804,1)
SECONDARY_COLOR = Color(.12549,.129412,.141176,1)
generate() FileResponse

Generate the complete PDF invoice.

Forms

class eventyay.eventyay_common.forms.event.EventCommonSettingsForm(*args, **kwargs)

Bases: SettingsForm

auto_fields = ['locales', 'content_locales', 'locale', 'region', 'contact_mail', 'imprint_url', 'logo_image', 'logo_image_large', 'event_logo_image', 'logo_show_title', 'og_image', 'primary_color', 'theme_color_success', 'theme_color_danger', 'theme_color_background', 'hover_button_color', 'theme_round_borders', 'primary_font', 'contact_mail', 'imprint_url', 'region', 'frontpage_text']
base_fields = {'timezone': <django.forms.fields.ChoiceField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {'timezone': <django.forms.fields.ChoiceField object>}
property media

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

class eventyay.eventyay_common.forms.event.EventUpdateForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {'date_admission': <class 'eventyay.control.forms.SplitDateTimeField'>, 'date_from': <class 'eventyay.control.forms.SplitDateTimeField'>, 'date_to': <class 'eventyay.control.forms.SplitDateTimeField'>}
fields = ['name', 'slug', 'date_from', 'date_to', 'date_admission', 'is_public', 'location', 'geo_lat', 'geo_lon']
model

alias of Event

widgets = {'date_admission': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'date_from': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'date_to': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'slug': <eventyay.control.forms.SlugWidget object>}
base_fields = {'date_admission': <eventyay.control.forms.SplitDateTimeField object>, 'date_from': <eventyay.control.forms.SplitDateTimeField object>, 'date_to': <eventyay.control.forms.SplitDateTimeField object>, 'geo_lat': <django.forms.fields.FloatField object>, 'geo_lon': <django.forms.fields.FloatField object>, 'is_public': <django.forms.fields.BooleanField object>, 'location': <i18nfield.forms.I18nFormField object>, 'name': <i18nfield.forms.I18nFormField object>, 'slug': <django.forms.fields.CharField object>}
clean_domain()
clean_slug()
declared_fields = {}
property media

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

save(commit=True)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.eventyay_common.forms.filters.SessionsFilterForm(*args, **kwargs)

Bases: Form

base_fields = {'event': <django.forms.models.ModelChoiceField object>, 'search': <django.forms.fields.CharField object>}
declared_fields = {'event': <django.forms.models.ModelChoiceField object>, 'search': <django.forms.fields.CharField object>}
property media

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

class eventyay.eventyay_common.forms.filters.UserOrderFilterForm(*args, **kwargs)

Bases: Form

base_fields = {'event': <django.forms.models.ModelChoiceField object>}
declared_fields = {'event': <django.forms.models.ModelChoiceField object>}
property media

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

Views

class eventyay.eventyay_common.views.auth.CustomAuthorizationView(**kwargs)

Bases: AuthorizationView

Override the AuthorizationView to set a JWT cookie after successful login.

get(request, *args, **kwargs)

Handle GET requests: instantiate a blank version of the form.

class eventyay.eventyay_common.views.auth.Forgot(**kwargs)

Bases: TemplateView

dispatch(request, *args, **kwargs)
form
get(request, *args, **kwargs)
get_context_data(**kwargs)
post(request: HttpRequest, *args, **kwargs)
template_name = 'eventyay_common/auth/forgot.html'
class eventyay.eventyay_common.views.auth.Login2FAView(**kwargs)

Bases: TemplateView

property app_id
dispatch(request, *args, **kwargs)
get(request, *args, **kwargs)
get_context_data(**kwargs)
post(request, *args, **kwargs)
template_name = 'eventyay_common/auth/login_2fa.html'
class eventyay.eventyay_common.views.auth.Recover(**kwargs)

Bases: TemplateView

dispatch(request, *args, **kwargs)
error_messages = {'invalid': 'You clicked on an invalid link. Please check that you copied the full web address into your address bar. Please note that the link is only valid for three days and that the link can only be used once.', 'unknownuser': 'We were unable to find the user you requested a new password for.'}
form
get(request, *args, **kwargs)
get_context_data(**kwargs)
invalid(msg)
post(request, *args, **kwargs)
template_name = 'eventyay_common/auth/recover.html'
exception eventyay.eventyay_common.views.auth.RepeatedResetDenied

Bases: Exception

eventyay.eventyay_common.views.auth.get_u2f_appid(request)
eventyay.eventyay_common.views.auth.get_used_backend(request)
eventyay.eventyay_common.views.auth.get_webauthn_rp_id(request)
eventyay.eventyay_common.views.auth.invite(request, token)

Registration form in case of an invite

eventyay.eventyay_common.views.auth.login(request)

Render and process a most basic login form. Takes an URL as GET parameter “next” for redirection after successful login

eventyay.eventyay_common.views.auth.logout(request)

Log the user out of the current session, then redirect to login page.

eventyay.eventyay_common.views.auth.process_login(request, user, keep_logged_in)

This method allows you to return a response to a successful log-in. This will set all session values correctly and redirect to either the URL specified in the next parameter, or the 2FA login screen, or the dashboard.

Returns:

This method returns a HttpResponse.

eventyay.eventyay_common.views.auth.process_login_and_set_cookie(request, user, keep_logged_in)

Process user login and set a JWT cookie.

eventyay.eventyay_common.views.auth.register(request)

Render and process a basic registration form.

eventyay.eventyay_common.views.auth.send_password_reset(email: str, has_redis: bool, request: HttpRequest)
eventyay.eventyay_common.views.auth.set_cookie_after_logged_in(request, response)
class eventyay.eventyay_common.views.sessions.MySessionsView(**kwargs)

Bases: LoginRequiredMixin, ListView

get(request, *args, **kwargs)
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

paginate_by = 20
template_name = 'eventyay_common/sessions/sessions.html'
class eventyay.eventyay_common.views.billing.BillingInvoicePreview(**kwargs)

Bases: View

get(request, *args, **kwargs)

@summary: This view is using for trigger the billing invoice task testing only. Will be removed in production. @return: json message

Tasks

eventyay.eventyay_common.tasks.billing_invoice_send_email(subject, content, invoice, organizer_billing)
eventyay.eventyay_common.tasks.calculate_ticket_fee(amount: Decimal, rate: Decimal, event: Event, invoice_voucher: InvoiceVoucher | None = None) Tuple[Decimal, Decimal, Decimal]

Calculate the ticket fee for an event based on the given rate and amount

The ticket fee is calculated by multiplying the amount with the rate divided by 100.

If an invoice voucher is given and it is active, the voucher will be applied to the ticket fee.

@param amount: the total amount of paid orders in the event @param rate: the ticket fee rate @param event: the event to be calculated @param invoice_voucher: the invoice voucher to be applied @return: a tuple containing the ticket fee before applying the voucher, the final ticket fee after applying the voucher, and the voucher discount

eventyay.eventyay_common.tasks.calculate_total_amount_on_monthly(event: Event, last_month_date_start) Decimal

Calculate the total amount of all paid orders for the event in the previous month @param event: event to be calculated @param last_month_date_start: start date of month to be calculated @return: total amount of all paid orders for the event in the previous month

eventyay.eventyay_common.tasks.collect_billing_invoice(event: Event, last_month_date: datetime, ticket_rate: Decimal, invoice_voucher: InvoiceVoucher | None) CollectBillingResponse

Collect billing data for an event on a monthly basis.

This function checks if a billing invoice already exists for the given event and month. If not, it checks if there were any paid orders in the last month, and if there were, it calculates the total amount and ticket fee for the last month and creates a new billing invoice.

Parameters:
  • event – The event for which to collect billing data.

  • last_month_date – The date of the last month for which to collect billing data.

  • ticket_rate – The rate of the ticket fee as a decimal.

  • invoice_voucher – The voucher for which to calculate the ticket fee discount.

Returns:

A CollectBillingResponse object containing a boolean value indicating whether the billing invoice was created successfully and a decimal value indicating the voucher discount.

eventyay.eventyay_common.tasks.get_header_token(user_id)
eventyay.eventyay_common.tasks.get_next_reminder_datetime(reminder_schedule)

Get the next reminder datetime based on the reminder schedule @param reminder_schedule: @return:

eventyay.eventyay_common.tasks.retry_payment(payment_intent_id, organizer_id)

Retry a payment if the initial charge attempt failed. @param payment_intent_id: A string representing the payment intent ID @param organizer_id: A string representing the organizer’s unique ID

Template Tags

eventyay.eventyay_common.templatetags.append_next_url.append_next(next_url=None)

Control Panel Module

Core Control Components

class eventyay.control.apps.EventyayControlConfig(app_name, app_module)

Bases: AppConfig

label = 'eventyaycontrol'
name = 'eventyay.control'
ready()

Override this method in subclasses to run code when Django starts.

eventyay.control.context.contextprocessor(request)

Adds data to all template contexts

eventyay.control.logdisplay.eventyaycontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs)
class eventyay.control.middleware.AuditLogMiddleware(get_response)

Bases: object

class eventyay.control.middleware.PermissionMiddleware(get_response=None)

Bases: object

This middleware enforces all requests to the control app to require login. Additionally, it enforces all requests to “control:event.” URLs to be for an event the user has basic access to.

EXCEPTIONS = ('auth.login', 'auth.login.2fa', 'auth.register', 'auth.forgot', 'auth.forgot.recover', 'auth.invite', 'user.settings.notifications.off', 'oauth2_provider')
EXCEPTIONS_2FA = ('eventyay_common:account.2fa', 'eventyay_common:account.2fa.add', 'eventyay_common:account.2fa.enable', 'eventyay_common:account.2fa.disable', 'eventyay_common:account.2fa.regenemergency', 'eventyay_common:account.2fa.confirm.totp', 'eventyay_common:account.2fa.confirm.webauthn', 'eventyay_common:account.2fa.delete', 'auth.logout', 'user.reauth')
eventyay.control.navigation.get_admin_navigation(request)
eventyay.control.navigation.get_event_navigation(request: HttpRequest)
eventyay.control.navigation.get_global_navigation(request)
eventyay.control.navigation.get_organizer_navigation(request)
eventyay.control.navigation.merge_in(nav, newnav)
class eventyay.control.permissions.AdministratorPermissionRequiredMixin

Bases: object

This mixin is equivalent to the administrator_permission_required view decorator but is in a form suitable for class-based views.

classmethod as_view(**initkwargs)
class eventyay.control.permissions.EventPermissionRequiredMixin

Bases: object

This mixin is equivalent to the event_permission_required view decorator but is in a form suitable for class-based views.

classmethod as_view(**initkwargs)
permission = ''
class eventyay.control.permissions.OrganizerPermissionRequiredMixin

Bases: object

This mixin is equivalent to the organizer_permission_required view decorator but is in a form suitable for class-based views.

classmethod as_view(**initkwargs)
permission = ''
class eventyay.control.permissions.StaffMemberRequiredMixin

Bases: object

This mixin is equivalent to the staff_memer_required view decorator but is in a form suitable for class-based views.

classmethod as_view(**initkwargs)
eventyay.control.permissions.administrator_permission_required()

This view decorator rejects all requests with a 403 response which are not from users with a current staff member session.

eventyay.control.permissions.current_url(request)
eventyay.control.permissions.event_permission_required(permission)

This view decorator rejects all requests with a 403 response which are not from users having the given permission for the event the request is associated with.

eventyay.control.permissions.organizer_permission_required(permission)

This view decorator rejects all requests with a 403 response which are not from users having the given permission for the event the request is associated with.

eventyay.control.permissions.staff_member_required()

This view decorator rejects all requests with a 403 response which are not staff members (but do not need to have an active session).

eventyay.control.signals.event_dashboard_top = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘request’

This signal is sent out to include custom HTML in the top part of the the event dashboard. Receivers should return HTML.

As with all plugin signals, the sender keyword argument will contain the event. An additional keyword argument subevent can contain a sub-event.

eventyay.control.signals.event_dashboard_widgets = <eventyay.base.signals.EventPluginSignal object>

This signal is sent out to include widgets in the event dashboard. Receivers should return a list of dictionaries, where each dictionary can have the keys:

  • content (str, containing HTML)

  • display_size (str, one of “full” (whole row), “big” (half a row) or “small” (quarter of a row). May be ignored on small displays, default is “small”)

  • priority (int, used for ordering, higher comes first, default is 1)

  • url (str, optional, if the full widget should be a link)

As with all plugin signals, the sender keyword argument will contain the event. An additional keyword argument subevent can contain a sub-event.

eventyay.control.signals.event_settings_widget = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘request’

This signal is sent out to include template snippets on the settings page of an event that allows generating a pretix Widget code.

As with all plugin signals, the sender keyword argument will contain the event. A second keyword argument request will contain the request object.

eventyay.control.signals.html_head = <eventyay.base.signals.EventPluginSignal object>

Arguments: request

This signal allows you to put code inside the HTML <head> tag of every page in the backend. You will get the request as the keyword argument request and are expected to return plain HTML.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.html_page_start = <django.dispatch.dispatcher.Signal object>

This signal allows you to put code in the beginning of the main page for every page in the backend. You are expected to return HTML.

The sender keyword argument will contain the request.

eventyay.control.signals.nav_event = <eventyay.base.signals.EventPluginSignal object>

Arguments: request

This signal allows you to add additional views to the admin panel navigation. You will get the request as a keyword argument request. Receivers are expected to return a list of dictionaries. The dictionaries should contain at least the keys label and url. You can also return a fontawesome icon name with the key icon, it will be respected depending on the type of navigation. You should also return an active key with a boolean set to True, when this product should be marked as active. The request object will have an attribute event.

You can optionally create sub-products to create hierarchical navigation. There are two ways to achieve this: Either you specify a key children on your top navigation product that contains a list of navigation products (as dictionaries), or you specify a parent key with the url value of the designated parent product. The latter method also allows you to register navigation products as a sub-product of existing ones.

If you use this, you should read the documentation on how to deal with URLs in pretix.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.nav_event_settings = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘request’

This signal is sent out to include tab links on the settings page of an event. Receivers are expected to return a list of dictionaries. The dictionaries should contain at least the keys label and url. You should also return an active key with a boolean set to True, when this product should be marked as active.

If your linked view should stay in the tab-like context of this page, we recommend that you use pretix.control.views.event.EventSettingsViewMixin for your view and your template inherits from pretixcontrol/event/settings_base.html.

As with all plugin signals, the sender keyword argument will contain the event. A second keyword argument request will contain the request object.

eventyay.control.signals.nav_global = <django.dispatch.dispatcher.Signal object>

Arguments: request

This signal allows you to add additional views to the navigation bar when no event is selected. You will get the request as a keyword argument request. Receivers are expected to return a list of dictionaries. The dictionaries should contain at least the keys label and url. You can also return a fontawesome icon name with the key icon, it will be respected depending on the type of navigation. You should also return an active key with a boolean set to True, when this product should be marked as active.

You can optionally create sub-products to create hierarchical navigation. There are two ways to achieve this: Either you specify a key children on your top navigation product that contains a list of navigation products (as dictionaries), or you specify a parent key with the url value of the designated parent product. The latter method also allows you to register navigation products as a sub-product of existing ones.

If you use this, you should read the documentation on how to deal with URLs in pretix.

This is no EventPluginSignal, so you do not get the event in the sender argument and you may get the signal regardless of whether your plugin is active.

eventyay.control.signals.nav_organizer = <django.dispatch.dispatcher.Signal object>

Arguments: ‘organizer’, ‘request’

This signal is sent out to include tab links on the detail page of an organizer. Receivers are expected to return a list of dictionaries. The dictionaries should contain at least the keys label and url. You should also return an active key with a boolean set to True, when this product should be marked as active.

You can optionally create sub-products to create hierarchical navigation. There are two ways to achieve this: Either you specify a key children on your top navigation product that contains a list of navigation products (as dictionaries), or you specify a parent key with the url value of the designated parent product. The latter method also allows you to register navigation products as a sub-product of existing ones.

If your linked view should stay in the tab-like context of this page, we recommend that you use pretix.control.views.organizer.OrganizerDetailViewMixin for your view and your template inherits from pretixcontrol/organizers/base.html.

This is a regular django signal (no pretix event signal). Receivers will be passed the keyword arguments organizer and request.

eventyay.control.signals.nav_topbar = <django.dispatch.dispatcher.Signal object>

Arguments: request

This signal allows you to add additional views to the top navigation bar. You will get the request as a keyword argument request. Receivers are expected to return a list of dictionaries. The dictionaries should contain at least the keys label and url. You can also return a fontawesome icon name with the key icon, it will be respected depending on the type of navigation. If set, on desktops only the icon will be shown. The title property can be used to set the alternative text.

If you use this, you should read the documentation on how to deal with URLs in pretix.

This is no EventPluginSignal, so you do not get the event in the sender argument and you may get the signal regardless of whether your plugin is active.

eventyay.control.signals.oauth_application_registered = <django.dispatch.dispatcher.Signal object>

Arguments: user, application

This signal will be called whenever a user registers a new OAuth application.

eventyay.control.signals.order_info = <eventyay.base.signals.EventPluginSignal object>

Arguments: order, request

This signal is sent out to display additional information on the order detail page

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the argument order and request are available.

eventyay.control.signals.order_position_buttons = <eventyay.base.signals.EventPluginSignal object>

Arguments: order, position, request

This signal is sent out to display additional buttons for a single position of an order.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the argument order and request are available.

eventyay.control.signals.order_search_filter_q = <django.dispatch.dispatcher.Signal object>

Arguments: query

This signal will be called whenever a free-text order search is performed. You are expected to return one Q object that will be OR-ed with existing search queries. As order search exists on a global level as well, this is not an Event signal and will be called even if your plugin is not active. sender will contain the event if the search is performed within an event, and None otherwise. The search query will be passed as query.

eventyay.control.signals.order_search_forms = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘request’

This signal allows you to return additional forms that should be rendered in the advanced order search. You are passed request argument and are expected to return an instance of a form class that you bind yourself when appropriate. Your form will be executed as part of the standard validation and rendering cycle and rendered using default bootstrap styles.

You are required to set prefix on your form instance. You are required to implement a filter_qs(queryset) method on your form that returns a new, filtered query set. You are required to implement a filter_to_strings() method on your form that returns a list of strings describing the currently active filters.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.organizer_edit_tabs = <eventyay.base.signals.DeprecatedSignal object>

Arguments: ‘organizer’, ‘request’

Deprecated signal, no longer works. We just keep the definition so old plugins don’t break the installation.

eventyay.control.signals.product_forms = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘request’, ‘product’

This signal allows you to return additional forms that should be rendered on the product modification page. You are passed request and product arguments and are expected to return an instance of a form class that you bind yourself when appropriate. Your form will be executed as part of the standard validation and rendering cycle and rendered using default bootstrap styles. It is advisable to set a prefix for your form to avoid clashes with other plugins.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.product_formsets = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘request’, ‘product’

This signal allows you to return additional formsets that should be rendered on the product modification page. You are passed request and product arguments and are expected to return an instance of a formset class that you bind yourself when appropriate. Your formset will be executed as part of the standard validation and rendering cycle and rendered using default bootstrap styles. It is advisable to set a prefix for your formset to avoid clashes with other plugins.

Your formset needs to have two special properties: template with a template that will be included to render the formset and title that will be used as a headline. Your template will be passed a formset variable with your formset.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.quota_detail_html = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘quota’

This signal allows you to append HTML to a Quota’s detail view. You receive the quota as argument in the quota keyword argument.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.subevent_forms = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘request’, ‘subevent’, ‘copy_from’

This signal allows you to return additional forms that should be rendered on the subevent creation or modification page. You are passed request and subevent arguments and are expected to return an instance of a form class that you bind yourself when appropriate. Your form will be executed as part of the standard validation and rendering cycle and rendered using default bootstrap styles. It is advisable to set a prefix for your form to avoid clashes with other plugins.

subevent can be None during creation. Before save() is called, a subevent property of your form instance will automatically being set to the subevent that has just been created. During creation, copy_from can be a subevent that is being copied from.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.user_dashboard_widgets = <django.dispatch.dispatcher.Signal object>

Arguments: ‘user’

This signal is sent out to include widgets in the personal user dashboard. Receivers should return a list of dictionaries, where each dictionary can have the keys:

  • content (str, containing HTML)

  • display_size (str, one of “full” (whole row), “big” (half a row) or “small” (quarter of a row). May be ignored on small displays, default is “small”)

  • priority (int, used for ordering, higher comes first, default is 1)

  • url (str, optional, if the full widget should be a link)

This is a regular django signal (no pretix event signal).

eventyay.control.signals.voucher_form_class = <eventyay.base.signals.EventPluginSignal object>

Arguments: cls

This signal allows you to replace the form class that is used for modifying vouchers. You will receive the default form class (or the class set by a previous plugin) in the cls argument so that you can inherit from it.

Note that this is also called for the voucher bulk creation form, which is executed in an asynchronous context. For the bulk creation form, save() is not called. Instead, you can implement post_bulk_save(saved_vouchers) which may be called multiple times for every batch persisted to the database.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.voucher_form_html = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘form’

This signal allows you to add additional HTML to the form that is used for modifying vouchers. You receive the form object in the form keyword argument.

As with all plugin signals, the sender keyword argument will contain the event.

eventyay.control.signals.voucher_form_validation = <eventyay.base.signals.EventPluginSignal object>

Arguments: ‘form’

This signal allows you to add additional validation to the form that is used for creating and modifying vouchers. You will receive the form instance in the form argument and the current data state in the data argument.

As with all plugin signals, the sender keyword argument will contain the event.

Forms

class eventyay.control.forms.admin.admin.GlobalSettingsForm(*args, **kwargs)

Bases: HierarkeyForm

base_fields = {}
declared_fields = {}
property media

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

class eventyay.control.forms.admin.admin.UpdateSettingsForm(*args, **kwargs)

Bases: GlobalSettingsForm

base_fields = {'update_check_email': <django.forms.fields.EmailField object>, 'update_check_enabled': <django.forms.fields.BooleanField object>}
declared_fields = {'update_check_email': <django.forms.fields.EmailField object>, 'update_check_enabled': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.control.forms.admin.vouchers.InvoiceVoucherForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {'valid_until': <class 'eventyay.control.forms.SplitDateTimeField'>}
fields = ['code', 'valid_until', 'value', 'max_usages', 'price_mode', 'budget', 'event_effect', 'organizer_effect']
localized_fields = '__all__'
model

alias of InvoiceVoucher

widgets = {'valid_until': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>}
base_fields = {'budget': <django.forms.fields.DecimalField object>, 'code': <django.forms.fields.CharField object>, 'event_effect': <django.forms.models.ModelMultipleChoiceField object>, 'max_usages': <django.forms.fields.IntegerField object>, 'organizer_effect': <django.forms.models.ModelMultipleChoiceField object>, 'price_mode': <django.forms.fields.TypedChoiceField object>, 'valid_until': <eventyay.control.forms.SplitDateTimeField object>, 'value': <django.forms.fields.DecimalField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {'event_effect': <django.forms.models.ModelMultipleChoiceField object>, 'organizer_effect': <django.forms.models.ModelMultipleChoiceField object>}
property media

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

save(commit=True)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.checkin.CheckinListForm(**kwargs)

Bases: ModelForm

class Meta

Bases: object

field_classes = {'exit_all_at': <class 'eventyay.control.forms.checkin.NextTimeField'>, 'gates': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'limit_products': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'subevent': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ['name', 'all_products', 'limit_products', 'subevent', 'include_pending', 'auto_checkin_sales_channels', 'allow_multiple_entries', 'allow_entry_after_exit', 'rules', 'gates', 'exit_all_at']
localized_fields = '__all__'
model

alias of CheckinList

widgets = {'auto_checkin_sales_channels': <django.forms.widgets.CheckboxSelectMultiple object>, 'exit_all_at': <eventyay.control.forms.checkin.NextTimeInput object>, 'gates': <django.forms.widgets.CheckboxSelectMultiple object>, 'limit_products': <django.forms.widgets.CheckboxSelectMultiple object>}
base_fields = {'all_products': <django.forms.fields.BooleanField object>, 'allow_entry_after_exit': <django.forms.fields.BooleanField object>, 'allow_multiple_entries': <django.forms.fields.BooleanField object>, 'auto_checkin_sales_channels': <django.forms.fields.CharField object>, 'exit_all_at': <eventyay.control.forms.checkin.NextTimeField object>, 'gates': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'include_pending': <django.forms.fields.BooleanField object>, 'limit_products': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'name': <django.forms.fields.CharField object>, 'rules': <django.forms.fields.JSONField object>, 'subevent': <django_scopes.forms.SafeModelChoiceField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {}
property media

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

class eventyay.control.forms.checkin.NextTimeField(*, input_formats=None, **kwargs)

Bases: TimeField

to_python(value)

Validate that the input can be converted to a time. Return a Python datetime.time object.

class eventyay.control.forms.checkin.NextTimeInput(attrs=None, format=None)

Bases: TimeInput

format_value(value)

Return a value as it should appear when rendered in a template.

property media
class eventyay.control.forms.checkin.SimpleCheckinListForm(**kwargs)

Bases: ModelForm

class Meta

Bases: object

field_classes = {'gates': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'limit_products': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'subevent': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ['name', 'all_products', 'limit_products', 'include_pending', 'allow_entry_after_exit', 'gates']
localized_fields = '__all__'
model

alias of CheckinList

widgets = {'gates': <django.forms.widgets.CheckboxSelectMultiple object>, 'limit_products': <django.forms.widgets.CheckboxSelectMultiple object>}
base_fields = {'all_products': <django.forms.fields.BooleanField object>, 'allow_entry_after_exit': <django.forms.fields.BooleanField object>, 'gates': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'include_pending': <django.forms.fields.BooleanField object>, 'limit_products': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'name': <django.forms.fields.CharField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.filter.AttendeeFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'checkin_status': <django.forms.fields.ChoiceField object>, 'event_query': <django.forms.fields.CharField object>, 'event_status': <django.forms.fields.ChoiceField object>, 'ordering': <django.forms.fields.CharField object>, 'query': <django.forms.fields.CharField object>}
declared_fields = {'checkin_status': <django.forms.fields.ChoiceField object>, 'event_query': <django.forms.fields.CharField object>, 'event_status': <django.forms.fields.ChoiceField object>, 'ordering': <django.forms.fields.CharField object>, 'query': <django.forms.fields.CharField object>}
filter_qs(qs)
property media

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

class eventyay.control.forms.filter.CheckInFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'product': <django.forms.models.ModelChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'user': <django.forms.fields.CharField object>}
declared_fields = {'product': <django.forms.models.ModelChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'user': <django.forms.fields.CharField object>}
filter_qs(qs)
property media

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

orders = {'-code': ('-order__code', '-product__name'), '-date': ('-subevent__date_from', 'subevent__id', '-order__code'), '-email': ('-order__email', '-product__name'), '-name': {'_order': OrderBy(F(display_name), descending=True), 'display_name': Coalesce(F(attendee_name_cached), F(addon_to__attendee_name_cached))}, '-product': ('-product__name', '-variation__value', '-order__code'), '-seat': ('-seat__sorting_rank', '-seat__guid'), '-status': (FixedOrderBy(F(last_entry), descending=False), '-order__code'), '-timestamp': (FixedOrderBy(F(last_entry), descending=True), '-order__code'), 'code': ('order__code', 'product__name'), 'date': ('subevent__date_from', 'subevent__id', 'order__code'), 'email': ('order__email', 'product__name'), 'name': {'_order': OrderBy(F(display_name), descending=False), 'display_name': Coalesce(F(attendee_name_cached), F(addon_to__attendee_name_cached))}, 'product': ('product__name', 'variation__value', 'order__code'), 'seat': ('seat__sorting_rank', 'seat__guid'), 'status': (FixedOrderBy(F(last_entry), descending=True), 'order__code'), 'timestamp': (FixedOrderBy(F(last_entry), descending=False), 'order__code')}
class eventyay.control.forms.filter.EventFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'organizer': <django.forms.models.ModelChoiceField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
declared_fields = {'organizer': <django.forms.models.ModelChoiceField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

meta_properties
orders = {'date_from': 'order_from', 'date_to': 'order_to', 'live': 'live', 'organizer': 'organizer__name', 'slug': 'slug'}
class eventyay.control.forms.filter.EventOrderExpertFilterForm(*args, **kwargs)

Bases: EventOrderFilterForm

base_fields = {'answer': <django.forms.fields.CharField object>, 'browser_timezone': <django.forms.fields.CharField object>, 'comment': <django.forms.fields.CharField object>, 'created_from': <django.forms.fields.SplitDateTimeField object>, 'created_to': <django.forms.fields.SplitDateTimeField object>, 'email': <django.forms.fields.CharField object>, 'email_known_to_work': <django.forms.fields.NullBooleanField object>, 'locale': <django.forms.fields.ChoiceField object>, 'payment_sum_max': <django.forms.fields.DecimalField object>, 'payment_sum_min': <django.forms.fields.DecimalField object>, 'product': <django.forms.fields.ChoiceField object>, 'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'question': <django.forms.models.ModelChoiceField object>, 'sales_channel': <django.forms.fields.ChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'subevents_from': <django.forms.fields.SplitDateTimeField object>, 'subevents_to': <django.forms.fields.SplitDateTimeField object>, 'total': <django.forms.fields.DecimalField object>}
declared_fields = {'answer': <django.forms.fields.CharField object>, 'browser_timezone': <django.forms.fields.CharField object>, 'comment': <django.forms.fields.CharField object>, 'created_from': <django.forms.fields.SplitDateTimeField object>, 'created_to': <django.forms.fields.SplitDateTimeField object>, 'email': <django.forms.fields.CharField object>, 'email_known_to_work': <django.forms.fields.NullBooleanField object>, 'locale': <django.forms.fields.ChoiceField object>, 'payment_sum_max': <django.forms.fields.DecimalField object>, 'payment_sum_min': <django.forms.fields.DecimalField object>, 'product': <django.forms.fields.ChoiceField object>, 'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'question': <django.forms.models.ModelChoiceField object>, 'sales_channel': <django.forms.fields.ChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'subevents_from': <django.forms.fields.SplitDateTimeField object>, 'subevents_to': <django.forms.fields.SplitDateTimeField object>, 'total': <django.forms.fields.DecimalField object>}
filter_qs(qs)
property media

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

class eventyay.control.forms.filter.EventOrderFilterForm(*args, **kwargs)

Bases: OrderFilterForm

base_fields = {'answer': <django.forms.fields.CharField object>, 'product': <django.forms.fields.ChoiceField object>, 'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'question': <django.forms.models.ModelChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'subevent': <django.forms.models.ModelChoiceField object>}
declared_fields = {'answer': <django.forms.fields.CharField object>, 'product': <django.forms.fields.ChoiceField object>, 'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'question': <django.forms.models.ModelChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'subevent': <django.forms.models.ModelChoiceField object>}
filter_qs(qs)
property media

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

orders = {'code': 'code', 'datetime': 'datetime', 'email': 'email', 'status': 'status', 'total': 'total'}
class eventyay.control.forms.filter.FilterForm(*args, **kwargs)

Bases: Form

base_fields = {}
declared_fields = {}
filter_qs(qs)
filter_to_strings()
property filtered
get_order_by()
property media

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

orders = {}
class eventyay.control.forms.filter.FilterNullBooleanSelect(attrs=None)

Bases: NullBooleanSelect

property media
class eventyay.control.forms.filter.GiftCardFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'query': <django.forms.fields.CharField object>, 'state': <django.forms.fields.ChoiceField object>, 'testmode': <django.forms.fields.ChoiceField object>}
declared_fields = {'query': <django.forms.fields.CharField object>, 'state': <django.forms.fields.ChoiceField object>, 'testmode': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

orders = {'-expires': OrderBy(F(expires), descending=True), 'expires': OrderBy(F(expires), descending=False), 'issuance': 'issuance', 'secret': 'secret', 'value': 'cached_value'}
class eventyay.control.forms.filter.OrderFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
declared_fields = {'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

class eventyay.control.forms.filter.OrderSearchFilterForm(*args, **kwargs)

Bases: OrderFilterForm

base_fields = {'organizer': <django.forms.models.ModelChoiceField object>, 'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
declared_fields = {'organizer': <django.forms.models.ModelChoiceField object>, 'provider': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

meta_properties
orders = {'code': 'code', 'datetime': 'datetime', 'email': 'email', 'event': 'event', 'status': 'status', 'total': 'total'}
class eventyay.control.forms.filter.OrganizerFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'query': <django.forms.fields.CharField object>}
declared_fields = {'query': <django.forms.fields.CharField object>}
filter_qs(qs)
property media

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

orders = {'name': 'name', 'slug': 'slug'}
class eventyay.control.forms.filter.OverviewFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'browser_timezone': <django.forms.fields.CharField object>, 'date_axis': <django.forms.fields.ChoiceField object>, 'date_from': <django.forms.fields.DateField object>, 'date_until': <django.forms.fields.DateField object>, 'subevent': <django.forms.models.ModelChoiceField object>}
declared_fields = {'browser_timezone': <django.forms.fields.CharField object>, 'date_axis': <django.forms.fields.ChoiceField object>, 'date_from': <django.forms.fields.DateField object>, 'date_until': <django.forms.fields.DateField object>, 'subevent': <django.forms.models.ModelChoiceField object>}
property media

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

class eventyay.control.forms.filter.RefundFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'provider': <django.forms.fields.ChoiceField object>, 'status': <django.forms.fields.ChoiceField object>}
declared_fields = {'provider': <django.forms.fields.ChoiceField object>, 'status': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

orders = {'amount': 'amount', 'created': 'created', 'order': 'order__code', 'provider': 'provider', 'source': 'source', 'state': 'state'}
class eventyay.control.forms.filter.SubEventFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'date_from': <django.forms.fields.DateField object>, 'date_until': <django.forms.fields.DateField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>, 'weekday': <django.forms.fields.ChoiceField object>}
declared_fields = {'date_from': <django.forms.fields.DateField object>, 'date_until': <django.forms.fields.DateField object>, 'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>, 'weekday': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

orders = {'active': 'active', 'date_from': 'date_from', 'sum_quota_available': 'sum_quota_available'}
class eventyay.control.forms.filter.SubmissionFilterForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None, bound_field_class=None)

Bases: Form

base_fields = {'event_query': <django.forms.fields.CharField object>, 'ordering': <django.forms.fields.CharField object>, 'proposal_state': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'submission_type': <django.forms.fields.CharField object>, 'tags': <django.forms.fields.CharField object>, 'track': <django.forms.fields.CharField object>}
declared_fields = {'event_query': <django.forms.fields.CharField object>, 'ordering': <django.forms.fields.CharField object>, 'proposal_state': <django.forms.fields.ChoiceField object>, 'query': <django.forms.fields.CharField object>, 'submission_type': <django.forms.fields.CharField object>, 'tags': <django.forms.fields.CharField object>, 'track': <django.forms.fields.CharField object>}
filter_qs(qs)
property media

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

class eventyay.control.forms.filter.TaskFilterForm(*args, **kwargs)

Bases: Form

base_fields = {'name': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
declared_fields = {'name': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

class eventyay.control.forms.filter.UserFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>, 'superuser': <django.forms.fields.ChoiceField object>}
declared_fields = {'query': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>, 'superuser': <django.forms.fields.ChoiceField object>}
filter_qs(qs)
property media

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

orders = {'email': 'email', 'fullname': 'fullname'}
class eventyay.control.forms.filter.VoucherFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'productvar': <django.forms.fields.ChoiceField object>, 'qm': <django.forms.fields.ChoiceField object>, 'search': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'tag': <django.forms.fields.CharField object>}
declared_fields = {'productvar': <django.forms.fields.ChoiceField object>, 'qm': <django.forms.fields.ChoiceField object>, 'search': <django.forms.fields.CharField object>, 'status': <django.forms.fields.ChoiceField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'tag': <django.forms.fields.CharField object>}
filter_qs(qs)
property media

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

orders = {'-code': '-code', '-product': ('-seat__sorting_rank', '-product__category__position', '-product__category', '-product__position', '-product__variation__position', '-quota__name'), '-redeemed': '-redeemed', '-subevent': '-subevent__date_from', '-tag': '-tag', '-valid_until': '-valid_until', 'code': 'code', 'product': ('seat__sorting_rank', 'product__category__position', 'product__category', 'product__position', 'product__variation__position', 'quota__name'), 'redeemed': 'redeemed', 'subevent': 'subevent__date_from', 'tag': 'tag', 'valid_until': 'valid_until'}
class eventyay.control.forms.filter.VoucherTagFilterForm(*args, **kwargs)

Bases: FilterForm

base_fields = {'subevent': <django.forms.models.ModelChoiceField object>}
declared_fields = {'subevent': <django.forms.models.ModelChoiceField object>}
filter_qs(qs)
property media

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

eventyay.control.forms.filter.get_all_payment_providers()
class eventyay.control.forms.global_settings.GlobalSettingsForm(*args, **kwargs)

Bases: SettingsForm

auto_fields = ['region', 'mail_from']
base_fields = {}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {}
property media

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

class eventyay.control.forms.global_settings.SSOConfigForm(*args, **kwargs)

Bases: SettingsForm

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

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

class eventyay.control.forms.global_settings.StripeKeyValidator(prefix: str | List[str])

Bases: object

Validates that a given Stripe key starts with the expected prefix(es).

This validator ensures that Stripe API keys conform to the expected format by checking their prefixes. It supports both single prefix validation and multiple prefix validation.

class eventyay.control.forms.global_settings.UpdateSettingsForm(*args, **kwargs)

Bases: SettingsForm

base_fields = {'update_check_email': <django.forms.fields.EmailField object>, 'update_check_perform': <django.forms.fields.BooleanField object>}
declared_fields = {'update_check_email': <django.forms.fields.EmailField object>, 'update_check_perform': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.control.forms.orderimport.ProcessForm(*args, **kwargs)

Bases: Form

base_fields = {'orders': <django.forms.fields.ChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'testmode': <django.forms.fields.BooleanField object>}
declared_fields = {'orders': <django.forms.fields.ChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'testmode': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.control.forms.page.PageSettingsForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ('title', 'slug', 'link_on_website_start_page', 'link_in_header', 'link_in_footer', 'confirmation_required', 'text')
model

alias of Page

base_fields = {'confirmation_required': <django.forms.fields.BooleanField object>, 'link_in_footer': <django.forms.fields.BooleanField object>, 'link_in_header': <django.forms.fields.BooleanField object>, 'link_on_website_start_page': <django.forms.fields.BooleanField object>, 'slug': <django.forms.fields.SlugField object>, 'text': <i18nfield.forms.I18nFormField object>, 'title': <i18nfield.forms.I18nFormField object>}
clean_slug()
clean_text()
declared_fields = {}
property media

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

mimes = {'image/gif': 'gif', 'image/jpeg': 'jpg', 'image/png': 'png', 'image/webp': 'webp'}
save(commit=True)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

eventyay.control.forms.page.process_data_images(html, allowed_mimes)
class eventyay.control.forms.product.CategoryForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

fields = ['name', 'internal_name', 'description', 'is_addon']
localized_fields = '__all__'
model

alias of ProductCategory

base_fields = {'description': <i18nfield.forms.I18nFormField object>, 'internal_name': <django.forms.fields.CharField object>, 'is_addon': <django.forms.fields.BooleanField object>, 'name': <i18nfield.forms.I18nFormField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.product.DescriptionForm(*args, **kwargs)

Bases: QuestionForm

base_fields = {'ask_during_checkin': <django.forms.fields.BooleanField object>, 'dependency_question': <django_scopes.forms.SafeModelChoiceField object>, 'dependency_values': <django.forms.fields.CharField object>, 'description': <i18nfield.forms.I18nFormField object>, 'help_text': <i18nfield.forms.I18nFormField object>, 'hidden': <django.forms.fields.BooleanField object>, 'identifier': <django.forms.fields.CharField object>, 'print_on_invoice': <django.forms.fields.BooleanField object>, 'products': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'question': <i18nfield.forms.I18nFormField object>, 'required': <django.forms.fields.BooleanField object>, 'type': <django.forms.fields.TypedChoiceField object>, 'valid_date_max': <django.forms.fields.DateField object>, 'valid_date_min': <django.forms.fields.DateField object>, 'valid_datetime_max': <eventyay.control.forms.SplitDateTimeField object>, 'valid_datetime_min': <eventyay.control.forms.SplitDateTimeField object>, 'valid_number_max': <django.forms.fields.DecimalField object>, 'valid_number_min': <django.forms.fields.DecimalField object>}
declared_fields = {'description': <i18nfield.forms.I18nFormField object>, 'question': <i18nfield.forms.I18nFormField object>}
property media

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

removeDesOption()
class eventyay.control.forms.product.ProductAddOnForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

fields = ['addon_category', 'min_count', 'max_count', 'price_included', 'multi_allowed']
help_texts = {'min_count': 'Be aware that setting a minimal number makes it impossible to buy this product if all available add-ons are sold out.'}
localized_fields = '__all__'
model

alias of ProductAddOn

base_fields = {'addon_category': <django.forms.models.ModelChoiceField object>, 'max_count': <django.forms.fields.IntegerField object>, 'min_count': <django.forms.fields.IntegerField object>, 'multi_allowed': <django.forms.fields.BooleanField object>, 'price_included': <django.forms.fields.BooleanField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.product.ProductAddOnsFormSet(*args, **kwargs)

Bases: I18nFormSet

clean()

Hook for doing any extra formset-wide cleaning after Form.clean() has been called on every form. Any ValidationError raised by this method will not be associated with a particular form; it will be accessible via formset.non_form_errors()

property empty_form
template = 'pretixcontrol/item/include_addons.html'
title = 'Add-ons'
class eventyay.control.forms.product.ProductBundleForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

fields = ['count', 'designated_price']
localized_fields = '__all__'
model

alias of ProductBundle

base_fields = {'count': <django.forms.fields.IntegerField object>, 'designated_price': <django.forms.fields.DecimalField object>, 'productvar': <django.forms.fields.ChoiceField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {'productvar': <django.forms.fields.ChoiceField object>}
property media

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

class eventyay.control.forms.product.ProductBundleFormSet(*args, **kwargs)

Bases: I18nFormSet

clean()

Hook for doing any extra formset-wide cleaning after Form.clean() has been called on every form. Any ValidationError raised by this method will not be associated with a particular form; it will be accessible via formset.non_form_errors()

property empty_form
template = 'pretixcontrol/item/include_bundles.html'
title = 'Bundled products'
class eventyay.control.forms.product.ProductCreateForm(*args, **kwargs)

Bases: I18nModelForm

EXISTING = 'existing'
class Meta

Bases: object

fields = ['name', 'internal_name', 'category', 'admission', 'default_price', 'tax_rule']
localized_fields = '__all__'
model

alias of Product

NEW = 'new'
NONE = 'none'
base_fields = {'admission': <django.forms.fields.BooleanField object>, 'category': <django.forms.models.ModelChoiceField object>, 'default_price': <django.forms.fields.DecimalField object>, 'has_variations': <django.forms.fields.BooleanField object>, 'internal_name': <django.forms.fields.CharField object>, 'name': <i18nfield.forms.I18nFormField object>, 'tax_rule': <django.forms.models.ModelChoiceField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {'has_variations': <django.forms.fields.BooleanField object>}
property media

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

save(*args, **kwargs)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.product.ProductMetaValueForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ['value']
model

alias of ProductMetaValue

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

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

class eventyay.control.forms.product.ProductUpdateForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {'available_from': <class 'eventyay.control.forms.SplitDateTimeField'>, 'available_until': <class 'eventyay.control.forms.SplitDateTimeField'>, 'hidden_if_available': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ['category', 'name', 'internal_name', 'active', 'sales_channels', 'admission', 'description', 'picture', 'default_price', 'free_price', 'tax_rule', 'available_from', 'available_until', 'require_voucher', 'require_approval', 'hide_without_voucher', 'allow_cancel', 'allow_waitinglist', 'max_per_order', 'min_per_order', 'checkin_attention', 'generate_tickets', 'original_price', 'require_bundling', 'show_quota_left', 'hidden_if_available', 'issue_giftcard']
localized_fields = '__all__'
model

alias of Product

widgets = {'available_from': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'available_until': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'generate_tickets': <eventyay.control.forms.product.TicketNullBooleanSelect object>, 'show_quota_left': <eventyay.control.forms.product.ShowQuotaNullBooleanSelect object>}
base_fields = {'active': <django.forms.fields.BooleanField object>, 'admission': <django.forms.fields.BooleanField object>, 'allow_cancel': <django.forms.fields.BooleanField object>, 'allow_waitinglist': <django.forms.fields.BooleanField object>, 'available_from': <eventyay.control.forms.SplitDateTimeField object>, 'available_until': <eventyay.control.forms.SplitDateTimeField object>, 'category': <django.forms.models.ModelChoiceField object>, 'checkin_attention': <django.forms.fields.BooleanField object>, 'default_price': <django.forms.fields.DecimalField object>, 'description': <i18nfield.forms.I18nFormField object>, 'free_price': <django.forms.fields.BooleanField object>, 'generate_tickets': <django.forms.fields.NullBooleanField object>, 'hidden_if_available': <django_scopes.forms.SafeModelChoiceField object>, 'hide_without_voucher': <django.forms.fields.BooleanField object>, 'internal_name': <django.forms.fields.CharField object>, 'issue_giftcard': <django.forms.fields.BooleanField object>, 'max_per_order': <django.forms.fields.IntegerField object>, 'min_per_order': <django.forms.fields.IntegerField object>, 'name': <i18nfield.forms.I18nFormField object>, 'original_price': <django.forms.fields.DecimalField object>, 'picture': <django.forms.fields.ImageField object>, 'require_approval': <django.forms.fields.BooleanField object>, 'require_bundling': <django.forms.fields.BooleanField object>, 'require_voucher': <django.forms.fields.BooleanField object>, 'sales_channels': <django.forms.fields.CharField object>, 'show_quota_left': <django.forms.fields.NullBooleanField object>, 'tax_rule': <django.forms.models.ModelChoiceField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {}
property media

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

save(*args, **kwargs)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.product.ProductVariationForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

fields = ['value', 'active', 'default_price', 'original_price', 'description']
localized_fields = '__all__'
model

alias of ProductVariation

base_fields = {'active': <django.forms.fields.BooleanField object>, 'default_price': <django.forms.fields.DecimalField object>, 'description': <i18nfield.forms.I18nFormField object>, 'original_price': <django.forms.fields.DecimalField object>, 'value': <i18nfield.forms.I18nFormField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.product.ProductVariationsFormSet(*args, **kwargs)

Bases: I18nFormSet

clean()

Hook for doing any extra formset-wide cleaning after Form.clean() has been called on every form. Any ValidationError raised by this method will not be associated with a particular form; it will be accessible via formset.non_form_errors()

property empty_form
template = 'pretixcontrol/item/include_variations.html'
title = 'Variations'
class eventyay.control.forms.product.QuestionForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {'dependency_question': <class 'django_scopes.forms.SafeModelChoiceField'>, 'products': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'valid_datetime_max': <class 'eventyay.control.forms.SplitDateTimeField'>, 'valid_datetime_min': <class 'eventyay.control.forms.SplitDateTimeField'>}
fields = ['question', 'help_text', 'description', 'type', 'required', 'ask_during_checkin', 'hidden', 'identifier', 'products', 'dependency_question', 'dependency_values', 'print_on_invoice', 'valid_number_min', 'valid_number_max', 'valid_datetime_min', 'valid_datetime_max', 'valid_date_min', 'valid_date_max']
localized_fields = '__all__'
model

alias of Question

widgets = {'dependency_values': <class 'django.forms.widgets.SelectMultiple'>, 'products': <django.forms.widgets.CheckboxSelectMultiple object>, 'valid_date_max': <eventyay.base.forms.widgets.DatePickerWidget object>, 'valid_date_min': <eventyay.base.forms.widgets.DatePickerWidget object>, 'valid_datetime_max': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'valid_datetime_min': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>}
base_fields = {'ask_during_checkin': <django.forms.fields.BooleanField object>, 'dependency_question': <django_scopes.forms.SafeModelChoiceField object>, 'dependency_values': <django.forms.fields.CharField object>, 'description': <i18nfield.forms.I18nFormField object>, 'help_text': <i18nfield.forms.I18nFormField object>, 'hidden': <django.forms.fields.BooleanField object>, 'identifier': <django.forms.fields.CharField object>, 'print_on_invoice': <django.forms.fields.BooleanField object>, 'products': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'question': <i18nfield.forms.I18nFormField object>, 'required': <django.forms.fields.BooleanField object>, 'type': <django.forms.fields.TypedChoiceField object>, 'valid_date_max': <django.forms.fields.DateField object>, 'valid_date_min': <django.forms.fields.DateField object>, 'valid_datetime_max': <eventyay.control.forms.SplitDateTimeField object>, 'valid_datetime_min': <eventyay.control.forms.SplitDateTimeField object>, 'valid_number_max': <django.forms.fields.DecimalField object>, 'valid_number_min': <django.forms.fields.DecimalField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

clean_ask_during_checkin()
clean_dependency_question()
clean_dependency_values()
declared_fields = {'question': <i18nfield.forms.I18nFormField object>}
property media

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

removeDesOption()
class eventyay.control.forms.product.QuestionOptionForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

fields = ['answer']
localized_fields = '__all__'
model

alias of QuestionOption

base_fields = {'answer': <i18nfield.forms.I18nFormField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.product.QuotaForm(**kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {'subevent': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ['name', 'size', 'subevent', 'close_when_sold_out', 'release_after_exit']
localized_fields = '__all__'
model

alias of Quota

base_fields = {'close_when_sold_out': <django.forms.fields.BooleanField object>, 'name': <django.forms.fields.CharField object>, 'release_after_exit': <django.forms.fields.BooleanField object>, 'size': <django.forms.fields.IntegerField object>, 'subevent': <django_scopes.forms.SafeModelChoiceField object>}
declared_fields = {}
property media

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

save(*args, **kwargs)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.product.ShowQuotaNullBooleanSelect(attrs=None)

Bases: NullBooleanSelect

property media
class eventyay.control.forms.product.TicketNullBooleanSelect(attrs=None)

Bases: NullBooleanSelect

property media
class eventyay.control.forms.renderers.BulkEditFieldRenderer(*args, **kwargs)

Bases: BulkEditMixin, FieldRenderer

layout = 'horizontal'
class eventyay.control.forms.renderers.BulkEditMixin(*args, **kwargs)

Bases: object

wrap_field(html)
class eventyay.control.forms.renderers.ControlFieldRenderer(*args, **kwargs)

Bases: FieldRenderer

add_label(html)
class eventyay.control.forms.renderers.InlineBulkEditFieldRenderer(*args, **kwargs)

Bases: BulkEditMixin, InlineFieldRenderer

layout = 'inline'
eventyay.control.forms.renderers.render_label(content, label_for=None, label_class=None, label_title='', optional=False)

Render a label with content

class eventyay.control.forms.server_management.BBBMoveRoomForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None, bound_field_class=None)

Bases: Form

base_fields = {'room': <django.forms.models.ModelChoiceField object>, 'server': <django.forms.models.ModelChoiceField object>}
declared_fields = {'room': <django.forms.models.ModelChoiceField object>, 'server': <django.forms.models.ModelChoiceField object>}
property media

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

class eventyay.control.forms.server_management.BBBServerForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: HasSecretsMixin, ModelForm

class Meta

Bases: object

field_classes = {'secret': <class 'eventyay.control.forms.server_management.SecretKeyField'>}
fields = ('url', 'active', 'event_exclusive', 'rooms_only', 'secret')
model

alias of BBBServer

base_fields = {'active': <django.forms.fields.BooleanField object>, 'event_exclusive': <django.forms.models.ModelChoiceField object>, 'rooms_only': <django.forms.fields.BooleanField object>, 'secret': <eventyay.control.forms.server_management.SecretKeyField object>, 'url': <django.forms.fields.URLField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.server_management.ConftoolSyncPostersForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None, bound_field_class=None)

Bases: Form

base_fields = {'event': <django.forms.models.ModelChoiceField object>}
declared_fields = {'event': <django.forms.models.ModelChoiceField object>}
property media

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

class eventyay.control.forms.server_management.DateInput(attrs=None, format=None)

Bases: DateInput

input_type = 'date'
property media
class eventyay.control.forms.server_management.EventForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ('id', 'domain', 'locale', 'timezone', 'feature_flags', 'external_auth_url')
model

alias of Event

base_fields = {'domain': <django.forms.fields.CharField object>, 'external_auth_url': <django.forms.fields.URLField object>, 'feature_flags': <django.forms.fields.MultipleChoiceField object>, 'locale': <django.forms.fields.TypedChoiceField object>, 'timezone': <django.forms.fields.TypedChoiceField object>}
clean_id()
declared_fields = {'feature_flags': <django.forms.fields.MultipleChoiceField object>}
property media

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

class eventyay.control.forms.server_management.HasSecretsMixin

Bases: object

save()
class eventyay.control.forms.server_management.JanusServerForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: HasSecretsMixin, ModelForm

class Meta

Bases: object

field_classes = {'room_create_key': <class 'eventyay.control.forms.server_management.SecretKeyField'>}
fields = ('url', 'active', 'room_create_key', 'event_exclusive')
model

alias of JanusServer

base_fields = {'active': <django.forms.fields.BooleanField object>, 'event_exclusive': <django.forms.models.ModelChoiceField object>, 'room_create_key': <eventyay.control.forms.server_management.SecretKeyField object>, 'url': <django.forms.fields.CharField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.server_management.PasswordMixin

Bases: object

clean()
class eventyay.control.forms.server_management.PlannedUsageForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: ModelForm

class Meta

Bases: object

fields = ('start', 'end', 'attendees', 'notes')
model

alias of EventPlannedUsage

widgets = {'attendees': <django.forms.widgets.NumberInput object>, 'end': <eventyay.control.forms.server_management.DateInput object>, 'notes': <django.forms.widgets.Textarea object>, 'start': <eventyay.control.forms.server_management.DateInput object>}
base_fields = {'attendees': <django.forms.fields.IntegerField object>, 'end': <django.forms.fields.DateField object>, 'notes': <django.forms.fields.CharField object>, 'start': <django.forms.fields.DateField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.server_management.ProfileForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: ModelForm

class Meta

Bases: object

fields = ('email', 'password')
model

alias of User

base_fields = {'email': <django.forms.fields.EmailField object>, 'new_password': <django.forms.fields.CharField object>, 'password': <django.forms.fields.CharField object>}
clean_password()
declared_fields = {'new_password': <django.forms.fields.CharField object>, 'password': <django.forms.fields.CharField object>}
property media

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

save(*args, **kwargs)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.server_management.SecretKeyField(*, max_length=None, min_length=None, strip=True, empty_value='', **kwargs)

Bases: CharField

has_changed(initial, data)

Return True if data differs from initial.

run_validators(value)
widget

alias of SecretKeyWidget

class eventyay.control.forms.server_management.SecretKeyWidget(attrs=None)

Bases: TextInput

get_context(name, value, attrs)
property media
class eventyay.control.forms.server_management.SignupForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: PasswordMixin, ModelForm

class Meta

Bases: object

fields = ('email', 'password')
model

alias of User

base_fields = {'email': <django.forms.fields.EmailField object>, 'password': <django.forms.fields.CharField object>, 'repeat_password': <django.forms.fields.CharField object>}
declared_fields = {'password': <django.forms.fields.CharField object>, 'repeat_password': <django.forms.fields.CharField object>}
property media

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

save()

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.server_management.StreamKeyGeneratorForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None, bound_field_class=None)

Bases: Form

base_fields = {'days': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'server': <django.forms.models.ModelChoiceField object>}
declared_fields = {'days': <django.forms.fields.IntegerField object>, 'name': <django.forms.fields.CharField object>, 'server': <django.forms.models.ModelChoiceField object>}
property media

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

class eventyay.control.forms.server_management.StreamingServerForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: HasSecretsMixin, ModelForm

class Meta

Bases: object

field_classes = {'token_secret': <class 'eventyay.control.forms.server_management.SecretKeyField'>}
fields = ('active', 'name', 'token_secret', 'url_input', 'url_output')
model

alias of StreamingServer

base_fields = {'active': <django.forms.fields.BooleanField object>, 'name': <django.forms.fields.CharField object>, 'token_secret': <eventyay.control.forms.server_management.SecretKeyField object>, 'url_input': <django.forms.fields.CharField object>, 'url_output': <django.forms.fields.CharField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.server_management.TurnServerForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: HasSecretsMixin, ModelForm

class Meta

Bases: object

field_classes = {'auth_secret': <class 'eventyay.control.forms.server_management.SecretKeyField'>}
fields = ('active', 'hostname', 'auth_secret', 'event_exclusive')
model

alias of TurnServer

base_fields = {'active': <django.forms.fields.BooleanField object>, 'auth_secret': <eventyay.control.forms.server_management.SecretKeyField object>, 'event_exclusive': <django.forms.models.ModelChoiceField object>, 'hostname': <django.forms.fields.CharField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.server_management.UserForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: ModelForm

class Meta

Bases: object

fields = ('email', 'is_staff', 'is_active', 'is_superuser')
model

alias of User

base_fields = {'email': <django.forms.fields.EmailField object>, 'is_active': <django.forms.fields.BooleanField object>, 'is_staff': <django.forms.fields.BooleanField object>, 'is_superuser': <django.forms.fields.BooleanField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.orders.CancelForm(*args, **kwargs)

Bases: ForceQuotaConfirmationForm

base_fields = {'cancel_invoice': <django.forms.fields.BooleanField object>, 'cancellation_fee': <django.forms.fields.DecimalField object>, 'force': <django.forms.fields.BooleanField object>, 'send_email': <django.forms.fields.BooleanField object>}
clean_cancellation_fee()
declared_fields = {'cancel_invoice': <django.forms.fields.BooleanField object>, 'cancellation_fee': <django.forms.fields.DecimalField object>, 'force': <django.forms.fields.BooleanField object>, 'send_email': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.control.forms.orders.CommentForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

fields = ['comment', 'checkin_attention']
model

alias of Order

widgets = {'comment': <django.forms.widgets.Textarea object>}
base_fields = {'checkin_attention': <django.forms.fields.BooleanField object>, 'comment': <django.forms.fields.CharField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.orders.ConfirmPaymentForm(*args, **kwargs)

Bases: ForceQuotaConfirmationForm

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

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

class eventyay.control.forms.orders.EventCancelForm(*args, **kwargs)

Bases: Form

base_fields = {'all_subevents': <django.forms.fields.BooleanField object>, 'auto_refund': <django.forms.fields.BooleanField object>, 'gift_card_conditions': <django.forms.fields.CharField object>, 'gift_card_expires': <eventyay.control.forms.SplitDateTimeField object>, 'keep_fee_fixed': <django.forms.fields.DecimalField object>, 'keep_fee_per_ticket': <django.forms.fields.DecimalField object>, 'keep_fee_percentage': <django.forms.fields.DecimalField object>, 'keep_fees': <django.forms.fields.MultipleChoiceField object>, 'manual_refund': <django.forms.fields.BooleanField object>, 'refund_as_giftcard': <django.forms.fields.BooleanField object>, 'send': <django.forms.fields.BooleanField object>, 'send_message': <django.forms.fields.CharField object>, 'send_subject': <django.forms.fields.CharField object>, 'send_waitinglist': <django.forms.fields.BooleanField object>, 'send_waitinglist_message': <django.forms.fields.CharField object>, 'send_waitinglist_subject': <django.forms.fields.CharField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'subevents_from': <django.forms.fields.SplitDateTimeField object>, 'subevents_to': <django.forms.fields.SplitDateTimeField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {'all_subevents': <django.forms.fields.BooleanField object>, 'auto_refund': <django.forms.fields.BooleanField object>, 'gift_card_conditions': <django.forms.fields.CharField object>, 'gift_card_expires': <eventyay.control.forms.SplitDateTimeField object>, 'keep_fee_fixed': <django.forms.fields.DecimalField object>, 'keep_fee_per_ticket': <django.forms.fields.DecimalField object>, 'keep_fee_percentage': <django.forms.fields.DecimalField object>, 'keep_fees': <django.forms.fields.MultipleChoiceField object>, 'manual_refund': <django.forms.fields.BooleanField object>, 'refund_as_giftcard': <django.forms.fields.BooleanField object>, 'send': <django.forms.fields.BooleanField object>, 'send_message': <django.forms.fields.CharField object>, 'send_subject': <django.forms.fields.CharField object>, 'send_waitinglist': <django.forms.fields.BooleanField object>, 'send_waitinglist_message': <django.forms.fields.CharField object>, 'send_waitinglist_subject': <django.forms.fields.CharField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'subevents_from': <django.forms.fields.SplitDateTimeField object>, 'subevents_to': <django.forms.fields.SplitDateTimeField object>}
property media

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

class eventyay.control.forms.orders.ExporterForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None, bound_field_class=None)

Bases: Form

base_fields = {}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {}
property media

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

class eventyay.control.forms.orders.ExtendForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

fields = []
model

alias of Order

base_fields = {'expires': <django.forms.fields.DateField object>, 'quota_ignore': <django.forms.fields.BooleanField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {'expires': <django.forms.fields.DateField object>, 'quota_ignore': <django.forms.fields.BooleanField object>}
property media

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

save(commit=True)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.orders.ForceQuotaConfirmationForm(*args, **kwargs)

Bases: Form

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

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

class eventyay.control.forms.orders.MarkPaidForm(*args, **kwargs)

Bases: ConfirmPaymentForm

base_fields = {'amount': <django.forms.fields.DecimalField object>, 'force': <django.forms.fields.BooleanField object>, 'payment_date': <django.forms.fields.DateField object>, 'send_email': <django.forms.fields.BooleanField object>}
declared_fields = {'amount': <django.forms.fields.DecimalField object>, 'force': <django.forms.fields.BooleanField object>, 'payment_date': <django.forms.fields.DateField object>, 'send_email': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.control.forms.orders.OrderContactForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ['email', 'email_known_to_work', 'phone']
model

alias of Order

widgets = {'phone': <eventyay.base.forms.questions.WrappedPhoneNumberPrefixWidget object>}
base_fields = {'email': <django.forms.fields.EmailField object>, 'email_known_to_work': <django.forms.fields.BooleanField object>, 'phone': <phonenumber_field.formfields.PhoneNumberField object>, 'regenerate_secrets': <django.forms.fields.BooleanField object>}
declared_fields = {'regenerate_secrets': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.control.forms.orders.OrderFeeChangeForm(*args, **kwargs)

Bases: Form

base_fields = {'operation_cancel': <django.forms.fields.BooleanField object>, 'tax_rule': <django.forms.models.ModelChoiceField object>, 'value': <django.forms.fields.DecimalField object>}
declared_fields = {'operation_cancel': <django.forms.fields.BooleanField object>, 'tax_rule': <django.forms.models.ModelChoiceField object>, 'value': <django.forms.fields.DecimalField object>}
property media

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

class eventyay.control.forms.orders.OrderLocaleForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ['locale']
model

alias of Order

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

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

class eventyay.control.forms.orders.OrderMailForm(*args, **kwargs)

Bases: Form

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

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

class eventyay.control.forms.orders.OrderPositionAddForm(*args, **kwargs)

Bases: Form

base_fields = {'addon_to': <django.forms.models.ModelChoiceField object>, 'price': <django.forms.fields.DecimalField object>, 'productvar': <django.forms.fields.ChoiceField object>, 'seat': <django.forms.fields.CharField object>, 'subevent': <django.forms.models.ModelChoiceField object>}
declared_fields = {'addon_to': <django.forms.models.ModelChoiceField object>, 'price': <django.forms.fields.DecimalField object>, 'productvar': <django.forms.fields.ChoiceField object>, 'seat': <django.forms.fields.CharField object>, 'subevent': <django.forms.models.ModelChoiceField object>}
property media

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

class eventyay.control.forms.orders.OrderPositionAddFormset(*args, **kwargs)

Bases: BaseFormSet

property empty_form
class eventyay.control.forms.orders.OrderPositionChangeForm(*args, **kwargs)

Bases: Form

base_fields = {'operation_cancel': <django.forms.fields.BooleanField object>, 'operation_secret': <django.forms.fields.BooleanField object>, 'operation_split': <django.forms.fields.BooleanField object>, 'price': <django.forms.fields.DecimalField object>, 'productvar': <django.forms.fields.ChoiceField object>, 'seat': <django.forms.fields.CharField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'tax_rule': <django.forms.models.ModelChoiceField object>}
declared_fields = {'operation_cancel': <django.forms.fields.BooleanField object>, 'operation_secret': <django.forms.fields.BooleanField object>, 'operation_split': <django.forms.fields.BooleanField object>, 'price': <django.forms.fields.DecimalField object>, 'productvar': <django.forms.fields.ChoiceField object>, 'seat': <django.forms.fields.CharField object>, 'subevent': <django.forms.models.ModelChoiceField object>, 'tax_rule': <django.forms.models.ModelChoiceField object>}
property media

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

static taxrule_label_from_instance(obj)
class eventyay.control.forms.orders.OrderPositionMailForm(*args, **kwargs)

Bases: OrderMailForm

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

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

class eventyay.control.forms.orders.OrderRefundForm(*args, **kwargs)

Bases: Form

base_fields = {'action': <django.forms.fields.ChoiceField object>, 'mode': <django.forms.fields.ChoiceField object>, 'partial_amount': <django.forms.fields.DecimalField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

clean_partial_amount()
declared_fields = {'action': <django.forms.fields.ChoiceField object>, 'mode': <django.forms.fields.ChoiceField object>, 'partial_amount': <django.forms.fields.DecimalField object>}
property media

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

class eventyay.control.forms.orders.OtherOperationsForm(*args, **kwargs)

Bases: Form

base_fields = {'ignore_quotas': <django.forms.fields.BooleanField object>, 'notify': <django.forms.fields.BooleanField object>, 'recalculate_taxes': <django.forms.fields.ChoiceField object>, 'reissue_invoice': <django.forms.fields.BooleanField object>}
declared_fields = {'ignore_quotas': <django.forms.fields.BooleanField object>, 'notify': <django.forms.fields.BooleanField object>, 'recalculate_taxes': <django.forms.fields.ChoiceField object>, 'reissue_invoice': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.control.forms.orders.ReactivateOrderForm(*args, **kwargs)

Bases: ForceQuotaConfirmationForm

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

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

class eventyay.control.forms.users.StaffSessionForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)

Bases: ModelForm

class Meta

Bases: object

fields = ['comment']
model

alias of StaffSession

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

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

class eventyay.control.forms.users.UserEditForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ['fullname', 'locale', 'timezone', 'email', 'require_2fa', 'is_active', 'is_staff', 'last_login']
model

alias of User

base_fields = {'email': <django.forms.fields.EmailField object>, 'fullname': <django.forms.fields.CharField object>, 'is_active': <django.forms.fields.BooleanField object>, 'is_staff': <django.forms.fields.BooleanField object>, 'last_login': <django.forms.fields.DateTimeField object>, 'locale': <django.forms.fields.TypedChoiceField object>, 'new_pw': <django.forms.fields.CharField object>, 'new_pw_repeat': <django.forms.fields.CharField object>, 'require_2fa': <django.forms.fields.BooleanField object>, 'timezone': <django.forms.fields.ChoiceField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

clean_email()
clean_new_pw()
clean_new_pw_repeat()
declared_fields = {'new_pw': <django.forms.fields.CharField object>, 'new_pw_repeat': <django.forms.fields.CharField object>, 'timezone': <django.forms.fields.ChoiceField object>}
error_messages = {'duplicate_identifier': 'There already is an account associated with this e-mail address. Please choose a different one.', 'pw_mismatch': 'Please enter the same password twice'}
form_invalid(form)
property media

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

class eventyay.control.forms.vouchers.FakeChoiceField(*, choices=(), **kwargs)

Bases: ChoiceField

valid_value(value)

Check to see if the provided value is a valid choice.

class eventyay.control.forms.vouchers.VoucherBulkForm(*args, **kwargs)

Bases: VoucherForm

class Meta

Bases: object

field_classes = {'subevent': <class 'django_scopes.forms.SafeModelChoiceField'>, 'valid_until': <class 'eventyay.control.forms.SplitDateTimeField'>}
fields = ['valid_until', 'block_quota', 'allow_ignore_quota', 'value', 'tag', 'comment', 'max_usages', 'price_mode', 'subevent', 'show_hidden_products', 'budget']
help_texts = {'max_usages': 'Number of times EACH of these vouchers can be redeemed.'}
labels = {'max_usages': 'Maximum usages per voucher'}
localized_fields = '__all__'
model

alias of Voucher

widgets = {'valid_until': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>}
class Recipient(email, number, name, tag)

Bases: tuple

email

Alias for field number 0

name

Alias for field number 2

number

Alias for field number 1

tag

Alias for field number 3

base_fields = {'allow_ignore_quota': <django.forms.fields.BooleanField object>, 'block_quota': <django.forms.fields.BooleanField object>, 'budget': <django.forms.fields.DecimalField object>, 'codes': <django.forms.fields.CharField object>, 'comment': <django.forms.fields.CharField object>, 'max_usages': <django.forms.fields.IntegerField object>, 'price_mode': <django.forms.fields.TypedChoiceField object>, 'productvar': <eventyay.control.forms.vouchers.FakeChoiceField object>, 'send': <django.forms.fields.BooleanField object>, 'send_message': <django.forms.fields.CharField object>, 'send_recipients': <django.forms.fields.CharField object>, 'send_subject': <django.forms.fields.CharField object>, 'show_hidden_products': <django.forms.fields.BooleanField object>, 'subevent': <django_scopes.forms.SafeModelChoiceField object>, 'tag': <django.forms.fields.CharField object>, 'valid_until': <eventyay.control.forms.SplitDateTimeField object>, 'value': <django.forms.fields.DecimalField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

clean_send_recipients()
declared_fields = {'codes': <django.forms.fields.CharField object>, 'productvar': <eventyay.control.forms.vouchers.FakeChoiceField object>, 'send': <django.forms.fields.BooleanField object>, 'send_message': <django.forms.fields.CharField object>, 'send_recipients': <django.forms.fields.CharField object>, 'send_subject': <django.forms.fields.CharField object>}
property media

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

post_bulk_save(objs)
class eventyay.control.forms.vouchers.VoucherForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {'subevent': <class 'django_scopes.forms.SafeModelChoiceField'>, 'valid_until': <class 'eventyay.control.forms.SplitDateTimeField'>}
fields = ['code', 'valid_until', 'block_quota', 'allow_ignore_quota', 'value', 'tag', 'comment', 'max_usages', 'price_mode', 'subevent', 'show_hidden_products', 'budget']
localized_fields = '__all__'
model

alias of Voucher

widgets = {'valid_until': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>}
base_fields = {'allow_ignore_quota': <django.forms.fields.BooleanField object>, 'block_quota': <django.forms.fields.BooleanField object>, 'budget': <django.forms.fields.DecimalField object>, 'code': <django.forms.fields.CharField object>, 'comment': <django.forms.fields.CharField object>, 'max_usages': <django.forms.fields.IntegerField object>, 'price_mode': <django.forms.fields.TypedChoiceField object>, 'productvar': <eventyay.control.forms.vouchers.FakeChoiceField object>, 'show_hidden_products': <django.forms.fields.BooleanField object>, 'subevent': <django_scopes.forms.SafeModelChoiceField object>, 'tag': <django.forms.fields.CharField object>, 'valid_until': <eventyay.control.forms.SplitDateTimeField object>, 'value': <django.forms.fields.DecimalField object>}
clean()

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

declared_fields = {'productvar': <eventyay.control.forms.vouchers.FakeChoiceField object>}
property media

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

save(commit=True)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.widgets.Select2(*args, **kwargs)

Bases: Select2Mixin, Select

property media
class eventyay.control.forms.widgets.Select2Mixin(*args, **kwargs)

Bases: object

optgroups(name, value, attrs=None)
options(name, value, attrs=None)
template_name = 'pretixcontrol/select2_widget.html'
class eventyay.control.forms.widgets.Select2Multiple(*args, **kwargs)

Bases: Select2Mixin, SelectMultiple

property media
class eventyay.control.forms.widgets.Select2ProductVarQuota(*args, **kwargs)

Bases: Select2ProductVarQuotaMixin, Select

property media
class eventyay.control.forms.widgets.Select2ProductVarQuotaMixin(*args, **kwargs)

Bases: Select2Mixin

options(name, value, attrs=None)
class eventyay.control.forms.subevents.CheckinListFormSet(*args, **kwargs)

Bases: I18nInlineFormSet

property empty_form
products
class eventyay.control.forms.subevents.NullBooleanSelect(attrs=None)

Bases: NullBooleanSelect

property media
class eventyay.control.forms.subevents.QuotaFormSet(*args, **kwargs)

Bases: I18nInlineFormSet

property empty_form
products
class eventyay.control.forms.subevents.RRuleForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None, bound_field_class=None)

Bases: Form

base_fields = {'count': <django.forms.fields.IntegerField object>, 'dtstart': <django.forms.fields.DateField object>, 'end': <django.forms.fields.ChoiceField object>, 'exclude': <django.forms.fields.BooleanField object>, 'freq': <django.forms.fields.ChoiceField object>, 'interval': <django.forms.fields.IntegerField object>, 'monthly_bysetpos': <django.forms.fields.ChoiceField object>, 'monthly_byweekday': <django.forms.fields.ChoiceField object>, 'monthly_same': <django.forms.fields.ChoiceField object>, 'until': <django.forms.fields.DateField object>, 'weekly_byweekday': <django.forms.fields.MultipleChoiceField object>, 'yearly_bymonth': <django.forms.fields.ChoiceField object>, 'yearly_bysetpos': <django.forms.fields.ChoiceField object>, 'yearly_byweekday': <django.forms.fields.ChoiceField object>, 'yearly_same': <django.forms.fields.ChoiceField object>}
declared_fields = {'count': <django.forms.fields.IntegerField object>, 'dtstart': <django.forms.fields.DateField object>, 'end': <django.forms.fields.ChoiceField object>, 'exclude': <django.forms.fields.BooleanField object>, 'freq': <django.forms.fields.ChoiceField object>, 'interval': <django.forms.fields.IntegerField object>, 'monthly_bysetpos': <django.forms.fields.ChoiceField object>, 'monthly_byweekday': <django.forms.fields.ChoiceField object>, 'monthly_same': <django.forms.fields.ChoiceField object>, 'until': <django.forms.fields.DateField object>, 'weekly_byweekday': <django.forms.fields.MultipleChoiceField object>, 'yearly_bymonth': <django.forms.fields.ChoiceField object>, 'yearly_bysetpos': <django.forms.fields.ChoiceField object>, 'yearly_byweekday': <django.forms.fields.ChoiceField object>, 'yearly_same': <django.forms.fields.ChoiceField object>}
property media

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

parse_weekdays(value)
class eventyay.control.forms.subevents.SubEventBulkEditForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {}
fields = ['name', 'location', 'frontpage_text', 'geo_lat', 'geo_lon', 'is_public', 'active']
localized_fields = '__all__'
model

alias of SubEvent

widgets = {}
base_fields = {'active': <django.forms.fields.BooleanField object>, 'frontpage_text': <i18nfield.forms.I18nFormField object>, 'geo_lat': <django.forms.fields.FloatField object>, 'geo_lon': <django.forms.fields.FloatField object>, 'is_public': <django.forms.fields.BooleanField object>, 'location': <i18nfield.forms.I18nFormField object>, 'name': <i18nfield.forms.I18nFormField object>}
declared_fields = {}
full_clean()

Clean all of self.data and populate self._errors and self.cleaned_data.

property media

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

save(commit=True)

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class eventyay.control.forms.subevents.SubEventBulkForm(*args, **kwargs)

Bases: SubEventForm

base_fields = {'active': <django.forms.fields.BooleanField object>, 'date_admission': <eventyay.control.forms.SplitDateTimeField object>, 'date_from': <eventyay.control.forms.SplitDateTimeField object>, 'date_to': <eventyay.control.forms.SplitDateTimeField object>, 'frontpage_text': <i18nfield.forms.I18nFormField object>, 'geo_lat': <django.forms.fields.FloatField object>, 'geo_lon': <django.forms.fields.FloatField object>, 'is_public': <django.forms.fields.BooleanField object>, 'location': <i18nfield.forms.I18nFormField object>, 'name': <i18nfield.forms.I18nFormField object>, 'presale_end': <eventyay.control.forms.SplitDateTimeField object>, 'presale_start': <eventyay.control.forms.SplitDateTimeField object>, 'rel_presale_end': <eventyay.base.reldate.RelativeDateTimeField object>, 'rel_presale_start': <eventyay.base.reldate.RelativeDateTimeField object>}
declared_fields = {'rel_presale_end': <eventyay.base.reldate.RelativeDateTimeField object>, 'rel_presale_start': <eventyay.base.reldate.RelativeDateTimeField object>}
property media

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

class eventyay.control.forms.subevents.SubEventForm(*args, **kwargs)

Bases: I18nModelForm

class Meta

Bases: object

field_classes = {'date_admission': <class 'eventyay.control.forms.SplitDateTimeField'>, 'date_from': <class 'eventyay.control.forms.SplitDateTimeField'>, 'date_to': <class 'eventyay.control.forms.SplitDateTimeField'>, 'presale_end': <class 'eventyay.control.forms.SplitDateTimeField'>, 'presale_start': <class 'eventyay.control.forms.SplitDateTimeField'>}
fields = ['name', 'active', 'is_public', 'date_from', 'date_to', 'date_admission', 'presale_start', 'presale_end', 'location', 'frontpage_text', 'geo_lat', 'geo_lon']
localized_fields = '__all__'
model

alias of SubEvent

widgets = {'date_admission': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'date_from': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'date_to': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'presale_end': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>, 'presale_start': <eventyay.base.forms.widgets.SplitDateTimePickerWidget object>}
base_fields = {'active': <django.forms.fields.BooleanField object>, 'date_admission': <eventyay.control.forms.SplitDateTimeField object>, 'date_from': <eventyay.control.forms.SplitDateTimeField object>, 'date_to': <eventyay.control.forms.SplitDateTimeField object>, 'frontpage_text': <i18nfield.forms.I18nFormField object>, 'geo_lat': <django.forms.fields.FloatField object>, 'geo_lon': <django.forms.fields.FloatField object>, 'is_public': <django.forms.fields.BooleanField object>, 'location': <i18nfield.forms.I18nFormField object>, 'name': <i18nfield.forms.I18nFormField object>, 'presale_end': <eventyay.control.forms.SplitDateTimeField object>, 'presale_start': <eventyay.control.forms.SplitDateTimeField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.subevents.SubEventMetaValueForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ['value']
model

alias of SubEventMetaValue

widgets = {'value': <class 'django.forms.widgets.TextInput'>}
base_fields = {'value': <django.forms.fields.CharField object>}
clean_slug()
declared_fields = {}
property media

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

class eventyay.control.forms.subevents.SubEventProductForm(*args, **kwargs)

Bases: SubEventProductOrVariationFormMixin, ModelForm

class Meta

Bases: object

fields = ['price', 'disabled']
model

alias of SubEventProduct

widgets = {'price': <class 'django.forms.widgets.TextInput'>}
base_fields = {'disabled': <django.forms.fields.BooleanField object>, 'price': <django.forms.fields.DecimalField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.subevents.SubEventProductOrVariationFormMixin(*args, **kwargs)

Bases: object

class eventyay.control.forms.subevents.SubEventProductVariationForm(*args, **kwargs)

Bases: SubEventProductOrVariationFormMixin, ModelForm

class Meta

Bases: object

fields = ['price', 'disabled']
model

alias of SubEventProduct

widgets = {'price': <class 'django.forms.widgets.TextInput'>}
base_fields = {'disabled': <django.forms.fields.BooleanField object>, 'price': <django.forms.fields.DecimalField object>}
declared_fields = {}
property media

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

class eventyay.control.forms.subevents.TimeForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None, bound_field_class=None)

Bases: Form

base_fields = {'time_admission': <django.forms.fields.TimeField object>, 'time_from': <django.forms.fields.TimeField object>, 'time_to': <django.forms.fields.TimeField object>}
declared_fields = {'time_admission': <django.forms.fields.TimeField object>, 'time_from': <django.forms.fields.TimeField object>, 'time_to': <django.forms.fields.TimeField object>}
property media

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

Organizer Forms

Template Tags

eventyay.control.templatetags.getitem.getitem_filter(value, itemname)
class eventyay.control.templatetags.hierarkey_form.PropagatedNode(nodelist, event, field_names, url)

Bases: Node

render(context)

Return the node rendered as a string.

eventyay.control.templatetags.hierarkey_form.propagated(parser, token)
eventyay.control.templatetags.mail_settings_preview.get_attribute(value, key)
eventyay.control.templatetags.mail_settings_preview.has_attribute(value, key)
eventyay.control.templatetags.mail_settings_preview.split(value, delimiter=',')
eventyay.control.templatetags.order_overview.togglesum_filter(value, arg='EUR', autoescape=True)

Tasks

Views

class eventyay.control.views.admin_views.AdminBase

Bases: UserPassesTestMixin

Simple View mixin for now, but will make it easier to improve permissions in the future.

login_url = '/control/auth/login/'
test_func()
class eventyay.control.views.admin_views.BBBMoveRoom(**kwargs)

Bases: AdminBase, FormView

form_class

alias of BBBMoveRoomForm

form_valid(form)

If the form is valid, redirect to the supplied URL.

template_name = 'control/bbb_moveroom.html'
class eventyay.control.views.admin_views.BBBServerCreate(**kwargs)

Bases: AdminBase, CreateView

form_class

alias of BBBServerForm

form_valid(form)

If the form is valid, save the associated model.

success_url = '/admin/video/bbbs/'
template_name = 'control/bbb_form.html'
class eventyay.control.views.admin_views.BBBServerDelete(**kwargs)

Bases: AdminBase, DeleteView

context_object_name = 'server'
delete(request, *args, **kwargs)

Call the delete() method on the fetched object and then redirect to the success URL.

queryset
success_url = '/admin/video/bbbs/'
template_name = 'control/bbb_delete.html'
class eventyay.control.views.admin_views.BBBServerList(**kwargs)

Bases: AdminBase, ListView

context_object_name = 'servers'
queryset
template_name = 'control/bbb_list.html'
class eventyay.control.views.admin_views.BBBServerUpdate(**kwargs)

Bases: AdminBase, UpdateView

form_class

alias of BBBServerForm

form_valid(form)

If the form is valid, save the associated model.

queryset
success_url = '/admin/video/bbbs/'
template_name = 'control/bbb_form.html'
class eventyay.control.views.admin_views.ConftoolSyncPosters(**kwargs)

Bases: AdminBase, FormView

form_class

alias of ConftoolSyncPostersForm

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(**kwargs)

Insert the form into the context dict.

template_name = 'control/conftool_syncposters.html'
class eventyay.control.views.admin_views.EventAdminToken(**kwargs)

Bases: AdminBase, DetailView

get(request, *args, **kwargs)
get_object(queryset=None)

Override get_object to handle both slug and pk lookups

queryset
success_url = '/admin/video/events/'
template_name = 'control/event_clear.html'
class eventyay.control.views.admin_views.EventCalendar(**kwargs)

Bases: AdminBase, View

get(request, *args, **kwargs)
class eventyay.control.views.admin_views.EventClear(**kwargs)

Bases: AdminBase, DetailView

post(request, *args, **kwargs)
queryset
success_url = '/admin/video/events/'
template_name = 'control/event_clear.html'
class eventyay.control.views.admin_views.EventCreate(**kwargs)

Bases: FormsetMixin, AdminBase, CreateView

copy_from
form_class

alias of EventForm

form_valid(form)

If the form is valid, save the associated model.

get_context_data(**kwargs)

Insert the form into the context dict.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

post(request, *args, **kwargs)

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

success_url = '/admin/video/events/'
template_name = 'control/event_create.html'
class eventyay.control.views.admin_views.EventList(**kwargs)

Bases: AdminBase, ListView

context_object_name = 'events'
get_context_data(*args, **kwargs)

Get the context for this view.

queryset
template_name = 'control/event_list.html'
class eventyay.control.views.admin_views.EventUpdate(**kwargs)

Bases: FormsetMixin, AdminBase, UpdateView

form_class

alias of EventForm

form_valid(form)

If the form is valid, save the associated model.

get_context_data(**kwargs)

Insert the form into the context dict.

post(request, *args, **kwargs)

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

queryset
success_url = '/admin/video/events/'
template_name = 'control/event_update.html'
class eventyay.control.views.admin_views.FormsetMixin

Bases: object

formset
get_context_data(**kwargs)
class eventyay.control.views.admin_views.IndexView(**kwargs)

Bases: AdminBase, TemplateView

template_name = 'control/index.html'
class eventyay.control.views.admin_views.JanusServerCreate(**kwargs)

Bases: AdminBase, CreateView

form_class

alias of JanusServerForm

form_valid(form)

If the form is valid, save the associated model.

success_url = '/admin/video/janus/'
template_name = 'control/janus_form.html'
class eventyay.control.views.admin_views.JanusServerDelete(**kwargs)

Bases: AdminBase, DeleteView

context_object_name = 'server'
delete(request, *args, **kwargs)

Call the delete() method on the fetched object and then redirect to the success URL.

queryset
success_url = '/admin/video/janus/'
template_name = 'control/janus_delete.html'
class eventyay.control.views.admin_views.JanusServerList(**kwargs)

Bases: AdminBase, ListView

context_object_name = 'servers'
queryset
template_name = 'control/janus_list.html'
class eventyay.control.views.admin_views.JanusServerUpdate(**kwargs)

Bases: AdminBase, UpdateView

form_class

alias of JanusServerForm

form_valid(form)

If the form is valid, save the associated model.

queryset
success_url = '/admin/video/janus/'
template_name = 'control/janus_form.html'
class eventyay.control.views.admin_views.ProfileView(**kwargs)

Bases: AdminBase, FormView

form_class

alias of ProfileForm

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

success_url = '/admin/video/auth/profile/'
template_name = 'control/profile.html'
class eventyay.control.views.admin_views.SignupView(**kwargs)

Bases: AdminBase, FormView

form_class

alias of SignupForm

form_valid(form)

If the form is valid, redirect to the supplied URL.

template_name = 'registration/register.html'
test_func()
class eventyay.control.views.admin_views.StreamingServerCreate(**kwargs)

Bases: AdminBase, CreateView

form_class

alias of StreamingServerForm

form_valid(form)

If the form is valid, save the associated model.

success_url = '/admin/video/streamingservers/'
template_name = 'control/streaming_form.html'
class eventyay.control.views.admin_views.StreamingServerDelete(**kwargs)

Bases: AdminBase, DeleteView

context_object_name = 'server'
delete(request, *args, **kwargs)

Call the delete() method on the fetched object and then redirect to the success URL.

queryset
success_url = '/admin/video/streamingservers/'
template_name = 'control/streaming_delete.html'
class eventyay.control.views.admin_views.StreamingServerList(**kwargs)

Bases: AdminBase, ListView

context_object_name = 'streamings'
queryset
template_name = 'control/streaming_list.html'
class eventyay.control.views.admin_views.StreamingServerUpdate(**kwargs)

Bases: AdminBase, UpdateView

form_class

alias of StreamingServerForm

form_valid(form)

If the form is valid, save the associated model.

queryset
success_url = '/admin/video/streamingservers/'
template_name = 'control/streaming_form.html'
class eventyay.control.views.admin_views.StreamkeyGenerator(**kwargs)

Bases: AdminBase, FormView

form_class

alias of StreamKeyGeneratorForm

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(**kwargs)

Insert the form into the context dict.

template_name = 'control/streamkey.html'
class eventyay.control.views.admin_views.SuperuserBase

Bases: UserPassesTestMixin

login_url = '/control/auth/login/'
test_func()
class eventyay.control.views.admin_views.SystemLogDetail(**kwargs)

Bases: AdminBase, DetailView

context_object_name = 'systemlog'
get_context_data(**kwargs)

Insert the single object into the context dict.

queryset
template_name = 'control/systemlog_detail.html'
class eventyay.control.views.admin_views.SystemLogList(**kwargs)

Bases: AdminBase, ListView

context_object_name = 'systemlogs'
paginate_by = 25
queryset
template_name = 'control/systemlog_list.html'
class eventyay.control.views.admin_views.TurnServerCreate(**kwargs)

Bases: AdminBase, CreateView

form_class

alias of TurnServerForm

form_valid(form)

If the form is valid, save the associated model.

success_url = '/admin/video/turns/'
template_name = 'control/turn_form.html'
class eventyay.control.views.admin_views.TurnServerDelete(**kwargs)

Bases: AdminBase, DeleteView

context_object_name = 'server'
delete(request, *args, **kwargs)

Call the delete() method on the fetched object and then redirect to the success URL.

queryset
success_url = '/admin/video/turns/'
template_name = 'control/turn_delete.html'
class eventyay.control.views.admin_views.TurnServerList(**kwargs)

Bases: AdminBase, ListView

context_object_name = 'servers'
queryset
template_name = 'control/turn_list.html'
class eventyay.control.views.admin_views.TurnServerUpdate(**kwargs)

Bases: AdminBase, UpdateView

form_class

alias of TurnServerForm

form_valid(form)

If the form is valid, save the associated model.

queryset
success_url = '/admin/video/turns/'
template_name = 'control/turn_form.html'
class eventyay.control.views.admin_views.UserList(**kwargs)

Bases: SuperuserBase, ListView

context_object_name = 'users'
queryset
template_name = 'control/user_list.html'
class eventyay.control.views.admin_views.UserUpdate(**kwargs)

Bases: SuperuserBase, UpdateView

context_object_name = 'users'
form_class

alias of UserForm

form_valid(form)

If the form is valid, save the associated model.

queryset
success_url = '/admin/video/users/'
template_name = 'control/user_update.html'
class eventyay.control.views.checkin.CheckInListShow(**kwargs)

Bases: EventPermissionRequiredMixin, PaginationMixin, ListView

context_object_name = 'entries'
dispatch(request, *args, **kwargs)
filter_form
get_context_data(**kwargs)

Get the context for this view.

get_queryset(filter=True)

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of Checkin

permission = 'can_view_orders'
post(request, *args, **kwargs)
template_name = 'pretixcontrol/checkin/index.html'
class eventyay.control.views.checkin.CheckinListCreate(**kwargs)

Bases: EventPermissionRequiredMixin, CreateView

context_object_name = 'checkinlist'
copy_from
dispatch(request, *args, **kwargs)
form_class

alias of CheckinListForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of CheckinList

permission = 'can_change_event_settings'
template_name = 'pretixcontrol/checkin/list_edit.html'
class eventyay.control.views.checkin.CheckinListDelete(**kwargs)

Bases: EventPermissionRequiredMixin, DeleteView

context_object_name = 'checkinlist'
form_valid(form)

If the form is valid, redirect to the supplied URL.

get_object(queryset=None) CheckinList

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of CheckinList

permission = 'can_change_event_settings'
template_name = 'pretixcontrol/checkin/list_delete.html'
class eventyay.control.views.checkin.CheckinListList(**kwargs)

Bases: EventPermissionRequiredMixin, PaginationMixin, ListView

context_object_name = 'checkinlists'
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of CheckinList

permission = 'can_view_orders'
template_name = 'pretixcontrol/checkin/lists.html'
class eventyay.control.views.checkin.CheckinListUpdate(**kwargs)

Bases: EventPermissionRequiredMixin, UpdateView

context_object_name = 'checkinlist'
dispatch(request, *args, **kwargs)
form_class

alias of CheckinListForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_object(queryset=None) CheckinList

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of CheckinList

permission = 'can_change_event_settings'
template_name = 'pretixcontrol/checkin/list_edit.html'
class eventyay.control.views.global_settings.DeleteOAuthApplicationView(**kwargs)

Bases: AdministratorPermissionRequiredMixin, DeleteView

model

alias of OAuthApplication

success_url
class eventyay.control.views.global_settings.GlobalSettingsView(**kwargs)

Bases: AdministratorPermissionRequiredMixin, FormView

form_class

alias of GlobalSettingsForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_success_url()

Return the URL to redirect to after processing a valid form.

template_name = 'pretixcontrol/global_settings.html'
class eventyay.control.views.global_settings.LogDetailView(**kwargs)

Bases: AdministratorPermissionRequiredMixin, View

get(request, *args, **kwargs)
class eventyay.control.views.global_settings.MessageView(**kwargs)

Bases: TemplateView

template_name = 'pretixcontrol/global_message.html'
class eventyay.control.views.global_settings.PaymentDetailView(**kwargs)

Bases: AdministratorPermissionRequiredMixin, View

get(request, *args, **kwargs)
class eventyay.control.views.global_settings.RefundDetailView(**kwargs)

Bases: AdministratorPermissionRequiredMixin, View

get(request, *args, **kwargs)
class eventyay.control.views.global_settings.SSOView(**kwargs)

Bases: AdministratorPermissionRequiredMixin, FormView

create_oauth_application(redirect_uris)
form_class

alias of SSOConfigForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(**kwargs)

Insert the form into the context dict.

get_success_url()

Return the URL to redirect to after processing a valid form.

template_name = 'pretixcontrol/global_sso.html'
class eventyay.control.views.global_settings.ToggleBillingValidationView(*args, **kwargs)

Bases: AdministratorPermissionRequiredMixin, TemplateView

get_context_data(**kwargs)
get_success_url() str
post(request, *args, **kwargs)
template_name = 'pretixcontrol/toggle_billing_validation.html'
class eventyay.control.views.global_settings.UpdateCheckView(**kwargs)

Bases: StaffMemberRequiredMixin, FormView

form_class

alias of UpdateSettingsForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(**kwargs)

Insert the form into the context dict.

get_success_url()

Return the URL to redirect to after processing a valid form.

post(request, *args, **kwargs)

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

template_name = 'pretixcontrol/global_update.html'
class eventyay.control.views.orders.AnswerDownload(**kwargs)

Bases: EventPermissionRequiredMixin, OrderViewMixin, ListView

get(request, *args, **kwargs)
permission = 'can_view_orders'
class eventyay.control.views.orders.EventCancel(**kwargs)

Bases: EventPermissionRequiredMixin, AsyncAction, FormView

form_class

alias of EventCancelForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, redirect to the supplied URL.

get(request, *args, **kwargs)

Handle GET requests: instantiate a blank version of the form.

get_error_message(exception)
get_error_url()
get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_success_message(value)
get_success_url(value)

Return the URL to redirect to after processing a valid form.

known_errortypes = ['OrderError']
permission = 'can_change_orders'
task = <@task: eventyay.base.services.cancelevent.cancel_event of eventyay>
template_name = 'pretixcontrol/orders/cancel.html'
class eventyay.control.views.orders.ExportDoView(**kwargs)

Bases: EventPermissionRequiredMixin, ExportMixin, AsyncAction, TemplateView

exporter
get(request, *args, **kwargs)
get_error_url() str
get_success_message(value)
get_success_url(value)
known_errortypes = ['ExportError']
permission = 'can_view_orders'
post(request, *args, **kwargs)
task = <@task: eventyay.base.services.export.export of eventyay>
template_name = 'pretixcontrol/orders/export.html'
class eventyay.control.views.orders.ExportMixin

Bases: object

exporters
get_context_data(**kwargs)
class eventyay.control.views.orders.ExportView(**kwargs)

Bases: EventPermissionRequiredMixin, ExportMixin, TemplateView

permission = 'can_view_orders'
template_name = 'pretixcontrol/orders/export.html'
class eventyay.control.views.orders.InvoiceDownload(**kwargs)

Bases: EventPermissionRequiredMixin, View

get(request, *args, **kwargs)
get_order_url()
permission = 'can_view_orders'
class eventyay.control.views.orders.OrderApprove(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderCancellationRequestDelete(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
req
class eventyay.control.views.orders.OrderChange(**kwargs)

Bases: OrderView

add_formset
dispatch(request, *args, **kwargs)
fees
get_context_data(**kwargs)

Insert the single object into the context dict.

other_form
permission = 'can_change_orders'
positions
post(*args, **kwargs)
products
template_name = 'pretixcontrol/order/change.html'
class eventyay.control.views.orders.OrderCheckVATID(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderComment(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderContactChange(**kwargs)

Bases: OrderView

form
get_context_data(**kwargs)

Insert the single object into the context dict.

permission = 'can_change_orders'
post(*args, **kwargs)
template_name = 'pretixcontrol/order/change_contact.html'
class eventyay.control.views.orders.OrderDelete(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderDeny(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderDetail(**kwargs)

Bases: OrderView

download_buttons
get_context_data(**kwargs)

Insert the single object into the context dict.

get_products()
permission = 'can_view_orders'
template_name = 'pretixcontrol/order/index.html'
class eventyay.control.views.orders.OrderDownload(**kwargs)

Bases: AsyncAction, OrderView

get(request, *args, **kwargs)
get_error_url()
get_last_ct()
get_self_url()
get_success_message(value)
get_success_url(value)
order_position
output
permission = 'can_view_orders'
post(request, *args, **kwargs)
success(value)
task = <@task: eventyay.base.services.tickets.generate of eventyay>
class eventyay.control.views.orders.OrderEmailHistory(**kwargs)

Bases: EventPermissionRequiredMixin, OrderViewMixin, ListView

context_object_name = 'logs'
get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of LogEntry

paginate_by = 10
permission = 'can_view_orders'
template_name = 'pretixcontrol/order/mail_history.html'
class eventyay.control.views.orders.OrderExtend(**kwargs)

Bases: OrderView

dispatch(request, *args, **kwargs)
form
get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderGo(**kwargs)

Bases: EventPermissionRequiredMixin, View

get(request, *args, **kwargs)
get_order(code)
permission = 'can_view_orders'
class eventyay.control.views.orders.OrderInvoiceCreate(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderInvoiceRegenerate(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderInvoiceReissue(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderList(**kwargs)

Bases: OrderSearchMixin, EventPermissionRequiredMixin, PaginationMixin, ListView

context_object_name = 'orders'
filter_form
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of Order

permission = 'can_view_orders'
template_name = 'pretixcontrol/orders/index.html'
class eventyay.control.views.orders.OrderLocaleChange(**kwargs)

Bases: OrderView

form
get_context_data(**kwargs)

Insert the single object into the context dict.

permission = 'can_change_orders'
post(*args, **kwargs)
template_name = 'pretixcontrol/order/change_locale.html'
class eventyay.control.views.orders.OrderModifyInformation(**kwargs)

Bases: OrderQuestionsViewMixin, OrderView

all_optional = True
get_context_data(**kwargs)

Insert the single object into the context dict.

only_user_visible = False
other_form
permission = 'can_change_orders'
post(request, *args, **kwargs)
template_name = 'pretixcontrol/order/change_questions.html'
class eventyay.control.views.orders.OrderPaymentCancel(**kwargs)

Bases: OrderView

get(*args, **kwargs)
payment
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderPaymentConfirm(**kwargs)

Bases: OrderView

get(*args, **kwargs)
mark_paid_form
payment
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderPositionSendMail(**kwargs)

Bases: OrderSendMail

form_class

alias of OrderPositionMailForm

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

class eventyay.control.views.orders.OrderReactivate(**kwargs)

Bases: OrderView

dispatch(request, *args, **kwargs)
get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
reactivate_form
class eventyay.control.views.orders.OrderRefundCancel(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
refund
class eventyay.control.views.orders.OrderRefundDone(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
refund
class eventyay.control.views.orders.OrderRefundProcess(**kwargs)

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
refund
class eventyay.control.views.orders.OrderRefundView(**kwargs)

Bases: OrderView

choose_form()
get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
start_form

Bases: OrderView

get(*args, **kwargs)
permission = 'can_change_orders'
post(*args, **kwargs)
class eventyay.control.views.orders.OrderSearch(**kwargs)

Bases: OrderSearchMixin, EventPermissionRequiredMixin, TemplateView

get_context_data(**kwargs)
permission = 'can_view_orders'
template_name = 'pretixcontrol/orders/search.html'
class eventyay.control.views.orders.OrderSearchMixin

Bases: object

get_forms()
class eventyay.control.views.orders.OrderSendMail(**kwargs)

Bases: EventPermissionRequiredMixin, OrderViewMixin, FormView

form_class

alias of OrderMailForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(*args, **kwargs)

Insert the form into the context dict.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_success_url()

Return the URL to redirect to after processing a valid form.

permission = 'can_change_orders'
template_name = 'pretixcontrol/order/sendmail.html'
class eventyay.control.views.orders.OrderTransition(**kwargs)

Bases: OrderView

get(*args, **kwargs)
mark_canceled_form
mark_paid_form
permission = 'can_change_orders'
post(*args, **kwargs)
req
class eventyay.control.views.orders.OrderView(**kwargs)

Bases: EventPermissionRequiredMixin, DetailView

context_object_name = 'order'
get_context_data(**kwargs)

Insert the single object into the context dict.

get_object(queryset=None)

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_order_url()
model

alias of Order

order
class eventyay.control.views.orders.OrderViewMixin

Bases: object

get_context_data(**kwargs)
get_object(queryset=None)
order
class eventyay.control.views.orders.OverView(**kwargs)

Bases: EventPermissionRequiredMixin, TemplateView

filter_form
get_context_data(**kwargs)
permission = 'can_view_orders'
template_name = 'pretixcontrol/orders/overview.html'
class eventyay.control.views.orders.RefundList(**kwargs)

Bases: EventPermissionRequiredMixin, PaginationMixin, ListView

context_object_name = 'refunds'
filter_form
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of OrderRefund

permission = 'can_view_orders'
template_name = 'pretixcontrol/orders/refunds.html'
class eventyay.control.views.pages.PageCreate(**kwargs)

Bases: AdministratorPermissionRequiredMixin, FormView

form_class

alias of PageSettingsForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(**kwargs)

Insert the form into the context dict.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Page

template_name = 'pretixcontrol/admin/pages/form.html'
class eventyay.control.views.pages.PageDelete(**kwargs)

Bases: AdministratorPermissionRequiredMixin, PageDetailMixin, CompatDeleteView

context_object_name = 'page'
delete(request, *args, **kwargs)

Call the delete() method on the fetched object and then redirect to the success URL.

model

alias of Page

template_name = 'pretixcontrol/admin/pages/delete.html'
class eventyay.control.views.pages.PageDetailMixin

Bases: object

get_object(queryset=None) Page
get_success_url() str
class eventyay.control.views.pages.PageEditForm(*args, **kwargs)

Bases: PageSettingsForm

base_fields = {'confirmation_required': <django.forms.fields.BooleanField object>, 'link_in_footer': <django.forms.fields.BooleanField object>, 'link_in_header': <django.forms.fields.BooleanField object>, 'link_on_website_start_page': <django.forms.fields.BooleanField object>, 'slug': <django.forms.fields.CharField object>, 'text': <i18nfield.forms.I18nFormField object>, 'title': <i18nfield.forms.I18nFormField object>}
clean_slug()
declared_fields = {'slug': <django.forms.fields.CharField object>}
property media

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

class eventyay.control.views.pages.PageList(**kwargs)

Bases: AdministratorPermissionRequiredMixin, ListView

context_object_name = 'pages'
model

alias of Page

paginate_by = 20
template_name = 'pretixcontrol/admin/pages/index.html'
class eventyay.control.views.pages.PageUpdate(**kwargs)

Bases: AdministratorPermissionRequiredMixin, PageDetailMixin, UpdateView

context_object_name = 'page'
form_class

alias of PageEditForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_context_data(**kwargs)

Insert the form into the context dict.

get_success_url() str

Return the URL to redirect to after processing a valid form.

get_text_for_language(lng_code: str) str
model

alias of Page

template_name = 'pretixcontrol/admin/pages/form.html'
class eventyay.control.views.pages.ShowPageView(**kwargs)

Bases: TemplateView

get_context_data(**kwargs)
get_page()
template_name = 'pretixcontrol/admin/pages/show.html'
class eventyay.control.views.pdf.BaseEditorView(**kwargs)

Bases: EventPermissionRequiredMixin, TemplateView

accepted_formats = ('application/pdf',)
generate(p: OrderPosition, override_layout=None, override_background=None)
get(request, *args, **kwargs)
get_background_settings_key()
get_context_data(**kwargs)
get_current_background()
get_current_layout()
get_default_background()
get_images()
get_layout_settings_key()
get_variables()
maxfilesize = 10485760
minfilesize = 10
permission = 'can_change_settings'
post(request, *args, **kwargs)
process_upload()
save_background(f: CachedFile)
save_layout()
template_name = 'pretixcontrol/pdf/index.html'
title = None
class eventyay.control.views.pdf.FontsCSSView(**kwargs)

Bases: TemplateView

content_type = 'text/css'
get_context_data(**kwargs)
template_name = 'pretixcontrol/pdf/webfonts.css'
class eventyay.control.views.pdf.PdfView(**kwargs)

Bases: TemplateView

get(request, *args, **kwargs)
class eventyay.control.views.product.CategoryCreate(**kwargs)

Bases: EventPermissionRequiredMixin, CreateView

context_object_name = 'category'
copy_from
form_class

alias of CategoryForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of ProductCategory

permission = 'can_change_items'
template_name = 'pretixcontrol/items/category.html'
class eventyay.control.views.product.CategoryDelete(**kwargs)

Bases: EventPermissionRequiredMixin, DeleteView

context_object_name = 'category'
form_valid(form)

If the form is valid, redirect to the supplied URL.

get_object(queryset=None) ProductCategory

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of ProductCategory

permission = 'can_change_items'
template_name = 'pretixcontrol/items/category_delete.html'
class eventyay.control.views.product.CategoryList(**kwargs)

Bases: PaginationMixin, ListView

context_object_name = 'categories'
get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of ProductCategory

template_name = 'pretixcontrol/items/categories.html'
class eventyay.control.views.product.CategoryUpdate(**kwargs)

Bases: EventPermissionRequiredMixin, UpdateView

context_object_name = 'category'
form_class

alias of CategoryForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_object(queryset=None) ProductCategory

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of ProductCategory

permission = 'can_change_items'
template_name = 'pretixcontrol/items/category.html'
class eventyay.control.views.product.DescriptionCreate(**kwargs)

Bases: QuestionCreate

form_class

alias of DescriptionForm

template_name = 'pretixcontrol/items/description_edit.html'
class eventyay.control.views.product.DescriptionDelete(**kwargs)

Bases: QuestionDelete

template_name = 'pretixcontrol/items/desciption_delete.html'
class eventyay.control.views.product.DescriptionUpdate(**kwargs)

Bases: QuestionUpdate

form_class

alias of DescriptionForm

template_name = 'pretixcontrol/items/description_edit.html'
class eventyay.control.views.product.FakeQuestion(id, question, position, required)

Bases: tuple

id

Alias for field number 0

position

Alias for field number 2

question

Alias for field number 1

required

Alias for field number 3

class eventyay.control.views.product.MetaDataEditorMixin

Bases: object

meta_form

alias of ProductMetaValueForm

meta_forms
meta_model

alias of ProductMetaValue

save_meta()
class eventyay.control.views.product.ProductCreate(**kwargs)

Bases: EventPermissionRequiredMixin, CreateView

copy_from
form_class

alias of ProductCreateForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_form_kwargs()

Returns the keyword arguments for instantiating the form.

get_initial()

Return the initial data to use for forms on this view.

get_success_url() str

Return the URL to redirect to after processing a valid form.

permission = 'can_change_items'
template_name = 'pretixcontrol/item/create.html'
class eventyay.control.views.product.ProductDelete(**kwargs)

Bases: EventPermissionRequiredMixin, DeleteView

context_object_name = 'product'
form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(*args, **kwargs) dict

Insert the form into the context dict.

get_object(queryset=None) Product

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

is_allowed() bool
model

alias of Product

permission = 'can_change_items'
template_name = 'pretixcontrol/item/delete.html'
class eventyay.control.views.product.ProductDetailMixin

Bases: SingleObjectMixin

context_object_name = 'product'
get_object(queryset=None) Product

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

model

alias of Product

class eventyay.control.views.product.ProductList(**kwargs)

Bases: ListView

context_object_name = 'products'
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of Product

template_name = 'pretixcontrol/items/index.html'
class eventyay.control.views.product.ProductUpdateGeneral(**kwargs)

Bases: ProductDetailMixin, EventPermissionRequiredMixin, MetaDataEditorMixin, UpdateView

form_class

alias of ProductUpdateForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

formsets
get_context_data(**kwargs)

Insert the single object into the context dict.

get_success_url() str

Return the URL to redirect to after processing a valid form.

is_valid(form)
permission = 'can_change_items'
plugin_forms
post(request, *args, **kwargs)

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

save_formset(key, log_base, attr='product', order=True, serializer=None, rm_verb='removed')
template_name = 'pretixcontrol/item/index.html'
class eventyay.control.views.product.QuestionCreate(**kwargs)

Bases: EventPermissionRequiredMixin, QuestionMixin, CreateView

context_object_name = 'question'
form_class

alias of QuestionForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_object(**kwargs)

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Question

permission = 'can_change_items'
template_name = 'pretixcontrol/items/question_edit.html'
class eventyay.control.views.product.QuestionDelete(**kwargs)

Bases: EventPermissionRequiredMixin, DeleteView

context_object_name = 'question'
form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(*args, **kwargs) dict

Insert the form into the context dict.

get_object(queryset=None) Question

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Question

permission = 'can_change_items'
template_name = 'pretixcontrol/items/question_delete.html'
class eventyay.control.views.product.QuestionList(**kwargs)

Bases: ListView

context_object_name = 'questions'
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of Question

template_name = 'pretixcontrol/items/questions.html'
class eventyay.control.views.product.QuestionMixin

Bases: object

formset
get_context_data(**kwargs)
save_formset(obj)
class eventyay.control.views.product.QuestionUpdate(**kwargs)

Bases: EventPermissionRequiredMixin, QuestionMixin, UpdateView

context_object_name = 'question'
form_class

alias of QuestionForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_object(queryset=None) Question

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Question

permission = 'can_change_items'
template_name = 'pretixcontrol/items/question_edit.html'
class eventyay.control.views.product.QuestionView(**kwargs)

Bases: EventPermissionRequiredMixin, QuestionMixin, ChartContainingView, DetailView

get_answer_statistics()
get_context_data(**kwargs)

Insert the single object into the context dict.

get_object(queryset=None) Question

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str
model

alias of Question

permission = 'can_change_items'
template_name = 'pretixcontrol/items/question.html'
template_name_field = 'question'
class eventyay.control.views.product.QuotaCreate(**kwargs)

Bases: EventPermissionRequiredMixin, CreateView

context_object_name = 'quota'
copy_from
form_class

alias of QuotaForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Quota

permission = 'can_change_items'
template_name = 'pretixcontrol/items/quota_edit.html'
class eventyay.control.views.product.QuotaDelete(**kwargs)

Bases: EventPermissionRequiredMixin, DeleteView

context_object_name = 'quota'
form_valid(form)

If the form is valid, redirect to the supplied URL.

get_context_data(*args, **kwargs) dict

Insert the form into the context dict.

get_object(queryset=None) Quota

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Quota

permission = 'can_change_items'
template_name = 'pretixcontrol/items/quota_delete.html'
class eventyay.control.views.product.QuotaList(**kwargs)

Bases: PaginationMixin, ListView

context_object_name = 'quotas'
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of Quota

template_name = 'pretixcontrol/items/quotas.html'
class eventyay.control.views.product.QuotaUpdate(**kwargs)

Bases: EventPermissionRequiredMixin, UpdateView

context_object_name = 'quota'
form_class

alias of QuotaForm

form_invalid(form)

If the form is invalid, render the invalid form.

form_valid(form)

If the form is valid, save the associated model.

get_context_data(*args, **kwargs)

Insert the form into the context dict.

get_object(queryset=None) Quota

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Quota

permission = 'can_change_items'
template_name = 'pretixcontrol/items/quota_edit.html'
class eventyay.control.views.product.QuotaView(**kwargs)

Bases: ChartContainingView, DetailView

context_object_name = 'quota'
get_context_data(*args, **kwargs)

Insert the single object into the context dict.

get_object(queryset=None) Quota

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

model

alias of Quota

post(request, *args, **kwargs)
template_name = 'pretixcontrol/items/quota.html'
eventyay.control.views.product.category_move(request, category, up=True)

This is a helper function to avoid duplicating code in category_move_up and category_move_down. It takes a category and a direction and then tries to bring all categories for this event in a new order.

eventyay.control.views.product.product_move(request, product, up=True)

This is a helper function to avoid duplicating code in product_move_up and product_move_down. It takes an product and a direction and then tries to bring all products for this category in a new order.

class eventyay.control.views.search.OrderSearch(**kwargs)

Bases: PaginationMixin, ListView

context_object_name = 'orders'
filter_form
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of Order

paginator_class

alias of LargeResultSetPaginator

template_name = 'pretixcontrol/search/orders.html'
class eventyay.control.views.vouchers.VoucherBulkAction(**kwargs)

Bases: EventPermissionRequiredMixin, View

get_success_url() str
objects
permission = 'can_change_vouchers'
post(request, *args, **kwargs)
class eventyay.control.views.vouchers.VoucherBulkCreate(**kwargs)

Bases: EventPermissionRequiredMixin, AsyncFormView

async_execute = <@task: eventyay.control.views.vouchers.VoucherBulkCreate.async_execute of eventyay>
async_form_valid(task, form)
context_object_name = 'voucher'
copy_from
get_async_form_kwargs(form_kwargs, organizer=None, event=None)
get_context_data(**kwargs)

Insert the form into the context dict.

get_error_url()
get_form_class()

Return the form class to use.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_success_message(value)
get_success_url(value) str

Return the URL to redirect to after processing a valid form.

model

alias of Voucher

permission = 'can_change_vouchers'
template_name = 'pretixcontrol/vouchers/bulk.html'
class eventyay.control.views.vouchers.VoucherCreate(**kwargs)

Bases: EventPermissionRequiredMixin, CreateView

context_object_name = 'voucher'
form_valid(form)

If the form is valid, save the associated model.

get_form_class()

Return the form class to use in this view.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Voucher

permission = 'can_change_vouchers'
post(request, *args, **kwargs)

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

template_name = 'pretixcontrol/vouchers/detail.html'
class eventyay.control.views.vouchers.VoucherDelete(**kwargs)

Bases: EventPermissionRequiredMixin, DeleteView

context_object_name = 'voucher'
form_valid(form)

If the form is valid, redirect to the supplied URL.

get(request, *args, **kwargs)
get_object(queryset=None) Voucher

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Voucher

permission = 'can_change_vouchers'
template_name = 'pretixcontrol/vouchers/delete.html'
class eventyay.control.views.vouchers.VoucherGo(**kwargs)

Bases: EventPermissionRequiredMixin, View

get(request, *args, **kwargs)
get_voucher(code)
permission = 'can_view_vouchers'
class eventyay.control.views.vouchers.VoucherList(**kwargs)

Bases: PaginationMixin, EventPermissionRequiredMixin, ListView

context_object_name = 'vouchers'
filter_form
get(request, *args, **kwargs)
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

model

alias of Voucher

permission = 'can_view_vouchers'
template_name = 'pretixcontrol/vouchers/index.html'
class eventyay.control.views.vouchers.VoucherRNG(**kwargs)

Bases: EventPermissionRequiredMixin, View

get(request, *args, **kwargs)
get_success_url() str
permission = 'can_change_vouchers'
class eventyay.control.views.vouchers.VoucherTags(**kwargs)

Bases: EventPermissionRequiredMixin, TemplateView

filter_form
get_context_data(**kwargs)
get_queryset()
permission = 'can_view_vouchers'
template_name = 'pretixcontrol/vouchers/tags.html'
class eventyay.control.views.vouchers.VoucherUpdate(**kwargs)

Bases: EventPermissionRequiredMixin, UpdateView

context_object_name = 'voucher'
form_valid(form)

If the form is valid, save the associated model.

get_form_class()

Return the form class to use in this view.

get_object(queryset=None) VoucherForm

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of Voucher

permission = 'can_change_vouchers'
template_name = 'pretixcontrol/vouchers/detail.html'
class eventyay.control.views.waitinglist.AutoAssign(**kwargs)

Bases: EventPermissionRequiredMixin, AsyncAction, View

get_error_url()
get_success_message(value)
get_success_url(value)
known_errortypes = ['WaitingListError']
permission = 'can_change_orders'
post(request, *args, **kwargs)
task = <@task: eventyay.base.services.waitinglist.assign_automatically of eventyay>
class eventyay.control.views.waitinglist.EntryDelete(**kwargs)

Bases: EventPermissionRequiredMixin, DeleteView

context_object_name = 'entry'
form_valid(form)

If the form is valid, redirect to the supplied URL.

get_object(queryset=None) WaitingListEntry

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

get_success_url() str

Return the URL to redirect to after processing a valid form.

model

alias of WaitingListEntry

permission = 'can_change_orders'
template_name = 'pretixcontrol/waitinglist/delete.html'
class eventyay.control.views.waitinglist.WaitingListView(**kwargs)

Bases: EventPermissionRequiredMixin, PaginationMixin, ListView

context_object_name = 'entries'
get(request, *args, **kwargs)
get_context_data(**kwargs)

Get the context for this view.

get_queryset()

Return the list of items for this view.

The return value must be an iterable and may be an instance of QuerySet in which case QuerySet specific behavior will be enabled.

get_sales_estimate()
model

alias of WaitingListEntry

permission = 'can_view_orders'
post(request, *args, **kwargs)
template_name = 'pretixcontrol/waitinglist/index.html'
class eventyay.control.views.geo.GeoCodeView(**kwargs)

Bases: LoginRequiredMixin, View

get(request, *args, **kwargs)

URLs

Video Integration

class eventyay.control.video.middleware.AuthenticationMiddleware(get_response)

Bases: ControlMiddleware, AuthenticationMiddleware

class eventyay.control.video.middleware.ControlMiddleware

Bases: object

class eventyay.control.video.middleware.MessageMiddleware(get_response)

Bases: ControlMiddleware, MessageMiddleware

class eventyay.control.video.middleware.SessionMiddleware(get_response)

Bases: ControlMiddleware, SessionMiddleware