diff -r 78246db1cbac -r adad5563603c src/notes/models/auth.py --- a/src/notes/models/auth.py Sun Jul 30 01:02:09 2017 +0200 +++ b/src/notes/models/auth.py Mon Jul 31 23:18:38 2017 +0200 @@ -7,13 +7,20 @@ class User(AbstractUser): + class Meta: verbose_name = _('User') verbose_name_plural = _('Users') class UserProfile(models.Model): - user = models.OneToOneField(User, on_delete=models.CASCADE) + user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile') + + # TODO: + default_group = models.ForeignKey( + Group, + null=False, + verbose_name=_("UserProfile|default_group")) class Meta: verbose_name = _('UserProfile') @@ -26,6 +33,17 @@ description = models.TextField(null=True, blank=True) # TODO: manage when user is deleted: put first user as owner. delete group if empty owner = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) + # TODO: can not delete group when user is not deleted. + # TODO: other users cannot set as owner + # TODO: delete personal group when user is deleted + # TODO: change group name when user change name + # indicate that this group is a personal group. + # used this instead of a boolean because it allows to easily enforce that a user has only one personal group + owner_personal = models.OneToOneField(User, on_delete=models.CASCADE, null=True, related_name='personal_group') + + @property + def is_personal(self): + return self.owner == self.owner_personal class Meta: verbose_name = _('GroupProfile')