class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0011_update_proxy_permissions'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')), ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', 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={ 'verbose_name': 'user', 'verbose_name_plural': 'users', }, managers=[ ('objects', base.models.UserManager()), ], ), ]
class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('base', '0004_auto_20200113_0232'), ] operations = [ migrations.RemoveField( model_name='photo', name='title', ), migrations.RemoveField( model_name='post', name='user', ), migrations.RemoveField( model_name='tag', name='madeat', ), migrations.AddField( model_name='post', name='source', field=models.CharField(blank=True, choices=[('instagram', 'instagram'), ('upload', 'upload')], max_length=20, null=True), ), migrations.AddField( model_name='tag', name='madeby', field=models.CharField(blank=True, choices=[('user', 'user'), ('post', 'post')], max_length=20, null=True), ), migrations.AlterField( model_name='photo', name='file', field=models.ImageField(upload_to=base.models.user_directory_path), ), migrations.CreateModel( name='Session', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('starttime', models.DateTimeField(auto_now_add=True)), ('endtime', models.DateTimeField(auto_now_add=True)), ('status', models.BooleanField(blank=True, default=False)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('base', '0008_auto_20170704_1509'), ('case', '0004_auto_20170712_1527'), ] operations = [ migrations.CreateModel( name='Case', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('name', models.CharField(max_length=200)), ('archive_no', models.CharField(blank=True, max_length=100, null=True)), ('is_private', models.BooleanField(default=False)), ('settled', models.BooleanField(default=False)), ('closed', models.BooleanField(default=False)), ('category', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='case.Category')), ('client', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Client')), ('entry_country', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Country')), ('stage', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='case.Stage')), ], options={ 'abstract': False, }, bases=(base.models.FakerMixin, models.Model), ), ]
class Migration(migrations.Migration): dependencies = [ ('income', '0001_initial'), ] operations = [ migrations.CreateModel( name='IncomeType', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True)), ('name', models.CharField(max_length=50, verbose_name='收入类型')), ], options={ 'verbose_name': '收入类型', 'verbose_name_plural': '收入类型', }, bases=(base.models.FakerMixin, models.Model), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Stage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('name', models.CharField(max_length=100)), ], options={ 'abstract': False, }, bases=(base.models.FakerMixin, models.Model), ), ]
class Migration(migrations.Migration): dependencies = [ ('base', '0008_auto_20170704_1509'), ] operations = [ migrations.CreateModel( name='Owner', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True)), ('name', models.CharField(max_length=100, verbose_name='名称')), ], options={ 'abstract': False, }, bases=(base.models.FakerMixin, models.Model), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Department', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='Department Name')), ('created', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='Employee', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='Employee Name')), ('email', models.EmailField(max_length=254)), ('joined', models.DateTimeField(auto_now_add=True)), ('image', models.ImageField(upload_to=base.models.image_upload, verbose_name='Upload Image')), ('department', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.department')), ], ), ]
class AccessRecord(Model): ip = models.CharField(max_length=15, default='') created_at = models.DateTimeField(default=datetime.datetime.now) class Meta: db_table = 'access_record' @classmethod def create_a_r(cls, ip): cls.create(ip=ip)
class Migration(migrations.Migration): dependencies = [ ('base', '0003_fundingtype'), ] operations = [ migrations.CreateModel( name='Partner', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('brand_name', models.CharField(max_length=255)), ('logo', models.FileField( upload_to=base.models.Partner.partner_logo_path)), ('created_at', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Creation date')), ('modified_at', models.DateTimeField(auto_now=True, verbose_name='Modification date')), ('status', models.BooleanField( default=True, help_text="Partner's status in the system", verbose_name='Status')), ], options={ 'verbose_name': 'Partner', 'verbose_name_plural': 'Partners', }, ), ]
class Word(Model): word = models.CharField(max_length=30, default='') translation = models.CharField(max_length=30, default='') created_at = models.DateTimeField(default=datetime.datetime.now) class Meta: db_table = 'words' @classmethod def create_word(cls, word, translation): cls.create(word=word, translation=translation) @classmethod def all_word(cls): return cls.select(cls.id, cls.word, cls.translation).order_by(cls.id.desc())
class Migration(migrations.Migration): dependencies = [ ('case', '0008_auto_20170712_2232'), ] operations = [ migrations.CreateModel( name='Contract', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True)), ('no', models.CharField(max_length=100, null=True)), ('contractor_name', models.CharField(blank=True, max_length=100, null=True)), ('contractor_tel', models.CharField(blank=True, max_length=30, null=True)), ('contractor_mobile', models.CharField(blank=True, max_length=30, null=True)), ('contractor_email', models.CharField(blank=True, max_length=200, null=True)), ('contractor_qq', models.CharField(blank=True, max_length=45, null=True)), ('signed_date', models.DateField(blank=True, null=True)), ('case', models.OneToOneField( null=True, on_delete=django.db.models.deletion.SET_NULL, to='case.Case')), ], options={ 'abstract': False, }, bases=(base.models.FakerMixin, models.Model), ), ]
class Migration(migrations.Migration): dependencies = [ ('base', '0008_auto_20170704_1509'), ('case', '0006_case_desc'), ] operations = [ migrations.CreateModel( name='Application', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True)), ('no', models.CharField(max_length=100)), ('name', models.CharField(blank=True, max_length=300, null=True)), ('applicant', models.CharField(blank=True, max_length=300, null=True)), ('app_date', models.DateField(blank=True, null=True)), ('case', models.OneToOneField( null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Client')), ], options={ 'abstract': False, }, bases=(base.models.FakerMixin, models.Model), ), migrations.AlterModelOptions( name='category', options={'verbose_name_plural': 'categories'}, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Vote', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('voting_id', models.PositiveIntegerField()), ('voter_id', models.PositiveIntegerField()), ('a', base.models.BigBigField()), ('b', base.models.BigBigField()), ('voted', models.DateTimeField(auto_now=True)), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Cipher', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('a', base.models.BigBigField()), ('b', base.models.BigBigField()), ], ), migrations.CreateModel( name='Vote', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('voting_id', models.PositiveIntegerField()), ('voter_id', models.PositiveIntegerField()), ('voted', models.DateTimeField(auto_now=True)), ], ), migrations.AddField( model_name='cipher', name='vote', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='ciphers', to='store.Vote'), ), ]
class Migration(migrations.Migration): dependencies = [ ('case', '0001_initial'), ] operations = [ migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('name', models.CharField(max_length=100)), ('parent_category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='case.Category')), ], options={ 'abstract': False, }, bases=(base.models.FakerMixin, models.Model), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0007_alter_validators_add_error_messages'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')), ('is_staff', models.BooleanField( default=False, help_text= 'Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField( default=True, help_text= 'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('avatar', image_cropping.fields.ImageCropField( blank=True, null=True, upload_to='avatars/', validators=[base.models.avatar_validation], verbose_name='profile picture')), ('cropping', image_cropping.fields.ImageRatioField( 'avatar', '70x70', adapt_rotation=False, allow_fullsize=False, free_crop=False, help_text= 'Note that the preview above will only be updated after you submit the form.', hide_image_field=False, size_warning=False, verbose_name='cropping')), ('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={ 'abstract': False, }, managers=[ ('objects', base.models.UserManager()), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0011_update_proxy_permissions'), ] operations = [ migrations.CreateModel( name='Image', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('image', models.ImageField(null=True, upload_to=base.models.image_file_path)), ], ), migrations.CreateModel( name='Book', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('author', models.CharField(max_length=100)), ('title', models.CharField(max_length=100)), ('description', models.TextField()), ('poster_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Image')), ], ), migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('email', models.EmailField(max_length=255, unique=True)), ('first_name', models.CharField(max_length=255)), ('last_name', models.CharField(max_length=255)), ('is_active', models.BooleanField(default=True)), ('is_staff', models.BooleanField(default=False)), ('books', models.ManyToManyField(to='base.Book')), ('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={ 'abstract': False, }, ), ]
class Migration(migrations.Migration): dependencies = [ ('cmdb', '0001_initial'), ] operations = [ migrations.CreateModel( name='IDC', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ('update_time', models.DateTimeField(auto_now=True, verbose_name='变更时间')), ('remark', models.CharField(blank=True, max_length=1024, null=True, verbose_name='备注')), ('title', models.CharField(max_length=32, verbose_name='IDC名称')), ('position', models.CharField(max_length=32, verbose_name='设备位置')), ], options={ 'verbose_name': '机房表', 'verbose_name_plural': '机房表', }, ), migrations.AlterModelOptions( name='cmdbbase', options={ 'verbose_name': 'CMDB基表', 'verbose_name_plural': 'CMDB基表' }, ), migrations.RemoveField( model_name='cmdbbase', name='name', ), migrations.RemoveField( model_name='cmdbbase', name='ssh', ), migrations.AddField( model_name='cmdbbase', name='account', field=models.CharField(blank=True, max_length=50, null=True, verbose_name='云账号'), ), migrations.AddField( model_name='cmdbbase', name='create_user', field=models.CharField(blank=True, max_length=100, null=True, verbose_name='创建用户'), ), migrations.AddField( model_name='cmdbbase', name='disks', field=models.JSONField(default=base.models.JSONMulFieldDefault, verbose_name='磁盘'), ), migrations.AddField( model_name='cmdbbase', name='expired_time', field=models.CharField(blank=True, max_length=32, null=True, verbose_name='过期时间'), ), migrations.AddField( model_name='cmdbbase', name='instance_charge_type', field=models.CharField(blank=True, choices=[('PrePaid', '包年包月'), ('PostPaid', '按量')], max_length=32, null=True, verbose_name='主机付费类型'), ), migrations.AddField( model_name='cmdbbase', name='instance_id', field=models.CharField(blank=True, max_length=64, null=True, verbose_name='实例ID'), ), migrations.AddField( model_name='cmdbbase', name='instance_type', field=models.CharField(blank=True, max_length=64, null=True, verbose_name='实例类型'), ), migrations.AddField( model_name='cmdbbase', name='os_platform', field=models.CharField(blank=True, max_length=16, null=True, verbose_name='操作系统'), ), migrations.AddField( model_name='cmdbbase', name='os_version', field=models.CharField(blank=True, max_length=64, null=True, verbose_name='系统版本'), ), migrations.AddField( model_name='cmdbbase', name='root_id', field=models.CharField(blank=True, max_length=100, null=True, verbose_name='主账号ID'), ), migrations.AddField( model_name='cmdbbase', name='security_group_ids', field=models.JSONField(default=base.models.JSONMulFieldDefault, verbose_name='安全组'), ), migrations.AddField( model_name='cmdbbase', name='subnet_id', field=models.CharField(default='', max_length=100, verbose_name='交换机ID'), preserve_default=False, ), migrations.AddField( model_name='cmdbbase', name='vpc_id', field=models.CharField(default='', max_length=100, verbose_name='VPC ID'), preserve_default=False, ), migrations.AlterField( model_name='cmdbbase', name='is_deleted', field=models.BooleanField(default=False), ), migrations.AlterField( model_name='cmdbbase', name='public_ip', field=models.GenericIPAddressField(blank=True, db_index=True, null=True, verbose_name='公网IP地址'), ), migrations.DeleteModel(name='SSH', ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0011_update_proxy_permissions'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('is_staff', models.BooleanField( default=False, help_text= 'Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField( default=True, help_text= 'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('username_user', models.CharField(max_length=90)), ('image_profile', models.ImageField(blank=True, null=True, upload_to='profile/')), ('image_sampul', models.ImageField(blank=True, null=True, upload_to='sampul/')), ('email', models.EmailField(blank=True, max_length=254, unique=True, verbose_name='email address')), ('slug', models.SlugField(blank=True, null=True)), ('no_tlp', models.IntegerField( blank=True, null=True, validators=[ django.core.validators.MaxValueValidator(3012) ])), ('bio', models.TextField(blank=True, null=True)), ('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={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, managers=[ ('objects', base.models.UserManager()), ], ), migrations.CreateModel( name='Artikel', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('judul', models.CharField(max_length=300)), ('slug', models.SlugField()), ('date_created', models.DateTimeField(auto_now_add=True)), ('date_updated', models.DateTimeField(auto_now=True)), ('isi', models.TextField()), ('media', models.FileField(upload_to='File/')), ('likes', models.ManyToManyField(related_name='likes', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='AuditEntry', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('action', models.CharField(max_length=64)), ('ip', models.GenericIPAddressField(null=True)), ('username', models.CharField(max_length=256, null=True)), ], ), migrations.CreateModel( name='Tags', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=100)), ('slug', models.SlugField()), ('bio', models.CharField(blank=True, max_length=300, null=True)), ('date_created', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='MessageModel', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('timestamp', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='timestamp')), ('body', mirage.fields.EncryptedTextField()), ('recipient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='to_user', to=settings.AUTH_USER_MODEL, verbose_name='recipient')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='from_user', to=settings.AUTH_USER_MODEL, verbose_name='user')), ], options={ 'verbose_name': 'message', 'verbose_name_plural': 'messages', 'ordering': ('-timestamp', ), }, ), migrations.CreateModel( name='Comment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date_created', models.DateTimeField(auto_now_add=True)), ('content', models.TextField()), ('artikel', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='base.Artikel')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.AddField( model_name='artikel', name='tags', field=models.ManyToManyField(to='base.Tags'), ), migrations.AddField( model_name='artikel', name='user', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('government_structures', '0001_initial'), ] operations = [ migrations.CreateModel( name='Presidency', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True, help_text='creation date')), ('updated_at', models.DateTimeField(auto_now=True, help_text='edition date', null=True)), ('name', models.CharField(max_length=100, verbose_name='name')), ('title', models.CharField(max_length=50, verbose_name='title')), ('photo', easy_thumbnails.fields.ThumbnailerImageField( null=True, upload_to=base.models.file_path, verbose_name='photo')), ('description', models.TextField(verbose_name='description')), ('twitter', models.CharField(max_length=50)), ('url', models.URLField(verbose_name='url')), ('government_structure', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, to='government_structures.GovernmentStructure', verbose_name='government structure')), ], options={ 'verbose_name': 'presidency', 'verbose_name_plural': 'presidencies', 'permissions': (('view_presidency', 'Can view presidency'), ), }, ), migrations.CreateModel( name='PresidencyURL', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True, help_text='creation date')), ('updated_at', models.DateTimeField(auto_now=True, help_text='edition date', null=True)), ('url', models.URLField(verbose_name='url')), ('description', models.TextField(verbose_name='description')), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='presidency', name='urls', field=models.ManyToManyField(to='presidencies.PresidencyURL', verbose_name='urls'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0008_alter_user_username_max_length'), ] operations = [ migrations.CreateModel( name='ApplicationUser', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('username', models.CharField( error_messages={ 'unique': 'A user with that username already exists.' }, help_text= 'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[ django.contrib.auth.validators.ASCIIUsernameValidator( ) ], verbose_name='username')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')), ('is_staff', models.BooleanField( default=False, help_text= 'Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField( default=True, help_text= 'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('email', models.EmailField(max_length=254, verbose_name='Email address')), ('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={ 'abstract': False, 'verbose_name': 'user', 'verbose_name_plural': 'users', }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='Invite', fields=[ ('uuid', models.UUIDField(default=base.models.get_uuid, primary_key=True, serialize=False)), ('email', models.EmailField(max_length=254)), ], ), migrations.CreateModel( name='Project', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=256, verbose_name='Title')), ('description', models.TextField(blank=True, verbose_name='Description')), ('developers', models.ManyToManyField(blank=True, related_name='developer_projects', to=settings.AUTH_USER_MODEL, verbose_name='Developers')), ('managers', models.ManyToManyField(blank=True, related_name='managers_projects', to=settings.AUTH_USER_MODEL, verbose_name='Managers')), ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='owner_projects', to=settings.AUTH_USER_MODEL, verbose_name='Owner')), ], options={ 'verbose_name': 'Project', 'verbose_name_plural': 'Projects', }, ), migrations.CreateModel( name='Task', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=256, verbose_name='Title')), ('description', models.TextField(blank=True, verbose_name='Description')), ('due_date', models.DateTimeField(verbose_name='Due date')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created at')), ('assigned_to', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to=settings.AUTH_USER_MODEL, verbose_name='Assigned to')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='base.Project', verbose_name='Project')), ], options={ 'verbose_name': 'Task', 'verbose_name_plural': 'Tasks', }, ), migrations.AddField( model_name='invite', name='project', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, to='base.Project'), ), ]
class Migration(migrations.Migration): dependencies = [ ('base', '0012_client_email'), ] operations = [ migrations.CreateModel( name='NiceClassification', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True, verbose_name='备注')), ('name', models.CharField(max_length=10, verbose_name='分类名称')), ], options={ 'verbose_name': '尼斯分类', 'verbose_name_plural': '尼斯分类', }, bases=(base.models.FakerMixin, models.Model), ), migrations.CreateModel( name='Trademark', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True, verbose_name='备注')), ('name', models.CharField(max_length=200, verbose_name='商标名称')), ('client', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Client', verbose_name='所属客户')), ], options={ 'verbose_name': '商标', 'verbose_name_plural': '商标', }, ), migrations.CreateModel( name='TrademarkNation', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True, verbose_name='备注')), ('app_no', models.CharField(blank=True, max_length=20, null=True, verbose_name='申请号')), ('app_date', models.DateField(blank=True, null=True, verbose_name='申请日')), ('applicant', models.CharField(blank=True, max_length=100, null=True, verbose_name='申请人')), ('state', models.CharField(blank=True, max_length=100, null=True, verbose_name='商标状态')), ('country', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Country', verbose_name='申请国家')), ('trademark', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Trademark', verbose_name='商标')), ], options={ 'verbose_name': '商标-国家', 'verbose_name_plural': '商标-国家', }, ), migrations.CreateModel( name='TrademarkNationNice', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), ('enabled', models.BooleanField(default=True)), ('desc', models.TextField(blank=True, null=True, verbose_name='备注')), ('goods', models.CharField(max_length=400, verbose_name='商品/服务')), ('nice_class', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.NiceClassification', verbose_name='尼斯分类')), ('trademark_nation', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.TrademarkNation', verbose_name='商标-国家')), ], options={ 'verbose_name': '商标分类', 'verbose_name_plural': '商标分类', }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0012_alter_user_first_name_max_length'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('username', models.CharField( error_messages={ 'unique': 'A user with that username already exists.' }, help_text= 'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[ django.contrib.auth.validators. UnicodeUsernameValidator() ], verbose_name='username')), ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), ('is_staff', models.BooleanField( default=False, help_text= 'Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField( default=True, help_text= 'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', 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={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, managers=[ ('objects', base.models.CustomUserManager()), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='Nom')), ], options={ 'verbose_name': 'Catégorie', }, ), migrations.CreateModel( name='Household', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(help_text='Nom qui apparaitra dans la liste des comptes pour faire ses achats.', max_length=200, verbose_name='nom du foyer')), ('number', models.IntegerField(default=0, validators=[base.models.validate_household_number], verbose_name="numero d'adhérent")), ('address', models.CharField(blank=True, help_text='Pas indispensable mais pratique quand on fait des réunions chez les uns les autres.', max_length=200, verbose_name='adresse')), ('comment', models.TextField(blank=True, verbose_name='commentaire')), ('account', models.DecimalField(decimal_places=2, default=0, editable=False, max_digits=10, verbose_name='solde du compte')), ('date', models.DateField(auto_now=True)), ('date_closed', models.DateField(blank=True, help_text='Remplir seulement si le foyer souhaite arrêter.', null=True, verbose_name='Date de clôture')), ('subscription', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name="montant de la cotisation d'adhésion (en €)")), ('on_the_flight', models.BooleanField(default=False, help_text="Cette fonction peut être utilise si l'on autorise le payement à la volée, c'est-à-dire lorsque le client n'a pas besoin d'approvisionner son compte mais paye la juste somme.", verbose_name='Realise un approvisionnement automatique du montant du panier avant de payer.')), ], options={ 'verbose_name': 'Foyer', }, ), migrations.CreateModel( name='LocalSettings', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('min_account', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name="seuil en dessous duquel on ne peut plus faire d'achat (en €)")), ('min_account_allow', models.BooleanField(default=False, help_text="Lorsque cette option est activée, si le solde n'est pas suffisant, il y a une demande de confirmationlors de l'achat mais il est autorisé. Dans le cas contraire, l'achat est rendu impossible.", verbose_name="Lorsque le solde n'est pas suffisant, autoriser quand même après demande de confirmation ?")), ('min_balance', models.DecimalField(decimal_places=2, default=10, max_digits=10, verbose_name='seuil en dessous duquel une alerte est lancée au moment de commencer un achat (en €)')), ('txt_home', models.TextField(blank=True, default='<i>Bienvenu·e au GASE</i>', verbose_name="texte de la page d'accueil (doit être donnée en code html)")), ('use_messages', models.BooleanField(default=True, help_text='La fonction messages/actions sert à laisser des messagesentre les différentes permanences ou lister des actions à faire.', verbose_name='Utilisation de la fonction messages/actions ?')), ('use_appro_kind', models.BooleanField(default=True, help_text='La fonction type de paiement permet de sauvegarder le moyen de paiement utilisé.', verbose_name='Utilisation de la fonction type de paiement ?')), ('use_subscription', models.BooleanField(default=True, help_text="La fonction adhésion permet de renseigner la cotisation d'adhésiond'adhésion du foyer.", verbose_name="Utilisation de la fonction cotisation d'adhésion ?")), ('use_cost_of_purchase', models.BooleanField(default=True, help_text="La fonction prix d'achat permet de spécifier un prix d'achat différent du prix de vente.", verbose_name="Utilisation de la fonction prix d'achat ?")), ('use_logo', models.BooleanField(default=True, help_text='Le fichier de logo doit être placé dans le répertoire base\\static\x08ase et son nom de fichier doit etre logo.png.', verbose_name='Affiche le logo dans la première page ?')), ('use_favicon', models.BooleanField(default=True, help_text='Le fichier favicon doit être placé dans le répertoire base\\static\x08ase et son nom de fichier doit etre favicon.ico.', verbose_name='Affiche une favicon ?')), ('use_mail', models.BooleanField(default=True, help_text="Cette fonction permet d'envoyer les tickets de caisse ou des alertes stocks aux référents des produits.", verbose_name="Utilisation de la fonction envoi d'email ?")), ('save_mail', models.BooleanField(default=True, help_text='Cette fonction permet de sauvegarder les emails envoyés ou en attente.', verbose_name='Utilisation de la fonction de sauvegarde des emails ?')), ('prefix_object_mail', models.CharField(blank=True, default='', help_text='Un prefix est souvent encadré par des crochers, exemples : [GASE].', max_length=15, verbose_name="Prefix dans l'objet des emails.")), ('debug_mail', models.CharField(blank=True, default='', help_text='Ce champ permet de tester la fonction email sans envoyer de mails intempestifs.', max_length=50, verbose_name='Si ce champ est renseigné, tous les emails lui seront envoyés.')), ('mail_host', models.CharField(default='', help_text='Exemple : smtp.titi.com.', max_length=50, verbose_name="Hebergeur pour l'envoi des mails.")), ('mail_port', models.IntegerField(default=0, help_text='Exemple : 587.', verbose_name="Port smtp pour l'envoi des mails.")), ('mail_username', models.CharField(default='*****@*****.**', help_text='Exemple : [email protected].', max_length=100, verbose_name="Nom d'utilisateur pour l'envoi des mails.")), ('mail_passwd', models.CharField(default='xxx', max_length=100, verbose_name="Mot de passe pour l'envoi des mails.")), ], options={ 'verbose_name': 'Réglages divers', }, ), migrations.CreateModel( name='Mail', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField(auto_now=True)), ('message', models.TextField(verbose_name='Message')), ('subject', models.TextField(verbose_name='Sujet')), ('recipients', models.TextField(verbose_name='Destinataires')), ('send', models.BooleanField(default=False, verbose_name='Message envoyé ?')), ('kind', models.CharField(choices=[('referent', 'Référent'), ('receipt', 'Ticket de caisse')], default='referent', max_length=8)), ], ), migrations.CreateModel( name='Member', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='nom')), ('email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='email')), ('tel', models.CharField(blank=True, max_length=200, verbose_name='numéro de téléphone')), ('receipt', models.BooleanField(default=False, verbose_name='recevoir un ticket de caisse par mail ?')), ('stock_alert', models.BooleanField(default=False, verbose_name='recevoir les approvisionnements et les alertes stock par mail ? (uniquement pour les référents produit)')), ('household', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='has_household', to='base.Household', verbose_name='foyer')), ], options={ 'verbose_name': 'Membre', }, ), migrations.CreateModel( name='Provider', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='nom')), ('contact', models.TextField(blank=True, verbose_name='mail / téléphone / adresse du fournisseur')), ('comment', models.TextField(blank=True, verbose_name='commentaire (quel Gasier a été en contact, historique des échanges, ...)')), ], options={ 'verbose_name': 'Fournisseur', }, ), migrations.CreateModel( name='Unit', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='Nom')), ('vrac', models.BooleanField(help_text='Oui pour kg, L, ... Non pour sachet, bouteille, ...', verbose_name='Vrac')), ('pluralize', models.BooleanField(default=False, help_text="Ajouter un 's' au pluriel (par ex. 4 sachets mais 4 kg)", verbose_name='Plurieliser ?')), ], options={ 'verbose_name': 'Unité', }, ), migrations.CreateModel( name='Purchase', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField(auto_now=True)), ('household', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Household')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Product', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='nom')), ('price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name="prix de vente (en €) à l'unité (kg/L/...)")), ('cost_of_purchase', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name="prix d'achat (en €) à l'unité (kg/L/...)")), ('pwyw', models.BooleanField(default=False, help_text='Pas encore géré par le logiciel ...', verbose_name='prix libre')), ('visible', models.BooleanField(default=True, help_text="Une référence non visible n'apparait pas dans les produits que l'on peut acheter, on l'utilise généralement pour les produits en rupture de stock", verbose_name='visible')), ('stock_alert', models.DecimalField(blank=True, decimal_places=2, help_text="Laisser vide pour pas d'alerte", max_digits=10, null=True, verbose_name="Seuil de l'alerte stock")), ('comment', models.TextField(blank=True, verbose_name='commentaire')), ('stock', models.DecimalField(decimal_places=3, default=0, editable=False, max_digits=15, verbose_name='stock')), ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Category', verbose_name='catégorie')), ('provider', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Provider', verbose_name='fournisseur')), ('referent', models.ForeignKey(blank=True, help_text='S\'il le souhaite, le référent reçoit un mail à chaque fois qu\'un produit est approvisionné ou que le stock devient plus bas que le niveau "Alerte stock"', null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Member', verbose_name='référent')), ('unit', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Unit', verbose_name='unité')), ], options={ 'verbose_name': 'Produit', }, ), migrations.CreateModel( name='Note', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField(auto_now=True)), ('message', models.TextField(verbose_name='Message')), ('read', models.BooleanField(default=False, verbose_name='Message lu ?')), ('action', models.BooleanField(default=False, help_text="Si aucune action n'est nécessaire, côcher cette case.", verbose_name='Action(s) réalisée(s) ?')), ('who', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Member', verbose_name='Auteur')), ], ), migrations.CreateModel( name='ChangeStockOp', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField(auto_now=True)), ('quantity', models.DecimalField(decimal_places=3, max_digits=15)), ('price', models.DecimalField(decimal_places=3, max_digits=15)), ('purchase_cost', models.DecimalField(decimal_places=3, default=0, max_digits=15)), ('stock', models.DecimalField(decimal_places=3, max_digits=15)), ('label', models.CharField(max_length=20)), ('product', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Product')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='ApproCompteOp', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField(auto_now=True)), ('amount', models.DecimalField(decimal_places=2, max_digits=15)), ('kind', models.CharField(choices=[('cash', 'Espèces'), ('cheque', 'Chèque'), ('cancellation', 'Annulation/Correction'), ('repayment', 'Remboursement'), ('ontheflight', 'A la volée')], default='cash', max_length=6)), ('household', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.Household')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='PurchaseDetailOp', fields=[ ('changestockop_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='base.ChangeStockOp')), ('purchase', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Purchase')), ], options={ 'abstract': False, }, bases=('base.changestockop',), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Club', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(db_index=True, max_length=100, validators=[base.models.club_name_validator ])), ('full_name', models.CharField(max_length=100)), ('date_formed', models.DateField(auto_now_add=True)), ('email', models.EmailField(blank=True, max_length=254, null=True)), ('about', models.TextField(blank=True, help_text='Say a few lines about your club', max_length=500, null=True)), ('is_active', models.BooleanField(default=True)), ('is_supported', models.BooleanField(default=True)), ('back_img', models.ImageField(blank=True, null=True, upload_to=base.models.club_logo_upload)), ], options={ 'ordering': ['name'], }, ), migrations.CreateModel( name='ClubMember', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('is_approved', models.BooleanField(default=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('club', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Club')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='ClubMentor', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now_add=True)), ('club', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Club')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='ClubModerator', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('club', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Club')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='ClubPresident', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('club', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, to='base.Club')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='ClubSettings', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('club', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, to='base.Club')), ], ), migrations.CreateModel( name='EmailProvider', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.TextField()), ('current', models.IntegerField(default=0)), ('limit', models.IntegerField()), ('reset', models.IntegerField()), ('last_reset', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='Notification', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.TextField()), ('message', models.TextField()), ('sent_at', models.DateTimeField(auto_now_add=True)), ('club', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='base.Club')), ('receivers', models.ManyToManyField(blank=True, related_name='receivedNotifications', to=settings.AUTH_USER_MODEL)), ('sender', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sentNotifications', to=settings.AUTH_USER_MODEL)), ], ), migrations.AlterUniqueTogether( name='clubpresident', unique_together={('user', 'club')}, ), migrations.AlterUniqueTogether( name='clubmoderator', unique_together={('user', 'club')}, ), migrations.AlterUniqueTogether( name='clubmentor', unique_together={('user', 'club')}, ), migrations.AlterUniqueTogether( name='clubmember', unique_together={('user', 'club')}, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('wagtailcore', '0052_pagelogentry'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('wagtailstreamforms', '0002_form_site'), ('wagtailtrans', '0009_create_initial_language'), ('wagtailimages', '0022_uploadedimage'), ] operations = [ migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=254, verbose_name='Nome')), ('start_date', models.DateField(blank=True, null=True, verbose_name='Início')), ('end_date', models.DateField(blank=True, null=True, verbose_name='Término')), ('start_time', models.TimeField(blank=True, null=True, verbose_name='Início')), ('end_time', models.TimeField(blank=True, null=True, verbose_name='Término')), ('price', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='Valor')), ('price2x', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='Valor em 2x')), ('price3x', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='Valor em 3x')), ('vacancies', models.IntegerField(blank=True, null=True, verbose_name='Vagas')), ('registered', models.IntegerField(blank=True, default=0, null=True, verbose_name='Inscritos')), ('pre_booking', models.IntegerField(blank=True, default=0, null=True, verbose_name='Pré-reserva')), ('description', wagtail.core.fields.RichTextField(blank=True, verbose_name='Descrição')), ], options={ 'verbose_name': 'Curso', 'verbose_name_plural': 'Cursos', }, bases=(wagtail.search.index.Indexed, models.Model), ), migrations.CreateModel( name='CoursePage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=50)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, populate_from='title')), ], options={ 'verbose_name': 'Página do curso', 'verbose_name_plural': 'Página do curso', }, ), migrations.CreateModel( name='FooterText', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('body', wagtail.core.fields.RichTextField()), ], options={ 'verbose_name_plural': 'Texto do rodapé', }, ), migrations.CreateModel( name='Menu', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=50)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, help_text='Unique identifier of menu.', populate_from='title')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='TeamMember', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=254, verbose_name='Nome')), ('job_title', models.CharField(blank=True, max_length=254, verbose_name='Cargo')), ('linkedin', models.CharField(blank=True, help_text='Link para o Linkedin', max_length=254)), ('introduction', models.TextField(help_text='Breve descrição')), ('body', wagtail.core.fields.RichTextField()), ('image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), ], options={ 'verbose_name': 'Pessoa', 'verbose_name_plural': 'Equipe', }, bases=(wagtail.search.index.Indexed, models.Model), ), migrations.CreateModel( name='StandardPage', fields=[ ('translatablepage_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailtrans.translatablepage')), ('introduction', models.TextField(blank=True, help_text='Texto para descrever a página')), ('body', wagtail.core.fields.StreamField( [('heading_block', wagtail.core.blocks.StructBlock( [('heading_text', wagtail.core.blocks.CharBlock(classname='title', required=True)), ('size', wagtail.core.blocks.ChoiceBlock( blank=True, choices=[('', 'Select a header size'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], required=False))])), ('paragraph_block', wagtail.core.blocks.RichTextBlock( features=[ 'bold', 'italic', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'embed', 'code', 'blockquote', 'superscript', 'subscript', 'strikethrough' ], icon='fa-paragraph', template='blocks/paragraph_block.html')), ('image_block', wagtail.core.blocks.StructBlock( [('image', wagtail.images.blocks.ImageChooserBlock( required=True)), ('caption', wagtail.core.blocks.CharBlock(required=False)), ('attribution', wagtail.core.blocks.CharBlock(required=False))])), ('block_quote', wagtail.core.blocks.StructBlock( [('text', wagtail.core.blocks.TextBlock()), ('attribute_name', wagtail.core.blocks.CharBlock( blank=True, label='e.g. Mary Berry', required=False))])), ('embed_block', wagtail.embeds.blocks.EmbedBlock( help_text= 'Insert an embed URL e.g https://www.youtube.com/embed/SGJFWirQ3ks', icon='fa-s15', template='blocks/embed_block.html'))], blank=True, verbose_name='Page body')), ('image', models.ForeignKey( blank=True, help_text= 'Landscape mode only; horizontal width between 1000px and 3000px.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), ], options={ 'abstract': False, }, bases=('wagtailtrans.translatablepage', ), ), migrations.CreateModel( name='MenuItem', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), ('title', models.CharField( help_text='Title of menu item that will be displayed', max_length=50)), ('link_url', models.CharField( blank=True, help_text= 'Adicionar link para uma URL, por exemplo: /contato', max_length=500, null=True)), ('title_of_submenu', models.CharField( blank=True, help_text= 'Title of submenu (LEAVE BLANK if there is no custom submenu)', max_length=50, null=True)), ('icon', models.CharField(blank=True, help_text='Fontawesome icon', max_length=100)), ('show_when', models.CharField(choices=[('always', 'Sempre'), ('logged_in', 'Quando logado'), ('not_logged_in', 'Quando não estiver logado')], default='always', max_length=15)), ('link_page', models.ForeignKey(blank=True, help_text='Adicionar link para uma página', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailtrans.translatablepage')), ('menu', modelcluster.fields.ParentalKey( help_text='Menu to which this item belongs', on_delete=django.db.models.deletion.CASCADE, related_name='menu_items', to='base.menu')), ], options={ 'ordering': ['sort_order'], 'abstract': False, }, ), migrations.CreateModel( name='GalleryPage', fields=[ ('translatablepage_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailtrans.translatablepage')), ('introduction', models.TextField(blank=True, help_text='Texto para descrever a página')), ('body', wagtail.core.fields.StreamField( [('heading_block', wagtail.core.blocks.StructBlock( [('heading_text', wagtail.core.blocks.CharBlock(classname='title', required=True)), ('size', wagtail.core.blocks.ChoiceBlock( blank=True, choices=[('', 'Select a header size'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], required=False))])), ('paragraph_block', wagtail.core.blocks.RichTextBlock( features=[ 'bold', 'italic', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'embed', 'code', 'blockquote', 'superscript', 'subscript', 'strikethrough' ], icon='fa-paragraph', template='blocks/paragraph_block.html')), ('image_block', wagtail.core.blocks.StructBlock( [('image', wagtail.images.blocks.ImageChooserBlock( required=True)), ('caption', wagtail.core.blocks.CharBlock(required=False)), ('attribution', wagtail.core.blocks.CharBlock(required=False))])), ('block_quote', wagtail.core.blocks.StructBlock( [('text', wagtail.core.blocks.TextBlock()), ('attribute_name', wagtail.core.blocks.CharBlock( blank=True, label='e.g. Mary Berry', required=False))])), ('embed_block', wagtail.embeds.blocks.EmbedBlock( help_text= 'Insert an embed URL e.g https://www.youtube.com/embed/SGJFWirQ3ks', icon='fa-s15', template='blocks/embed_block.html'))], blank=True, verbose_name='Page body')), ('collection', models.ForeignKey( blank=True, help_text='Select the image collection for this gallery.', limit_choices_to=models.Q(_negated=True, name__in=['Root']), null=True, on_delete=django.db.models.deletion.SET_NULL, to='wagtailcore.collection')), ('image', models.ForeignKey( blank=True, help_text= 'Landscape mode only; horizontal width between 1000px and 3000px.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), ], options={ 'abstract': False, }, bases=('wagtailtrans.translatablepage', ), ), migrations.CreateModel( name='FormPage', fields=[ ('translatablepage_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailtrans.translatablepage')), ('intro', wagtail.core.fields.RichTextField(blank=True)), ('body', wagtail.core.fields.StreamField([( 'form', wagtail.core.blocks.StructBlock([ ('form', wagtailstreamforms.blocks.FormChooserBlock()), ('form_action', wagtail.core.blocks.CharBlock( help_text= 'The form post action. "" or "." for the current page or a url', required=False)), ('form_reference', wagtailstreamforms.blocks.InfoBlock( help_text= 'This form will be given a unique reference once saved', required=False)) ]))])), ('image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), ], options={ 'abstract': False, }, bases=('wagtailtrans.translatablepage', ), ), migrations.CreateModel( name='CourseUser', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.CharField(choices=[('enroll', 'Inscrição'), ('pre-booking', 'Pré-reserva')], max_length=30, verbose_name='Status')), ('date', models.DateTimeField(auto_now_add=True, verbose_name='Data')), ('payment_id', models.CharField(blank=True, max_length=254, verbose_name='Id do pagamento')), ('payment_status', models.CharField(blank=True, max_length=254, verbose_name='Status do pagamento')), ('payment_note', models.CharField(blank=True, max_length=254, verbose_name='Obs')), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.course', verbose_name='Curso')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Usuário')), ], ), migrations.CreateModel( name='CoursePageItem', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), ('description', wagtail.core.fields.RichTextField(blank=True, verbose_name='Descrição')), ('link_url', models.CharField( blank=True, help_text= 'Adicionar link para uma URL, por exemplo: /contato', max_length=254, null=True)), ('course_page', modelcluster.fields.ParentalKey( on_delete=django.db.models.deletion.CASCADE, related_name='course_page_items', to='base.coursepage')), ('link_page', models.ForeignKey(blank=True, help_text='Adicionar link para uma página', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailtrans.translatablepage')), ], options={ 'ordering': ['sort_order'], 'abstract': False, }, ), migrations.CreateModel( name='CourseMaterial', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=254, verbose_name='Título')), ('date', models.DateField(verbose_name='Data')), ('document', models.FileField(blank=True, null=True, upload_to=base.models.course_directory_path, verbose_name='Documento')), ('video', embed_video.fields.EmbedVideoField(blank=True, null=True, verbose_name='Vídeo')), ('content', wagtail.core.fields.StreamField( [('heading_block', wagtail.core.blocks.StructBlock( [('heading_text', wagtail.core.blocks.CharBlock(classname='title', required=True)), ('size', wagtail.core.blocks.ChoiceBlock( blank=True, choices=[('', 'Select a header size'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], required=False))])), ('paragraph_block', wagtail.core.blocks.RichTextBlock( features=[ 'bold', 'italic', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'embed', 'code', 'blockquote', 'superscript', 'subscript', 'strikethrough' ], icon='fa-paragraph', template='blocks/paragraph_block.html')), ('image_block', wagtail.core.blocks.StructBlock( [('image', wagtail.images.blocks.ImageChooserBlock( required=True)), ('caption', wagtail.core.blocks.CharBlock(required=False)), ('attribution', wagtail.core.blocks.CharBlock(required=False))])), ('block_quote', wagtail.core.blocks.StructBlock( [('text', wagtail.core.blocks.TextBlock()), ('attribute_name', wagtail.core.blocks.CharBlock( blank=True, label='e.g. Mary Berry', required=False))])), ('embed_block', wagtail.embeds.blocks.EmbedBlock( help_text= 'Insert an embed URL e.g https://www.youtube.com/embed/SGJFWirQ3ks', icon='fa-s15', template='blocks/embed_block.html'))], blank=True, verbose_name='Conteúdo')), ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.course', verbose_name='Curso')), ], options={ 'verbose_name': 'Material do curso', 'verbose_name_plural': 'Materiais do curso', }, bases=(wagtail.search.index.Indexed, models.Model), ), migrations.CreateModel( name='AdvancedFormSetting', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('to_address', models.EmailField(max_length=254)), ('form', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, related_name='advanced_settings', to='wagtailstreamforms.form')), ], options={ 'abstract': False, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('staff', '0020_auto_20190529_1529'), ('wagtailcore', '0041_group_collection_permissions_verbose_name_plural'), ('units', '0012_auto_20181019_1542'), ('wagtailimages', '0001_squashed_0021'), ] operations = [ migrations.CreateModel( name='LibNewsIndexPage', fields=[ ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), ('start_sidebar_from_here', models.BooleanField(default=False)), ('show_sidebar', models.BooleanField(default=False)), ('last_reviewed', models.DateField(blank=True, null=True, verbose_name='Last Reviewed')), ('quicklinks', wagtail.core.fields.RichTextField(blank=True)), ('quicklinks_title', models.CharField(blank=True, max_length=100)), ('view_more_link', models.URLField(blank=True, default='', max_length=255)), ('view_more_link_label', models.CharField(blank=True, max_length=100)), ('change_to_callout', models.BooleanField(default=False)), ('display_hours_in_right_sidebar', models.BooleanField(default=False)), ('enable_index', models.BooleanField(default=False)), ('display_hierarchical_listing', models.BooleanField(default=False)), ('events_feed_url', models.URLField(blank=True, help_text='Link to a Tiny Tiny RSS Feed')), ('banner_title', models.CharField(blank=True, max_length=100)), ('banner_subtitle', models.CharField(blank=True, max_length=100)), ('news_feed_url', models.URLField(blank=True, help_text='Link to a wordpress feed from the Library News Site')), ('external_news_page', models.URLField(blank=True, help_text='Link to an external news page, e.g. wordpress')), ('rich_text_heading', models.CharField(blank=True, max_length=25)), ('rich_text', wagtail.core.fields.RichTextField(blank=True, help_text='Should be a bulleted list or combination of h3 elements and bulleted lists')), ('rich_text_external_link', models.URLField(blank=True, help_text='Optional external link that displays next to the heading')), ('rich_text_link_text', models.CharField(blank=True, help_text='Display text for the rich text link', max_length=25)), ('display_current_web_exhibits', models.BooleanField(default=False)), ('contacts', wagtail.core.fields.StreamField([('contact', wagtail.core.blocks.StructBlock([('contact_person', wagtail.core.blocks.PageChooserBlock(help_text='Select a StaffPage (not a StaffPublicPage)', page_type=['staff.StaffPage'], required=False))], icon='view', required=False, template='public/blocks/contact.html'))], default=[])), ('banner_feature', models.ForeignKey(blank=True, help_text='Banner feature images should be approximately 500 × 500 pixels', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('banner_image', models.ForeignKey(blank=True, help_text='Banners should be approximately 1200 × 200 pixels', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('content_specialist', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewsindexpage_content_specialist', to='staff.StaffPage')), ('editor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewsindexpage_editor', to='staff.StaffPage')), ('fallback_image', models.ForeignKey(blank=True, help_text='Image to be used in browse display when no thumbnail is provided', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ], options={ 'abstract': False, }, bases=(wagtail.contrib.routable_page.models.RoutablePageMixin, 'wagtailcore.page', models.Model), ), migrations.CreateModel( name='LibNewsPage', fields=[ ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), ('start_sidebar_from_here', models.BooleanField(default=False)), ('show_sidebar', models.BooleanField(default=False)), ('last_reviewed', models.DateField(blank=True, null=True, verbose_name='Last Reviewed')), ('quicklinks', wagtail.core.fields.RichTextField(blank=True)), ('quicklinks_title', models.CharField(blank=True, max_length=100)), ('view_more_link', models.URLField(blank=True, default='', max_length=255)), ('view_more_link_label', models.CharField(blank=True, max_length=100)), ('change_to_callout', models.BooleanField(default=False)), ('display_hours_in_right_sidebar', models.BooleanField(default=False)), ('enable_index', models.BooleanField(default=False)), ('display_hierarchical_listing', models.BooleanField(default=False)), ('events_feed_url', models.URLField(blank=True, help_text='Link to a Tiny Tiny RSS Feed')), ('banner_title', models.CharField(blank=True, max_length=100)), ('banner_subtitle', models.CharField(blank=True, max_length=100)), ('news_feed_url', models.URLField(blank=True, help_text='Link to a wordpress feed from the Library News Site')), ('external_news_page', models.URLField(blank=True, help_text='Link to an external news page, e.g. wordpress')), ('rich_text_heading', models.CharField(blank=True, max_length=25)), ('rich_text', wagtail.core.fields.RichTextField(blank=True, help_text='Should be a bulleted list or combination of h3 elements and bulleted lists')), ('rich_text_external_link', models.URLField(blank=True, help_text='Optional external link that displays next to the heading')), ('rich_text_link_text', models.CharField(blank=True, help_text='Display text for the rich text link', max_length=25)), ('display_current_web_exhibits', models.BooleanField(default=False)), ('body', wagtail.core.fields.StreamField([('h2', wagtail.core.blocks.CharBlock(classname='title', icon='title', template='base/blocks/h2.html')), ('h3', wagtail.core.blocks.CharBlock(classname='title', icon='title', template='base/blocks/h3.html')), ('h4', wagtail.core.blocks.CharBlock(classname='title', icon='title', template='base/blocks/h4.html')), ('h5', wagtail.core.blocks.CharBlock(classname='title', icon='title', template='base/blocks/h5.html')), ('h6', wagtail.core.blocks.CharBlock(classname='title', icon='title', template='base/blocks/h6.html')), ('paragraph', wagtail.core.blocks.StructBlock([('paragraph', wagtail.core.blocks.RichTextBlock())])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock()), ('title', wagtail.core.blocks.CharBlock(required=False)), ('citation', wagtail.core.blocks.CharBlock(help_text='Photographer, artist, or creator of image', required=False)), ('caption', wagtail.core.blocks.TextBlock(help_text='Details about or description of image', required=False)), ('alt_text', wagtail.core.blocks.CharBlock(help_text='Invisible text for screen readers', required=False)), ('alignment', base.models.ImageFormatChoiceBlock()), ('source', wagtail.core.blocks.URLBlock(help_text='Link to image source (needed for Creative Commons)', required=False)), ('lightbox', wagtail.core.blocks.BooleanBlock(default=False, help_text='Link to a larger version of the image', required=False))], label='Image')), ('blockquote', wagtail.core.blocks.StructBlock([('quote', wagtail.core.blocks.TextBlock('quote title')), ('attribution', wagtail.core.blocks.CharBlock(required=False))])), ('pullquote', wagtail.core.blocks.StructBlock([('quote', wagtail.core.blocks.RichTextBlock())])), ('button', wagtail.core.blocks.StructBlock([('button_type', wagtail.core.blocks.ChoiceBlock(choices=[('btn-primary', 'Primary'), ('btn-default', 'Secondary'), ('btn-reserve', 'Reservation')])), ('button_text', wagtail.core.blocks.CharBlock(max_length=20)), ('link_external', wagtail.core.blocks.URLBlock(required=False)), ('link_page', wagtail.core.blocks.PageChooserBlock(required=False)), ('link_document', wagtail.documents.blocks.DocumentChooserBlock(required=False))])), ('video', wagtail.embeds.blocks.EmbedBlock(icon='media')), ('code', wagtail.core.blocks.StructBlock([('language', wagtail.core.blocks.ChoiceBlock(choices=[('bash', 'Bash/Shell'), ('css', 'CSS'), ('html', 'HTML'), ('javascript', 'Javascript'), ('json', 'JSON'), ('ocaml', 'OCaml'), ('php5', 'PHP'), ('html+php', 'PHP/HTML'), ('python', 'Python'), ('scss', 'SCSS'), ('yaml', 'YAML')])), ('code', wagtail.core.blocks.TextBlock())])), ('agenda_item', wagtail.core.blocks.StructBlock([('start_time', wagtail.core.blocks.TimeBlock(icon='time', required=False)), ('end_time', wagtail.core.blocks.TimeBlock(icon='time', required=False)), ('session_title', wagtail.core.blocks.CharBlock(help_text='Title of the session. Can be used as title of the talk in some situations.', icon='title', required=False)), ('event', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(help_text='Talk title, workshop title, etc.', required=False)), ('presenters', wagtail.core.blocks.CharBlock(help_text='Comma separated list of presenters (if more than one)', required=False)), ('room_number', wagtail.core.blocks.CharBlock(required=False)), ('description', wagtail.core.blocks.RichTextBlock(required=False))]), help_text='A talk or event with a title, presenter room number, and description', icon='edit', label=' '))], icon='date', template='base/blocks/agenda.html')), ('clear', wagtail.core.blocks.StructBlock([])), ('table', wagtail.contrib.table_block.blocks.TableBlock(help_text='Right + click in a table cell for more options. Use <em>text</em> for italics, <strong>text</strong> for bold, and <a href="https://duckduckgo.com">text</a> for links.', table_options={'autoColumnSize': False, 'colHeaders': False, 'editor': 'text', 'height': 108, 'language': 'en', 'minSpareRows': 0, 'renderer': 'html', 'rowHeaders': False, 'startCols': 3, 'startRows': 3, 'stretchH': 'all'}, template='base/blocks/table.html')), ('staff_listing', wagtail.core.blocks.StructBlock([('staff_listing', wagtail.core.blocks.ListBlock(wagtail.core.blocks.PageChooserBlock(), help_text='Be sure to select staff pages from Loop.', icon='edit', label='Staff listing')), ('show_photos', wagtail.core.blocks.BooleanBlock(default=False, help_text='Show staff photographs.', required=False)), ('show_contact_info', wagtail.core.blocks.BooleanBlock(default=False, help_text='Show contact information.', required=False)), ('show_subject_specialties', wagtail.core.blocks.BooleanBlock(default=False, help_text='Show subject specialties.', required=False))], icon='group', template='base/blocks/staff_listing.html')), ('solo_image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock()), ('citation', wagtail.core.blocks.RichTextBlock(blank=True, null=True)), ('caption', wagtail.core.blocks.RichTextBlock(blank=True, null=True, required=False)), ('alt_text', wagtail.core.blocks.CharBlock(help_text='Invisible text for screen readers', required=False))], help_text='Single image with caption on the right')), ('duo_image', wagtail.core.blocks.StructBlock([('image_one', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock()), ('citation', wagtail.core.blocks.RichTextBlock(blank=True, null=True)), ('caption', wagtail.core.blocks.RichTextBlock(blank=True, null=True, required=False)), ('alt_text', wagtail.core.blocks.CharBlock(help_text='Invisible text for screen readers', required=False))], help_text='First of two images displayed side by side')), ('image_two', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock()), ('citation', wagtail.core.blocks.RichTextBlock(blank=True, null=True)), ('caption', wagtail.core.blocks.RichTextBlock(blank=True, null=True, required=False)), ('alt_text', wagtail.core.blocks.CharBlock(help_text='Invisible text for screen readers', required=False))], help_text='Second of two images displayed side by side'))], help_text='Two images stacked side by side')), ('image_link', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=False)), ('alt_text', wagtail.core.blocks.CharBlock(help_text='Invisible text for screen readers', required=False)), ('icon', wagtail.core.blocks.CharBlock(help_text="Font Awesome icon name if you're not using an image", required=False)), ('link_text', wagtail.core.blocks.CharBlock(help_text='Text to display below the image or icon', required=False)), ('link_external', wagtail.core.blocks.URLBlock(required=False)), ('link_page', wagtail.core.blocks.PageChooserBlock(required=False)), ('link_document', wagtail.documents.blocks.DocumentChooserBlock(required=False))], help_text='A fancy link made out of a thumbnail and simple text')), ('local_media', base.models.LocalMediaBlock(help_text='Audio or video files that are locally hosted'))])), ('alt_text', models.CharField(blank=True, max_length=100)), ('is_feature_story', models.BooleanField(default=False)), ('excerpt', wagtail.core.fields.RichTextField(blank=True)), ('related_exhibits', wagtail.core.fields.StreamField([('exhibit', wagtail.core.blocks.StructBlock([('exhibit', wagtail.core.blocks.PageChooserBlock(help_text='Select an ExhibitPage', page_type=['lib_collections.ExhibitPage'], required=False))], icon='view', required=False, template='public/blocks/related_exhibit.html'))], default=[])), ('by_text_box', models.CharField(blank=True, max_length=200)), ('published_at', models.DateTimeField(default=django.utils.timezone.now)), ('banner_feature', models.ForeignKey(blank=True, help_text='Banner feature images should be approximately 500 × 500 pixels', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('banner_image', models.ForeignKey(blank=True, help_text='Banners should be approximately 1200 × 200 pixels', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('by_staff', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='staff.StaffPage')), ('by_unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='units.UnitPage')), ('content_specialist', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewspage_content_specialist', to='staff.StaffPage')), ('editor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewspage_editor', to='staff.StaffPage')), ('internal_news_page', models.ForeignKey(blank=True, help_text='Link to an internal news page', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), ('page_maintainer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewspage_maintainer', to='staff.StaffPage')), ('rich_text_link', models.ForeignKey(blank=True, help_text='Optional link that displays next to the heading', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), ('thumbnail', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('unit', models.ForeignKey(limit_choices_to={'display_in_dropdown': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewspage_related', to='units.UnitPage')), ], options={ 'abstract': False, }, bases=('wagtailcore.page', models.Model), ), migrations.CreateModel( name='LibNewsPageCategories', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), ], options={ 'ordering': ['sort_order'], 'abstract': False, }, ), migrations.CreateModel( name='PublicNewsCategories', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('text', models.CharField(max_length=255)), ], options={ 'verbose_name': 'Public News Category', 'verbose_name_plural': 'Public News Categories', }, bases=(models.Model, wagtail.search.index.Indexed), ), migrations.AddField( model_name='libnewspagecategories', name='category', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='lib_news.PublicNewsCategories'), ), migrations.AddField( model_name='libnewspagecategories', name='page', field=modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='lib_news_categories', to='lib_news.LibNewsPage'), ), migrations.AddField( model_name='libnewsindexpage', name='internal_news_page', field=models.ForeignKey(blank=True, help_text='Link to an internal news page', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page'), ), migrations.AddField( model_name='libnewsindexpage', name='page_maintainer', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewsindexpage_maintainer', to='staff.StaffPage'), ), migrations.AddField( model_name='libnewsindexpage', name='rich_text_link', field=models.ForeignKey(blank=True, help_text='Optional link that displays next to the heading', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page'), ), migrations.AddField( model_name='libnewsindexpage', name='unit', field=models.ForeignKey(limit_choices_to={'display_in_dropdown': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lib_news_libnewsindexpage_related', to='units.UnitPage'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('staff', '0000_manual_pre_initial'), ('units', '0000_manual_pre_initial'), ('wagtailcore', '0023_alter_page_revision_on_delete_behaviour'), ('wagtailimages', '0010_change_on_delete_behaviour'), ('public', '0031_auto_20160119_1942'), ] operations = [ migrations.CreateModel( name='ConferenceIndexPage', fields=[ ('page_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), ('start_sidebar_from_here', models.BooleanField(default=False)), ('show_sidebar', models.BooleanField(default=False)), ('last_reviewed', models.DateField(blank=True, null=True, verbose_name='Last Reviewed')), ('sort_order', models.IntegerField(blank=True, default=0)), ('content_specialist', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name= 'conferences_conferenceindexpage_content_specialist', to='staff.StaffPage')), ('editor', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferenceindexpage_editor', to='staff.StaffPage')), ('page_maintainer', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferenceindexpage_maintainer', to='staff.StaffPage')), ('unit', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferenceindexpage_related', to='units.UnitPage')), ], options={ 'abstract': False, }, bases=('wagtailcore.page', ), ), migrations.CreateModel( name='ConferencePage', fields=[ ('page_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), ('start_sidebar_from_here', models.BooleanField(default=False)), ('show_sidebar', models.BooleanField(default=False)), ('last_reviewed', models.DateField(blank=True, null=True, verbose_name='Last Reviewed')), ('sort_order', models.IntegerField(blank=True, default=0)), ('subtitle', models.CharField(max_length=100)), ('tagline', models.CharField(max_length=150)), ('branding_color', models.CharField( blank=True, max_length=7, validators=[ django.core.validators.RegexValidator( message='Please enter a hex color, e.g. #012043', regex='^#[0-9]{6}$') ])), ('start_date', models.DateTimeField(blank=True, null=True)), ('end_date', models.DateTimeField(blank=True, null=True)), ('inactive', models.BooleanField( default=False, help_text='Check this when the conference has transpired') ), ('body', wagtail.wagtailcore.fields.StreamField( (('h2', wagtail.wagtailcore.blocks.CharBlock( classname='title', icon='title', template='base/blocks/h2.html')), ('h3', wagtail.wagtailcore.blocks.CharBlock( classname='title', icon='title', template='base/blocks/h3.html')), ('h4', wagtail.wagtailcore.blocks.CharBlock( classname='title', icon='title', template='base/blocks/h4.html')), ('h5', wagtail.wagtailcore.blocks.CharBlock( classname='title', icon='title', template='base/blocks/h5.html')), ('h6', wagtail.wagtailcore.blocks.CharBlock( classname='title', icon='title', template='base/blocks/h6.html')), ('paragraph', wagtail.wagtailcore.blocks.StructBlock( (('paragraph', wagtail.wagtailcore.blocks.RichTextBlock()), ))), ('image', wagtail.wagtailcore.blocks.StructBlock( (('image', wagtail.wagtailimages.blocks.ImageChooserBlock()), ('title', wagtail.wagtailcore.blocks.CharBlock( required=False)), ('citation', wagtail.wagtailcore.blocks.CharBlock( required=False)), ('caption', wagtail.wagtailcore.blocks.TextBlock( required=False)), ('alt_text', wagtail.wagtailcore.blocks.CharBlock( required=False)), ('alignment', base.models.ImageFormatChoiceBlock()), ('source', wagtail.wagtailcore.blocks.CharBlock( required=False)), ('lightbox', wagtail.wagtailcore.blocks.BooleanBlock( default=False, required=False))), label='Image')), ('blockquote', wagtail.wagtailcore.blocks.StructBlock( (('quote', wagtail.wagtailcore.blocks.TextBlock( 'quote title')), ('attribution', wagtail.wagtailcore.blocks.CharBlock())))), ('video', wagtail.wagtailembeds.blocks.EmbedBlock(icon='media')), ('code', wagtail.wagtailcore.blocks.StructBlock( (('language', wagtail.wagtailcore.blocks.ChoiceBlock( choices=[('bash', 'Bash/Shell'), ( 'css', 'CSS'), ('html', 'HTML'), ('javascript', 'Javascript'), ('json', 'JSON'), ('ocaml', 'OCaml'), ( 'php5', 'PHP'), ('html+php', 'PHP/HTML' ), ('python', 'Python'), ('scss', 'SCSS'), ('yaml', 'YAML')])), ('code', wagtail.wagtailcore.blocks.TextBlock()))))))), ('banner_image', models.ForeignKey( blank=True, help_text='Banners need to be AxB pixels', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('conference_logo', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('content_specialist', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name= 'conferences_conferencepage_content_specialist', to='staff.StaffPage')), ('editor', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferencepage_editor', to='staff.StaffPage')), ('location', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferencepage_related', to='public.LocationPage')), ('page_maintainer', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferencepage_maintainer', to='staff.StaffPage')), ('unit', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferencepage_related', to='units.UnitPage')), ], options={ 'abstract': False, }, bases=('wagtailcore.page', ), ), migrations.CreateModel( name='ConferenceSubPage', fields=[ ('page_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), ('start_sidebar_from_here', models.BooleanField(default=False)), ('show_sidebar', models.BooleanField(default=False)), ('last_reviewed', models.DateField(blank=True, null=True, verbose_name='Last Reviewed')), ('sort_order', models.IntegerField(blank=True, default=0)), ('content_specialist', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name= 'conferences_conferencesubpage_content_specialist', to='staff.StaffPage')), ('editor', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferencesubpage_editor', to='staff.StaffPage')), ('page_maintainer', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferencesubpage_maintainer', to='staff.StaffPage')), ('unit', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences_conferencesubpage_related', to='units.UnitPage')), ], options={ 'abstract': False, }, bases=('wagtailcore.page', ), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('government_structures', '0003_auto_20180312_1009'), ] operations = [ migrations.CreateModel( name='SocioculturalDepartment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True, help_text='creation date')), ('updated_at', models.DateTimeField(auto_now=True, help_text='edition date', null=True)), ('name', models.CharField(max_length=100, verbose_name='name')), ('photo', easy_thumbnails.fields.ThumbnailerImageField( null=True, upload_to=base.models.file_path, verbose_name='photo')), ('twitter', models.CharField(max_length=50)), ('url', models.URLField(verbose_name='url')), ('government_structure', models.OneToOneField( default=base.models.lastest_government_structure, on_delete=django.db.models.deletion.CASCADE, to='government_structures.GovernmentStructure', verbose_name='government structure')), ], options={ 'verbose_name': 'sociocultural department', 'verbose_name_plural': 'sociocultural departments', 'permissions': (('view_socioculturaldepartment', 'Can view sociocultural department'), ), }, bases=(parler.models.TranslatableModelMixin, models.Model), ), migrations.CreateModel( name='SocioculturalDepartmentTranslation', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language')), ('title', models.CharField(max_length=50, verbose_name='title')), ('description', djangocms_text_ckeditor.fields.HTMLField( verbose_name='description')), ('master', models.ForeignKey( editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='sociocultural_departments.SocioculturalDepartment')), ], options={ 'verbose_name': 'sociocultural department Translation', 'db_table': 'sociocultural_departments_socioculturaldepartment_translation', 'db_tablespace': '', 'managed': True, 'default_permissions': (), }, ), migrations.CreateModel( name='SocioculturalDepartmentURL', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True, help_text='creation date')), ('updated_at', models.DateTimeField(auto_now=True, help_text='edition date', null=True)), ('url', models.URLField(verbose_name='url')), ('order', models.PositiveIntegerField(default=0, verbose_name='order')), ], options={ 'verbose_name': 'sociocultural department url', 'verbose_name_plural': 'sociocultural department urls', 'ordering': ('order', ), 'permissions': (('view_socioculturaldepartment_url', 'Can view sociocultural department url'), ), }, bases=(parler.models.TranslatableModelMixin, models.Model), ), migrations.CreateModel( name='SocioculturalDepartmentURLTranslation', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language')), ('name', models.CharField(max_length=100, null=True, verbose_name='name')), ('description', djangocms_text_ckeditor.fields.HTMLField( verbose_name='description')), ('master', models.ForeignKey( editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='sociocultural_departments.SocioculturalDepartmentURL') ), ], options={ 'verbose_name': 'sociocultural department url Translation', 'db_table': 'sociocultural_departments_socioculturaldepartmenturl_translation', 'db_tablespace': '', 'managed': True, 'default_permissions': (), }, ), migrations.AddField( model_name='socioculturaldepartment', name='urls', field=models.ManyToManyField( to='sociocultural_departments.SocioculturalDepartmentURL', verbose_name='urls'), ), migrations.AlterUniqueTogether( name='socioculturaldepartmenturltranslation', unique_together=set([('language_code', 'master')]), ), migrations.AlterUniqueTogether( name='socioculturaldepartmenttranslation', unique_together=set([('language_code', 'master')]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')), ('password', models.CharField(blank=True, max_length=128, null=True, verbose_name='password')), ('full_name', models.CharField(max_length=30, verbose_name='full name')), ('is_staff', models.BooleanField(default=False, verbose_name='staff status')), ('is_active', models.BooleanField(default=False, verbose_name='active status')), ('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={ 'verbose_name': 'user', 'verbose_name_plural': 'users', }, managers=[ ('objects', base.models.UserManager()), ], ), ]