]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/models.py
models: use implied line continuations
[patchwork] / apps / patchwork / models.py
index 676f2192de5fe8a2f8a2aeafee0945ea5d5501e7..6c8fc7191cbd5e5712da07e95333999a8e83c18d 100644 (file)
@@ -67,6 +67,11 @@ class Project(models.Model):
     def __unicode__(self):
         return self.name
 
+    def is_editable(self, user):
+        if not user.is_authenticated():
+            return False
+        return self in user.get_profile().maintainer_projects.all()
+
 class UserProfile(models.Model):
     user = models.ForeignKey(User, unique = True)
     primary_project = models.ForeignKey(Project, null = True, blank = True)
@@ -87,11 +92,10 @@ class UserProfile(models.Model):
 
     def contributor_projects(self):
         submitters = Person.objects.filter(user = self.user)
-        return Project.objects \
-            .filter(id__in = \
-                    Patch.objects.filter(
-                        submitter__in = submitters) \
-                    .values('project_id').query)
+        return Project.objects.filter(id__in =
+                                        Patch.objects.filter(
+                                            submitter__in = submitters)
+                                        .values('project_id').query)
 
 
     def sync_person(self):
@@ -110,8 +114,8 @@ class UserProfile(models.Model):
 
         qs = qs.filter(archived = False) \
              .filter(delegate = self.user) \
-             .filter(state__in = \
-                     State.objects.filter(action_required = True) \
+             .filter(state__in =
+                     State.objects.filter(action_required = True)
                          .values('pk').query)
         return qs
 
@@ -130,6 +134,14 @@ class UserProfile(models.Model):
     def __unicode__(self):
         return self.name()
 
+def _user_created_callback(sender, created, instance, **kwargs):
+    if not created:
+        return
+    profile = UserProfile(user = instance)
+    profile.save()
+
+models.signals.post_save.connect(_user_created_callback, sender = User)
+
 class State(models.Model):
     name = models.CharField(max_length = 100)
     ordering = models.IntegerField(unique = True)
@@ -215,12 +227,7 @@ class Patch(models.Model):
         if self.submitter.user == user or self.delegate == user:
             return True
 
-        profile = user.get_profile()
-        return self.project in user.get_profile().maintainer_projects.all()
-
-    def form(self):
-        f = PatchForm(instance = self, prefix = self.id)
-        return f
+        return self.project.is_editable(user)
 
     def filename(self):
         fname_re = re.compile('[^-_A-Za-z0-9\.]+')
@@ -248,7 +255,6 @@ class Patch(models.Model):
         else:
             postscript = ''
 
-        responses = False
         for comment in Comment.objects.filter(patch = self) \
                 .exclude(msgid = self.msgid):
             body += comment.patch_responses()
@@ -302,7 +308,7 @@ class Comment(models.Model):
             re.M | re.I)
 
     def patch_responses(self):
-        return ''.join([ match.group(0) + '\n' for match in \
+        return ''.join([ match.group(0) + '\n' for match in
                                 self.response_re.finditer(self.content)])
 
     class Meta:
@@ -355,7 +361,7 @@ class Bundle(models.Model):
                         }))
 
     def mbox(self):
-        return '\n'.join([p.mbox().as_string(True) \
+        return '\n'.join([p.mbox().as_string(True)
                         for p in self.ordered_patches()])
 
 class BundlePatch(models.Model):