added additional fields to review model
This commit is contained in:
parent
693577a524
commit
8fccd069ec
|
|
@ -1,6 +1,7 @@
|
|||
from django.contrib.contenttypes import fields as generic
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.core.validators import MinValueValidator, MaxValueValidator
|
||||
|
||||
from utils.models import BaseAttributes
|
||||
|
||||
|
|
@ -12,19 +13,44 @@ class ReviewQuerySet(models.QuerySet):
|
|||
"""Return reviews by user"""
|
||||
return self.filter(reviewer=user)
|
||||
|
||||
def by_vintage(self, year: int):
|
||||
"""Return reviews by year"""
|
||||
return self.filter(vintage=year)
|
||||
|
||||
|
||||
class Review(BaseAttributes):
|
||||
"""Review model"""
|
||||
TO_INVESTIGATE = 0
|
||||
TO_REVIEW = 1
|
||||
READY = 2
|
||||
REVIEW_STATUSES = (
|
||||
(TO_INVESTIGATE, _('To investigate')),
|
||||
(TO_REVIEW, _('To review')),
|
||||
(READY, _('Ready')),
|
||||
)
|
||||
|
||||
reviewer = models.ForeignKey('account.User',
|
||||
related_name='review',
|
||||
related_name='reviews',
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_('reviewer'),)
|
||||
verbose_name=_('Reviewer'))
|
||||
content_type = models.ForeignKey(generic.ContentType, on_delete=models.CASCADE)
|
||||
object_id = models.PositiveIntegerField()
|
||||
content_object = generic.GenericForeignKey('content_type', 'object_id')
|
||||
language = models.ForeignKey('translation.Language',
|
||||
on_delete=models.CASCADE,
|
||||
related_name='review',
|
||||
related_name='reviews',
|
||||
verbose_name=_('Review language'))
|
||||
text = models.TextField(verbose_name=_('Text'))
|
||||
status = models.PositiveSmallIntegerField(choices=REVIEW_STATUSES, default=TO_INVESTIGATE)
|
||||
child = models.ForeignKey('self',
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_('Child review'))
|
||||
published_at = models.DateTimeField(verbose_name=_('Publish datetime'),
|
||||
blank=True, default=None, null=True,
|
||||
help_text=_('Review published datetime'))
|
||||
vintage = models.IntegerField(verbose_name=_('Year of review'),
|
||||
validators=[MinValueValidator(1900),
|
||||
MaxValueValidator(2100)])
|
||||
|
||||
objects = ReviewQuerySet.as_manager()
|
||||
|
||||
|
|
|
|||
|
|
@ -74,9 +74,6 @@ class OAuthProjectMixin:
|
|||
return NotImplemented
|
||||
|
||||
|
||||
basemixin_fields = ['created', 'modified']
|
||||
|
||||
|
||||
class BaseAttributes(ProjectBaseMixin):
|
||||
created_by = models.ForeignKey(
|
||||
'account.User', on_delete=models.SET_NULL, verbose_name=_('created by'),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user