upgrade ratings list
parent
89fc4b3099
commit
1d07048913
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 3.0.7 on 2020-06-20 22:48
|
||||
# Generated by Django 3.0.8 on 2020-07-06 15:59
|
||||
|
||||
from django.conf import settings
|
||||
import django.contrib.auth.models
|
||||
|
|
@ -76,6 +76,17 @@ class Migration(migrations.Migration):
|
|||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='UserComment',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('text', models.CharField(max_length=255)),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TrackRow',
|
||||
fields=[
|
||||
|
|
@ -93,4 +104,51 @@ class Migration(migrations.Migration):
|
|||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TrackRating',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('value', models.PositiveSmallIntegerField(choices=[(1, 'POSITIVE'), (0, 'NEGATIVE')], verbose_name='Type of rating (1 - POSITIVE, 0 - NEGATIVE)')),
|
||||
('track', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Track')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GuestComment',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('text', models.CharField(max_length=255)),
|
||||
('guest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Guest')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='CommentRating',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('value', models.PositiveSmallIntegerField(choices=[(1, 'POSITIVE'), (0, 'NEGATIVE')], verbose_name='Type of rating (1 - POSITIVE, 0 - NEGATIVE)')),
|
||||
('comment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.UserComment')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='AlbumRating',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('value', models.PositiveSmallIntegerField(choices=[(1, 'POSITIVE'), (0, 'NEGATIVE')], verbose_name='Type of rating (1 - POSITIVE, 0 - NEGATIVE)')),
|
||||
('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Album')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,69 +0,0 @@
|
|||
# Generated by Django 3.0.8 on 2020-07-03 10:54
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('portfolio', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='UserComment',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('text', models.CharField(max_length=255)),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TrackRating',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('track', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Track')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GuestComment',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('text', models.CharField(max_length=255)),
|
||||
('guest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Guest')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='CommentRating',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('comment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.UserComment')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='AlbumRating',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Album')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portfolio.Account')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -9,18 +9,13 @@ from portfolio.album.models import Album, Track
|
|||
|
||||
from portfolio.utils import OneToManyModel
|
||||
|
||||
class RatingValue(enum.Enum):
|
||||
POSITIVE = 1
|
||||
NEGATIVE = -1
|
||||
|
||||
__labels__ = {
|
||||
POSITIVE: ugettext_lazy('POSITIVE'),
|
||||
NEGATIVE: ugettext_lazy('NEGATIVE'),
|
||||
}
|
||||
|
||||
RATING_VALUE = [
|
||||
(1, 'POSITIVE'),
|
||||
(0, 'NEGATIVE')
|
||||
]
|
||||
|
||||
class AbstractRating(OneToManyModel):
|
||||
value = EnumField(choices=RatingValue)
|
||||
value = models.PositiveSmallIntegerField(choices=RATING_VALUE, verbose_name='Type of rating (1 - POSITIVE, 0 - NEGATIVE)')
|
||||
user = models.ForeignKey(Account, on_delete=models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
|
|
|
|||
|
|
@ -6,13 +6,8 @@ from .models import *
|
|||
class TrackRatingSerializer(serializers.ModelSerializer):
|
||||
id = serializers.IntegerField(read_only = True)
|
||||
user_id = serializers.IntegerField()
|
||||
value = EnumField(
|
||||
choices=RatingValue,
|
||||
to_choice=lambda x:(x.name, x.value),
|
||||
to_repr=lambda x: x
|
||||
)
|
||||
# track_id = serializers.IntegerField()
|
||||
|
||||
@staticmethod
|
||||
def get_default(track_id):
|
||||
queryset = TrackRating.objects.filter(track_id=track_id)
|
||||
return [ x.toDict() for x in queryset ]
|
||||
|
|
@ -34,18 +29,20 @@ class TrackRatingSerializer(serializers.ModelSerializer):
|
|||
class CommentRatingSerializer(serializers.ModelSerializer):
|
||||
id = serializers.IntegerField(read_only = True)
|
||||
user_id = serializers.IntegerField()
|
||||
value = EnumField(
|
||||
choices=RatingValue,
|
||||
to_choice=lambda x:(x.name, x.value),
|
||||
to_repr=lambda x: x
|
||||
)
|
||||
# comment_id = serializers.IntegerField()
|
||||
|
||||
def create(self, validated_data):
|
||||
return CommentRating.create(TrackRating, validated_data)
|
||||
@staticmethod
|
||||
def get_default(comment_id):
|
||||
queryset = CommentRating.objects.filter(comment_id=comment_id)
|
||||
return [ x.toDict() for x in queryset ]
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
return instance.update(validated_data)
|
||||
@staticmethod
|
||||
def create(validated_data, comment_id):
|
||||
validated_data["comment_id"] = comment_id
|
||||
return CommentRating.create(CommentRating, validated_data)
|
||||
|
||||
@staticmethod
|
||||
def delete(comment_id, user_id):
|
||||
return CommentRating.objects.get(comment_id=comment_id, user_id=user_id).delete()
|
||||
|
||||
class Meta:
|
||||
model = CommentRating
|
||||
|
|
@ -55,18 +52,21 @@ class CommentRatingSerializer(serializers.ModelSerializer):
|
|||
class AlbumRatingSerializer(serializers.ModelSerializer):
|
||||
id = serializers.IntegerField(read_only = True)
|
||||
user_id = serializers.IntegerField()
|
||||
value = EnumField(
|
||||
choices=RatingValue,
|
||||
to_choice=lambda x:(x.name, x.value),
|
||||
to_repr=lambda x: x
|
||||
)
|
||||
# album_id = serializers.IntegerField()
|
||||
|
||||
def create(self, validated_data):
|
||||
return AlbumRating.create(TrackRating, validated_data)
|
||||
@staticmethod
|
||||
def get_default(album_id):
|
||||
queryset = AlbumRating.objects.filter(album_id=album_id)
|
||||
return [ x.toDict() for x in queryset ]
|
||||
|
||||
@staticmethod
|
||||
def create(validated_data, album_id):
|
||||
validated_data["album_id"] = album_id
|
||||
return AlbumRating.create(AlbumRating, validated_data)
|
||||
|
||||
@staticmethod
|
||||
def delete(album_id, user_id):
|
||||
return AlbumRating.objects.get(album_id=album_id, user_id=user_id).delete()
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
return instance.update(validated_data)
|
||||
|
||||
class Meta:
|
||||
model = AlbumRating
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ class TrackRatingViewSet(
|
|||
def list(self, request, *args, **kwargs):
|
||||
trackID = self.kwargs.get('track_id')
|
||||
serializer = self.serializer_class.get_default(trackID)
|
||||
print(serializer)
|
||||
return Response(serializer)
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
|
|
@ -49,14 +48,23 @@ class AlbumRatingViewSet(
|
|||
serializer_class = AlbumRatingSerializer
|
||||
lookup_url_kwarg = 'user_id'
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
return Response("elo")
|
||||
def list(self, request, *args, **kwargs):
|
||||
albumID = self.kwargs.get('album_id')
|
||||
serializer = self.serializer_class.get_default(albumID)
|
||||
return Response(serializer)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
return Response("elo")
|
||||
def create(self, request, *args, **kwargs):
|
||||
albumID = self.kwargs.get('album_id')
|
||||
checkValidate = self.serializer_class(data = request.data)
|
||||
if checkValidate and albumID is not None:
|
||||
serializer = self.serializer_class.create(request.data, album_id=albumID)
|
||||
return Response(serializer.toDict())
|
||||
return Response({ "ID": f"{albumID}" })
|
||||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
return Response("elo")
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
albumID = self.kwargs.get('album_id')
|
||||
userID = self.kwargs.get(self.lookup_url_kwarg)
|
||||
return Response(self.serializer_class.delete(albumID, userID))
|
||||
|
||||
class CommentRatingViewSet(
|
||||
mixins.ListModelMixin,
|
||||
|
|
@ -68,12 +76,21 @@ class CommentRatingViewSet(
|
|||
serializer_class = CommentRatingSerializer
|
||||
lookup_url_kwarg = 'user_id'
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
return Response("elo")
|
||||
def list(self, request, *args, **kwargs):
|
||||
albumID = self.kwargs.get('album_id')
|
||||
serializer = self.serializer_class.get_default(albumID)
|
||||
return Response(serializer)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
return Response("elo")
|
||||
def create(self, request, *args, **kwargs):
|
||||
albumID = self.kwargs.get('album_id')
|
||||
checkValidate = self.serializer_class(data = request.data)
|
||||
if checkValidate and albumID is not None:
|
||||
serializer = self.serializer_class.create(request.data, album_id=albumID)
|
||||
return Response(serializer.toDict())
|
||||
return Response({ "ID": f"{albumID}" })
|
||||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
return Response("elo")
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
albumID = self.kwargs.get('album_id')
|
||||
userID = self.kwargs.get(self.lookup_url_kwarg)
|
||||
return Response(self.serializer_class.delete(albumID, userID))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue