--- 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')