Ejemplo n.º 1
0
def promote_to_member(user: User, source: str) -> None:
    """
    Promote a user do member. Raises exception in case user is a member
    :param user:
    """
    if has_role(user, 'member'):
        raise UserRoleException('User is already a member')
    UserInteraction(category=UserInteraction.BECOME_MEMBER, source=source, user=user).save()
    assign_role(user, 'member')
    remove_role(user, 'lead')
    remove_role(user, 'client')
Ejemplo n.º 2
0
def promote_to_webdev(user: User, source: str) -> None:
    """
    Promote a user do webdev. Raises exception in case user is a member
    :param user:
    """
    if has_role(user, 'member'):
        raise UserRoleException('User is already a member')
    elif has_role(user, 'bootcamper'):
        raise UserRoleException('User is already a bootcamper')
    elif has_role(user, 'webdev'):
        raise UserRoleException('User is already a webdev')
    UserInteraction(category=UserInteraction.BECOME_WEBDEV, source=source, user=user).save()
    assign_role(user, 'webdev')
    remove_role(user, 'lead')
    remove_role(user, 'client')
Ejemplo n.º 3
0
def register_lead(first_name: str, email: str, source: str) -> User:
    """
    Create a new user on the system generating a random password.
    :param first_name: User's first name
    :param email: User's email
    :param source: source of User traffic
    :return: User
    """
    try:
        user = User.objects.filter(email=email).get()
    except User.DoesNotExist:
        user = save_and_sent_password_email(first_name, email, source)
        UserInteraction(category=UserInteraction.BECOME_LEAD, source=source, user=user).save()
    assign_role(user, 'lead')
    return user
Ejemplo n.º 4
0
def member_checkout(user: User, source='unknown'):
    return UserInteraction(category=UserInteraction.MEMBER_CHECKOUT,
                           source=source,
                           user=user).save()
Ejemplo n.º 5
0
def webdev_checkout_form(user: User, source='unknown'):
    return UserInteraction(category=UserInteraction.WEBDEV_CHECKOUT_FORM,
                           source=source,
                           user=user).save()
Ejemplo n.º 6
0
def activate_user(user: User, source: str):
    return UserInteraction(category=UserInteraction.ACTIVATED,
                           source=source,
                           user=user).save()
Ejemplo n.º 7
0
def visit_member_landing_page(user: User, source: str):
    return UserInteraction(category=UserInteraction.MEMBER_LP,
                           source=source,
                           user=user).save()
Ejemplo n.º 8
0
def visit_cpl3(user: User, source: str):
    return UserInteraction(category=UserInteraction.CPL3,
                           source=source,
                           user=user).save()
Ejemplo n.º 9
0
def subscribe_to_launch(user: User, source: str):
    return UserInteraction(category=UserInteraction.LAUNCH_SUBSCRIPTION,
                           source=source,
                           user=user).save()
Ejemplo n.º 10
0
def promote_to_data_scientist(user, source):
    UserInteraction(category=UserInteraction.BECOME_DATA_SCIENTIST,
                    source=source,
                    user=user).save()
    assign_role(user, 'data_scientist')
Ejemplo n.º 11
0
def client_generated_boleto(user: User, source: str):
    return UserInteraction(category=UserInteraction.CLIENT_BOLETO,
                           source=source,
                           user=user).save()
Ejemplo n.º 12
0
def client_checkout(user: User, source: str) -> None:
    return UserInteraction(category=UserInteraction.CLIENT_CHECKOUT,
                           source=source,
                           user=user).save()
Ejemplo n.º 13
0
def visit_client_landing_page(user: User, source: str):
    return UserInteraction(category=UserInteraction.CLIENT_LP,
                           source=source,
                           user=user).save()
Ejemplo n.º 14
0
def promote_to_pythonista(user, source):
    UserInteraction(category=UserInteraction.BECOME_PYTHONISTA, source=source, user=user).save()
    assign_role(user, 'pythonista')
Ejemplo n.º 15
0
def member_generated_boleto(user, source='unknow'):
    return UserInteraction(category=UserInteraction.MEMBER_BOLETO,
                           source=source,
                           user=user).save()
Ejemplo n.º 16
0
def subscribe_to_waiting_list(user: User, source: str):
    return UserInteraction(category=UserInteraction.WAITING_LIST,
                           source=source,
                           user=user).save()
Ejemplo n.º 17
0
def visit_launch_landing_page(user: User, source: str):
    return UserInteraction(category=UserInteraction.LAUNCH_LP,
                           source=source,
                           user=user).save()