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)
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)
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\.]+')
else:
postscript = ''
- responses = False
for comment in Comment.objects.filter(patch = self) \
.exclude(msgid = self.msgid):
body += comment.patch_responses()