Store year and party as a tuple.
[demoscenemusic.git] / data / models.py
index 5e0cc94..da15ab5 100644 (file)
@@ -12,10 +12,10 @@ class Group(models.Model):
 class Artist(models.Model):
        name = models.CharField(max_length = 80)
        realName = models.CharField(max_length = 80, blank = True)
-       groups = models.ManyToManyField(Group)
+       groups = models.ManyToManyField(Group, blank = True)
 
        def __unicode__(self):
-               return "%s%s" % (self.name, (" / %s" % (" ^ ".join(g.shortName if (g.shortName != '') else g.name for g in self.groups.all()), )))
+               return "%s%s" % (self.name, (" / %s" % (" ^ ".join(g.shortName if (g.shortName != '') else g.name for g in self.groups.all()), )) if (self.groups.all()) else '')
 
 class Party(models.Model):
        name = models.CharField(max_length = 80)
@@ -46,7 +46,7 @@ class TrackArtist(models.Model):
        order = models.IntegerField()
 
        def __unicode__(self):
-               return self.artist.name
+               return self.artist.__unicode__()
 
        class Meta:
                ordering = ['order']
@@ -57,14 +57,21 @@ class RemixArtist(models.Model):
        order = models.IntegerField()
 
        def __unicode__(self):
-               return self.artist.name
+               return self.artist.__unicode__()
 
        class Meta:
                ordering = ['order']
 
+class Style(models.Model):
+       name = models.CharField(max_length = 80)
+
+       def __unicode__(self):
+               return self.name
+
 class Track(models.Model):
        name = models.CharField(max_length = 150)
        artists = models.ManyToManyField(Artist, through = TrackArtist)
+       styles = models.ManyToManyField(Style, blank = True)
        remix = models.CharField(max_length = 80, blank = True)
        remixArtists = models.ManyToManyField(Artist, through = RemixArtist, related_name = 'remixTracks')
        releases = models.ManyToManyField(Release)
@@ -73,7 +80,7 @@ class Track(models.Model):
 
        def __unicode__(self):
                #return '%s – %s%s' % (' & '.join(self.artists), self.name, (('%s by %s' % (self.remix, ' & '.join(self.remixArtists) + ')')) if (self.remix != '') else ''))
-               return u'{1} – {0}'.format(self.name, ' & '.join(a.name for a in self.artists.all()))
+               return u'{1} – {0}'.format(self.name, ' & '.join(a.artist.__unicode__() for a in self.trackartist_set.all()))
 
 class File(models.Model):
        track = models.ForeignKey(Track)