from .audittrail import create_user_audit_trail from .avatars import set_default_avatar from .models import User def setup_new_user(settings, user): set_default_subscription_options(settings, user) set_default_avatar( user, settings.default_avatar, settings.default_gravatar_fallback ) if user.joined_from_ip: create_user_audit_trail(user, user.joined_from_ip, user) SUBSCRIPTION_CHOICES = { "no": User.SUBSCRIPTION_NONE, "watch": User.SUBSCRIPTION_NOTIFY, "watch_email": User.SUBSCRIPTION_ALL, } def set_default_subscription_options(settings, user): started_threads = SUBSCRIPTION_CHOICES[settings.subscribe_start] user.subscribe_to_started_threads = started_threads replied_threads = SUBSCRIPTION_CHOICES[settings.subscribe_reply] user.subscribe_to_replied_threads = replied_threads user.save( update_fields=["subscribe_to_replied_threads", "subscribe_to_replied_threads"] )