class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='sentimentText',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('residentialAddress',
                 models.TextField(
                     max_length=512,
                     validators=[
                         analysis.models.validate_numeric,
                         django.core.validators.MinLengthValidator(10)
                     ])),
            ],
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='AnalysisTest',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('test_file',
                 models.FileField(
                     upload_to=analysis.models.change_test_file_name,
                     verbose_name='Analysis file')),
                ('predicted_file',
                 models.FileField(
                     upload_to=analysis.models.change_predicted_file_name,
                     verbose_name='Analysis predicted file')),
            ],
        ),
    ]
Exemple #3
0
class Migration(migrations.Migration):

    dependencies = [
        ('entry', '0029_auto_20210112_0935'),
        ('analysis', '0002_auto_20210409_1021'),
    ]

    operations = [
        migrations.CreateModel(
            name='DiscardedEntry',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('tag',
                 models.IntegerField(choices=[(0, 'Redundant'), (
                     1, 'Too old'), (2, 'Anecdotal'), (3, 'Outlier')])),
                ('analysis_pillar',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='analysis.AnalysisPillar')),
                ('entry',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='entry.Entry')),
            ],
        ),
        migrations.AlterUniqueTogether(
            name='discardedentry',
            unique_together={('entry', 'analysis_pillar')},
        ),
    ]
Exemple #4
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0011_update_proxy_permissions'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('password',
                 models.CharField(max_length=128, verbose_name='password')),
                ('last_login',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name='last login')),
                ('is_superuser',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates that this user has all permissions without explicitly assigning them.',
                     verbose_name='superuser status')),
                ('id',
                 models.IntegerField(primary_key=True,
                                     serialize=False,
                                     verbose_name='サイトID')),
                ('email',
                 models.EmailField(max_length=254,
                                   unique=True,
                                   verbose_name='Emailアドレス')),
                ('username',
                 models.CharField(default='',
                                  help_text='30文字以内で入力してください。',
                                  max_length=30,
                                  verbose_name='ユーザー名')),
                ('thumbnail',
                 models.ImageField(
                     default='./thumbnail/noimage.png',
                     upload_to=analysis.models.get_thumbnail_path,
                     verbose_name='サムネイル画像')),
                ('self_intro',
                 models.CharField(default='',
                                  help_text='2,000文字以内で入力してください。',
                                  max_length=2000,
                                  verbose_name='説明文')),
                ('major_category',
                 models.CharField(choices=[('00', '-'), ('11', '山岳'),
                                           ('12', '高原・湿原・原野'), ('13', '湖沼'),
                                           ('14', '河川・渓谷'), ('15', '滝'),
                                           ('16', '海岸・岬'), ('17', '岩石・洞窟'),
                                           ('18', '動物'), ('19', '植物'),
                                           ('21', '史跡'), ('22', '神社・寺院・教会'),
                                           ('23', '城跡・宮殿'), ('24', '集落・街'),
                                           ('25', '郷土景観'), ('26', '庭園・公園'),
                                           ('27', '建造物'),
                                           ('28', '年中行事(祭り・伝統行事)'),
                                           ('29', '動植物園・水族館'),
                                           ('30', '博物館・美術館'),
                                           ('31', 'テーマ公園・テーマ施設'), ('32', '温泉'),
                                           ('33', '食'), ('34', '芸能・イベント')],
                                  default='00',
                                  max_length=4,
                                  verbose_name='カテゴリー分類')),
                ('address_prefecture',
                 models.CharField(default='',
                                  help_text='※東京都',
                                  max_length=20,
                                  verbose_name='都道府県')),
                ('address_city',
                 models.CharField(default='',
                                  help_text='※港区芝公園',
                                  max_length=50,
                                  verbose_name='市区町村')),
                ('address_street',
                 models.CharField(default='',
                                  help_text='※4-2-8',
                                  max_length=50,
                                  verbose_name='番地')),
                ('latitude',
                 models.FloatField(blank=True,
                                   max_length=4,
                                   null=True,
                                   verbose_name='緯度')),
                ('longitude',
                 models.FloatField(blank=True,
                                   max_length=4,
                                   null=True,
                                   verbose_name='経度')),
                ('telephone',
                 models.CharField(
                     max_length=15,
                     validators=[
                         django.core.validators.RegexValidator(
                             message='"09012345678"のようにハイフンなしの形式で入力してください。',
                             regex='^[0-9]+$')
                     ],
                     verbose_name='電話番号')),
                ('url',
                 models.CharField(default='',
                                  help_text='200文字以内で入力してください。',
                                  max_length=200,
                                  verbose_name='URL')),
                ('entrance_fee',
                 models.CharField(default='',
                                  help_text='200文字以内で入力してください。',
                                  max_length=200,
                                  verbose_name='費用')),
                ('business_hours',
                 models.CharField(default='',
                                  help_text='200文字以内で入力してください。',
                                  max_length=200,
                                  verbose_name='営業時間')),
                ('rating_sum',
                 models.FloatField(default=0, verbose_name='レビュー合計')),
                ('rating_amount',
                 models.IntegerField(default=0, verbose_name='レビュー数')),
                ('holiday',
                 models.CharField(default='',
                                  help_text='50文字以内で入力してください。',
                                  max_length=50,
                                  verbose_name='定休日')),
                ('knn_model',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=analysis.models.get_infference_model_path,
                     verbose_name='KNNモデル')),
                ('exhibit_csv',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=analysis.models.get_infference_model_path,
                     verbose_name='対象物CSVリスト')),
                ('is_staff',
                 models.BooleanField(default=False,
                                     help_text='管理サイトにログイン可能かどうか指定してください。',
                                     verbose_name='スタッフ権限')),
                ('is_active',
                 models.BooleanField(default='True',
                                     help_text='ユーザーがアクティブ状態か指定してください。',
                                     verbose_name='アクティブステータス')),
                ('date_joined',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='登録日')),
                ('groups',
                 models.ManyToManyField(
                     blank=True,
                     help_text=
                     'The groups this user belongs to. A user will get all permissions granted to each of their groups.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Group',
                     verbose_name='groups')),
                ('user_permissions',
                 models.ManyToManyField(
                     blank=True,
                     help_text='Specific permissions for this user.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Permission',
                     verbose_name='user permissions')),
            ],
            options={
                'db_table': 'user',
            },
        ),
        migrations.CreateModel(
            name='AppUser',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('email',
                 models.EmailField(max_length=254,
                                   unique=True,
                                   verbose_name='Emailアドレス')),
                ('password',
                 models.CharField(max_length=100, verbose_name='パスワード')),
                ('apikey',
                 models.CharField(blank=True,
                                  max_length=150,
                                  null=True,
                                  verbose_name='API Key')),
                ('username',
                 models.CharField(default='未設定',
                                  max_length=100,
                                  verbose_name='ユーザー名')),
                ('thumbnail',
                 models.ImageField(
                     default='./userthumbnail/noimage.png',
                     upload_to=analysis.models.get_userthumbnail_path)),
                ('sex', models.IntegerField(default=0, verbose_name='性別')),
                ('birth', models.IntegerField(default=0, verbose_name='生年')),
                ('country',
                 models.CharField(default='None',
                                  max_length=5,
                                  verbose_name='地域')),
                ('language',
                 models.CharField(default='OT',
                                  max_length=5,
                                  verbose_name='言語')),
                ('is_active',
                 models.BooleanField(default='false',
                                     verbose_name='アクティブステータス')),
                ('date_joined',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='登録日')),
            ],
            options={
                'db_table': 'appuser',
                'ordering': ('-date_joined', ),
            },
        ),
        migrations.CreateModel(
            name='Exhibit',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('exhibit_name',
                 models.CharField(default='',
                                  help_text='60文字以内で入力しください',
                                  max_length=60,
                                  verbose_name='日本語名')),
                ('exhibit_desc',
                 models.TextField(default='',
                                  help_text='2000文字以内で入力してください',
                                  max_length=2000,
                                  verbose_name='日本語説明文')),
                ('exhibit_name_en',
                 models.CharField(default='',
                                  help_text='140文字以内で入力しください',
                                  max_length=140,
                                  verbose_name='英語名')),
                ('exhibit_desc_en',
                 models.TextField(default='',
                                  help_text='2500文字以内で入力してください',
                                  max_length=2500,
                                  verbose_name='英語説明文')),
                ('exhibit_name_zh',
                 models.CharField(default='',
                                  help_text='100文字以内で入力しください',
                                  max_length=100,
                                  verbose_name='中国語名')),
                ('exhibit_desc_zh',
                 models.TextField(default='',
                                  help_text='2000文字以内で入力してください',
                                  max_length=2000,
                                  verbose_name='中国語説明文')),
                ('upload_date',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='登録日')),
                ('owner',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   related_name='exhibit_owner',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'exhibit',
                'ordering': ('-upload_date', ),
            },
        ),
        migrations.CreateModel(
            name='UserLang',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('language',
                 models.CharField(choices=[('NA', ''), ('en', 'English'),
                                           ('zh', 'Chinese'), ('ko', 'Korea')],
                                  default='NA',
                                  max_length=5,
                                  verbose_name='言語')),
                ('username',
                 models.CharField(default='',
                                  help_text='50文字以内で入力してください。',
                                  max_length=50,
                                  verbose_name='ユーザー名')),
                ('self_intro',
                 models.TextField(default='',
                                  help_text='2,500文字以内で入力してください。',
                                  max_length=2500,
                                  verbose_name='説明文')),
                ('address_prefecture',
                 models.CharField(default='',
                                  help_text='※Tokyo',
                                  max_length=20,
                                  verbose_name='Prefacture')),
                ('address_city',
                 models.CharField(default='',
                                  help_text='※Shiba park, Minato-ku',
                                  max_length=50,
                                  verbose_name='City')),
                ('address_street',
                 models.CharField(default='',
                                  help_text='※4-2-8',
                                  max_length=50,
                                  verbose_name='Street')),
                ('entrance_fee',
                 models.CharField(default='',
                                  help_text='200文字以内で入力してください。',
                                  max_length=200,
                                  verbose_name='費用')),
                ('business_hours',
                 models.CharField(default='',
                                  help_text='200文字以内で入力してください。',
                                  max_length=200,
                                  verbose_name='営業時間')),
                ('holiday',
                 models.CharField(default='',
                                  help_text='200文字以内で入力してください。',
                                  max_length=200,
                                  verbose_name='定休日')),
                ('upload_date',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='登録日')),
                ('owner',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'userlang',
            },
        ),
        migrations.CreateModel(
            name='Review',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('lang',
                 models.CharField(default='None',
                                  max_length=5,
                                  verbose_name='言語')),
                ('review_post',
                 models.TextField(blank=True,
                                  help_text='500文字以内で入力してください。',
                                  max_length=500,
                                  null=True,
                                  verbose_name='レビュー')),
                ('review_rating',
                 models.FloatField(blank=True, null=True, verbose_name='評価')),
                ('date_posted',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='作成日')),
                ('spot',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   related_name='review_target',
                                   to=settings.AUTH_USER_MODEL)),
                ('writer',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   related_name='review_writer',
                                   to='analysis.AppUser')),
            ],
            options={
                'db_table': 'review',
                'ordering': ('-date_posted', ),
            },
        ),
        migrations.CreateModel(
            name='Like',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('apikey',
                 models.CharField(blank=True,
                                  max_length=150,
                                  null=True,
                                  verbose_name='API Key')),
                ('date_posted',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='更新日')),
                ('spot',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   related_name='like_target',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'like',
                'ordering': ('-date_posted', ),
            },
        ),
        migrations.CreateModel(
            name='ExhibitPicture',
            fields=[
                ('id',
                 models.UUIDField(default=uuid.uuid4,
                                  editable=False,
                                  primary_key=True,
                                  serialize=False)),
                ('post_pic',
                 models.ImageField(
                     blank=True,
                     null=True,
                     upload_to=analysis.models.get_photo_upload_path)),
                ('upload_date',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='登録日')),
                ('exhibit_id',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='exhibit_pk',
                                   to='analysis.Exhibit')),
            ],
            options={
                'db_table': 'exhibit_picture',
                'ordering': ('-upload_date', ),
            },
        ),
    ]
Exemple #5
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0011_update_proxy_permissions'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('id', models.IntegerField(primary_key=True, serialize=False, verbose_name='sight code')),
                ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
                ('username', models.CharField(help_text='Please enter within 30 characters.', max_length=30, verbose_name='user name')),
                ('thumbnail', models.ImageField(default='./thumbnail/noimage.png', upload_to='thumbnail', verbose_name='thumbnail')),
                ('self_intro', models.CharField(blank=True, help_text='Please enter within 1000 characters.', max_length=1000, null=True, verbose_name='introduction')),
                ('major_category', models.CharField(choices=[('00', '-'), ('11', '山岳'), ('12', '高原・湿原・原野'), ('13', '湖沼'), ('14', '河川・渓谷'), ('15', '滝'), ('16', '海岸・岬'), ('17', '岩石・洞窟'), ('18', '動物'), ('19', '植物'), ('21', '史跡'), ('22', '神社・寺院・教会'), ('23', '城跡・宮殿'), ('24', '集落・街'), ('25', '郷土景観'), ('26', '庭園・公園'), ('27', '建造物'), ('28', '年中行事(祭り・伝統行事)'), ('29', '動植物園・水族館'), ('30', '博物館・美術館'), ('31', 'テーマ公園・テーマ施設'), ('32', '温泉'), ('33', '食'), ('34', '芸能・イベント')], default='00', max_length=2, verbose_name='major category')),
                ('address', models.CharField(blank=True, help_text='Please enter within 150 characters.', max_length=150, null=True, verbose_name='address')),
                ('telephone', models.CharField(max_length=15, validators=[django.core.validators.RegexValidator(message='Tel number must be entered in the format: "09012345678". Up to 15 digits allowed.', regex='^[0-9]+$')], verbose_name='telephone number')),
                ('entrance_fee', models.CharField(blank=True, help_text='Please enter within 150 characters.', max_length=150, null=True, verbose_name='entrance fee')),
                ('business_hours', models.CharField(blank=True, help_text='Please enter within 100 characters.', max_length=100, null=True, verbose_name='business hours')),
                ('holiday', models.CharField(blank=True, help_text='Please enter within 30 characters.', max_length=30, null=True, verbose_name='holiday')),
                ('is_staff', models.BooleanField(default=False, help_text='管理サイトにログイン可能かどうか指定してください。', verbose_name='staff_status')),
                ('is_active', models.BooleanField(default='True', help_text='ユーザーがアクティブ状態か指定してください。', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date_joined')),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
            ],
            options={
                'db_table': 'user',
            },
        ),
        migrations.CreateModel(
            name='Exhibit',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('exhibit_name', models.TextField(help_text='30文字以内で入力しください', max_length=30)),
                ('exhibit_desc', models.TextField(help_text='500文字以内で入力してください', max_length=500)),
                ('exhibit_name_en', models.TextField(blank=True, default='', help_text='30文字以内で入力しください', max_length=30, null=True)),
                ('exhibit_desc_en', models.TextField(blank=True, default='', help_text='500文字以内で入力してください', max_length=500, null=True)),
                ('exhibit_name_zh', models.TextField(blank=True, default='', help_text='30文字以内で入力しください', max_length=30, null=True)),
                ('exhibit_desc_zh', models.TextField(blank=True, default='', help_text='500文字以内で入力してください', max_length=500, null=True)),
                ('upload_date', models.DateTimeField(default=django.utils.timezone.now)),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='exhibit_owner', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'exhibit',
                'ordering': ('-upload_date',),
            },
        ),
        migrations.CreateModel(
            name='UserLang',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('language', models.CharField(choices=[('na', ''), ('en', 'English'), ('zh', 'Chinese'), ('ko', 'Korea')], default='NA', max_length=5, verbose_name='language')),
                ('username', models.CharField(blank=True, help_text='Please enter within 30 characters.', max_length=30, null=True, verbose_name='user name')),
                ('self_intro', models.CharField(blank=True, help_text='Please enter within 1000 characters.', max_length=1000, null=True, verbose_name='introduction')),
                ('address', models.CharField(blank=True, help_text='Please enter within 150 characters.', max_length=150, null=True, verbose_name='address')),
                ('entrance_fee', models.CharField(blank=True, help_text='Please enter within 150 characters.', max_length=150, null=True, verbose_name='entrance fee')),
                ('business_hours', models.CharField(blank=True, help_text='Please enter within 100 characters.', max_length=100, null=True, verbose_name='business hours')),
                ('holiday', models.CharField(blank=True, help_text='Please enter within 30 characters.', max_length=30, null=True, verbose_name='holiday')),
                ('upload_date', models.DateTimeField(default=django.utils.timezone.now)),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'userlang',
            },
        ),
        migrations.CreateModel(
            name='ExhibitPicture',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('post_pic', models.ImageField(blank=True, null=True, upload_to=analysis.models.get_photo_upload_path)),
                ('upload_date', models.DateTimeField(default=django.utils.timezone.now)),
                ('exhibit_id', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='exhibit_pk', to='analysis.Exhibit')),
            ],
            options={
                'db_table': 'exhibit_picture',
                'ordering': ('-upload_date',),
            },
        ),
    ]
Exemple #6
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Analysis',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('anchor',
                 models.PositiveSmallIntegerField(
                     choices=[(0, 'start'), (1, 'center'), (2, 'end')],
                     default=1,
                     help_text=
                     'Where to center analysis window relative to BED range')),
                ('bin_start',
                 models.IntegerField(
                     default=-2500,
                     help_text='Distance from anchor to start designating bins'
                 )),
                ('bin_number',
                 models.PositiveIntegerField(
                     default=50,
                     help_text='Number of bins to use in search window',
                     validators=[
                         django.core.validators.MinValueValidator(50),
                         django.core.validators.MaxValueValidator(250)
                     ])),
                ('bin_size',
                 models.PositiveIntegerField(
                     default=100,
                     help_text='Size of bins to use in search window',
                     validators=[django.core.validators.MinValueValidator(1)
                                 ])),
                ('name', models.CharField(max_length=128)),
                ('slug', models.CharField(max_length=128)),
                ('description', models.TextField(blank=True)),
                ('validated', models.BooleanField(default=False)),
                ('validation_errors', models.TextField(blank=True)),
                ('validation_warnings', models.TextField(blank=True)),
                ('start_time', models.DateTimeField(null=True)),
                ('end_time', models.DateTimeField(null=True)),
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
                ('public', models.BooleanField(default=False)),
                ('output',
                 models.FileField(blank=True,
                                  max_length=256,
                                  null=True,
                                  upload_to='analysis/')),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name_plural': 'Analyses',
            },
            bases=(analysis.models.ValidationMixin, models.Model),
        ),
        migrations.CreateModel(
            name='AnalysisDatasets',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('display_name', models.CharField(max_length=128)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
                ('analysis',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='analysis.Analysis')),
            ],
            options={
                'verbose_name_plural': 'Analysis datasets',
            },
        ),
        migrations.CreateModel(
            name='DatasetDownload',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('url', models.URLField()),
                ('data',
                 models.FileField(
                     blank=True,
                     max_length=256,
                     storage=utils.models.ReadOnlyFileSystemStorage(
                         location=settings.USERDATA_PATH),
                     upload_to='')),
                ('filesize', models.FloatField(null=True)),
                ('md5', models.CharField(max_length=64, null=True)),
                ('status_code',
                 models.PositiveSmallIntegerField(choices=[
                     (0, 'not-started'), (1, 'started'),
                     (2, 'finished with errors'), (3, 'successfully completed')
                 ],
                                                  default=0)),
                ('status', models.TextField(blank=True, null=True)),
                ('start_time', models.DateTimeField(blank=True, null=True)),
                ('end_time', models.DateTimeField(blank=True, null=True)),
                ('owner',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='datasetdownload',
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='FeatureList',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('slug', models.CharField(max_length=128)),
                ('description', models.TextField(blank=True)),
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
                ('public', models.BooleanField(default=False)),
                ('validated', models.BooleanField(default=False)),
                ('validation_errors', models.TextField(blank=True)),
                ('validation_warnings', models.TextField(blank=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
                ('stranded', models.BooleanField(default=True)),
                ('dataset', models.FileField(max_length=256, upload_to='')),
            ],
            options={
                'abstract': False,
            },
            bases=(analysis.models.ValidationMixin, models.Model),
        ),
        migrations.CreateModel(
            name='FeatureListCountMatrix',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('anchor',
                 models.PositiveSmallIntegerField(
                     choices=[(0, 'start'), (1, 'center'),
                              (2, 'end')],
                     default=1,
                     help_text=
                     'Where to center analysis window relative to BED range')),
                ('bin_start',
                 models.IntegerField(
                     default=-2500,
                     help_text='Distance from anchor to start designating bins'
                 )),
                ('bin_number',
                 models.PositiveIntegerField(
                     default=50,
                     help_text='Number of bins to use in search window',
                     validators=[
                         django.core.validators.MinValueValidator(50),
                         django.core.validators.MaxValueValidator(250)
                     ])),
                ('bin_size',
                 models.PositiveIntegerField(
                     default=100,
                     help_text='Size of bins to use in search window',
                     validators=[django.core.validators.MinValueValidator(1)
                                 ])),
                ('matrix',
                 models.FileField(help_text='Matrix file of read coverage',
                                  max_length=256,
                                  upload_to='fcm/')),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name_plural': 'Feature list count matrices',
            },
        ),
        migrations.CreateModel(
            name='GenomeAssembly',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=32, unique=True)),
                ('chromosome_size_file',
                 utils.models.DynamicFilePathField(
                     max_length=128,
                     path=orio.utils.get_data_path,
                     unique=True)),
                ('annotation_file',
                 utils.models.DynamicFilePathField(
                     max_length=128,
                     path=orio.utils.get_data_path,
                     unique=True)),
            ],
            options={
                'verbose_name_plural': 'genome assemblies',
            },
        ),
        migrations.CreateModel(
            name='GenomicDataset',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('slug', models.CharField(max_length=128)),
                ('description', models.TextField(blank=True)),
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
                ('public', models.BooleanField(default=False)),
                ('validated', models.BooleanField(default=False)),
                ('validation_errors', models.TextField(blank=True)),
                ('validation_warnings', models.TextField(blank=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='SortVector',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('slug', models.CharField(max_length=128)),
                ('description', models.TextField(blank=True)),
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
                ('public', models.BooleanField(default=False)),
                ('validated', models.BooleanField(default=False)),
                ('validation_errors', models.TextField(blank=True)),
                ('validation_warnings', models.TextField(blank=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
                ('dataset', models.FileField(max_length=256, upload_to='')),
                ('feature_list',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='analysis.FeatureList')),
                ('owner',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='sortvector',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'abstract': False,
            },
            bases=(analysis.models.ValidationMixin, models.Model),
        ),
        migrations.CreateModel(
            name='TemporaryDownload',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('file',
                 models.FileField(
                     max_length=256,
                     upload_to=analysis.models.get_temporary_download_path)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('owner',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='temporarydownload',
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='EncodeDataset',
            fields=[
                ('genomicdataset_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='analysis.GenomicDataset')),
                ('data_ambiguous',
                 models.FileField(
                     blank=True,
                     help_text=
                     'Coverage data for which strand is ambiguous or unknown',
                     max_length=256,
                     storage=utils.models.ReadOnlyFileSystemStorage(
                         location=settings.ENCODE_PATH),
                     upload_to='')),
                ('data_plus',
                 models.FileField(
                     blank=True,
                     help_text='Coverage data for which strand is plus',
                     max_length=256,
                     storage=utils.models.ReadOnlyFileSystemStorage(
                         location=settings.ENCODE_PATH),
                     upload_to='')),
                ('data_minus',
                 models.FileField(
                     blank=True,
                     help_text='Coverage data for which strand is minus',
                     max_length=256,
                     storage=utils.models.ReadOnlyFileSystemStorage(
                         location=settings.ENCODE_PATH),
                     upload_to='')),
                ('data_type',
                 models.CharField(db_index=True,
                                  help_text='Experiment type',
                                  max_length=16)),
                ('cell_type',
                 models.CharField(
                     db_index=True,
                     help_text=
                     'Cell type (cell line or tissue); reported by ENCODE',
                     max_length=32)),
                ('antibody',
                 models.CharField(
                     blank=True,
                     db_index=True,
                     help_text='Antibody used in pulldown; reported by ENCODE',
                     max_length=32)),
                ('rna_extract',
                 models.CharField(
                     blank=True,
                     db_index=True,
                     help_text='RNA extraction protocol; reported by ENCODE',
                     max_length=32)),
                ('treatment',
                 models.CharField(
                     blank=True,
                     db_index=True,
                     help_text=
                     'Experimental treatment of cells; reported by ENCODE',
                     max_length=32)),
                ('phase',
                 models.CharField(blank=True,
                                  db_index=True,
                                  help_text='Cell phase; reported by ENCODE',
                                  max_length=32)),
                ('localization',
                 models.CharField(
                     blank=True,
                     db_index=True,
                     help_text='Cellular localization; reported by ENCODE',
                     max_length=32)),
                ('extra_content',
                 django.contrib.postgres.fields.jsonb.JSONField(default=dict)),
            ],
            options={
                'abstract': False,
            },
            bases=('analysis.genomicdataset', ),
        ),
        migrations.CreateModel(
            name='UserDataset',
            fields=[
                ('genomicdataset_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='analysis.GenomicDataset')),
                ('data_type',
                 models.CharField(choices=[
                     ('Cage', 'Cage'), ('ChiaPet', 'ChiaPet'),
                     ('ChipSeq', 'ChipSeq'), ('DnaseDgf', 'DnaseDgf'),
                     ('DnaseSeq', 'DnaseSeq'), ('FaireSeq', 'FaireSeq'),
                     ('Mapability', 'Mapability'),
                     ('Nucleosome', 'Nucleosome'), ('Orchid', 'Orchid'),
                     ('RepliChip', 'RepliChip'), ('RepliSeq', 'RepliSeq'),
                     ('RipSeq', 'RipSeq'),
                     ('RnaPet', 'RnaPet'),
                     ('RnaSeq',
                      'RnaSeq'), ('SmartSeq', 'SmartSeq'),
                     ('Other', 'Other (describe in "description" field)')
                 ],
                                  help_text='Experiment type',
                                  max_length=16)),
                ('url', models.URLField(max_length=256, null=True)),
                ('expiration_date', models.DateTimeField(null=True)),
                ('ambiguous',
                 models.ForeignKey(
                     help_text=
                     'Coverage data for which strand is ambiguous or unknown',
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='ambiguous',
                     to='analysis.DatasetDownload')),
                ('minus',
                 models.ForeignKey(
                     help_text='Coverage data for which strand is minus',
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='minus',
                     to='analysis.DatasetDownload')),
                ('plus',
                 models.ForeignKey(
                     help_text='Coverage data for which strand is plus',
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='plus',
                     to='analysis.DatasetDownload')),
            ],
            options={
                'abstract': False,
            },
            bases=(analysis.models.ValidationMixin, 'analysis.genomicdataset'),
        ),
        migrations.AddField(
            model_name='genomicdataset',
            name='genome_assembly',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='analysis.GenomeAssembly'),
        ),
        migrations.AddField(
            model_name='genomicdataset',
            name='owner',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='genomicdataset',
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='featurelistcountmatrix',
            name='dataset',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='intermediates',
                to='analysis.GenomicDataset'),
        ),
        migrations.AddField(
            model_name='featurelistcountmatrix',
            name='feature_list',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='intermediates',
                to='analysis.FeatureList'),
        ),
        migrations.AddField(
            model_name='featurelist',
            name='genome_assembly',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='analysis.GenomeAssembly'),
        ),
        migrations.AddField(
            model_name='featurelist',
            name='owner',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='featurelist',
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='analysisdatasets',
            name='count_matrix',
            field=models.ForeignKey(
                help_text='Matrix of read coverage over genomic features',
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='analysis.FeatureListCountMatrix'),
        ),
        migrations.AddField(
            model_name='analysisdatasets',
            name='dataset',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='analysis.GenomicDataset'),
        ),
        migrations.AddField(
            model_name='analysis',
            name='datasets',
            field=models.ManyToManyField(through='analysis.AnalysisDatasets',
                                         to='analysis.GenomicDataset'),
        ),
        migrations.AddField(
            model_name='analysis',
            name='feature_list',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='analysis.FeatureList'),
        ),
        migrations.AddField(
            model_name='analysis',
            name='genome_assembly',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='analysis.GenomeAssembly'),
        ),
        migrations.AddField(
            model_name='analysis',
            name='owner',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='analysis',
            name='sort_vector',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='analysis.SortVector'),
        ),
    ]