Skip to content
This repository has been archived by the owner on Oct 6, 2018. It is now read-only.

Commit

Permalink
Merge 0f318f6 into 6d2def3
Browse files Browse the repository at this point in the history
  • Loading branch information
Alan Love committed Apr 28, 2013
2 parents 6d2def3 + 0f318f6 commit c6ec524
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 42 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ venv
# Coverage
.coverage
htmlcov/

#pyCharm
.idea/
src/
3 changes: 1 addition & 2 deletions batter/music/admin.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
from django.contrib import admin

from music.models import Artist, ArtistAlias, Edition, Label, MusicUpload, \
from music.models import Artist, ArtistAlias, Label, MusicUpload, \
Release


admin.site.register(Artist)
admin.site.register(ArtistAlias)
admin.site.register(Edition)
admin.site.register(Label)
admin.site.register(MusicUpload)
admin.site.register(Release)
86 changes: 46 additions & 40 deletions batter/music/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from model_utils.models import TimeStampedModel
from taggit.managers import TaggableManager

from torrents.models import Torrent
from torrents.models import Upload, UploadGroup, DescendingModel


FORMAT_TYPES = (
Expand Down Expand Up @@ -66,36 +66,31 @@


@python_2_unicode_compatible
class MusicUpload(TimeStampedModel):
class Meta:
verbose_name = _('MusicUpload')
verbose_name_plural = _('MusicUploads')

torrent = models.ForeignKey(Torrent)
edition = models.ForeignKey('Edition')
format = models.TextField(choices=FORMAT_TYPES)
class MusicUpload(Upload):
release = models.ForeignKey('Release')
release_format = models.TextField(choices=FORMAT_TYPES)
bitrate = models.TextField(choices=BITRATE_TYPES)
media = models.TextField(choices=MEDIA_TYPES)
logfile = models.TextField(blank=True, null=True)
uploader = models.ForeignKey(User)
parent = models.ForeignKey('Release', related_name='_children')

class Meta:
verbose_name = _('music upload')
verbose_name_plural = _('music uploads')

def __str__(self):
return "{0} / {1} / {2}".format(
self.edition.release,
self.master.release,
force_text(self.format),
force_text(self.bitrate)
)


@python_2_unicode_compatible
class Artist(TimeStampedModel):
class Meta:
verbose_name = _('Artist')
verbose_name_plural = _('MusicUploads')

name = models.TextField()
sort_name = models.SlugField()
discogs_id = models.TextField()
discogs_id = models.PositiveIntegerField()
country = CountryField()
gender = models.TextField()
disambiguation = models.TextField(blank=True, null=True)
Expand All @@ -110,66 +105,77 @@ class Meta:
null=True
)

class Meta:
verbose_name = _('artist')
verbose_name_plural = _('artists')

def __str__(self):
return force_text(self.name)


@python_2_unicode_compatible
class ArtistAlias(models.Model):
class Meta:
verbose_name = _('Artist alias')
verbose_name_plural = _('Artist aliases')

alias = models.TextField()
artist = models.ForeignKey('Artist')

class Meta:
verbose_name = _('artist alias')
verbose_name_plural = _('artist aliases')

def __str__(self):
return force_text(self.alias)


@python_2_unicode_compatible
class Release(TimeStampedModel):
class Meta:
verbose_name = _('Release')
verbose_name_plural = _('Releases')

class Release(DescendingModel, TimeStampedModel):
name = models.TextField()
discogs_id = models.TextField()
discogs_id = models.PositiveIntegerField()
artist_credit = models.ManyToManyField('Artist')
comment = models.TextField()
label = models.ForeignKey('Label')
release_type = models.TextField(choices=RELEASE_TYPES)
tags = TaggableManager()
country = CountryField()
date = models.DateField()
parent = models.ForeignKey('Master', related_name='_children')

class Meta:
verbose_name = _('release')
verbose_name_plural = _('releases')

def get_child_model(self):
return MusicUpload

def __str__(self):
return force_text(self.name)


@python_2_unicode_compatible
class Edition(TimeStampedModel):
class Master(UploadGroup):
name = models.TextField()
discogs_id = models.PositiveIntegerField()
artist_credit = models.ManyToManyField('Artist')
comment = models.TextField()

class Meta:
verbose_name = _('Edition')
verbose_name_plural = _('Editions')
verbose_name = _('master')
verbose_name_plural = _('masters')

name = models.TextField()
release = models.ForeignKey('Release')
country = CountryField()
label = models.TextField()
date = models.DateField()
barcode = models.TextField()
def get_child_model(self):
return Release

def __str__(self):
return force_text(self.name)


@python_2_unicode_compatible
class Label(TimeStampedModel):
class Meta:
verbose_name = _('Label')
verbose_name_plural = _('Labels')

name = models.TextField()
parent_label = models.ForeignKey('Label', blank=True, null=True)

class Meta:
verbose_name = _('master')
verbose_name_plural = _('masters')

def is_vanity(self):
return True if self.parent_label else False

Expand Down

0 comments on commit c6ec524

Please sign in to comment.