Files
MarietjeDjango/marietje/songs/models.py
2019-01-23 19:44:38 +01:00

65 lines
1.9 KiB
Python

from django.db import models
from django.conf import settings
class Song(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.SET_NULL,
blank=True,
null=True,
db_index=True)
artist = models.CharField(
max_length=200, db_index=True, help_text='track artist')
title = models.CharField(
max_length=200, db_index=True, help_text='track title')
hash = models.CharField(
max_length=64, help_text="track file's SHA256 hash")
duration = models.IntegerField(help_text='track duration in seconds')
rg_gain = models.DecimalField(
max_digits=9,
decimal_places=6,
blank=True,
null=True,
help_text='replaygain gain level')
rg_peak = models.DecimalField(
max_digits=9,
decimal_places=6,
blank=True,
null=True,
help_text='replaygain peak level')
old_id = models.TextField(blank=True, null=True, default=None)
deleted = models.BooleanField(
verbose_name='unlisted',
default=False,
db_index=True,
help_text='hide this song from the search listings')
def report(self, user, note):
report_note = ReportNote(song=self, user=user, note=note)
report_note.save()
def __str__(self):
return self.artist + ' - ' + self.title
class ReportNote(models.Model):
song = models.ForeignKey(
Song,
on_delete=models.CASCADE,
blank=False,
null=False,
db_index=True)
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
blank=True,
null=True,
db_index=True)
note = models.TextField(
verbose_name='reason',
blank=True,
help_text='reason for edit request')
def __str__(self):
return "{song.artist} - {song.title}: '{note}'".format(song=self.song, note=self.note)