|
@@ -8,6 +8,12 @@ from django.db import models, connection
|
|
|
from django.db.models.aggregates import Sum
|
|
from django.db.models.aggregates import Sum
|
|
|
from martor.models import MartorField
|
|
from martor.models import MartorField
|
|
|
|
|
|
|
|
|
|
+class Member(models.Model):
|
|
|
|
|
+ user = models.OneToOneField(User, on_delete=models.CASCADE)
|
|
|
|
|
+ trigram = models.CharField(max_length=5)
|
|
|
|
|
+
|
|
|
|
|
+ def __str__(self):
|
|
|
|
|
+ return self.trigram
|
|
|
|
|
|
|
|
class BaseModel(models.Model):
|
|
class BaseModel(models.Model):
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
@@ -87,6 +93,9 @@ class Epic(BaseModel):
|
|
|
""".format(self.id))
|
|
""".format(self.id))
|
|
|
return list(qry)
|
|
return list(qry)
|
|
|
|
|
|
|
|
|
|
+ def contributors_str(self):
|
|
|
|
|
+ return ", ".join([c.member.trigram for c in self.contributors()])
|
|
|
|
|
+
|
|
|
class Sprint(BaseModel):
|
|
class Sprint(BaseModel):
|
|
|
class Meta:
|
|
class Meta:
|
|
|
verbose_name_plural = "sprint"
|
|
verbose_name_plural = "sprint"
|