39 lines
939 B
Python
39 lines
939 B
Python
from django.db import models
|
|
from django.utils.translation import ugettext_lazy
|
|
from django_enumfield import enum
|
|
|
|
from account.models import Account
|
|
from comment.models import UserComment, GuestComment
|
|
from album.models import Album
|
|
from song.models import Song
|
|
|
|
|
|
class RatingValue(enum.Enum):
|
|
POSITIVE = 1
|
|
NEGATIVE = 0
|
|
|
|
__labels__ = {
|
|
POSITIVE: ugettext_lazy('Positive'),
|
|
NEGATIVE: ugettext_lazy('Negative'),
|
|
}
|
|
|
|
|
|
class AbstractRating(models.Model):
|
|
value = enum.EnumField(RatingValue)
|
|
user = models.ForeignKey(Account, on_delete=models.CASCADE)
|
|
|
|
class Meta:
|
|
abstract = True
|
|
|
|
|
|
class CommentRating(AbstractRating):
|
|
comment = models.ForeignKey(UserComment, on_delete=models.CASCADE)
|
|
|
|
|
|
class AlbumRating(AbstractRating):
|
|
album = models.ForeignKey(Album, on_delete=models.CASCADE)
|
|
|
|
|
|
class SongRating(AbstractRating):
|
|
song = models.ForeignKey(Song, on_delete=models.CASCADE)
|