Add QuestionReview model and link to QuestionBase for enhanced review functionality
This commit is contained in:
@@ -219,6 +219,8 @@ class QuestionBase(models.Model, AuthorMixin, QuestionMixin):
|
|||||||
|
|
||||||
notes = GenericRelation("generic.QuestionNote")
|
notes = GenericRelation("generic.QuestionNote")
|
||||||
|
|
||||||
|
reviews = GenericRelation("generic.QuestionReview")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
|
||||||
@@ -1315,6 +1317,42 @@ class NoteType(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.note_type
|
return self.note_type
|
||||||
|
|
||||||
|
class QuestionReview(models.Model):
|
||||||
|
class StatusChoices(models.TextChoices):
|
||||||
|
ACCEPTED = "AC", "Accepted"
|
||||||
|
OUTDATED = "OD", "Outdated"
|
||||||
|
ERROR = "ER", "Error"
|
||||||
|
REJECTED = "RJ", "Rejected"
|
||||||
|
|
||||||
|
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||||
|
object_id = models.PositiveIntegerField()
|
||||||
|
question = GenericForeignKey("content_type", "object_id")
|
||||||
|
|
||||||
|
|
||||||
|
author = models.ForeignKey(
|
||||||
|
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
comment = models.TextField(blank=True)
|
||||||
|
status = models.CharField(max_length=2, choices=StatusChoices.choices, default=StatusChoices.ACCEPTED)
|
||||||
|
created_on = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "{}: {} [{}] {}".format(
|
||||||
|
self.content_type,
|
||||||
|
self.get_author_str(),
|
||||||
|
self.created_on,
|
||||||
|
self.comment,
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_author_str(self):
|
||||||
|
if self.author is not None:
|
||||||
|
return self.author.username
|
||||||
|
else:
|
||||||
|
return "Unknown"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class QuestionNote(models.Model):
|
class QuestionNote(models.Model):
|
||||||
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||||
|
|||||||
Reference in New Issue
Block a user