From 63084c571d0570701675fef96ea02fd48b088e71 Mon Sep 17 00:00:00 2001 From: Alexandre Bourlier Date: Thu, 21 Jun 2018 10:57:25 +0200 Subject: [PATCH] server : updated models --- src/server/models.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/server/models.py b/src/server/models.py index 0d9362e..0465327 100644 --- a/src/server/models.py +++ b/src/server/models.py @@ -1,19 +1,30 @@ from django.db import models +from django.contrib.auth.models import User +from django.db.models.signals import post_save +from django.dispatch import receiver class Member(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE) avatar = models.URLField() - firstname = models.CharField(max_length=255, default='') - lastname = models.CharField(max_length=255, default='') - email = models.CharField(max_length=255, default='') - number = models.CharField(max_length=255, default='') - cell = models.ForeignKey("Cell") + firstname = models.CharField(max_length=255, blank=True, null=True) + lastname = models.CharField(max_length=255, blank=True, null=True) + email = models.CharField(max_length=255, blank=True, null=True) + number = models.CharField(max_length=255, blank=True, null=True) + cell = models.ForeignKey("Cell", on_delete=models.DO_NOTHING, blank=True, null=True) skills = models.ManyToManyField("Skill", blank=True) projects = models.ManyToManyField("Project", blank=True) def __str__(self): return self.firstname +' '+ self.lastname +@receiver(post_save, sender=User) +def create_user_profile(sender, instance, created, **kwargs): + if created: + Member.objects.create(user=instance) + else: + instance.member.save() + class Skill(models.Model): name = models.CharField(max_length=255, default='') @@ -25,7 +36,7 @@ class Skill(models.Model): class Project(models.Model): name = models.CharField(max_length=255, default='') number = models.PositiveIntegerField(default='0') - client = models.OneToOneField("Client") + client = models.OneToOneField("Client", on_delete=models.DO_NOTHING) team = models.ManyToManyField("Member", blank=True) def __str__(self): @@ -54,7 +65,8 @@ class Channel(models.Model): name = models.CharField(max_length=255, default='') description = models.CharField(max_length=255, default='') members = models.ManyToManyField("Member", blank=True) - owner = models.ForeignKey("Member", related_name="owned_chatrooms") + owner = models.ForeignKey("Member", related_name="owned_chatrooms", on_delete=models.DO_NOTHING) def __str__(self): return self.name +