update
This commit is contained in:
@@ -2,33 +2,57 @@ from django.db import models
|
||||
from django_core.models.base import AbstractBaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.auth import get_user_model
|
||||
from core.apps.api.models.ad import AdModel
|
||||
from django.core.validators import MinValueValidator, MaxValueValidator
|
||||
|
||||
|
||||
class Feedback(AbstractBaseModel):
|
||||
star = models.IntegerField(default=0, verbose_name=_("Star"))
|
||||
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, verbose_name=_("User"))
|
||||
ad = models.ForeignKey(AdModel, on_delete=models.CASCADE, verbose_name=_("Ad"), related_name="feedback")
|
||||
comment = models.CharField(max_length=255, verbose_name=_("Comment"))
|
||||
class FeedbackModel(AbstractBaseModel):
|
||||
star = models.IntegerField(
|
||||
_("Rating"),
|
||||
default=5,
|
||||
validators=[MinValueValidator(1), MaxValueValidator(5)]
|
||||
)
|
||||
user = models.ForeignKey(
|
||||
get_user_model(),
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_("User"),
|
||||
related_name="feedbacks"
|
||||
)
|
||||
ad = models.ForeignKey(
|
||||
"api.AdModel",
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_("Ad"),
|
||||
related_name="feedbacks"
|
||||
)
|
||||
comment = models.TextField(_("Comment"), max_length=1000)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
return f"{self.user.username} - {self.ad.name} ({self.star}★)"
|
||||
|
||||
class Meta:
|
||||
db_table = "feedback"
|
||||
verbose_name = _("Feedback")
|
||||
verbose_name_plural = _("Feedbacks")
|
||||
ordering = ["-created_at"]
|
||||
unique_together = [["user", "ad"]]
|
||||
indexes = [
|
||||
models.Index(fields=["ad", "-created_at"]),
|
||||
models.Index(fields=["user"]),
|
||||
]
|
||||
|
||||
|
||||
class FeedbackImages(AbstractBaseModel):
|
||||
feedback = models.ForeignKey(Feedback, on_delete=models.CASCADE, verbose_name=_("Feedback"))
|
||||
image = models.ImageField(verbose_name=_("Image"), upload_to="feedback/"
|
||||
"images/")
|
||||
class FeedbackImageModel(AbstractBaseModel):
|
||||
feedback = models.ForeignKey(
|
||||
FeedbackModel,
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_("Feedback"),
|
||||
related_name="images"
|
||||
)
|
||||
image = models.ImageField(_("Image"), upload_to="feedbacks/")
|
||||
|
||||
def __str__(self):
|
||||
return str(self.pk)
|
||||
return f"Image for {self.feedback}"
|
||||
|
||||
class Meta:
|
||||
db_table = "feedback_images"
|
||||
verbose_name = _("Feedback Images")
|
||||
verbose_name = _("Feedback Image")
|
||||
verbose_name_plural = _("Feedback Images")
|
||||
|
||||
Reference in New Issue
Block a user