Skip to content
Snippets Groups Projects
Commit a44cd339 authored by Dominik Seeger's avatar Dominik Seeger :ghost:
Browse files

Users now have a default group assigned if nothing else is specified

parent 7f9e5ccb
No related branches found
No related tags found
1 merge request!240Resolve "Add default group to every user that has no group"
Pipeline #140947 failed
......@@ -38,6 +38,10 @@ class TutorReviewerManager(UserManager):
assignment_model.FEEDBACK_VALIDATION))
def group_default():
return [Group.objects.get_or_create(name="Default Group")[0].pk]
class UserAccount(AbstractUser):
"""
An abstract base class implementing a fully featured User model with
......@@ -64,7 +68,8 @@ class UserAccount(AbstractUser):
exercise_groups = models.ManyToManyField(Group,
blank=True,
related_name='users')
related_name='users',
default=group_default)
fullname = models.CharField('full name', max_length=70, blank=True)
is_admin = models.BooleanField(default=False)
......@@ -83,6 +88,12 @@ class UserAccount(AbstractUser):
def is_reviewer(self):
return self.role == 'Reviewer'
def set_groups(self, groups):
if groups == [] or groups is None:
self.exercise_groups.set(group_default())
else:
self.exercise_groups.set(groups)
# All of these methods are deprecated and should be replaced by custom
# Managers (see tutor manager)
@classmethod
......
......@@ -76,13 +76,14 @@ class GradyUserFactory:
role=role,
defaults=kwargs)
exercise_groups = [] if exercise_groups is None else exercise_groups
if exercise_groups is None:
exercise_groups = []
groups_in_db = []
for group in exercise_groups:
groups_in_db.append(Group.objects.get_or_create(name=group)[0].pk)
user.exercise_groups.set(groups_in_db)
user.set_groups(groups_in_db)
if created or password is not None:
password = self.make_password() if password is None else password
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment