Code reference › domain › person

module

pretalx.person.domain.picture

Functions 2

assign_avatar(instance, user, new_picture)sourceAssign new_picture to instance.profile_picture (None clears).

Bumps the replaced picture's timestamp for cleanup, and seeds the user-level avatar from a speaker's first picture.

def assign_avatar(instance, user, new_picture):
    """Assign ``new_picture`` to ``instance.profile_picture`` (``None`` clears).

    Bumps the replaced picture's timestamp for cleanup, and seeds the
    user-level avatar from a speaker's first picture.
    """
    old_picture = instance.profile_picture
    if new_picture == old_picture:
        return
    instance.profile_picture = new_picture
    instance.save(update_fields=["profile_picture"])
    if old_picture:
        old_picture.save(update_fields=["updated"])
    if new_picture and user and not user.profile_picture:
        user.profile_picture = new_picture
        user.save(update_fields=["profile_picture"])
set_avatar(instance, file)sourceCreate a fresh ProfilePicture from file and assign it to instance (a User or SpeakerProfile).
def set_avatar(instance, file):
    """Create a fresh ``ProfilePicture`` from ``file`` and assign it to
    ``instance`` (a ``User`` or ``SpeakerProfile``)."""
    user = instance if isinstance(instance, User) else instance.user
    new_picture = ProfilePicture.objects.create(user=user, avatar=file)
    new_picture.process_image("avatar", generate_thumbnail=True)
    assign_avatar(instance, user, new_picture)
    return new_picture