Talk Component Reference

This section documents all modules related to the Talk component (conference talks, CfP, schedule management).

Agenda Module

class eventyay.agenda.apps.AgendaConfig(app_name, app_module)

Bases: AppConfig

name = 'eventyay.agenda'
ready()

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

eventyay.agenda.context_processors.is_html_export(request)

We tell templates that they are rendering a static export if the request META is set.

This is safe because all incoming HTTP headers are put in META in the form HTTP_ORIGINAL_NAME, so that ‘is_html_export’ cannot be faked from the outside.

class eventyay.agenda.phrases.AgendaPhrases

Bases: Phrases

feedback_success = ['Thank you for your feedback!', 'Thanks, we (and our speakers) appreciate your feedback!']
schedule_do_not_record = 'This session will not be recorded.'
view_own_submissions = 'Edit or view your proposals'
view_schedule = 'View conference schedule'
view_schedule_preview = 'View schedule preview'
eventyay.agenda.permissions.is_submission_visible_via_featured(user, submission)
eventyay.agenda.permissions.is_submission_visible_via_schedule(user, submission)
class eventyay.agenda.recording.BaseRecordingProvider(event)

Bases: object

RecordingProviders should subclass this class.

Register your procider with pretalx.agenda.signals.register_recording_provider.

get_recording(submission)

Returns a dictionary {“iframe”: …, “csp_header”: …} Both the iframe and the csp_header should be strings.

eventyay.agenda.signals.html_above_session_pages = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out to display additional information on the public session pages.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the signal will be called with the request it is processing, and the submission which is currently displayed. The receivers are expected to return HTML.

eventyay.agenda.signals.html_below_session_pages = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out to display additional information on the public session pages.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the signal will be called with the request it is processing, and the submission which is currently displayed. The receivers are expected to return HTML.

eventyay.agenda.signals.register_recording_provider = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out to gather all known recording providers. Receivers should return a subclass of pretalx.agenda.recording.BaseRecordingProvider.

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

class eventyay.agenda.views.schedule.ChangelogView(*args, **kwargs)

Bases: EventPermissionRequired, TemplateView

get_context_data(**kwargs)
permission_required = 'base.list_schedule'
schedules()
template_name = 'agenda/changelog.html'
class eventyay.agenda.views.schedule.ExporterView(*args, **kwargs)

Bases: EventPermissionRequired, ScheduleMixin, TemplateView

get(request, *args, **kwargs)
permission_required = 'base.list_schedule'
class eventyay.agenda.views.schedule.ScheduleMixin

Bases: object

dispatch(request, *args, **kwargs)
get_context_data(**kwargs)
get_object()
object
schedule
version
class eventyay.agenda.views.schedule.ScheduleNoJsView(*args, **kwargs)

Bases: ScheduleView

get_context_data(**kwargs)
get_schedule_data()
template_name = 'agenda/schedule_nojs.html'
class eventyay.agenda.views.schedule.ScheduleView(*args, **kwargs)

Bases: PermissionRequired, ScheduleMixin, TemplateView

dispatch(request, **kwargs)
exporters()
get(request, **kwargs)
get_object()
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

get_text(request, **kwargs)
my_exporters()
permission_required = 'base.view_schedule'
show_talk_list()
template_name = 'agenda/schedule.html'
eventyay.agenda.views.schedule.schedule_messages(request, **kwargs)

This view is cached for a day, as it is small and non-critical, but loaded synchronously.

eventyay.agenda.views.schedule.talk_sort_key(talk)
class eventyay.agenda.views.speaker.SpeakerList(*args, **kwargs)

Bases: EventPermissionRequired, Filterable, ListView

context_object_name = 'speakers'
default_filters = ('user__fullname__icontains',)
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.

permission_required = 'base.list_schedule'
template_name = 'agenda/speakers.html'
class eventyay.agenda.views.speaker.SpeakerRedirect(**kwargs)

Bases: DetailView

dispatch(request, **kwargs)
model

alias of User

class eventyay.agenda.views.speaker.SpeakerSocialMediaCard(*args, **kwargs)

Bases: SocialMediaCardMixin, SpeakerView

get_image()
class eventyay.agenda.views.speaker.SpeakerTalksIcalView(*args, **kwargs)

Bases: PermissionRequired, DetailView

context_object_name = 'profile'
get(request, event, *args, **kwargs)
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.

permission_required = 'base.view_speakerprofile'
slug_field = 'code'
class eventyay.agenda.views.speaker.SpeakerView(*args, **kwargs)

Bases: PermissionRequired, TemplateView

answers()
get_context_data(**kwargs)
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

permission_required = 'base.view_speakerprofile'
profile
slug_field = 'code'
talks
template_name = 'agenda/speaker.html'
eventyay.agenda.views.speaker.empty_avatar_view(request, organizer=None, event=None)
class eventyay.agenda.views.talk.FeedbackView(*args, **kwargs)

Bases: TalkMixin, FormView

can_give_feedback
feedback
form_class

alias of FeedbackForm

form_valid(form)

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

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_queryset()
get_success_url()

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

is_speaker
permission_required = 'base.view_feedback_page_submission'
speakers
talk
template_name
class eventyay.agenda.views.talk.OnlineVideoJoin(*args, **kwargs)

Bases: EventPermissionRequired, View

get(request, *args, **kwargs)
permission_required = 'base.view_schedule'
class eventyay.agenda.views.talk.SingleICalView(*args, **kwargs)

Bases: EventPageMixin, TalkMixin, View

get(request, event, **kwargs)
class eventyay.agenda.views.talk.TalkMixin(*args, **kwargs)

Bases: PermissionRequired

get_context_data(**kwargs)
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

get_queryset()
object
permission_required = 'base.view_public_submission'
submission
class eventyay.agenda.views.talk.TalkReviewView(*args, **kwargs)

Bases: TalkView

has_permission()

Check if user has permission, with admin mode support.

If the user has an active staff session (admin mode), grant full access. Otherwise, perform normal permission checks.

hide_visibility_warning()
object
template_name = 'agenda/talk.html'
class eventyay.agenda.views.talk.TalkSocialMediaCard(*args, **kwargs)

Bases: SocialMediaCardMixin, TalkView

get_image()
class eventyay.agenda.views.talk.TalkView(*args, **kwargs)

Bases: TalkMixin, TemplateView

answers
get(request, *args, **kwargs)
get_context_data(**kwargs)
get_contrast_color(bg_color)
recording
recording_iframe()
submission_description
template_name = 'agenda/talk.html'
class eventyay.agenda.views.talk.TicketCheckResult(value)

Bases: StrEnum

HAS_TICKET = 'has_ticket'
MISCONFIGURED = 'missing_configuration'
NO_TICKET = 'no_ticket'
class eventyay.agenda.views.talk.VideoJoinError(value)

Bases: StrEnum

MISCONFIGURED = 'missing_configuration'
NOT_ALLOWED = 'user_not_allowed'
eventyay.agenda.views.talk.check_user_owning_ticket(user: User, event: Event) TicketCheckResult

Call eventyay-ticket API to check if user owns ticket for this event.

# NOTE: It doesn’t work with the Docker setup for development, because we use fake domain then, and inside the container, the fake domain points to the container itself, not the host.

eventyay.agenda.views.talk.extract_event_info_from_url(url: str) tuple[str, _T, _T]
class eventyay.agenda.views.featured.FeaturedView(*args, **kwargs)

Bases: EventPermissionRequired, TemplateView

dispatch(request, *args, **kwargs)
get_context_data(**kwargs)
hide_visibility_warning
permission_required = 'base.list_featured_submission'
talks()
template_name = 'agenda/featured.html'
eventyay.agenda.views.featured.sneakpeek_redirect(request, *args, **kwargs)
eventyay.agenda.views.utils.encode_email(email)

Encode email to a short hash and get first 7 characters @param email: User’s email @return: encoded string

eventyay.agenda.views.utils.find_schedule_exporter(request, name, public=False)
eventyay.agenda.views.utils.get_schedule_exporter_content(request, exporter_name, schedule)
eventyay.agenda.views.utils.get_schedule_exporters(request, public=False)
eventyay.agenda.views.utils.is_visible(exporter, request, public=False)
eventyay.agenda.views.widget.color_etag(request, organizer=None, event=None, **kwargs)
eventyay.agenda.views.widget.event_css(request, organizer=None, event=None, **kwargs)
eventyay.agenda.views.widget.is_public_and_versioned(request, organizer=None, event=None, version=None, **kwargs)
eventyay.agenda.views.widget.version_prefix(request, organizer=None, event=None, version=None, **kwargs)

On non-versioned pages, we want cache-invalidation on schedule release.

eventyay.agenda.views.widget.widget_js_etag(request, organizer=None, event=None, **kwargs)
eventyay.agenda.views.widget.widget_script(request, organizer=None, event=None, **kwargs)
class eventyay.agenda.views.feed.ScheduleFeed

Bases: Feed

description(obj)
description_template = 'agenda/feed/description.html'
feed_guid(obj)
feed_type

alias of Atom1Feed

feed_url(obj)
get_object(request, *args, **kwargs)
item_pubdate(item)
item_title(item)
items(obj)
title(obj)
eventyay.agenda.views.feed.sanitize_xml(text)
class eventyay.agenda.management.commands.export_schedule_html.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Bases: BaseCommand

add_arguments(parser)

Entry point for subclassed commands to add custom arguments.

handle(*args, **options)

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

eventyay.agenda.management.commands.export_schedule_html.delete_directory(path)
eventyay.agenda.management.commands.export_schedule_html.dump_content(destination, path, getter)
eventyay.agenda.management.commands.export_schedule_html.export_event(event, destination)
eventyay.agenda.management.commands.export_schedule_html.fake_admin(event)
eventyay.agenda.management.commands.export_schedule_html.find_assets(html)

Find URLs of images, style sheets and scripts included in html.

eventyay.agenda.management.commands.export_schedule_html.get_content(response)
eventyay.agenda.management.commands.export_schedule_html.get_export_path(event)
eventyay.agenda.management.commands.export_schedule_html.get_export_zip_path(event)
eventyay.agenda.management.commands.export_schedule_html.get_mediastatic_content(url)
eventyay.agenda.management.commands.export_schedule_html.get_path(url)

CfP (Call for Papers) Module

class eventyay.cfp.apps.CfPConfig(app_name, app_module)

Bases: AppConfig

name = 'eventyay.cfp'
ready()

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

class eventyay.cfp.flow.BaseCfPStep(event)

Bases: object

cfp_session
done(request, draft=False)
get(request)
get_csp_update(request)
get_next_applicable(request)
get_next_url(request)
get_prev_applicable(request)
get_prev_url(request)
get_step_url(request, query=None)
icon = 'pencil'
property identifier
is_applicable(request)
is_completed(request)
property label
post(request)
property priority
class eventyay.cfp.flow.CfPFlow(event)

Bases: object

An event’s CfPFlow contains the list of CfP steps.

The event attribute contains the related event and is the only one required for instantiation. The steps attribute contains a (linked) list of BaseCfPStep instances. The steps_dict attribute contains an OrderedDict of the same steps. The config attribute contains the additional user configuration, primarily from the CfP editor.

When instantiated with a request during submission time, it will only show the forms relevant to the current request. When instantiated without a request, for the CfP editor, it will contain all steps.

get_config(data, json_compat=False)
get_config_json()
get_editor_config(json_compat=False)
reset()
save_config(data)
property steps
class eventyay.cfp.flow.FormFlowStep(event)

Bases: TemplateFlowStep

file_storage = <django.core.files.storage.filesystem.FileSystemStorage object>
form_class = None
get_context_data(**kwargs)
get_files()
get_form(from_storage=False)
get_form_initial()
is_completed(request)
post(request)
set_data(data)
set_files(files)
class eventyay.cfp.flow.GenericFlowStep

Bases: object

config
get_context_data(**kwargs)
get_extra_form_kwargs()
get_form_kwargs()
property text
property title
class eventyay.cfp.flow.InfoStep(event)

Bases: GenericFlowStep, FormFlowStep

done(request, draft=False)
form_class

alias of InfoForm

get_form_initial()
get_form_kwargs()
icon = 'paper-plane'
identifier = 'info'
property label
priority = 0
class eventyay.cfp.flow.ProfileStep(event)

Bases: GenericFlowStep, FormFlowStep

done(request, draft=False)
form_class

alias of SpeakerProfileForm

get_context_data(**kwargs)
get_csp_update(request)
get_form_kwargs()
icon = 'address-card-o'
identifier = 'profile'
property label
priority = 75
template_name = 'cfp/event/submission_profile.html'
class eventyay.cfp.flow.QuestionsStep(event)

Bases: GenericFlowStep, FormFlowStep

done(request, draft=False)
form_class

alias of TalkQuestionsForm

get_extra_form_kwargs()
get_form_kwargs()
icon = 'question-circle-o'
identifier = 'questions'
is_applicable(request)
property label
priority = 25
template_name = 'cfp/event/submission_questions.html'
class eventyay.cfp.flow.TemplateFlowStep(event)

Bases: TemplateResponseMixin, BaseCfPStep

get(request)
get_context_data(**kwargs)
property identifier
render(**kwargs)
template_name = 'cfp/event/submission_base.html'
class eventyay.cfp.flow.UserStep(event)

Bases: GenericFlowStep, FormFlowStep

done(request, draft=False)
form_class

alias of UserForm

get_context_data(**kwargs)
icon = 'user-circle-o'
identifier = 'user'
is_applicable(request)
property label
priority = 49
template_name = 'cfp/event/submission_user.html'
eventyay.cfp.flow.cfp_session(request)
eventyay.cfp.flow.i18n_string(data, locales)
eventyay.cfp.flow.serialize_value(value)
class eventyay.cfp.phrases.CfPPhrases

Bases: Phrases

auth_password_reset = 'If we know a user by this email address (who has not requested a password reset in the last 24 hours), we will send you an email containing further instructions. If you don’t see the email within the next minutes, check your spam inbox!'
auth_reset_fail = 'This link was not valid. Make sure you copied the complete URL from the email and that the email is no more than 24 hours old.'
auth_reset_success = 'Awesome! You can now log in using your new password.'
custom_fields = 'Custom fields'
go_to_cfp = 'Go to CfP'
invite_accepted = 'You are now part of this proposal! Please fill in your profile below.'
invite_invalid_email = 'Please provide a valid email address.'
invite_sent = 'The invitation was sent!'
invite_subject = '{speaker} invites you to join their session!'
invite_text = 'Hi!\n\nI’d like to invite you to be a speaker in the session\n\n  “{title}”\n\nat {event}. Please follow this link to join:\n\n  {url}\n\nI’m looking forward to it!\n{speaker}'
speaker_email = 'Speaker email'
submission_confirmed = 'Your session has been confirmed we’re looking forward to seeing you!'
submission_email_fail = 'We are experiencing difficulties when sending mails, but your session was submitted successfully!'
submission_not_confirmed = 'This proposal cannot be confirmed at this time please contact us if you think this is an error.'
submission_not_withdrawn = 'Your proposal can’t be withdrawn at this time please contact us if you need to withdraw your proposal!'
submission_uneditable = 'This proposal cannot be edited anymore.'
submission_was_confirmed = 'This proposal has already been confirmed we’re looking forward to seeing you!'
submission_withdrawn = 'Your proposal has been withdrawn.'
eventyay.cfp.signals.cfp_steps = <eventyay.common.signals.EventPluginSignal object>

This signal allows you to add CfP steps of your own. This signal will expect a list of pretalx.cfp.flow.BaseCfPStep objects. The integration of CfP steps in the CfP workflow is currently considered unstable and may change without notice between versions.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the signal will be called with the request it is processing.

eventyay.cfp.signals.footer_link = <eventyay.common.signals.EventPluginSignal object>

This signal allows you to add links to the footer of an event page. You are expected to return a dictionary containing the keys label and url.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the signal will be called with the request it is processing.

eventyay.cfp.signals.html_above_profile_page = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out to display additional information on the personal user profile page, above the submission list.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the signal will be called with the request it is processing. The receivers are expected to return HTML.

eventyay.cfp.signals.html_above_submission_list = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out to display additional information on the personal user submission list page, above the submission list.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, the signal will be called with the request it is processing. The receivers are expected to return HTML.

eventyay.cfp.signals.html_head = <eventyay.common.signals.EventPluginSignal object>

This signal allows you to put code inside the HTML <head> tag of every page in the frontend (i.e. everything not in the organiser 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. Additionally, the signal will be called with the request it is processing. The receivers are expected to return HTML.

class eventyay.cfp.views.auth.EventAuth(**kwargs)

Bases: View

Taken from pretix’ brilliant solution for multidomain auth.

dispatch(request, *args, **kwargs)
static post(request, *args, **kwargs)
class eventyay.cfp.views.auth.LoginView(**kwargs)

Bases: GenericLoginView

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

Insert the form into the context dict.

get_error_url()
property success_url
template_name = 'cfp/event/login.html'
class eventyay.cfp.views.auth.LogoutView(**kwargs)

Bases: View

get(request: HttpRequest, *args, **kwargs) HttpResponseRedirect
post(request: HttpRequest, *args, **kwargs) HttpResponseRedirect
class eventyay.cfp.views.auth.RecoverView(**kwargs)

Bases: FormView

dispatch(request, *args, **kwargs)
form_class

alias of RecoverForm

form_valid(form)

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

get_context_data(**kwargs)

Insert the form into the context dict.

is_invite = False
is_invite_template()
template_name = 'cfp/event/recover.html'
class eventyay.cfp.views.auth.ResetView(*args, **kwargs)

Bases: EventPageMixin, GenericResetView

get_success_url()

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

template_name = 'cfp/event/reset.html'
class eventyay.cfp.views.event.EventCfP(*args, **kwargs)

Bases: EventStartpage

get_context_data(**kwargs)
template_name = 'cfp/event/cfp.html'
class eventyay.cfp.views.event.EventPageMixin(*args, **kwargs)

Bases: PermissionRequired

get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

permission_required = 'base.view_event'
class eventyay.cfp.views.event.EventStartpage(*args, **kwargs)

Bases: EventPageMixin, TemplateView

access_code()
get_context_data(**kwargs)
has_submissions()
submit_qs()
template_name = 'cfp/event/index.html'
class eventyay.cfp.views.event.GeneralView(**kwargs)

Bases: TemplateView

get_context_data(**kwargs)
template_name = 'cfp/index.html'
class eventyay.cfp.views.event.LoggedInEventPageMixin(*args, **kwargs)

Bases: LoginRequiredMixin, EventPageMixin

get_login_url() str

Override this method to override the login_url attribute.

class eventyay.cfp.views.user.DeleteAccountView(*args, **kwargs)

Bases: LoggedInEventPageMixin, View

static post(request, event)
class eventyay.cfp.views.user.MailListView(*args, **kwargs)

Bases: LoggedInEventPageMixin, TemplateView

get_context_data(**kwargs)
mails()
template_name = 'cfp/event/user_mails.html'
class eventyay.cfp.views.user.ProfileView(*args, **kwargs)

Bases: LoggedInEventPageMixin, TemplateView

dispatch(request, *args, **kwargs)
get_context_data(**kwargs)
login_form
post(request, *args, **kwargs)
profile_form
questions_exist()
questions_form
template_name = 'cfp/event/user_profile.html'
class eventyay.cfp.views.user.SubmissionConfirmView(*args, **kwargs)

Bases: LoggedInEventPageMixin, SubmissionViewMixin, FormView

dispatch(request, *args, **kwargs)
form_class

alias of AvailabilitiesFormMixin

form_valid(form)

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

get_form()

Return an instance of the form to be used in this view.

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_object()
speaker_profile
template_name = 'cfp/event/user_submission_confirm.html'
class eventyay.cfp.views.user.SubmissionDraftDiscardView(*args, **kwargs)

Bases: LoggedInEventPageMixin, SubmissionViewMixin, TemplateView

form_class

alias of AvailabilitiesFormMixin

get_object()
post(request, *args, **kwargs)
template_name = 'cfp/event/user_submission_discard.html'
class eventyay.cfp.views.user.SubmissionInviteAcceptView(*args, **kwargs)

Bases: LoggedInEventPageMixin, DetailView

can_accept_invite
context_object_name = 'submission'
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.

post(request, *args, **kwargs)
template_name = 'cfp/event/invitation.html'
class eventyay.cfp.views.user.SubmissionInviteView(*args, **kwargs)

Bases: LoggedInEventPageMixin, SubmissionViewMixin, FormView

form_class

alias of SubmissionInvitationForm

form_valid(form)

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

get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

get_success_url()

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

permission_required = 'base.add_speaker_submission'
template_name = 'cfp/event/user_submission_invitation.html'
class eventyay.cfp.views.user.SubmissionViewMixin

Bases: object

dispatch(request, *args, **kwargs)
get_context_data(**kwargs)
get_object()
has_permission()
object
permission_required = 'base.update_submission'
submission
class eventyay.cfp.views.user.SubmissionsEditView(*args, **kwargs)

Bases: LoggedInEventPageMixin, SubmissionViewMixin, UpdateView

can_edit
context_object_name = 'submission'
form_class

alias of InfoForm

form_valid(form)

If the form is valid, save the associated model.

formset
get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

model

alias of Submission

object
permission_required = 'base.view_submission'
post(request, *args, **kwargs)

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

qform
save_formset(obj)
size_warning()
template_name = 'cfp/event/user_submission_edit.html'
write_permission_required = 'base.update_submission'
class eventyay.cfp.views.user.SubmissionsListView(*args, **kwargs)

Bases: LoggedInEventPageMixin, ListView

context_object_name = 'submissions'
drafts()
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.

information()
template_name = 'cfp/event/user_submissions.html'
class eventyay.cfp.views.user.SubmissionsWithdrawView(*args, **kwargs)

Bases: LoggedInEventPageMixin, SubmissionViewMixin, DetailView

context_object_name = 'submission'
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

model

alias of Submission

permission_required = 'base.is_speaker_submission'
post(request, *args, **kwargs)
template_name = 'cfp/event/user_submission_withdraw.html'
class eventyay.cfp.views.wizard.SubmitStartView(*args, **kwargs)

Bases: EventPageMixin, View

static get(request, *args, **kwargs)
class eventyay.cfp.views.wizard.SubmitWizard(*args, **kwargs)

Bases: EventPageMixin, View

dispatch(request, *args, **kwargs)
done(request, draft=False, steps=None)
class eventyay.cfp.views.locale.LocaleSet(**kwargs)

Bases: View

get(request, *args, **kwargs)
eventyay.cfp.views.robots.robots_txt(request)

Organizer Module

class eventyay.orga.apps.OrgaConfig(app_name, app_module)

Bases: AppConfig

name = 'eventyay.orga'
ready()

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

eventyay.orga.context_processors.collect_signal(signal, kwargs)
eventyay.orga.context_processors.orga_events(request)

Add data to all template contexts.

class eventyay.orga.forms.AnonymiseForm(*args, **kwargs)

Bases: SubmissionForm

class Meta

Bases: object

fields = ['title', 'abstract', 'description', 'notes']
model

alias of Submission

request_require = ['title', 'abstract', 'description', 'notes']
base_fields = {'abstract': <django.forms.fields.CharField object>, 'content_locale': <django.forms.fields.ChoiceField object>, 'description': <django.forms.fields.CharField object>, 'notes': <django.forms.fields.CharField object>, 'title': <django.forms.fields.CharField object>}
declared_fields = {'content_locale': <django.forms.fields.ChoiceField object>}
default_renderer

alias of InlineFormRenderer

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.orga.forms.CfPForm(*args, read_only=False, **kwargs)

Bases: ReadOnlyFlag, I18nHelpText, JsonSubfieldMixin, I18nModelForm

class Meta

Bases: object

fields = ['headline', 'text', 'deadline']
json_fields = {'count_length_in': 'settings', 'hide_after_deadline': 'settings', 'show_deadline': 'settings'}
model

alias of CfP

widgets = {'deadline': <class 'eventyay.common.forms.widgets.HtmlDateTimeInput'>}
base_fields = {'count_length_in': <django.forms.fields.ChoiceField object>, 'deadline': <django.forms.fields.DateTimeField object>, 'headline': <i18nfield.forms.I18nFormField object>, 'hide_after_deadline': <django.forms.fields.BooleanField object>, 'show_deadline': <django.forms.fields.BooleanField object>, 'text': <i18nfield.forms.I18nFormField object>}
declared_fields = {'count_length_in': <django.forms.fields.ChoiceField object>, 'hide_after_deadline': <django.forms.fields.BooleanField object>, 'show_deadline': <django.forms.fields.BooleanField object>}
property media

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

class eventyay.orga.forms.EventForm(*args, **kwargs)

Bases: ReadOnlyFlag, I18nHelpText, JsonSubfieldMixin, I18nModelForm

class Meta

Bases: object

field_classes = {'header_image': <class 'eventyay.common.forms.fields.ImageField'>, 'logo': <class 'eventyay.common.forms.fields.ImageField'>, 'primary_color': <class 'eventyay.common.forms.fields.ColorField'>}
fields = ['email', 'primary_color', 'custom_css', 'logo', 'header_image', 'landing_page_text', 'featured_sessions_text']
json_fields = {'export_html_on_release': 'feature_flags', 'header_pattern': 'display_settings', 'html_export_url': 'display_settings', 'imprint_url': 'display_settings', 'meta_noindex': 'display_settings', 'schedule': 'display_settings', 'show_featured': 'feature_flags', 'show_schedule': 'feature_flags', 'use_feedback': 'feature_flags'}
model

alias of Event

base_fields = {'custom_css': <django.forms.fields.FileField object>, 'custom_css_text': <django.forms.fields.CharField object>, 'email': <django.forms.fields.EmailField object>, 'export_html_on_release': <django.forms.fields.BooleanField object>, 'featured_sessions_text': <i18nfield.forms.I18nFormField object>, 'header_image': <eventyay.common.forms.fields.ImageField object>, 'header_pattern': <django.forms.fields.ChoiceField object>, 'html_export_url': <django.forms.fields.URLField object>, 'imprint_url': <django.forms.fields.URLField object>, 'landing_page_text': <i18nfield.forms.I18nFormField object>, 'logo': <eventyay.common.forms.fields.ImageField object>, 'meta_noindex': <django.forms.fields.BooleanField object>, 'primary_color': <eventyay.common.forms.fields.ColorField object>, 'schedule': <django.forms.fields.ChoiceField object>, 'show_featured': <django.forms.fields.ChoiceField object>, 'show_schedule': <django.forms.fields.BooleanField object>, 'use_feedback': <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__’.

clean_custom_css()
clean_custom_css_text()
declared_fields = {'custom_css_text': <django.forms.fields.CharField object>, 'export_html_on_release': <django.forms.fields.BooleanField object>, 'header_pattern': <django.forms.fields.ChoiceField object>, 'html_export_url': <django.forms.fields.URLField object>, 'imprint_url': <django.forms.fields.URLField object>, 'meta_noindex': <django.forms.fields.BooleanField object>, 'schedule': <django.forms.fields.ChoiceField object>, 'show_featured': <django.forms.fields.ChoiceField object>, 'show_schedule': <django.forms.fields.BooleanField object>, 'use_feedback': <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.orga.forms.ReviewForm(event, user, *args, instance=None, categories=None, submission=None, allow_empty=False, default_renderer=None, **kwargs)

Bases: ReadOnlyFlag, ModelForm

class Meta

Bases: object

fields = ('text',)
model

alias of Review

widgets = {'text': <class 'eventyay.common.forms.widgets.MarkdownWidget'>}
base_fields = {'text': <django.forms.fields.CharField object>}
build_score_field(category, read_only=False, initial=None, hide_optional=False)
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 = {}
get_score_field(category)
get_score_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.orga.forms.SubmissionForm(event, anonymise=False, **kwargs)

Bases: ReadOnlyFlag, RequestRequire, ModelForm

class Meta

Bases: object

field_classes = {'image': <class 'eventyay.common.forms.fields.ImageField'>, 'submission_type': <class 'django_scopes.forms.SafeModelChoiceField'>, 'tags': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'track': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ['title', 'submission_type', 'track', 'tags', 'abstract', 'description', 'notes', 'internal_notes', 'content_locale', 'do_not_record', 'duration', 'slot_count', 'image', 'is_featured']
model

alias of Submission

request_require = {'abstract', 'content_locale', 'description', 'do_not_record', 'image', 'notes', 'title'}
widgets = {'abstract': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'description': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'duration': <eventyay.common.forms.widgets.TextInputWithAddon object>, 'notes': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'submission_type': <class 'eventyay.common.forms.widgets.EnhancedSelect'>, 'tags': <eventyay.common.forms.widgets.EnhancedSelectMultiple object>, 'track': <eventyay.common.forms.widgets.EnhancedSelect object>}
base_fields = {'abstract': <django.forms.fields.CharField object>, 'content_locale': <django.forms.fields.ChoiceField object>, 'description': <django.forms.fields.CharField object>, 'do_not_record': <django.forms.fields.BooleanField object>, 'duration': <django.forms.fields.IntegerField object>, 'image': <eventyay.common.forms.fields.ImageField object>, 'internal_notes': <django.forms.fields.CharField object>, 'is_featured': <django.forms.fields.BooleanField object>, 'notes': <django.forms.fields.CharField object>, 'slot_count': <django.forms.fields.IntegerField object>, 'submission_type': <django_scopes.forms.SafeModelChoiceField object>, 'tags': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'title': <django.forms.fields.CharField object>, 'track': <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 = {'content_locale': <django.forms.fields.ChoiceField 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.orga.forms.SubmissionTypeForm(*args, event=None, **kwargs)

Bases: ReadOnlyFlag, I18nHelpText, I18nModelForm

class Meta

Bases: object

fields = ('name', 'default_duration', 'deadline', 'requires_access_code')
model

alias of SubmissionType

widgets = {'deadline': <class 'eventyay.common.forms.widgets.HtmlDateTimeInput'>, 'default_duration': <eventyay.common.forms.widgets.TextInputWithAddon object>}
base_fields = {'deadline': <django.forms.fields.DateTimeField object>, 'default_duration': <django.forms.fields.IntegerField object>, 'name': <i18nfield.forms.I18nFormField object>, 'requires_access_code': <django.forms.fields.BooleanField object>}
clean_name()
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.orga.forms.TalkQuestionForm(*args, event=None, **kwargs)

Bases: ReadOnlyFlag, I18nHelpText, I18nModelForm

class Meta

Bases: object

field_classes = {'submission_types': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'tracks': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'variant': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ['target', 'variant', 'question', 'help_text', 'is_public', 'contains_personal_data', 'is_visible_to_reviewers', 'tracks', 'submission_types', 'question_required', 'deadline', 'freeze_after', 'min_length', 'max_length', 'min_number', 'max_number', 'min_date', 'max_date', 'min_datetime', 'max_datetime']
model

alias of TalkQuestion

widgets = {'deadline': <class 'eventyay.common.forms.widgets.HtmlDateTimeInput'>, 'freeze_after': <class 'eventyay.common.forms.widgets.HtmlDateTimeInput'>, 'max_date': <class 'eventyay.common.forms.widgets.HtmlDateInput'>, 'max_datetime': <class 'eventyay.common.forms.widgets.HtmlDateTimeInput'>, 'min_date': <class 'eventyay.common.forms.widgets.HtmlDateInput'>, 'min_datetime': <class 'eventyay.common.forms.widgets.HtmlDateTimeInput'>, 'question_required': <django.forms.widgets.RadioSelect object>, 'submission_types': <class 'eventyay.common.forms.widgets.EnhancedSelectMultiple'>, 'tracks': <class 'eventyay.common.forms.widgets.EnhancedSelectMultiple'>}
base_fields = {'contains_personal_data': <django.forms.fields.BooleanField object>, 'deadline': <django.forms.fields.DateTimeField object>, 'freeze_after': <django.forms.fields.DateTimeField object>, 'help_text': <i18nfield.forms.I18nFormField object>, 'is_public': <django.forms.fields.BooleanField object>, 'is_visible_to_reviewers': <django.forms.fields.BooleanField object>, 'max_date': <django.forms.fields.DateField object>, 'max_datetime': <django.forms.fields.DateTimeField object>, 'max_length': <django.forms.fields.IntegerField object>, 'max_number': <django.forms.fields.DecimalField object>, 'min_date': <django.forms.fields.DateField object>, 'min_datetime': <django.forms.fields.DateTimeField object>, 'min_length': <django.forms.fields.IntegerField object>, 'min_number': <django.forms.fields.DecimalField object>, 'options': <django.forms.fields.FileField object>, 'options_replace': <django.forms.fields.BooleanField object>, 'question': <i18nfield.forms.I18nFormField object>, 'question_required': <django.forms.fields.TypedChoiceField object>, 'submission_types': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'target': <django.forms.fields.TypedChoiceField object>, 'tracks': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'variant': <django.forms.fields.TypedChoiceField 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_options()
declared_fields = {'options': <django.forms.fields.FileField object>, 'options_replace': <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.orga.forms.TrackForm(*args, event=None, **kwargs)

Bases: ReadOnlyFlag, I18nHelpText, I18nModelForm

class Meta

Bases: object

field_classes = {'color': <class 'eventyay.common.forms.fields.ColorField'>}
fields = ('name', 'description', 'color', 'requires_access_code')
model

alias of Track

base_fields = {'color': <eventyay.common.forms.fields.ColorField object>, 'description': <i18nfield.forms.I18nFormField object>, 'name': <i18nfield.forms.I18nFormField object>, 'requires_access_code': <django.forms.fields.BooleanField object>}
clean_name()
declared_fields = {}
property media

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

class eventyay.orga.phrases.OrgaPhrases

Bases: Phrases

event_date_start_invalid = 'The event end cannot be before the start.'
event_header_pattern_help_text = 'Choose how the frontpage header banner will be styled. Pattern source: <a href="http://www.heropatterns.com/">heropatterns.com</a>, CC BY 4.0.'
event_header_pattern_label = 'Frontpage header pattern'
event_schedule_format_label = 'Schedule display format'
mails_in_outbox = '{count} emails have been saved to the outbox you can make individual changes there or just send them all.'
password_reset_fail = ('The password reset email could not be sent, so the password was not reset.',)
password_reset_success = 'The password was reset and the user was notified.'
proposal_id_help_text = 'The unique ID of a proposal is used in the proposal URL and in exports'
eventyay.orga.signals.activate_event = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out before an event goes live. It allows any installed plugin to raise an Exception to prevent the event from going live. The exception message will be exposed to the user. If a string value is returned, eventyay will show it as a success message. You will get the request as a keyword argument request. Receivers are not expected to return a response.

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

eventyay.orga.signals.event_copy_data = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out when a new event is created as a clone of an existing event, i.e. the settings from the older event are copied to the newer one. You can listen to this signal to copy data or configuration stored within your plugin’s models as well.

You don’t need to copy data inside the general settings storage which is cloned automatically, but you might need to modify that data.

The sender keyword argument will contain the event of the new event. The other keyword argument will contain the event slug to copy from. The keyword arguments submission_type_map, question_map, track_map and speaker_information_map contain mappings from object IDs in the original event to objects in the new event of the respective types.

eventyay.orga.signals.html_head = <eventyay.common.signals.EventPluginSignal object>

This signal allows you to put code inside the HTML <head> tag of every page in the organizer 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. Additionally, the signal will be called with the request it is processing. The receivers are expected to return HTML.

eventyay.orga.signals.nav_event = <eventyay.common.signals.EventPluginSignal object>

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 ForkAwesome 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 item should be marked as active. If the children key is present, the entries will be rendered as a dropdown menu. The request object will have an attribute event.

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

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

eventyay.orga.signals.nav_event_settings = <eventyay.common.signals.EventPluginSignal object>

This signal is sent out to collect additional settings sub-pages 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 item should be marked as active.

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

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

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 ForkAwesome 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 item should be marked as active. If the children key is present, the entries will be rendered as a dropdown menu.

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

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.

class eventyay.orga.views.cfp.AccessCodeSend(*args, **kwargs)

Bases: PermissionRequired, UpdateView

context_object_name = 'access_code'
form_class

alias of AccessCodeSendForm

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()

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_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

get_success_url() str

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

model

alias of SubmitterAccessCode

permission_required = 'base.view_submitteraccesscode'
template_name = 'orga/cfp/submitteraccesscode/send.html'
class eventyay.orga.views.cfp.AccessCodeView(**kwargs)

Bases: OrderActionMixin, OrgaCRUDView

context_object_name = 'access_code'
delete_handler(request, *args, **kwargs)

POST handler for delete view

form_class

alias of SubmitterAccessCodeForm

get_form_kwargs()
get_generic_title(instance=None)
get_queryset()
lookup_field = 'code'
model

alias of SubmitterAccessCode

path_converter = 'str'
template_namespace = 'orga/cfp'
class eventyay.orga.views.cfp.CfPFlowEditor(*args, **kwargs)

Bases: EventPermissionRequired, TemplateView

dispatch(request, *args, **kwargs)
get_context_data(**kwargs)
permission_required = 'base.update_event'
post(request, *args, **kwargs)
template_name = 'orga/cfp/flow.html'
class eventyay.orga.views.cfp.CfPQuestionRemind(*args, **kwargs)

Bases: EventPermissionRequired, FormView

form_class

alias of ReminderFilterForm

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_form_kwargs()

Return the keyword arguments for instantiating the form.

static get_missing_answers(*, questions, person, submissions)
get_success_url()

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

permission_required = 'base.orga_view_talkquestion'
reminder_template()
template_name = 'orga/cfp/question/remind.html'
class eventyay.orga.views.cfp.CfPQuestionToggle(*args, **kwargs)

Bases: PermissionRequired, View

dispatch(request, *args, **kwargs)
get_object() TalkQuestion
permission_required = 'base.update_talkquestion'
class eventyay.orga.views.cfp.CfPTextDetail(*args, **kwargs)

Bases: PermissionRequired, ActionFromUrl, UpdateView

different_deadlines
form_class

alias of CfPForm

form_valid(form)

If the form is valid, save the associated model.

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_success_url() str

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

model

alias of CfP

permission_required = 'base.update_event'
sform
tablist()
template_name = 'orga/cfp/text.html'
write_permission_required = 'base.update_event'
class eventyay.orga.views.cfp.QuestionView(**kwargs)

Bases: OrderActionMixin, OrgaCRUDView

base_search_url
context_object_name = 'question'
detail_is_update = False
filter_form
form_class

alias of TalkQuestionForm

form_valid(form)
formset
get_context_data(**kwargs)
get_generic_title(instance=None)
get_permission_required()
get_queryset()
model

alias of TalkQuestion

perform_delete()
post(request, *args, **kwargs)
save_formset(obj)
template_namespace = 'orga/cfp'
class eventyay.orga.views.cfp.SubmissionTypeDefault(*args, **kwargs)

Bases: PermissionRequired, View

dispatch(request, *args, **kwargs)
get_object()
permission_required = 'base.update_submissiontype'
class eventyay.orga.views.cfp.SubmissionTypeView(**kwargs)

Bases: OrderActionMixin, OrgaCRUDView

delete_handler(request, *args, **kwargs)

POST handler for delete view

form_class

alias of SubmissionTypeForm

get_generic_title(instance=None)
get_permission_required()
get_queryset()
model

alias of SubmissionType

template_namespace = 'orga/cfp'
class eventyay.orga.views.cfp.TrackView(**kwargs)

Bases: OrderActionMixin, OrgaCRUDView

delete_handler(request, *args, **kwargs)

POST handler for delete view

form_class

alias of TrackForm

get_generic_title(instance=None)
get_permission_required()
get_queryset()
model

alias of Track

template_namespace = 'orga/cfp'
class eventyay.orga.views.event.EventDelete(*args, **kwargs)

Bases: PermissionRequired, ActionConfirmMixin, TemplateView

property action_back_url
action_object_name()
action_text = 'ALL related data, such as proposals, and speaker profiles, and uploads, will also be deleted and cannot be restored. Please make sure that this is the item you want to delete. This action cannot be undone!'
get_object()
model

alias of Event

permission_required = 'base.administrator_user'
post(request, *args, **kwargs)
class eventyay.orga.views.event.EventDetail(*args, **kwargs)

Bases: EventSettingsPermission, ActionFromUrl, UpdateView

form_class

alias of EventForm

form_valid(form)

If the form is valid, save the associated model.

get_form_kwargs(*args, **kwargs)

Return the keyword arguments for instantiating the form.

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_success_url() str

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

model

alias of Event

object
tablist()
template_name = 'orga/settings/form.html'
class eventyay.orga.views.event.EventHistory(*args, **kwargs)

Bases: EventSettingsPermission, ListView

context_object_name = 'log_entries'
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 = 200
template_name = 'orga/event/history.html'
class eventyay.orga.views.event.EventLive(*args, **kwargs)

Bases: EventSettingsPermission, TemplateView

get_context_data(**kwargs)
post(request, *args, **kwargs)
template_name = 'orga/event/live.html'
class eventyay.orga.views.event.EventMailSettings(*args, **kwargs)

Bases: EventSettingsPermission, ActionFromUrl, FormView

form_class

alias of MailSettingsForm

form_valid(form)

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

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.

template_name = 'orga/settings/mail.html'
class eventyay.orga.views.event.EventReviewSettings(*args, **kwargs)

Bases: EventSettingsPermission, ActionFromUrl, FormView

form_class

alias of ReviewSettingsForm

form_valid(form)

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

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.

phases_formset
save_phases()
save_scores()
scores_formset
tablist()
template_name = 'orga/settings/review.html'
class eventyay.orga.views.event.EventSettingsPermission(*args, **kwargs)

Bases: EventPermissionRequired

property permission_object
permission_required = 'base.update_event'
write_permission_required = 'base.update_event'
class eventyay.orga.views.event.EventWizard(*args, **kwargs)

Bases: PermissionRequired, SensibleBackWizardMixin, SessionWizardView

condition_dict = {'copy': <function condition_copy>}
done(form_list, *args, **kwargs)

This method must be overridden by a subclass to process to form data after processing all steps.

file_storage = <django.core.files.storage.filesystem.FileSystemStorage object>
form_list = [('initial', <class 'eventyay.event.forms.EventWizardInitialForm'>), ('basics', <class 'eventyay.event.forms.EventWizardBasicsForm'>), ('timeline', <class 'eventyay.event.forms.EventWizardTimelineForm'>), ('display', <class 'eventyay.event.forms.EventWizardDisplayForm'>), ('copy', <class 'eventyay.event.forms.EventWizardCopyForm'>)]
get_context_data(**kwargs)

Returns the template context for a step. You can overwrite this method to add more data for all or some steps. This method returns a dictionary containing the rendered form step. Available template context variables are:

  • all extra data stored in the storage backend

  • wizard - a dictionary representation of the wizard instance

Example:

class MyWizard(WizardView):
    def get_context_data(self, form, **kwargs):
        context = super().get_context_data(form=form, **kwargs)
        if self.steps.current == 'my_step_name':
            context.update({'another_var': True})
        return context
get_form_kwargs(step=None)

Returns the keyword arguments for instantiating the form (or formset) on the given step.

get_template_names()

Return a list of template names to be used for the request. Must return a list. May not be called if render_to_response() is overridden.

organizer()
permission_required = 'base.create_event'
render(form=None, **kwargs)

Returns a HttpResponse containing all needed context data.

class eventyay.orga.views.event.InvitationView(**kwargs)

Bases: FormView

accept_invite(user)
form_class

alias of UserForm

form_valid(form)

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

get_context_data(**kwargs)

Insert the form into the context dict.

invitation
post(*args, **kwargs)

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

template_name = 'orga/invitation.html'
class eventyay.orga.views.event.PhaseActivate(*args, **kwargs)

Bases: EventSettingsPermission, View

dispatch(request, *args, **kwargs)
get_object()
class eventyay.orga.views.event.WidgetSettings(*args, **kwargs)

Bases: EventSettingsPermission, FormView

dispatch(request, *args, **kwargs)
form_class

alias of WidgetSettingsForm

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_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.

template_name = 'orga/settings/widget.html'
eventyay.orga.views.event.condition_copy(wizard)
class eventyay.orga.views.organizer.InviteMixin(*args, **kwargs)

Bases: PermissionRequired

get_object()
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

invite
model

alias of TeamInvite

permission_required = 'base.update_team'
team
class eventyay.orga.views.organizer.OrganizerDelete(*args, **kwargs)

Bases: PermissionRequired, ActionConfirmMixin, DetailView

property action_back_url
action_object_name()
action_text = 'ALL related data for ALL events, such as proposals, and speaker profiles, and uploads, will also be deleted and cannot be restored. Please make sure that this is the item you want to delete. This action cannot be undone!'
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_permission_object(queryset=None)

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

model

alias of Organizer

permission_required = 'base.administrator_user'
post(*args, **kwargs)
class eventyay.orga.views.organizer.OrganizerDetail(*args, **kwargs)

Bases: PermissionRequired, CreateOrUpdateView

form_class

alias of OrganizerForm

form_valid(form)

If the form is valid, save the associated model.

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_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

get_success_url()

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

model

alias of Organizer

object
permission_required = 'base.update_organizer'
template_name = 'orga/organizer/detail.html'
class eventyay.orga.views.organizer.OrganizerSpeakerList(*args, **kwargs)

Bases: PermissionRequired, Sortable, Filterable, PaginationMixin, ListView

context_object_name = 'speakers'
default_filters = ('email__icontains', 'fullname__icontains')
default_sort_field = 'fullname'
dispatch(request, *args, **kwargs)
events
get_context_data(**kwargs)

Get the context for this view.

get_filter_form()
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

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.

permission_required = 'base.view_organizer'
sortable_fields = ('email', 'fullname', 'accepted_submission_count', 'submission_count')
template_name = 'orga/organizer/speaker_list.html'
class eventyay.orga.views.organizer.TeamMemberDelete(*args, **kwargs)

Bases: TeamMemberMixin, ActionConfirmMixin, DetailView

post(request, *args, **kwargs)
class eventyay.orga.views.organizer.TeamMemberMixin(*args, **kwargs)

Bases: PermissionRequired

property action_back_url
action_object_name()
get_context_data(**kwargs)
get_object(queryset=None)
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

member
permission_required = 'base.update_team'
team
class eventyay.orga.views.organizer.TeamResend(*args, **kwargs)

Bases: InviteMixin, ActionConfirmMixin, DetailView

property action_back_url
action_confirm_color = 'success'
action_confirm_icon = 'envelope'
action_confirm_label = 'Send'
action_object_name()
action_text = 'Are you sure you want to resend the invitation to this user?'
action_title = 'Resend invite'
post(request, *args, **kwargs)
class eventyay.orga.views.organizer.TeamResetPassword(*args, **kwargs)

Bases: TeamMemberMixin, ActionConfirmMixin, TemplateView

action_confirm_icon = 'key'
action_confirm_label = 'Reset password'
action_text = 'Do your really want to reset this user’s password? They won’t be able to log in until they set a new password.'
action_title = 'Reset password'
post(request, *args, **kwargs)
class eventyay.orga.views.organizer.TeamUninvite(*args, **kwargs)

Bases: InviteMixin, ActionConfirmMixin, DetailView

property action_back_url
action_object_name()
action_text = 'Are you sure you want to retract the invitation to this user?'
action_title = 'Retract invitation'
post(request, *args, **kwargs)
class eventyay.orga.views.organizer.TeamView(**kwargs)

Bases: OrgaCRUDView

context_object_name = 'team'
delete_handler(request, *args, **kwargs)

POST handler for delete view

form_class

alias of TeamForm

form_handler(request, *args, **kwargs)

POST handler for create and update views.

form_valid(form)
get_context_data(**kwargs)
get_form_kwargs()
get_generic_permission_object()

Used to determine non-object permissions like list, create, and generic delete

get_generic_title(instance=None)
get_permission_required()
get_queryset()
get_success_url()
invite_form
invite_form_handler(request)
model

alias of Team

perform_delete()
permission_required = 'base.update_team'
template_namespace = 'orga/organizer'
url_name = 'organizer.teams'
eventyay.orga.views.organizer.get_speaker_access_events_for_user(*, user, organizer)
class eventyay.orga.views.person.SubuserView(**kwargs)

Bases: View

dispatch(request, *args, **kwargs)
class eventyay.orga.views.person.UserSettings(**kwargs)

Bases: TemplateView

current_version()
form_class

alias of LoginInfoForm

get_context_data(**kwargs)
get_success_url() str
login_form
post(request, *args, **kwargs)
profile_form
template_name = 'orga/user.html'
token_form
tokens
class eventyay.orga.views.review.BulkReview(*args, **kwargs)

Bases: EventPermissionRequired, TemplateView

categories
filter_form
forms
get_context_data(**kwargs)
paginate_by = None
permission_required = 'base.create_review'
post(request, *args, **kwargs)
show_tracks
submissions
table
template_name = 'orga/review/bulk.html'
class eventyay.orga.views.review.RegenerateDecisionMails(*args, **kwargs)

Bases: EventPermissionRequired, ActionConfirmMixin, TemplateView

property action_back_url
action_confirm_color = 'success'
action_confirm_icon = 'envelope'
action_confirm_label = 'Regenerate decision emails'
action_object_name = ''
action_text()

Encapsulate a function call and act as a proxy for methods that are called on the result of that function. The function is not evaluated until one of the methods on the result is called.

action_title = 'Regenerate decision emails'
count
get_context_data(**kwargs)
get_queryset()
permission_required = 'base.accept_or_reject_submission'
post(request, **kwargs)
class eventyay.orga.views.review.ReviewAssignment(*args, **kwargs)

Bases: EventPermissionRequired, FormView

direction_form
form_type
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_form()

Return an instance of the form to be used in this view.

permission_required = 'base.update_event'
review_teams
tablist()
template_name = 'orga/review/assignment.html'
class eventyay.orga.views.review.ReviewAssignmentImport(*args, **kwargs)

Bases: EventPermissionRequired, FormView

form_class

alias of ReviewAssignImportForm

form_valid(form)

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

get_form_kwargs()

Return the keyword arguments for instantiating the form.

permission_required = 'base.update_event'
template_name = 'orga/review/assignment-import.html'
class eventyay.orga.views.review.ReviewDashboard(*args, **kwargs)

Bases: EventPermissionRequired, BaseSubmissionList

can_accept_submissions
can_change_submissions
can_see_all_reviews
filter_range(queryset)
get_context_data(**kwargs)

Get the context for this view.

get_pending(request)
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.

independent_categories
max_page_size = 100000
max_review_count
paginate_by = 100
permission_required = 'base.list_review'
post(request, *args, **kwargs)
reviews_open
short_questions
show_submission_types
show_tracks
sort_queryset(qs)
submissions_reviewed
template_name = 'orga/review/dashboard.html'
usable_states = ('submitted', 'accepted', 'rejected', 'confirmed')
class eventyay.orga.views.review.ReviewExport(*args, **kwargs)

Bases: EventPermissionRequired, FormView

form_class

alias of ReviewExportForm

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_form_kwargs()

Return the keyword arguments for instantiating the form.

permission_required = 'base.update_event'
tablist()
template_name = 'orga/review/export.html'
class eventyay.orga.views.review.ReviewSubmission(*args, **kwargs)

Bases: ReviewViewMixin, PermissionRequired, CreateOrUpdateView

form_class

alias of ReviewForm

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.

get_scores_for_review(review)
get_success_url() str

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

has_anonymised_review
model

alias of Review

permission_required = 'base.view_reviews_submission'
post(request, *args, **kwargs)

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

profiles()
qform
review_display
reviews()
score_categories
tags_form
template_name = 'orga/submission/review.html'
write_permission_required = 'base.review_submission'
class eventyay.orga.views.review.ReviewSubmissionDelete(*args, **kwargs)

Bases: EventPermissionRequired, ReviewViewMixin, ActionConfirmMixin, TemplateView

property action_back_url
action_object_name()
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

permission_required = 'base.delete_review'
post(request, *args, **kwargs)
template_name = 'orga/submission/review_delete.html'
class eventyay.orga.views.review.ReviewViewMixin

Bases: object

get_context_data(**kwargs)
get_object()
get_permission_object()
object
read_only
submission
class eventyay.orga.views.schedule.QuickScheduleView(*args, **kwargs)

Bases: PermissionRequired, UpdateView

form_class

alias of QuickScheduleForm

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()

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()

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

permission_required = 'base.update_talkslot'
template_name = 'orga/schedule/quick.html'
class eventyay.orga.views.schedule.RoomView(**kwargs)

Bases: OrderActionMixin, OrgaCRUDView

delete_handler(request, *args, **kwargs)

POST handler for delete view

form_class

alias of RoomForm

get_generic_title(instance=None)
get_permission_required()
get_queryset()
model

alias of Room

template_namespace = 'orga/schedule'
class eventyay.orga.views.schedule.ScheduleAvailabilities(*args, **kwargs)

Bases: EventPermissionRequired, View

get(request, event)
permission_required = 'base.release_schedule'
class eventyay.orga.views.schedule.ScheduleExportDownloadView(*args, **kwargs)

Bases: EventPermissionRequired, View

get(request, event)
permission_required = 'base.update_event'
class eventyay.orga.views.schedule.ScheduleExportTriggerView(*args, **kwargs)

Bases: EventPermissionRequired, View

permission_required = 'base.update_event'
post(request, event)
class eventyay.orga.views.schedule.ScheduleExportView(*args, **kwargs)

Bases: EventPermissionRequired, FormView

exporters()
form_class

alias of ScheduleExportForm

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_form_kwargs()

Return the keyword arguments for instantiating the form.

permission_required = 'base.update_event'
tablist()
template_name = 'orga/schedule/export.html'
class eventyay.orga.views.schedule.ScheduleReleaseView(*args, **kwargs)

Bases: EventPermissionRequired, FormView

changes()
form_class

alias of ScheduleReleaseForm

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_form_kwargs()

Return the keyword arguments for instantiating the form.

notifications()
permission_required = 'base.release_schedule'
template_name = 'orga/schedule/release.html'
warnings()
class eventyay.orga.views.schedule.ScheduleResendMailsView(*args, **kwargs)

Bases: EventPermissionRequired, View

dispatch(request, event)
permission_required = 'base.release_schedule'
class eventyay.orga.views.schedule.ScheduleResetView(*args, **kwargs)

Bases: EventPermissionRequired, View

dispatch(request, event)
permission_required = 'base.release_schedule'
class eventyay.orga.views.schedule.ScheduleToggleView(*args, **kwargs)

Bases: EventPermissionRequired, View

dispatch(request, event)
permission_required = 'base.update_event'
class eventyay.orga.views.schedule.ScheduleView(*args, **kwargs)

Bases: EventPermissionRequired, TemplateView

dispatch(request, *args, **kwargs)
get_context_data(**kwargs)
permission_required = 'base.orga_view_schedule'
template_name = 'orga/schedule/index.html'
class eventyay.orga.views.schedule.ScheduleWarnings(*args, **kwargs)

Bases: EventPermissionRequired, View

get(request, event)
permission_required = 'base.release_schedule'
class eventyay.orga.views.schedule.TalkList(*args, **kwargs)

Bases: EventPermissionRequired, View

dispatch(request, *args, **kwargs)
get(request, event)
permission_required = 'base.release_schedule'
post(request, event)
class eventyay.orga.views.schedule.TalkUpdate(*args, **kwargs)

Bases: PermissionRequired, View

delete(request, event, pk)
dispatch(request, *args, **kwargs)
get_object()
patch(request, event, pk)
permission_required = 'base.update_talkslot'
eventyay.orga.views.schedule.serialize_break(slot)
eventyay.orga.views.schedule.serialize_slot(slot, warnings=None)
class eventyay.orga.views.speaker.SpeakerDetail(*args, **kwargs)

Bases: SpeakerViewMixin, ActionFromUrl, CreateOrUpdateView

accepted_submissions
dispatch(request, *args, **kwargs)
form_class

alias of SpeakerProfileForm

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.

mails
model

alias of User

permission_required = 'base.orga_list_speakerprofile'
questions_form
submissions
template_name = 'orga/speaker/form.html'
write_permission_required = 'base.update_speakerprofile'
class eventyay.orga.views.speaker.SpeakerExport(*args, **kwargs)

Bases: EventPermissionRequired, FormView

exporters()
form_class

alias of SpeakerExportForm

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_form_kwargs()

Return the keyword arguments for instantiating the form.

permission_required = 'base.update_event'
tablist()
template_name = 'orga/speaker/export.html'
class eventyay.orga.views.speaker.SpeakerInformationView(**kwargs)

Bases: OrgaCRUDView

context_object_name = 'information'
form_class

alias of SpeakerInformationForm

get_generic_title(instance=None)
get_permission_required()
get_queryset()
model

alias of SpeakerInformation

template_namespace = 'orga/speaker'
class eventyay.orga.views.speaker.SpeakerList(*args, **kwargs)

Bases: EventPermissionRequired, Sortable, Filterable, PaginationMixin, ListView

context_object_name = 'speakers'
default_filters = ('user__email__icontains', 'user__fullname__icontains')
default_sort_field = 'user__fullname'
get_filter_form()
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.

permission_required = 'base.orga_list_speakerprofile'
sortable_fields = ('user__email', 'user__fullname')
template_name = 'orga/speaker/list.html'
class eventyay.orga.views.speaker.SpeakerPasswordReset(*args, **kwargs)

Bases: SpeakerViewMixin, ActionConfirmMixin, DetailView

action_back_url()
action_confirm_icon = 'key'
action_confirm_label = 'Reset password'
action_object_name()
action_text = 'Do your really want to reset this user’s password? They won’t be able to log in until they set a new password.'
action_title = 'Reset password'
context_object_name = 'speaker'
model

alias of User

permission_required = 'base.update_speakerprofile'
post(request, *args, **kwargs)
class eventyay.orga.views.speaker.SpeakerToggleArrived(*args, **kwargs)

Bases: SpeakerViewMixin, View

dispatch(request, event, code)
permission_required = 'base.update_speakerprofile'
class eventyay.orga.views.speaker.SpeakerViewMixin(*args, **kwargs)

Bases: PermissionRequired

get_context_data(**kwargs)
get_object()
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

object
permission_object
profile
class eventyay.orga.views.submission.AllFeedbacksList(*args, **kwargs)

Bases: EventPermissionRequired, PaginationMixin, ListView

context_object_name = 'feedback'
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 Feedback

paginate_by = 25
permission_required = 'base.orga_list_submission'
template_name = 'orga/submission/feedbacks_list.html'
class eventyay.orga.views.submission.Anonymise(*args, **kwargs)

Bases: SubmissionViewMixin, UpdateView

form_class

alias of AnonymiseForm

form_valid(form)

If the form is valid, save the associated model.

get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

next_unanonymised
permission_required = 'base.orga_update_submission'
template_name = 'orga/submission/anonymise.html'
class eventyay.orga.views.submission.ApplyPending(*args, **kwargs)

Bases: SubmissionViewMixin, View

permission_required = 'base.state_change_submission'
post(request, *args, **kwargs)
class eventyay.orga.views.submission.ApplyPendingBulk(*args, **kwargs)

Bases: EventPermissionRequired, BaseSubmissionList

next()
permission_required = 'base.state_change_submission'
post(request, *args, **kwargs)
submission_count
submissions
template_name = 'orga/submission/apply_pending.html'
class eventyay.orga.views.submission.BaseSubmissionList(**kwargs)

Bases: Sortable, ReviewerSubmissionFilter, PaginationMixin, ListView

context_object_name = 'submissions'
filter_fields = ()
filter_form
get_context_data(**kwargs)

Get the context for this view.

get_default_filters(*args, **kwargs)
get_filter_form()
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 Submission

sortable_fields = ('code', 'title', 'state', 'is_featured', 'submission_type__name', 'track__name')
usable_states = None
class eventyay.orga.views.submission.CommentDelete(*args, **kwargs)

Bases: SubmissionViewMixin, ActionConfirmMixin, TemplateView

property action_back_url
property action_object_name
get_object()
permission_required = 'base.delete_submissioncomment'
post(request, *args, **kwargs)
class eventyay.orga.views.submission.CommentList(*args, **kwargs)

Bases: SubmissionViewMixin, FormView

comments
form_class

alias of SubmissionCommentForm

form_valid(form)

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

get_form_kwargs()

Return the keyword arguments for instantiating the form.

permission_required = 'base.view_submissioncomment'
template_name = 'orga/submission/comments.html'
write_permission_required = 'base.add_submissioncomment'
class eventyay.orga.views.submission.FeedbackList(*args, **kwargs)

Bases: SubmissionViewMixin, PaginationMixin, ListView

context_object_name = 'feedback'
get_object()
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

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 = 25
permission_required = 'base.view_feedback_submission'
submission
template_name = 'orga/submission/feedback_list.html'
class eventyay.orga.views.submission.ReviewerSubmissionFilter

Bases: object

get_queryset(for_review=False)
is_only_reviewer
limit_tracks
class eventyay.orga.views.submission.SubmissionContent(*args, **kwargs)

Bases: ActionFromUrl, ReviewerSubmissionFilter, SubmissionViewMixin, CreateOrUpdateView

can_edit
form_class

alias of SubmissionForm

form_valid(form)

If the form is valid, save the associated model.

formset()
get_form_kwargs()

Return the keyword arguments for instantiating the form.

get_object()

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_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

get_permission_required()

Override this method to override the permission_required attribute. Must return an iterable.

get_success_url() str

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

model

alias of Submission

new_speaker_form
property permission_object
permission_required = 'base.orga_list_submission'
questions_form()
save_formset(obj)
size_warning()
template_name = 'orga/submission/content.html'
write_permission_required
class eventyay.orga.views.submission.SubmissionFeed(*args, **kwargs)

Bases: PermissionRequired, Feed

description(obj)
feed_guid(obj)
feed_type

alias of Atom1Feed

feed_url(obj)
get_object(request, *args, **kwargs)
item_pubdate(item)
item_title(item)
items(obj)
permission_required = 'base.orga_list_submission'
title(obj)
class eventyay.orga.views.submission.SubmissionHistory(*args, **kwargs)

Bases: SubmissionViewMixin, ListView

context_object_name = 'log_entries'
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

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.

object
paginate_by = 200
permission_required = 'base.administrator_user'
submission
template_name = 'orga/submission/history.html'
class eventyay.orga.views.submission.SubmissionList(*args, **kwargs)

Bases: EventPermissionRequired, BaseSubmissionList

default_sort_field = 'state'
paginate_by = 25
pending_changes
permission_required = 'base.orga_list_submission'
secondary_sort = {'state': ('pending_state',)}
show_submission_types()
show_tracks()
template_name = 'orga/submission/list.html'
class eventyay.orga.views.submission.SubmissionSpeakers(*args, **kwargs)

Bases: ReviewerSubmissionFilter, SubmissionViewMixin, FormView

form_class

alias of AddSpeakerInlineForm

form_valid(form)

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

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_required = 'base.orga_list_speakerprofile'
speakers
template_name = 'orga/submission/speakers.html'
class eventyay.orga.views.submission.SubmissionSpeakersDelete(*args, **kwargs)

Bases: SubmissionViewMixin, View

dispatch(request, *args, **kwargs)
permission_required = 'base.update_submission'
class eventyay.orga.views.submission.SubmissionStateChange(*args, **kwargs)

Bases: SubmissionViewMixin, FormView

TARGETS = {'accept': 'accepted', 'cancel': 'canceled', 'confirm': 'confirmed', 'delete': 'deleted', 'reject': 'rejected', 'submit': 'submitted', 'withdraw': 'withdrawn'}
do(force=False, pending=False)
form_class

alias of SubmissionStateChangeForm

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.

next()
permission_required = 'base.state_change_submission'
target()
template_name = 'orga/submission/state_change.html'
class eventyay.orga.views.submission.SubmissionStats(*args, **kwargs)

Bases: EventPermissionRequired, TemplateView

get_context_data(**kwargs)
id_mapping()
permission_required = 'base.orga_list_submission'
raw_submission_timeline_data
show_submission_types()
show_tracks
submission_state_data
submission_timeline_data()
submission_track_data()
submission_type_data()
talk_state_data()
talk_timeline_data()
talk_track_data()
talk_type_data()
template_name = 'orga/submission/stats.html'
timeline_annotations()
total_submission_timeline_data()
class eventyay.orga.views.submission.SubmissionViewMixin(*args, **kwargs)

Bases: PermissionRequired

get_context_data(**kwargs)
get_object()
get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

get_queryset()
has_anonymised_review
is_publicly_visible
object
submission()
class eventyay.orga.views.submission.TagView(**kwargs)

Bases: OrgaCRUDView

form_class

alias of TagForm

get_generic_title(instance=None)
get_queryset()
model

alias of Tag

template_namespace = 'orga/submission'
class eventyay.orga.views.submission.ToggleFeatured(*args, **kwargs)

Bases: SubmissionViewMixin, View

get_permission_object()

Override this method to provide the object to check for permission against. By default uses self.get_object() as provided by SingleObjectMixin. Returns None if there’s no get_object method.

permission_required = 'base.orga_update_submission'
post(*args, **kwargs)
eventyay.orga.tasks.generate_sso_token(user_email)
eventyay.orga.tasks.set_header_token(user_email)
eventyay.orga.receivers.add_html_above_session_pages(sender, request, submission, **kwargs)
eventyay.orga.receivers.add_html_below_session_pages(sender, request, submission, **kwargs)
eventyay.orga.utils.i18n.get_javascript_format(format_name)
eventyay.orga.utils.i18n.get_moment_locale(locale=None)

Schedule Module

class eventyay.schedule.apps.ScheduleConfig(app_name, app_module)

Bases: AppConfig

name = 'eventyay.schedule'
ready()

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

class eventyay.schedule.exporters.FavedICalExporter(event)

Bases: BaseExporter

cors = '*'
icon = 'fa-calendar'
identifier = 'faved.ics'
is_public(request, **kwargs)
render(request, **kwargs)

Render the exported file and return a tuple consisting of a file name, a file type and file content.

show_public = True
show_qrcode = False
verbose_name = 'iCal (your starred sessions)'
class eventyay.schedule.exporters.FrabJsonExporter(event, schedule=None, with_accepted=False, with_breaks=False)

Bases: ScheduleData

cors = '*'
favs_retrieve = False
get_data(**kwargs)
icon = '{ }'
identifier = 'schedule.json'
public = True
render(**kwargs)

Render the exported file and return a tuple consisting of a file name, a file type and file content.

talk_ids = []
verbose_name = 'JSON (frab compatible)'
class eventyay.schedule.exporters.FrabXCalExporter(event, schedule=None, with_accepted=False, with_breaks=False)

Bases: ScheduleData

cors = '*'
favs_retrieve = False
icon = 'fa-calendar'
identifier = 'schedule.xcal'
public = True
render(**kwargs)

Render the exported file and return a tuple consisting of a file name, a file type and file content.

talk_ids = []
verbose_name = 'XCal (frab compatible)'
class eventyay.schedule.exporters.FrabXmlExporter(event, schedule=None, with_accepted=False, with_breaks=False)

Bases: ScheduleData

cors = '*'
favs_retrieve = False
icon = 'fa-code'
identifier = 'schedule.xml'
public = True
render(**kwargs)

Render the exported file and return a tuple consisting of a file name, a file type and file content.

show_qrcode = True
talk_ids = []
verbose_name = 'XML (frab compatible)'
class eventyay.schedule.exporters.ICalExporter(event, schedule=None)

Bases: BaseExporter

cors = '*'
favs_retrieve = False
icon = 'fa-calendar'
identifier = 'schedule.ics'
public = True
render(**kwargs)

Render the exported file and return a tuple consisting of a file name, a file type and file content.

show_public = False
show_qrcode = True
talk_ids = []
verbose_name = 'iCal (full event)'
class eventyay.schedule.exporters.MyFrabJsonExporter(event, schedule=None, with_accepted=False, with_breaks=False)

Bases: FrabJsonExporter

favs_retrieve = True
identifier = 'schedule-my.json'
verbose_name = 'My Sessions JSON'
class eventyay.schedule.exporters.MyFrabXCalExporter(event, schedule=None, with_accepted=False, with_breaks=False)

Bases: FrabXCalExporter

favs_retrieve = True
identifier = 'schedule-my.xcal'
verbose_name = 'My Sessions XCAL'
class eventyay.schedule.exporters.MyFrabXmlExporter(event, schedule=None, with_accepted=False, with_breaks=False)

Bases: FrabXmlExporter

favs_retrieve = True
identifier = 'schedule-my.xml'
verbose_name = 'My Sessions XML'
class eventyay.schedule.exporters.MyICalExporter(event, schedule=None)

Bases: ICalExporter

favs_retrieve = True
identifier = 'schedule-my.ics'
verbose_name = 'My Sessions iCal'
class eventyay.schedule.exporters.ScheduleData(event, schedule=None, with_accepted=False, with_breaks=False)

Bases: BaseExporter

data
metadata
class eventyay.schedule.forms.AvailabilitiesFormMixin(*args, event=None, limit_to_rooms=False, **kwargs)

Bases: Form

base_fields = {'availabilities': <django.forms.fields.CharField object>}
clean_availabilities()
declared_fields = {'availabilities': <django.forms.fields.CharField object>}
property media

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

save(*args, **kwargs)
class eventyay.schedule.forms.QuickScheduleForm(event, *args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

field_classes = {'room': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ('room',)
model

alias of TalkSlot

base_fields = {'room': <django_scopes.forms.SafeModelChoiceField object>, 'start_date': <django.forms.fields.DateField object>, 'start_time': <django.forms.fields.TimeField object>}
declared_fields = {'start_date': <django.forms.fields.DateField object>, 'start_time': <django.forms.fields.TimeField 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.schedule.forms.RoomForm(*args, **kwargs)

Bases: AvailabilitiesFormMixin, ReadOnlyFlag, I18nModelForm

class Meta

Bases: object

fields = ['name', 'guid', 'description', 'speaker_info', 'capacity']
model

alias of Room

base_fields = {'availabilities': <django.forms.fields.CharField object>, 'capacity': <django.forms.fields.IntegerField object>, 'description': <i18nfield.forms.I18nFormField object>, 'guid': <django.forms.fields.UUIDField object>, 'name': <i18nfield.forms.I18nFormField object>, 'speaker_info': <i18nfield.forms.I18nFormField object>}
declared_fields = {'availabilities': <django.forms.fields.CharField object>}
property media

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

eventyay.schedule.signals.register_faved_ical_exporter(sender, **kwargs)
eventyay.schedule.signals.register_ical_exporter(sender, **kwargs)
eventyay.schedule.signals.register_json_exporter(sender, **kwargs)
eventyay.schedule.signals.register_my_ical_exporter(sender, **kwargs)
eventyay.schedule.signals.register_my_json_exporter(sender, **kwargs)
eventyay.schedule.signals.register_my_xcal_exporter(sender, **kwargs)
eventyay.schedule.signals.register_my_xml_exporter(sender, **kwargs)
eventyay.schedule.signals.register_xcal_exporter(sender, **kwargs)
eventyay.schedule.signals.register_xml_exporter(sender, **kwargs)
eventyay.schedule.signals.schedule_release = <eventyay.common.signals.EventPluginSignal object>

This signal allows you to trigger additional events when a new schedule version is released. You will receive the new schedule and the user triggering the change (if any). Any exceptions raised will be ignored.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, you will receive the keyword arguments schedule and user (which may be None).

eventyay.schedule.utils.guess_schedule_version(event)
eventyay.schedule.ascii.draw_ascii_schedule(data, output_format='table')
eventyay.schedule.ascii.draw_dt_line(dt, is_tick, starting_events, running_events, ending_events, rooms, col_width, cards_by_id)
eventyay.schedule.ascii.draw_grid_for_day(day, col_width=20)
eventyay.schedule.ascii.draw_schedule_grid(data, col_width=20)
eventyay.schedule.ascii.draw_schedule_list(data)
eventyay.schedule.ascii.get_line_parts(start1, start2, end1, end2, run1, run2, fill_char)
eventyay.schedule.ascii.talk_card(talk, col_width)
eventyay.schedule.notifications.get_current_notifications(speaker, event)
eventyay.schedule.notifications.get_full_notifications(speaker, event)

Builds a notification dict for a speaker, pretending that the current schedule version is the first one. That is, all talks will be included in the create section.

eventyay.schedule.notifications.render_notifications(data, event, speaker=None, locale=None)

Renders the schedule notifications sent to speakers, in the form of a Markdown list.

The data format is expected to be a dict with the keys create and update, each containing a list of TalkSlot objects, as returned by the values of the Schedule.speakers.concerned return value.

class eventyay.schedule.phrases.SchedulePhrases

Bases: Phrases

current_version = 'You can find the current version <a href="%(current_url)s">here</a>.'
first_schedule = 'We released our first schedule!'
no_feedback = 'There has been no feedback for this session yet.'
old_version = 'You are currently viewing an older schedule version.'
schedule = 'Schedule'
sessions = 'Sessions'
speakers = 'Speakers'
timezone_hint = 'All times in %(tz)s'
version = 'Version'
wip_version = 'You are currently viewing the editable schedule version, which is unreleased and may change at any time.'

Submission Module

class eventyay.submission.apps.SubmissionConfig(app_name, app_module)

Bases: AppConfig

name = 'eventyay.submission'
ready()

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

class eventyay.submission.forms.FeedbackForm(talk, **kwargs)

Bases: ReadOnlyFlag, ModelForm

class Meta

Bases: object

fields = ['speaker', 'review']
model

alias of Feedback

widgets = {'review': <class 'eventyay.common.forms.widgets.MarkdownWidget'>}
base_fields = {'review': <django.forms.fields.CharField object>, 'speaker': <django.forms.models.ModelChoiceField object>}
declared_fields = {}
default_renderer

alias of InlineFormRenderer

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.submission.forms.InfoForm(event, remove_additional_speaker=False, **kwargs)

Bases: CfPFormMixin, RequestRequire, PublicContent, ModelForm

class Meta

Bases: object

field_classes = {'submission_type': <class 'django_scopes.forms.SafeModelChoiceField'>, 'track': <class 'django_scopes.forms.SafeModelChoiceField'>}
fields = ['title', 'submission_type', 'track', 'content_locale', 'abstract', 'description', 'notes', 'slot_count', 'do_not_record', 'image', 'duration']
model

alias of Submission

public_fields = ['title', 'abstract', 'description', 'image']
request_require = ['title', 'abstract', 'description', 'notes', 'image', 'do_not_record', 'track', 'duration', 'content_locale', 'additional_speaker']
widgets = {'abstract': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'description': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'notes': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'track': <eventyay.common.forms.widgets.EnhancedSelect object>}
base_fields = {'abstract': <django.forms.fields.CharField object>, 'additional_speaker': <django.forms.fields.EmailField object>, 'content_locale': <django.forms.fields.ChoiceField object>, 'description': <django.forms.fields.CharField object>, 'do_not_record': <django.forms.fields.BooleanField object>, 'duration': <django.forms.fields.IntegerField object>, 'image': <eventyay.common.forms.fields.ImageField object>, 'notes': <django.forms.fields.CharField object>, 'slot_count': <django.forms.fields.IntegerField object>, 'submission_type': <django_scopes.forms.SafeModelChoiceField object>, 'title': <django.forms.fields.CharField object>, 'track': <django_scopes.forms.SafeModelChoiceField object>}
declared_fields = {'additional_speaker': <django.forms.fields.EmailField object>, 'content_locale': <django.forms.fields.ChoiceField object>, 'image': <eventyay.common.forms.fields.ImageField 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.submission.forms.ResourceForm(*args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

field_classes = {'resource': <class 'eventyay.common.forms.fields.SizeFileField'>}
fields = ['resource', 'description', 'link']
model

alias of Resource

base_fields = {'description': <django.forms.fields.CharField object>, 'link': <django.forms.fields.URLField object>, 'resource': <eventyay.common.forms.fields.SizeFileField 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 = {}
default_renderer

alias of InlineFormLabelRenderer

property media

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

class eventyay.submission.forms.SubmissionCommentForm(*args, submission=None, user=None, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ('text',)
model

alias of SubmissionComment

widgets = {'text': <class 'eventyay.common.forms.widgets.MarkdownWidget'>}
base_fields = {'text': <django.forms.fields.CharField object>}
declared_fields = {}
default_renderer

alias of InlineFormRenderer

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.submission.forms.SubmissionFilterForm(event, *args, limit_tracks=False, search_fields=None, **kwargs)

Bases: Form

base_fields = {'answer': <django.forms.fields.CharField object>, 'answer__options': <django.forms.fields.IntegerField object>, 'content_locale': <django.forms.fields.MultipleChoiceField object>, 'pending_state__isnull': <django.forms.fields.BooleanField object>, 'q': <django.forms.fields.CharField object>, 'question': <django_scopes.forms.SafeModelChoiceField object>, 'state': <django.forms.fields.MultipleChoiceField object>, 'submission_type': <django.forms.fields.MultipleChoiceField object>, 'tags': <django.forms.models.ModelMultipleChoiceField object>, 'track': <django.forms.models.ModelMultipleChoiceField object>, 'unanswered': <django.forms.fields.BooleanField object>}
declared_fields = {'answer': <django.forms.fields.CharField object>, 'answer__options': <django.forms.fields.IntegerField object>, 'content_locale': <django.forms.fields.MultipleChoiceField object>, 'pending_state__isnull': <django.forms.fields.BooleanField object>, 'q': <django.forms.fields.CharField object>, 'question': <django_scopes.forms.SafeModelChoiceField object>, 'state': <django.forms.fields.MultipleChoiceField object>, 'submission_type': <django.forms.fields.MultipleChoiceField object>, 'tags': <django.forms.models.ModelMultipleChoiceField object>, 'track': <django.forms.models.ModelMultipleChoiceField object>, 'unanswered': <django.forms.fields.BooleanField object>}
default_renderer

alias of InlineFormRenderer

filter_queryset(qs)
property media

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

class eventyay.submission.forms.TagForm(*args, event=None, **kwargs)

Bases: ReadOnlyFlag, I18nHelpText, I18nModelForm

class Meta

Bases: object

field_classes = {'color': <class 'eventyay.common.forms.fields.ColorField'>}
fields = ('tag', 'description', 'color', 'is_public')
model

alias of Tag

base_fields = {'color': <eventyay.common.forms.fields.ColorField object>, 'description': <i18nfield.forms.I18nFormField object>, 'is_public': <django.forms.fields.BooleanField object>, 'tag': <django.forms.fields.CharField object>}
clean_tag()
declared_fields = {}
property media

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

class eventyay.submission.forms.TalkQuestionsForm(*args, skip_limited_questions=False, **kwargs)

Bases: CfPFormMixin, QuestionFieldsMixin, Form

base_fields = {}
declared_fields = {}
property media

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

save()
speaker_fields
submission_fields
eventyay.submission.signals.submission_state_change = <eventyay.common.signals.EventPluginSignal object>

This signal allows you to trigger additional events when a submission changes its state. You will receive the submission after it has been saved, the previous state, and the user triggering the change if available. Any exceptions raised will be ignored.

As with all plugin signals, the sender keyword argument will contain the event. Additionally, you will receive the keyword arguments submission, old_state, and user (which may be None). When the submission is created or submitted from a draft state, old_state will be None.

class eventyay.submission.exporters.SpeakerQuestionData(event)

Bases: CSVExporterMixin, BaseExporter

cors = '*'
property filename
get_data(**kwargs)
group = 'speaker'
icon = 'fa-question-circle'
identifier = 'speaker-questions.csv'
public = False
property verbose_name

A human-readable name for this exporter.

This should be short but self-explaining. Good examples include ‘JSON’ or ‘Microsoft Excel’.

class eventyay.submission.exporters.SubmissionQuestionData(event)

Bases: CSVExporterMixin, BaseExporter

cors = '*'
property filename
get_data(**kwargs)
icon = 'fa-question-circle-o'
identifier = 'submission-questions.csv'
public = False
property verbose_name

A human-readable name for this exporter.

This should be short but self-explaining. Good examples include ‘JSON’ or ‘Microsoft Excel’.

eventyay.submission.exporters.register_speaker_question_exporter(sender, **kwargs)
eventyay.submission.exporters.register_submission_question_exporter(sender, **kwargs)
class eventyay.submission.phrases.SubmissionPhrases

Bases: Phrases

deleted = 'deleted'
in_review = 'in review'
not_accepted = 'not accepted'
submitted = 'submitted'

Person Module

class eventyay.person.apps.PersonConfig(app_name, app_module)

Bases: AppConfig

name = 'eventyay.person'
ready()

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

class eventyay.person.forms.AuthTokenForm(*args, user=None, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ['name', 'events', 'expires', 'permission_preset']
model

alias of UserApiToken

widgets = {'events': <class 'eventyay.common.forms.widgets.EnhancedSelectMultiple'>, 'expires': <class 'eventyay.common.forms.widgets.HtmlDateTimeInput'>}
base_fields = {'events': <django.forms.models.ModelMultipleChoiceField object>, 'expires': <django.forms.fields.DateTimeField object>, 'name': <django.forms.fields.CharField object>, 'permission_preset': <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 = {'permission_preset': <django.forms.fields.ChoiceField object>}
get_endpoint_fields()

Used in templates, so has to return the actual 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.person.forms.LoginInfoForm(user, *args, **kwargs)

Bases: ModelForm

class Meta

Bases: object

fields = ('email',)
model

alias of User

base_fields = {'email': <django.forms.fields.EmailField object>, 'old_password': <django.forms.fields.CharField object>, 'password': <eventyay.common.forms.fields.NewPasswordField object>, 'password_repeat': <eventyay.common.forms.fields.NewPasswordConfirmationField 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_old_password()
declared_fields = {'old_password': <django.forms.fields.CharField object>, 'password': <eventyay.common.forms.fields.NewPasswordField object>, 'password_repeat': <eventyay.common.forms.fields.NewPasswordConfirmationField object>}
error_messages = {'pw_current_wrong': 'The current password you entered was not correct.'}
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.person.forms.OrgaProfileForm(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 = ('fullname', 'locale')
model

alias of User

base_fields = {'fullname': <django.forms.fields.CharField object>, 'locale': <django.forms.fields.TypedChoiceField object>}
declared_fields = {}
property media

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

class eventyay.person.forms.SpeakerFilterForm(*args, event=None, filter_arrival=False, **kwargs)

Bases: Form

base_fields = {'arrived': <django.forms.fields.ChoiceField object>, 'question': <django_scopes.forms.SafeModelChoiceField object>, 'role': <django.forms.fields.ChoiceField object>}
declared_fields = {'arrived': <django.forms.fields.ChoiceField object>, 'question': <django_scopes.forms.SafeModelChoiceField object>, 'role': <django.forms.fields.ChoiceField object>}
default_renderer

alias of InlineFormRenderer

filter_queryset(queryset)
property media

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

class eventyay.person.forms.SpeakerInformationForm(*args, event=None, **kwargs)

Bases: I18nHelpText, I18nModelForm

class Meta

Bases: object

field_classes = {'limit_tracks': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'limit_types': <class 'django_scopes.forms.SafeModelMultipleChoiceField'>, 'resource': <class 'eventyay.common.forms.fields.SizeFileField'>}
fields = ('title', 'text', 'target_group', 'limit_types', 'limit_tracks', 'resource')
model

alias of SpeakerInformation

widgets = {'limit_tracks': <eventyay.common.forms.widgets.EnhancedSelectMultiple object>, 'limit_types': <class 'eventyay.common.forms.widgets.EnhancedSelectMultiple'>}
base_fields = {'limit_tracks': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'limit_types': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'resource': <eventyay.common.forms.fields.SizeFileField object>, 'target_group': <django.forms.fields.TypedChoiceField object>, 'text': <i18nfield.forms.I18nFormField object>, 'title': <i18nfield.forms.I18nFormField 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.person.forms.SpeakerProfileForm(*args, name=None, **kwargs)

Bases: CfPFormMixin, AvailabilitiesFormMixin, ReadOnlyFlag, PublicContent, RequestRequire, ModelForm

FIRST_TIME_EXCLUDE = ['email']
class Meta

Bases: object

field_classes = {'avatar': <class 'eventyay.common.forms.fields.ImageField'>}
fields = ('biography',)
model

alias of SpeakerProfile

public_fields = ['fullname', 'biography', 'avatar']
request_require = {'availabilities', 'biography'}
widgets = {'avatar': <class 'eventyay.common.forms.widgets.ClearableBasenameFileInput'>, 'avatar_license': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'avatar_source': <class 'eventyay.common.forms.widgets.MarkdownWidget'>, 'biography': <class 'eventyay.common.forms.widgets.MarkdownWidget'>}
USER_FIELDS = ['fullname', 'email', 'avatar', 'avatar_source', 'avatar_license', 'get_gravatar']
base_fields = {'availabilities': <django.forms.fields.CharField object>, 'biography': <django.forms.fields.CharField 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()
declared_fields = {'availabilities': <django.forms.fields.CharField object>}
property media

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

save(**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.

user_fields
class eventyay.person.forms.UserForm(*args, **kwargs)

Bases: CfPFormMixin, Form

FIELDS_ERROR = 'Please fill all fields of either the login or the registration form.'
base_fields = {'login_email': <django.forms.fields.EmailField object>, 'login_password': <django.forms.fields.CharField object>, 'register_email': <django.forms.fields.EmailField object>, 'register_name': <django.forms.fields.CharField object>, 'register_password': <eventyay.common.forms.fields.NewPasswordField object>, 'register_password_repeat': <eventyay.common.forms.fields.NewPasswordConfirmationField 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 = {'login_email': <django.forms.fields.EmailField object>, 'login_password': <django.forms.fields.CharField object>, 'register_email': <django.forms.fields.EmailField object>, 'register_name': <django.forms.fields.CharField object>, 'register_password': <eventyay.common.forms.fields.NewPasswordField object>, 'register_password_repeat': <eventyay.common.forms.fields.NewPasswordConfirmationField object>}
default_renderer

alias of InlineFormLabelRenderer

property media

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

save()
class eventyay.person.forms.UserSpeakerFilterForm(*args, events=None, **kwargs)

Bases: Form

base_fields = {'events': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'role': <django.forms.fields.ChoiceField object>}
declared_fields = {'events': <django_scopes.forms.SafeModelMultipleChoiceField object>, 'role': <django.forms.fields.ChoiceField object>}
default_renderer

alias of InlineFormRenderer

filter_queryset(queryset)
property media

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

eventyay.person.permissions.has_reviewer_teams(user, event)
eventyay.person.signals.delete_user = <django.dispatch.dispatcher.Signal object>

This signal is sent out when a user is deleted - both when deleted on the frontend (“deactivated”) and actually removed (“shredded”).

You will get the user as a keyword argument user. Receivers are expected to delete any personal information they might have stored about this user.

Additionally, you will get the keyword argument db_delete when the user object will be deleted from the database. If you have any foreign keys to the user object, you should delete them here.

eventyay.person.signals.register_speaker_csv_exporter(sender, **kwargs)
class eventyay.person.exporters.CSVSpeakerExporter(event)

Bases: CSVExporterMixin, BaseExporter

cors = '*'
property filename
get_data(**kwargs)
group = 'speaker'
icon = 'fa-users'
identifier = 'speakers.csv'
public = False
property verbose_name

A human-readable name for this exporter.

This should be short but self-explaining. Good examples include ‘JSON’ or ‘Microsoft Excel’.

eventyay.person.services.create_user(email, name=None, pw_reset_days=60, event=None)
eventyay.person.tasks.refetch_gravatars(sender, **kwargs)
eventyay.person.tasks.run_update_check(sender, **kwargs)

Talk Rules Module

eventyay.talk_rules.submission.annotate_assigned(queryset, event, user)
eventyay.talk_rules.submission.get_missing_reviews(event, user, ignore=None)
eventyay.talk_rules.submission.get_reviewable_submissions(event, user, queryset=None)

Returns all submissions the user is permitted to review.

Excludes submissions this user has submitted, and takes track team permissions, assignments and review phases into account. The result is ordered by review count.

eventyay.talk_rules.submission.get_reviewer_tracks(event, user)
eventyay.talk_rules.submission.limit_for_reviewers(queryset, event, user, reviewer_tracks=None, add_assignments=False)
eventyay.talk_rules.submission.questions_for_user(request, event, user)

Used to retrieve synced querysets in the orga list and the API list.

eventyay.talk_rules.submission.speaker_profiles_for_user(event, user, submissions=None)
eventyay.talk_rules.submission.submissions_for_user(event, user)