X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fmodels.py;h=54b86566d7bd9a07b0dabb18c978b3d9b44f01f1;hb=a48f76a2d3a98c21d4b37f19cf84073e77db55c8;hp=ec5727d25a862776a6489dcd078cb9166106814e;hpb=67181f5c929018d5304732969f0811795c13ea37;p=patchwork diff --git a/apps/patchwork/models.py b/apps/patchwork/models.py index ec5727d..54b8656 100644 --- a/apps/patchwork/models.py +++ b/apps/patchwork/models.py @@ -31,7 +31,8 @@ import random class Person(models.Model): email = models.CharField(max_length=255, unique = True) name = models.CharField(max_length=255, null = True, blank = True) - user = models.ForeignKey(User, null = True, blank = True) + user = models.ForeignKey(User, null = True, blank = True, + on_delete = models.SET_NULL) def __unicode__(self): if self.name: @@ -40,7 +41,7 @@ class Person(models.Model): return self.email def link_to_user(self, user): - self.name = user.get_profile().name() + self.name = user.profile.name() self.user = user class Meta: @@ -54,7 +55,7 @@ class Project(models.Model): web_url = models.CharField(max_length=2000, blank=True) scm_url = models.CharField(max_length=2000, blank=True) webscm_url = models.CharField(max_length=2000, blank=True) - send_notifications = models.BooleanField() + send_notifications = models.BooleanField(default=False) def __unicode__(self): return self.name @@ -62,10 +63,14 @@ class Project(models.Model): def is_editable(self, user): if not user.is_authenticated(): return False - return self in user.get_profile().maintainer_projects.all() + return self in user.profile.maintainer_projects.all() + + class Meta: + ordering = ['linkname'] + class UserProfile(models.Model): - user = models.ForeignKey(User, unique = True) + user = models.OneToOneField(User, unique = True, related_name='profile') primary_project = models.ForeignKey(Project, null = True, blank = True) maintainer_projects = models.ManyToManyField(Project, related_name = 'maintainer_project') @@ -89,7 +94,6 @@ class UserProfile(models.Model): submitter__in = submitters) .values('project_id').query) - def sync_person(self): pass @@ -111,24 +115,12 @@ class UserProfile(models.Model): .values('pk').query) return qs - def save(self): - super(UserProfile, self).save() - people = Person.objects.filter(email = self.user.email) - if not people: - person = Person(email = self.user.email, - name = self.name(), user = self.user) - person.save() - else: - for person in people: - person.link_to_user(self.user) - person.save() - def __unicode__(self): return self.name() def _user_saved_callback(sender, created, instance, **kwargs): try: - profile = instance.get_profile() + profile = instance.profile except UserProfile.DoesNotExist: profile = UserProfile(user = instance) profile.save()