define additional label for soundfile cells
[django-panik-combo.git] / panikombo / models.py
1 from django import template
2 from django.db import models
3 from django.utils.translation import ugettext_lazy as _
4
5 from combo.data.models import CellBase
6 from combo.data.library import register_cell_class
7
8 @register_cell_class
9 class SoundCell(CellBase):
10     soundfile = models.ForeignKey('emissions.SoundFile', null=True)
11
12     class Meta:
13         verbose_name = _('Sound')
14
15     def render(self, context):
16         tmpl = template.loader.get_template('panikombo/audio.html')
17         context['soundfile'] = self.soundfile
18         return tmpl.render(context)
19
20     def get_default_form_class(self):
21         from .forms import SoundCellForm
22         return SoundCellForm
23
24     def get_additional_label(self):
25         if self.soundfile:
26             if self.soundfile.fragment:
27                 return u'%s - %s - %s' % (
28                         self.soundfile.episode.emission.title,
29                         self.soundfile.episode.title,
30                         self.soundfile.title)
31             else:
32                 return u'%s - %s' % (
33                         self.soundfile.episode.emission.title,
34                         self.soundfile.episode.title)
35
36         return ''