forked from rc/aircox
137 lines
6.8 KiB
Python
137 lines
6.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.db import models, migrations
|
|
import taggit.managers
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('taggit', '0002_auto_20150616_2121'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Diffusion',
|
|
fields=[
|
|
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
|
('type', models.SmallIntegerField(choices=[(0, 'default'), (4, 'stop'), (1, 'unconfirmed'), (2, 'cancel')], verbose_name='type')),
|
|
('date', models.DateTimeField(verbose_name='start of the diffusion')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Diffusion',
|
|
'verbose_name_plural': 'Diffusions',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Episode',
|
|
fields=[
|
|
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
|
('name', models.CharField(verbose_name='nom', max_length=128)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Épisode',
|
|
'verbose_name_plural': 'Épisodes',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Program',
|
|
fields=[
|
|
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
|
('name', models.CharField(verbose_name='nom', max_length=128)),
|
|
('active', models.BooleanField(default=True, help_text='if not set this program is no longer active', verbose_name='inactive')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Schedule',
|
|
fields=[
|
|
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
|
('date', models.DateTimeField(verbose_name='date')),
|
|
('duration', models.TimeField(verbose_name='durée')),
|
|
('frequency', models.SmallIntegerField(choices=[(4, 'third'), (32, 'one on two'), (10, 'second and fourth'), (5, 'first and third'), (31, 'every'), (2, 'second'), (1, 'first'), (16, 'last'), (8, 'fourth')], verbose_name='fréquence')),
|
|
('program', models.ForeignKey(to='aircox_programs.Program', null=True, blank=True)),
|
|
('rerun', models.ForeignKey(to='aircox_programs.Schedule', null=True, help_text='Schedule of a rerun of this one', blank=True, verbose_name='rediffusion')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Schedule',
|
|
'verbose_name_plural': 'Schedules',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Sound',
|
|
fields=[
|
|
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
|
('name', models.CharField(verbose_name='nom', max_length=128)),
|
|
('path', models.FilePathField(recursive=True, match='*(.ogg|.flac|.wav|.mp3|.opus)$', path='/media/data/courants/code/aircox/static/media/programs', null=True, blank=True, verbose_name='fichier')),
|
|
('embed', models.TextField(null=True, blank=True, help_text='if set, consider the sound podcastable', verbose_name='embed HTML code from external website')),
|
|
('duration', models.TimeField(null=True, blank=True, verbose_name='durée')),
|
|
('public', models.BooleanField(default=False, help_text='the element is public', verbose_name='public')),
|
|
('fragment', models.BooleanField(default=False, help_text='the file is a cut', verbose_name='son incomplet')),
|
|
('removed', models.BooleanField(default=False, help_text='this sound has been removed from filesystem')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Sound',
|
|
'verbose_name_plural': 'Sounds',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Stream',
|
|
fields=[
|
|
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
|
('name', models.CharField(null=True, blank=True, verbose_name='nom', max_length=32)),
|
|
('public', models.BooleanField(default=True, help_text='program list is public', verbose_name='public')),
|
|
('type', models.SmallIntegerField(choices=[(1, 'schedule'), (0, 'random')], verbose_name='type')),
|
|
('priority', models.SmallIntegerField(default=0, help_text='priority of the stream', verbose_name='priority')),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='Track',
|
|
fields=[
|
|
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
|
('name', models.CharField(verbose_name='nom', max_length=128)),
|
|
('artist', models.CharField(verbose_name='artiste', max_length=128)),
|
|
('position', models.SmallIntegerField(default=0, help_text='position in the playlist')),
|
|
('episode', models.ForeignKey(to='aircox_programs.Episode')),
|
|
('tags', taggit.managers.TaggableManager(through='taggit.TaggedItem', to='taggit.Tag', blank=True, help_text='A comma-separated list of tags.', verbose_name='mots-clés')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Track',
|
|
'verbose_name_plural': 'Tracks',
|
|
},
|
|
),
|
|
migrations.AddField(
|
|
model_name='program',
|
|
name='stream',
|
|
field=models.ForeignKey(to='aircox_programs.Stream', verbose_name='stream'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='episode',
|
|
name='program',
|
|
field=models.ForeignKey(to='aircox_programs.Program', help_text='parent program', verbose_name='program'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='episode',
|
|
name='sounds',
|
|
field=models.ManyToManyField(to='aircox_programs.Sound', blank=True, verbose_name='sounds'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='diffusion',
|
|
name='episode',
|
|
field=models.ForeignKey(to='aircox_programs.Episode', null=True, blank=True, verbose_name='épisode'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='diffusion',
|
|
name='program',
|
|
field=models.ForeignKey(to='aircox_programs.Program', verbose_name='program'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='diffusion',
|
|
name='stream',
|
|
field=models.ForeignKey(default=0, help_text='stream id on which the diffusion happens', to='aircox_programs.Stream', verbose_name='stream'),
|
|
),
|
|
]
|