Skip to content
Snippets Groups Projects
Commit da167048 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Remove verbose_names, *_CHOICES and str methods

parent b9ab9593
No related branches found
No related tags found
No related merge requests found
# Generated by Django 3.2.11 on 2022-02-21 15:37
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import versatileimagefield.fields
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('program', '0012_rename_fields'),
]
operations = [
migrations.AlterModelOptions(
name='category',
options={'ordering': ('name',)},
),
migrations.AlterModelOptions(
name='fundingcategory',
options={'ordering': ('name',)},
),
migrations.AlterModelOptions(
name='host',
options={'ordering': ('name',)},
),
migrations.AlterModelOptions(
name='language',
options={'ordering': ('language',)},
),
migrations.AlterModelOptions(
name='musicfocus',
options={'ordering': ('name',)},
),
migrations.AlterModelOptions(
name='note',
options={'ordering': ('timeslot',)},
),
migrations.AlterModelOptions(
name='rrule',
options={'ordering': ('pk',)},
),
migrations.AlterModelOptions(
name='schedule',
options={'ordering': ('dstart', 'tstart')},
),
migrations.AlterModelOptions(
name='show',
options={'ordering': ('slug',)},
),
migrations.AlterModelOptions(
name='timeslot',
options={'ordering': ('start', 'end')},
),
migrations.AlterModelOptions(
name='topic',
options={'ordering': ('name',)},
),
migrations.AlterModelOptions(
name='type',
options={'ordering': ('name',)},
),
migrations.AlterField(
model_name='category',
name='abbrev',
field=models.CharField(max_length=4, unique=True),
),
migrations.AlterField(
model_name='category',
name='description',
field=models.TextField(blank=True),
),
migrations.AlterField(
model_name='category',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='category',
name='name',
field=models.CharField(max_length=32),
),
migrations.AlterField(
model_name='category',
name='slug',
field=models.SlugField(max_length=32, unique=True),
),
migrations.AlterField(
model_name='fundingcategory',
name='abbrev',
field=models.CharField(max_length=4, unique=True),
),
migrations.AlterField(
model_name='fundingcategory',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='fundingcategory',
name='name',
field=models.CharField(max_length=32),
),
migrations.AlterField(
model_name='fundingcategory',
name='slug',
field=models.SlugField(max_length=32, unique=True),
),
migrations.AlterField(
model_name='host',
name='biography',
field=models.TextField(blank=True, null=True),
),
migrations.AlterField(
model_name='host',
name='email',
field=models.EmailField(blank=True, max_length=254),
),
migrations.AlterField(
model_name='host',
name='height',
field=models.PositiveIntegerField(blank=True, editable=False, null=True),
),
migrations.AlterField(
model_name='host',
name='image',
field=versatileimagefield.fields.VersatileImageField(blank=True, height_field='height', null=True, upload_to='host_images', width_field='width'),
),
migrations.AlterField(
model_name='host',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='host',
name='name',
field=models.CharField(max_length=128),
),
migrations.AlterField(
model_name='host',
name='ppoi',
field=versatileimagefield.fields.PPOIField(default='0.5x0.5', editable=False, max_length=20),
),
migrations.AlterField(
model_name='host',
name='website',
field=models.URLField(blank=True),
),
migrations.AlterField(
model_name='host',
name='width',
field=models.PositiveIntegerField(blank=True, editable=False, null=True),
),
migrations.AlterField(
model_name='language',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='language',
name='name',
field=models.CharField(max_length=32),
),
migrations.AlterField(
model_name='musicfocus',
name='abbrev',
field=models.CharField(max_length=4, unique=True),
),
migrations.AlterField(
model_name='musicfocus',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='musicfocus',
name='name',
field=models.CharField(max_length=32),
),
migrations.AlterField(
model_name='musicfocus',
name='slug',
field=models.SlugField(max_length=32, unique=True),
),
migrations.AlterField(
model_name='note',
name='audio_url',
field=models.TextField(blank=True, editable=False),
),
migrations.AlterField(
model_name='note',
name='cba_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='note',
name='content',
field=models.TextField(),
),
migrations.AlterField(
model_name='note',
name='height',
field=models.PositiveIntegerField(blank=True, editable=False, null=True),
),
migrations.AlterField(
model_name='note',
name='image',
field=versatileimagefield.fields.VersatileImageField(blank=True, height_field='height', null=True, upload_to='note_images', width_field='width'),
),
migrations.AlterField(
model_name='note',
name='ppoi',
field=versatileimagefield.fields.PPOIField(default='0.5x0.5', editable=False, max_length=20),
),
migrations.AlterField(
model_name='note',
name='slug',
field=models.SlugField(max_length=32, unique=True),
),
migrations.AlterField(
model_name='note',
name='status',
field=models.IntegerField(default=1),
),
migrations.AlterField(
model_name='note',
name='summary',
field=models.TextField(blank=True),
),
migrations.AlterField(
model_name='note',
name='timeslot',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='program.timeslot'),
),
migrations.AlterField(
model_name='note',
name='title',
field=models.CharField(max_length=128),
),
migrations.AlterField(
model_name='note',
name='width',
field=models.PositiveIntegerField(blank=True, editable=False, null=True),
),
migrations.AlterField(
model_name='rrule',
name='bysetpos',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='rrule',
name='count',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='rrule',
name='freq',
field=models.IntegerField(),
),
migrations.AlterField(
model_name='rrule',
name='interval',
field=models.IntegerField(default=1),
),
migrations.AlterField(
model_name='rrule',
name='name',
field=models.CharField(max_length=32, unique=True),
),
migrations.AlterField(
model_name='schedule',
name='add_business_days_only',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='schedule',
name='add_days_no',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='schedule',
name='byweekday',
field=models.IntegerField(),
),
migrations.AlterField(
model_name='schedule',
name='default_playlist_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='schedule',
name='dstart',
field=models.DateField(),
),
migrations.AlterField(
model_name='schedule',
name='is_repetition',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='schedule',
name='rrule',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='schedules', to='program.rrule'),
),
migrations.AlterField(
model_name='schedule',
name='show',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='schedules', to='program.show'),
),
migrations.AlterField(
model_name='schedule',
name='tend',
field=models.TimeField(),
),
migrations.AlterField(
model_name='schedule',
name='tstart',
field=models.TimeField(),
),
migrations.AlterField(
model_name='schedule',
name='until',
field=models.DateField(),
),
migrations.AlterField(
model_name='show',
name='category',
field=models.ManyToManyField(blank=True, related_name='shows', to='program.Category'),
),
migrations.AlterField(
model_name='show',
name='cba_series_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='show',
name='default_playlist_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='show',
name='description',
field=models.TextField(blank=True, null=True),
),
migrations.AlterField(
model_name='show',
name='email',
field=models.EmailField(blank=True, max_length=254, null=True),
),
migrations.AlterField(
model_name='show',
name='fundingcategory',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='shows', to='program.fundingcategory'),
),
migrations.AlterField(
model_name='show',
name='height',
field=models.PositiveIntegerField(blank=True, editable=False, null=True),
),
migrations.AlterField(
model_name='show',
name='hosts',
field=models.ManyToManyField(blank=True, related_name='shows', to='program.Host'),
),
migrations.AlterField(
model_name='show',
name='image',
field=versatileimagefield.fields.VersatileImageField(blank=True, height_field='height', null=True, upload_to='show_images', width_field='width'),
),
migrations.AlterField(
model_name='show',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='show',
name='is_public',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='show',
name='language',
field=models.ManyToManyField(blank=True, related_name='language', to='program.Language'),
),
migrations.AlterField(
model_name='show',
name='logo',
field=models.ImageField(blank=True, null=True, upload_to='show_images'),
),
migrations.AlterField(
model_name='show',
name='musicfocus',
field=models.ManyToManyField(blank=True, related_name='shows', to='program.MusicFocus'),
),
migrations.AlterField(
model_name='show',
name='name',
field=models.CharField(max_length=255),
),
migrations.AlterField(
model_name='show',
name='owners',
field=models.ManyToManyField(blank=True, related_name='shows', to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='show',
name='ppoi',
field=versatileimagefield.fields.PPOIField(default='0.5x0.5', editable=False, max_length=20),
),
migrations.AlterField(
model_name='show',
name='predecessor',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='successors', to='program.show'),
),
migrations.AlterField(
model_name='show',
name='short_description',
field=models.TextField(),
),
migrations.AlterField(
model_name='show',
name='slug',
field=models.CharField(max_length=255, unique=True),
),
migrations.AlterField(
model_name='show',
name='topic',
field=models.ManyToManyField(blank=True, related_name='shows', to='program.Topic'),
),
migrations.AlterField(
model_name='show',
name='type',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shows', to='program.type'),
),
migrations.AlterField(
model_name='show',
name='website',
field=models.URLField(blank=True, null=True),
),
migrations.AlterField(
model_name='show',
name='width',
field=models.PositiveIntegerField(blank=True, editable=False, null=True),
),
migrations.AlterField(
model_name='timeslot',
name='end',
field=models.DateTimeField(),
),
migrations.AlterField(
model_name='timeslot',
name='is_repetition',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='timeslot',
name='memo',
field=models.TextField(blank=True),
),
migrations.AlterField(
model_name='timeslot',
name='note_id',
field=models.IntegerField(editable=False, null=True),
),
migrations.AlterField(
model_name='timeslot',
name='playlist_id',
field=models.IntegerField(null=True),
),
migrations.AlterField(
model_name='timeslot',
name='schedule',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='timeslots', to='program.schedule'),
),
migrations.AlterField(
model_name='timeslot',
name='start',
field=models.DateTimeField(),
),
migrations.AlterField(
model_name='topic',
name='abbrev',
field=models.CharField(max_length=4, unique=True),
),
migrations.AlterField(
model_name='topic',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='topic',
name='name',
field=models.CharField(max_length=32),
),
migrations.AlterField(
model_name='topic',
name='slug',
field=models.SlugField(max_length=32, unique=True),
),
migrations.AlterField(
model_name='type',
name='is_active',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='type',
name='name',
field=models.CharField(max_length=32),
),
migrations.AlterField(
model_name='type',
name='slug',
field=models.SlugField(max_length=32, unique=True),
),
]
......@@ -36,112 +36,77 @@ from program.utils import parse_datetime, parse_date, parse_time
class Type(models.Model):
name = models.CharField(_("Type"), max_length=32)
slug = models.SlugField(_("Slug"), max_length=32, unique=True)
is_active = models.BooleanField(_("Is active?"), default=True)
name = models.CharField(max_length=32)
slug = models.SlugField(max_length=32, unique=True)
is_active = models.BooleanField(default=True)
class Meta:
ordering = ('name',)
verbose_name = _("Type")
verbose_name_plural = _("Types")
def __str__(self):
return '%s' % self.name
class Category(models.Model):
name = models.CharField(_("Category"), max_length=32)
abbrev = models.CharField(_("Abbreviation"), max_length=4, unique=True)
slug = models.SlugField(_("Slug"), max_length=32, unique=True)
is_active = models.BooleanField(_("Is active?"), default=True)
description = models.TextField(_("Description"), blank=True)
name = models.CharField(max_length=32)
abbrev = models.CharField(max_length=4, unique=True)
slug = models.SlugField(max_length=32, unique=True)
is_active = models.BooleanField(default=True)
description = models.TextField(blank=True)
class Meta:
ordering = ('name',)
verbose_name = _("Category")
verbose_name_plural = _("Categories")
def __str__(self):
return '%s' % self.name
class Topic(models.Model):
name = models.CharField(_("Topic"), max_length=32)
abbrev = models.CharField(_("Abbreviation"), max_length=4, unique=True)
slug = models.SlugField(_("Slug"), max_length=32, unique=True)
is_active = models.BooleanField(_("Is active?"), default=True)
name = models.CharField(max_length=32)
abbrev = models.CharField(max_length=4, unique=True)
slug = models.SlugField(max_length=32, unique=True)
is_active = models.BooleanField(default=True)
class Meta:
ordering = ('name',)
verbose_name = _("Topic")
verbose_name_plural = _("Topics")
def __str__(self):
return '%s' % self.name
class MusicFocus(models.Model):
name = models.CharField(_("Focus"), max_length=32)
abbrev = models.CharField(_("Abbreviation"), max_length=4, unique=True)
slug = models.SlugField(_("Slug"), max_length=32, unique=True)
is_active = models.BooleanField(_("Is active?"), default=True)
name = models.CharField(max_length=32)
abbrev = models.CharField(max_length=4, unique=True)
slug = models.SlugField(max_length=32, unique=True)
is_active = models.BooleanField(default=True)
class Meta:
ordering = ('name',)
verbose_name = _("Music focus")
verbose_name_plural = _("Music focus")
def __str__(self):
return '%s' % self.name
class FundingCategory(models.Model):
name = models.CharField(_("Funding Category"), max_length=32)
abbrev = models.CharField(_("Abbreviation"), max_length=4, unique=True)
slug = models.SlugField(_("Slug"), max_length=32, unique=True)
is_active = models.BooleanField(_("Is active?"), default=True)
name = models.CharField(max_length=32)
abbrev = models.CharField(max_length=4, unique=True)
slug = models.SlugField(max_length=32, unique=True)
is_active = models.BooleanField(default=True)
class Meta:
ordering = ('name',)
verbose_name = _("Funding Category")
verbose_name_plural = _("Funding Categories")
def __str__(self):
return '%s' % self.name
class Language(models.Model):
name = models.CharField(_("Language"), max_length=32)
is_active = models.BooleanField(_("Is active?"), default=True)
name = models.CharField(max_length=32)
is_active = models.BooleanField(default=True)
class Meta:
ordering = ('language',)
verbose_name = _("Language")
verbose_name_plural = _("Languages")
def __str__(self):
return '%s' % self.name
class Host(models.Model):
name = models.CharField(_("Name"), max_length=128)
is_active = models.BooleanField(_("Is active?"), default=True)
email = models.EmailField(_("E-Mail"), blank=True)
website = models.URLField(_("Website"), blank=True)
biography = models.TextField(_("Biography"), blank=True, null=True)
ppoi = PPOIField('Image PPOI')
height = models.PositiveIntegerField('Image Height', blank=True, null=True, editable=False)
width = models.PositiveIntegerField('Image Width', blank=True, null=True, editable=False)
image = VersatileImageField(_("Profile picture"), blank=True, null=True, upload_to='host_images', width_field='width',
name = models.CharField(max_length=128)
is_active = models.BooleanField(default=True)
email = models.EmailField(blank=True)
website = models.URLField(blank=True)
biography = models.TextField(blank=True, null=True)
ppoi = PPOIField()
height = models.PositiveIntegerField(blank=True, null=True, editable=False)
width = models.PositiveIntegerField(blank=True, null=True, editable=False)
image = VersatileImageField(blank=True, null=True, upload_to='host_images', width_field='width',
height_field='height', ppoi_field='ppoi')
class Meta:
ordering = ('name',)
verbose_name = _("Host")
verbose_name_plural = _("Hosts")
def __str__(self):
return '%s' % self.name
def save(self, *args, **kwargs):
super(Host, self).save(*args, **kwargs)
......@@ -170,51 +135,38 @@ class Link(models.Model):
description = models.CharField(max_length=8)
url = models.URLField()
def __str__(self):
return '%s: %s' % (self.description, self.url)
class Show(models.Model):
predecessor = models.ForeignKey('self', blank=True, null=True, on_delete=models.CASCADE, related_name='successors',
verbose_name=_("Predecessor"))
hosts = models.ManyToManyField(Host, blank=True, related_name='shows', verbose_name=_("Hosts"))
owners = models.ManyToManyField(User, blank=True, related_name='shows', verbose_name=_("Owners"))
language = models.ManyToManyField(Language, blank=True, related_name='language', verbose_name=_("Language"))
type = models.ForeignKey(Type, on_delete=models.CASCADE, related_name='shows', verbose_name=_("Type"))
category = models.ManyToManyField(Category, blank=True, related_name='shows', verbose_name=_("Category"))
fundingcategory = models.ForeignKey(FundingCategory, null=True, on_delete=models.CASCADE, blank=True, related_name='shows',
verbose_name=_("Funding Category"))
topic = models.ManyToManyField(Topic, blank=True, related_name='shows', verbose_name=_("Topic"))
musicfocus = models.ManyToManyField(MusicFocus, blank=True, related_name='shows', verbose_name=_("Music focus"))
name = models.CharField(_("Name"), max_length=255)
slug = models.CharField(_("Slug"), max_length=255, unique=True)
ppoi = PPOIField('Image PPOI')
height = models.PositiveIntegerField('Image Height', blank=True, null=True, editable=False)
width = models.PositiveIntegerField('Image Width', blank=True, null=True, editable=False)
image = VersatileImageField(_("Image"), blank=True, null=True, upload_to='show_images', width_field='width',
height_field='height', ppoi_field='ppoi')
logo = models.ImageField(_("Logo"), blank=True, null=True, upload_to='show_images')
short_description = models.TextField(_("Short description"))
description = models.TextField(_("Description"), blank=True, null=True)
email = models.EmailField(_("E-Mail"), blank=True, null=True)
website = models.URLField(_("Website"), blank=True, null=True)
cba_series_id = models.IntegerField(_("CBA Series ID"), blank=True, null=True)
default_playlist_id = models.IntegerField(_("Default Playlist ID"), blank=True, null=True)
predecessor = models.ForeignKey('self', blank=True, null=True, on_delete=models.CASCADE, related_name='successors')
hosts = models.ManyToManyField(Host, blank=True, related_name='shows')
owners = models.ManyToManyField(User, blank=True, related_name='shows')
language = models.ManyToManyField(Language, blank=True, related_name='language')
type = models.ForeignKey(Type, on_delete=models.CASCADE, related_name='shows')
category = models.ManyToManyField(Category, blank=True, related_name='shows')
fundingcategory = models.ForeignKey(FundingCategory, null=True, on_delete=models.CASCADE, blank=True, related_name='shows')
topic = models.ManyToManyField(Topic, blank=True, related_name='shows')
musicfocus = models.ManyToManyField(MusicFocus, blank=True, related_name='shows')
name = models.CharField(max_length=255)
slug = models.CharField(max_length=255, unique=True)
ppoi = PPOIField()
height = models.PositiveIntegerField(blank=True, null=True, editable=False)
width = models.PositiveIntegerField(blank=True, null=True, editable=False)
image = VersatileImageField(blank=True, null=True, upload_to='show_images', width_field='width', height_field='height',
ppoi_field='ppoi')
logo = models.ImageField(blank=True, null=True, upload_to='show_images')
short_description = models.TextField()
description = models.TextField(blank=True, null=True)
email = models.EmailField(blank=True, null=True)
website = models.URLField(blank=True, null=True)
cba_series_id = models.IntegerField(blank=True, null=True)
default_playlist_id = models.IntegerField(blank=True, null=True)
created = models.DateTimeField(auto_now_add=True, editable=False)
last_updated = models.DateTimeField(auto_now=True, editable=False)
is_active = models.BooleanField(_("Is active?"), default=True)
is_public = models.BooleanField(_("Is Public?"), default=False)
is_active = models.BooleanField(default=True)
is_public = models.BooleanField(default=False)
class Meta:
ordering = ('slug',)
verbose_name = _("Show")
verbose_name_plural = _("Shows")
def __str__(self):
if self.id is None:
return '%s' % self.name
return '%04d | %s' % (self.id, self.name)
# FIXME: this does not belong here
@staticmethod
......@@ -231,79 +183,33 @@ class Show(models.Model):
class RRule(models.Model):
FREQ_CHOICES = (
(1, _("Monthly")),
(2, _("Weekly")),
(3, _("Daily")),
)
BYSETPOS_CHOICES = (
(1, _("First")),
(2, _("Second")),
(3, _("Third")),
(4, _("Fourth")),
(5, _("Fifth")),
(-1, _("Last")),
)
name = models.CharField(_("Name"), max_length=32, unique=True)
freq = models.IntegerField(_("Frequency"), choices=FREQ_CHOICES)
interval = models.IntegerField(_("Interval"), default=1)
bysetpos = models.IntegerField(_("Set position"), blank=True, choices=BYSETPOS_CHOICES, null=True)
count = models.IntegerField(_("Count"), blank=True, null=True)
name = models.CharField(max_length=32, unique=True)
freq = models.IntegerField()
interval = models.IntegerField(default=1)
bysetpos = models.IntegerField(blank=True, null=True)
count = models.IntegerField(blank=True, null=True)
class Meta:
ordering = ('pk',)
verbose_name = _("Recurrence rule")
verbose_name_plural = _("Recurrence rules")
def __str__(self):
return '%s' % self.name
class Schedule(models.Model):
BYWEEKDAY_CHOICES = (
(0, _("Monday")),
(1, _("Tuesday")),
(2, _("Wednesday")),
(3, _("Thursday")),
(4, _("Friday")),
(5, _("Saturday")),
(6, _("Sunday")),
)
rrule = models.ForeignKey(RRule, on_delete=models.CASCADE, related_name='schedules', verbose_name=_("Recurrence rule"))
byweekday = models.IntegerField(_("Weekday"), choices=BYWEEKDAY_CHOICES)
show = models.ForeignKey(Show, on_delete=models.CASCADE, related_name='schedules', verbose_name=_("Show"))
dstart = models.DateField(_("First date"))
tstart = models.TimeField(_("Start time"))
tend = models.TimeField(_("End time"))
until = models.DateField(_("Last date"))
is_repetition = models.BooleanField(_("Is repetition"), default=False)
add_days_no = models.IntegerField(_("Add days"), blank=True, null=True)
add_business_days_only = models.BooleanField(_("Only add business days?"), default=False)
default_playlist_id = models.IntegerField(_("Default Playlist ID"), blank=True, null=True)
# -> both see https://stackoverflow.com/questions/1737017/django-auto-now-and-auto-now-add
created = models.DateTimeField(auto_now_add=True, editable=False,
null=True)
rrule = models.ForeignKey(RRule, on_delete=models.CASCADE, related_name='schedules')
byweekday = models.IntegerField()
show = models.ForeignKey(Show, on_delete=models.CASCADE, related_name='schedules')
dstart = models.DateField()
tstart = models.TimeField()
tend = models.TimeField()
until = models.DateField()
is_repetition = models.BooleanField(default=False)
add_days_no = models.IntegerField(blank=True, null=True)
add_business_days_only = models.BooleanField(default=False)
default_playlist_id = models.IntegerField(blank=True, null=True)
created = models.DateTimeField(auto_now_add=True, editable=False, null=True)
last_updated = models.DateTimeField(auto_now=True, editable=False, null=True)
class Meta:
ordering = ('dstart', 'tstart')
verbose_name = _("Schedule")
verbose_name_plural = _("Schedules")
def __str__(self):
weekday = self.BYWEEKDAY_CHOICES[self.byweekday][1]
tend = self.tend.strftime('%H:%M')
dstart = self.dstart.strftime('%d. %b %Y')
tstart = self.tstart.strftime('%H:%M')
if self.rrule.freq == 0:
return '%s %s, %s - %s' % (self.rrule, dstart, tstart, tend)
if self.rrule.freq == 3:
return '%s, %s - %s' % (self.rrule, tstart, tend)
else:
return '%s, %s, %s - %s' % (weekday, self.rrule, tstart, tend)
# FIXME: this does not belong here
@staticmethod
......@@ -964,36 +870,26 @@ class TimeSlotManager(models.Manager):
class TimeSlot(models.Model):
schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE, related_name='timeslots', verbose_name=_("Schedule"))
start = models.DateTimeField(_("Start time"))
# Removed 'unique=True' because new Timeslots need to be created before deleting the old ones (otherwise linked notes get
# deleted first)
end = models.DateTimeField(_("End time"))
schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE, related_name='timeslots')
start = models.DateTimeField()
end = models.DateTimeField()
show = models.ForeignKey(Show, editable=False, on_delete=models.CASCADE, related_name='timeslots')
memo = models.TextField(_("Memo"), blank=True)
is_repetition = models.BooleanField(_("Is repetition?"), default=False)
playlist_id = models.IntegerField(_("Playlist ID"), null=True)
note_id = models.IntegerField(_("Note ID"), null=True, editable=False)
memo = models.TextField(blank=True)
is_repetition = models.BooleanField(default=False)
playlist_id = models.IntegerField(null=True)
note_id = models.IntegerField(null=True, editable=False)
objects = TimeSlotManager()
class Meta:
ordering = ('start', 'end')
verbose_name = _("Time slot")
verbose_name_plural = _("Time slots")
def __str__(self):
start = self.start.strftime('%a, %d.%m.%Y %H:%M')
end = self.end.strftime('%H:%M')
is_repetition = ' ' + _('(REP)') if self.schedule.is_repetition is True else ''
return '%s - %s %s (%s)' % (start, end, is_repetition, self.show.name)
def save(self, *args, **kwargs):
self.show = self.schedule.show
super(TimeSlot, self).save(*args, **kwargs)
return self
# FIXME: this should be a property
def generate(self):
"""Returns the object instance without saving"""
......@@ -1007,26 +903,21 @@ class TimeSlot(models.Model):
class Note(models.Model):
STATUS_CHOICES = (
(0, _("Cancellation")),
(1, _("Recommendation")),
(2, _("Repetition")),
)
timeslot = models.OneToOneField(TimeSlot, on_delete=models.CASCADE, verbose_name=_("Time slot"), unique=True)
title = models.CharField(_("Title"), max_length=128)
slug = models.SlugField(_("Slug"), max_length=32, unique=True)
summary = models.TextField(_("Summary"), blank=True)
content = models.TextField(_("Content"))
ppoi = PPOIField('Image PPOI')
height = models.PositiveIntegerField('Image Height', blank=True, null=True, editable=False)
width = models.PositiveIntegerField('Image Width', blank=True, null=True, editable=False)
image = VersatileImageField(_("Featured image"), blank=True, null=True, upload_to='note_images', width_field='width',
height_field='height', ppoi_field='ppoi')
status = models.IntegerField(_("Status"), choices=STATUS_CHOICES, default=1)
timeslot = models.OneToOneField(TimeSlot, on_delete=models.CASCADE, unique=True)
title = models.CharField(max_length=128)
slug = models.SlugField(max_length=32, unique=True)
summary = models.TextField(blank=True)
content = models.TextField()
ppoi = PPOIField()
height = models.PositiveIntegerField(blank=True, null=True, editable=False)
width = models.PositiveIntegerField(blank=True, null=True, editable=False)
image = VersatileImageField(blank=True, null=True, upload_to='note_images', width_field='width', height_field='height',
ppoi_field='ppoi')
status = models.IntegerField(default=1)
start = models.DateTimeField(editable=False)
show = models.ForeignKey(Show, on_delete=models.CASCADE, related_name='notes', editable=True)
cba_id = models.IntegerField(_("CBA ID"), blank=True, null=True)
audio_url = models.TextField(_("Direct URL to a linked audio file"), blank=True, editable=False)
cba_id = models.IntegerField(blank=True, null=True)
audio_url = models.TextField(blank=True, editable=False)
created = models.DateTimeField(auto_now_add=True, editable=False)
last_updated = models.DateTimeField(auto_now=True, editable=False)
user = models.ForeignKey(User, editable=False, on_delete=models.CASCADE, related_name='users', default=1)
......@@ -1034,11 +925,6 @@ class Note(models.Model):
class Meta:
ordering = ('timeslot',)
verbose_name = _("Note")
verbose_name_plural = _("Notes")
def __str__(self):
return '%s - %s' % (self.title, self.timeslot)
def save(self, *args, **kwargs):
self.start = self.timeslot.start
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment