Code reference › domain › mail

class

Recipient

pretalx.mail.domain.recipient.Recipient source

Wraps a SpeakerProfile or a User as a mail recipient.

Properties 3

Defined here

emailsource
@property
def email(self) -> str | None:
    if self._speaker:
        return self._speaker.effective_email
    return self.user.email
localesource
@property
def locale(self) -> str | None:
    if self._speaker:
        return self._speaker.effective_locale
    return self.user.locale
namesource
@property
def name(self) -> str:
    return self.get_display_name(allow_empty=True)

Methods 7

Defined here

get_display_name(event=None, allow_empty=False) -> strsource
def get_display_name(self, event=None, allow_empty=False) -> str:
    speaker = self._speaker
    if speaker is None and event is not None:
        speaker = self.user.get_speaker(event, create=False)
    return (speaker or self.user).get_display_name(allow_empty=allow_empty)
get_locale_for_event(event) -> strsource
def get_locale_for_event(self, event) -> str:
    if self._speaker:
        return self._speaker.effective_locale
    return self.user.get_locale_for_event(event)
speaker(event)sourceThe wrapped or derived SpeakerProfile for event, or None.
def speaker(self, event):
    """The wrapped or derived :class:`SpeakerProfile` for ``event``,
    or ``None``."""
    if self._speaker:
        return self._speaker if self._speaker.event_id == event.pk else None
    if self.user:
        return self.user.get_speaker(event, create=False)
    return None
__eq__(other)sourceReturn self==value.
def __eq__(self, other):
    return (
        isinstance(other, Recipient)
        and self._speaker == other._speaker
        and self.user == other.user
    )
__hash__()sourceReturn hash(self).
def __hash__(self):
    return hash((self._speaker, self.user))
__init__(speaker_or_user)sourceInitialize self.

See help(type(self)) for accurate signature.

def __init__(self, speaker_or_user):
    if isinstance(speaker_or_user, Recipient):
        self._speaker = speaker_or_user._speaker  # noqa: SLF001 -- same-class copy
        self.user = speaker_or_user.user
    elif isinstance(speaker_or_user, SpeakerProfile):
        self._speaker = speaker_or_user
        self.user = speaker_or_user.user
    else:
        self._speaker = None
        self.user = speaker_or_user
__repr__()sourceReturn repr(self).
def __repr__(self):
    return f"Recipient({self._speaker or self.user!r})"