Example #1
0
    return self


def groups_remove(self, name):
    """
    Custom helper method for User class to remove group(s).
    """
    group, _ = Group.objects.get_or_create(name=name)
    group.user_set.remove(self)

    return self


# Add custom methods to User class
User.add_to_class('groups_add', groups_add)
User.add_to_class('groups_remove', groups_remove)

User.add_to_class('GROUP_ADVISOR', 'Advisors')
User.add_to_class('GROUP_AUTHORIZED_REPRESENTATIVE',
                  'AuthorizedRepresentatives')  # TODO: would be nice to rename
User.add_to_class('GROUP_SUPERVISOR', 'Supervisors')
User.add_to_class('GROUP_CLIENT', 'Clients')

# TODO: update after modularization
User.add_to_class(
    'PROFILES',
    {
        User.GROUP_ADVISOR: {
            'app_label': 'main',
            'model_name': 'Advisor'