Creacion de admin panel para lists
This commit is contained in:
34
lists/admin.py
Normal file
34
lists/admin.py
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
from lists.models import Tag, Entity, ListItem, OpinionHelpful
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(Tag)
|
||||||
|
class TagAdmin(admin.ModelAdmin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(Entity)
|
||||||
|
class EntityAdmin(admin.ModelAdmin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(ListItem)
|
||||||
|
class ListItemAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('pk', 'username', 'entity_mbid', 'stars')
|
||||||
|
list_filter = ('stars',)
|
||||||
|
filter_horizontal = ('tags', )
|
||||||
|
|
||||||
|
search_fields = ['pk', 'user__username', 'entity__mbid', 'stars']
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def entity_mbid(obj):
|
||||||
|
return str(obj.entity.mbid)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def username(obj):
|
||||||
|
return str(obj.user.username)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(OpinionHelpful)
|
||||||
|
class OpinionHelpfulAdmin(admin.ModelAdmin):
|
||||||
|
pass
|
||||||
@@ -13,35 +13,57 @@ class Entity(Model):
|
|||||||
|
|
||||||
Pueden ser: artist, release-group, release o recording
|
Pueden ser: artist, release-group, release o recording
|
||||||
"""
|
"""
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'Entidad'
|
||||||
|
verbose_name_plural = 'Entidades'
|
||||||
|
|
||||||
ENTITY_TYPES = [
|
ENTITY_TYPES = [
|
||||||
('artist', 'Artista'),
|
('artist', 'Artista'),
|
||||||
('release-group', 'Grupo de Lanzamientos'),
|
('release-group', 'Grupo de Lanzamientos'),
|
||||||
('release', 'Lanzamiento'),
|
('release', 'Lanzamiento'),
|
||||||
('recording', 'Grabación')
|
('recording', 'Grabación')
|
||||||
]
|
]
|
||||||
mbid = CharField(max_length=36, primary_key=True)
|
mbid = CharField('mbid', max_length=36, primary_key=True)
|
||||||
entity_type = CharField(max_length=25, choices=ENTITY_TYPES)
|
entity_type = CharField('tipo', max_length=25, choices=ENTITY_TYPES)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.mbid
|
||||||
|
|
||||||
|
|
||||||
class Tag(Model):
|
class Tag(Model):
|
||||||
"""Tag creada por un usuario"""
|
"""Tag creada por un usuario"""
|
||||||
user = ForeignKey(User, on_delete=CASCADE, related_name='tags')
|
user = ForeignKey(User, on_delete=CASCADE, related_name='tags')
|
||||||
name = CharField(max_length=50)
|
name = CharField('nombre', max_length=50)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class ListItem(Model):
|
class ListItem(Model):
|
||||||
"""Item de la lista de un usuario"""
|
"""Item de la lista de un usuario"""
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'item de lista'
|
||||||
|
verbose_name_plural = 'items de la lista'
|
||||||
|
|
||||||
stars_validators = [MinValueValidator(0), MaxValueValidator(5)]
|
stars_validators = [MinValueValidator(0), MaxValueValidator(5)]
|
||||||
|
|
||||||
user = ForeignKey(User, on_delete=CASCADE, related_name='list')
|
user = ForeignKey(User, on_delete=CASCADE, related_name='list')
|
||||||
entity = ForeignKey(Entity, on_delete=CASCADE)
|
entity = ForeignKey(Entity, on_delete=CASCADE)
|
||||||
stars = IntegerField(default=0, validators=stars_validators, blank=True)
|
stars = IntegerField('estrellas', default=0, validators=stars_validators, blank=True)
|
||||||
opinion = TextField(default='', blank=True)
|
opinion = TextField('opinion', default='', blank=True)
|
||||||
tags = ManyToManyField(Tag, related_name='list', blank=True)
|
tags = ManyToManyField(Tag, related_name='list', blank=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f'{self.user.username}:{self.entity.mbid}'
|
||||||
|
|
||||||
|
|
||||||
class OpinionHelpful(Model):
|
class OpinionHelpful(Model):
|
||||||
"""Voto sobre una opinion"""
|
"""Voto sobre una opinion"""
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'valoración de opinion'
|
||||||
|
verbose_name_plural = 'valoraciones de opinion'
|
||||||
|
|
||||||
VOTES = [
|
VOTES = [
|
||||||
('Y', 'Si'),
|
('Y', 'Si'),
|
||||||
('N', 'No'),
|
('N', 'No'),
|
||||||
@@ -50,4 +72,7 @@ class OpinionHelpful(Model):
|
|||||||
|
|
||||||
user = ForeignKey(User, on_delete=CASCADE)
|
user = ForeignKey(User, on_delete=CASCADE)
|
||||||
opinion = ForeignKey(ListItem, on_delete=CASCADE)
|
opinion = ForeignKey(ListItem, on_delete=CASCADE)
|
||||||
vote = CharField(max_length=1, choices=VOTES)
|
vote = CharField('voto', max_length=1, choices=VOTES)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f'{self.vote}'
|
||||||
|
|||||||
Reference in New Issue
Block a user