#169 Admin on teams
* adds admin column on team index view * refactors Team model, so multiple members can become admins * adds team migration for switch from fkey->m2m structure * renames 'Group' to 'Permission' on user index view to avoid confusion between 'Groups' and Teams * adds new autocomplete route for team-admin selection based on already selected members of the TeamForm
This commit is contained in:
@@ -11,7 +11,7 @@ class Team(UuidModel):
|
||||
name = models.CharField(max_length=500, null=True, blank=True)
|
||||
description = models.TextField(null=True, blank=True)
|
||||
users = models.ManyToManyField("user.User", blank=True, related_name="teams")
|
||||
admin = models.ForeignKey("user.User", blank=True, null=True, related_name="+", on_delete=models.SET_NULL)
|
||||
admins = models.ManyToManyField("user.User", blank=True, related_name="+")
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
@@ -104,6 +104,19 @@ class Team(UuidModel):
|
||||
|
||||
"""
|
||||
self.users.remove(user)
|
||||
if self.admin == user:
|
||||
self.admin = self.users.first()
|
||||
self.save()
|
||||
self.admins.remove(user)
|
||||
self.save()
|
||||
|
||||
def is_user_admin(self, user) -> bool:
|
||||
""" Returns whether a given user is an admin of the team
|
||||
|
||||
Args:
|
||||
user (User): The user
|
||||
|
||||
Returns:
|
||||
user_is_admin (bool): Whether the user is an admin or not
|
||||
"""
|
||||
user_is_admin = self.admins.filter(
|
||||
id=user.id
|
||||
).exists()
|
||||
return user_is_admin
|
||||
|
||||
Reference in New Issue
Block a user