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()),
            ],
        ),
    ]
Esempio n. 2
0
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 Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('staff', '0000_manual_pre_initial'),
        ('units', '0000_manual_pre_initial'),
        ('wagtailcore', '0023_alter_page_revision_on_delete_behaviour'),
    ]

    operations = [
        migrations.CreateModel(
            name='AskPage',
            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')),
                ('email_label', models.CharField(blank=True, max_length=254)),
                ('email', models.EmailField(blank=True, max_length=254)),
                ('phone_label', models.CharField(blank=True, max_length=254)),
                ('phone_number', models.CharField(blank=True, max_length=12, validators=[django.core.validators.RegexValidator(message='Please enter the phone number using the format 773-123-4567', regex='^[0-9]{3}-[0-9]{3}-[0-9]{4}$')])),
                ('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)),
                ('ask_widget_name', models.CharField(blank=True, max_length=100)),
                ('reference_resources', wagtail.core.fields.RichTextField()),
                ('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(required=False)), ('caption', wagtail.core.blocks.TextBlock(required=False)), ('alt_text', wagtail.core.blocks.CharBlock(required=False)), ('alignment', base.models.ImageFormatChoiceBlock()), ('source', wagtail.core.blocks.CharBlock(required=False)), ('lightbox', wagtail.core.blocks.BooleanBlock(default=False, required=False))), label='Image')), ('blockquote', wagtail.core.blocks.StructBlock((('quote', wagtail.core.blocks.TextBlock('quote title')), ('attribution', wagtail.core.blocks.CharBlock(required=False))))), ('button', wagtail.core.blocks.StructBlock((('button_type', wagtail.core.blocks.ChoiceBlock(choices=[('btn-primary', 'Primary'), ('btn-default', 'Secondary'), ('btn-reserve', 'Reservation')], default='btn-primary')), ('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'))))),
                ('content_specialist', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ask_a_librarian_askpage_content_specialist', to='staff.StaffPage')),
                ('editor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ask_a_librarian_askpage_editor', to='staff.StaffPage')),
                ('page_maintainer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ask_a_librarian_askpage_maintainer', to='staff.StaffPage')),
                ('unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ask_a_librarian_askpage_related', to='units.UnitPage')),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page', models.Model),
        ),
    ]
Esempio n. 4
0
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()),
            ],
        ),
    ]
Esempio n. 5
0
class Migration(migrations.Migration):

    replaces = [('intranetunits', '0001_initial'), ('intranetunits', '0002_auto_20151113_2245'), ('intranetunits', '0003_auto_20151118_2143'), ('intranetunits', '0004_auto_20151119_1737'), ('intranetunits', '0005_auto_20151119_1749'), ('intranetunits', '0006_auto_20151119_1832'), ('intranetunits', '0007_auto_20151119_1835'), ('intranetunits', '0008_auto_20151119_1851'), ('intranetunits', '0009_auto_20151119_2124'), ('intranetunits', '0010_auto_20151119_2133'), ('intranetunits', '0011_auto_20151123_1749'), ('intranetunits', '0012_auto_20151123_1752'), ('intranetunits', '0013_auto_20151124_0007'), ('intranetunits', '0014_auto_20151124_0008'), ('intranetunits', '0015_auto_20151125_2046'), ('intranetunits', '0016_auto_20151201_2209'), ('intranetunits', '0017_auto_20151202_1651'), ('intranetunits', '0018_auto_20151203_1806'), ('intranetunits', '0019_auto_20151203_2137'), ('intranetunits', '0020_auto_20151204_1920'), ('intranetunits', '0021_auto_20151204_1927'), ('intranetunits', '0022_intranetunitpagereports_document'), ('intranetunits', '0023_auto_20151208_2206'), ('intranetunits', '0024_auto_20151209_2251'), ('intranetunits', '0025_auto_20151210_2054'), ('intranetunits', '0026_auto_20151211_2102'), ('intranetunits', '0027_auto_20151218_2147'), ('intranetunits', '0028_auto_20151228_2126'), ('intranetunits', '0029_auto_20160107_1929'), ('intranetunits', '0030_auto_20160107_1931'), ('intranetunits', '0031_intranetunitsreportsindexpage'), ('intranetunits', '0032_auto_20160119_1942'), ('intranetunits', '0033_auto_20160202_2247'), ('intranetunits', '0034_auto_20160202_2251'), ('intranetunits', '0035_auto_20160202_2253'), ('intranetunits', '0036_auto_20160202_2255'), ('intranetunits', '0037_auto_20160203_2233'), ('intranetunits', '0038_auto_20160204_1737'), ('intranetunits', '0039_auto_20160204_1757'), ('intranetunits', '0040_auto_20160204_1810'), ('intranetunits', '0041_auto_20160204_1828'), ('intranetunits', '0042_auto_20160205_1921'), ('intranetunits', '0043_auto_20160205_1925'), ('intranetunits', '0044_auto_20160301_1838'), ('intranetunits', '0045_auto_20160307_2147'), ('intranetunits', '0046_auto_20160328_1905'), ('intranetunits', '0047_auto_20160602_1653'), ('intranetunits', '0048_auto_20160602_2028'), ('intranetunits', '0049_auto_20160609_2056'), ('intranetunits', '0050_auto_20160609_2105'), ('intranetunits', '0051_auto_20160609_2121'), ('intranetunits', '0052_auto_20160610_1600'), ('intranetunits', '0053_auto_20160912_1227'), ('intranetunits', '0054_auto_20160912_1354'), ('intranetunits', '0055_auto_20160913_1024'), ('intranetunits', '0056_auto_20160929_1632'), ('intranetunits', '0057_auto_20160930_1137'), ('intranetunits', '0058_auto_20160930_1327'), ('intranetunits', '0059_auto_20161014_1113'), ('intranetunits', '0060_auto_20161103_1604'), ('intranetunits', '0061_auto_20161104_1314')]

    initial = True

    dependencies = [
        ('wagtaildocs', '0003_add_verbose_names'),
        ('wagtailcore', '0020_add_index_on_page_first_published_at'),
        ('staff', '0000_manual_pre_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='IntranetUnitsIndexPage',
            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')),
                ('intro', wagtail.core.fields.RichTextField()),
                ('editor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsindexpage_editor', to='staff.StaffPage')),
                ('last_reviewed', models.DateField(blank=True, null=True, verbose_name='Last Reviewed')),
                ('page_maintainer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsindexpage_maintainer', to='staff.StaffPage')),
                ('show_sidebar', models.BooleanField(default=False)),
                ('start_sidebar_from_here', models.BooleanField(default=False)),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='IntranetUnitsPage',
            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')),
                ('last_reviewed', models.DateField(blank=True, null=True, verbose_name='Last Reviewed')),
                ('email', models.EmailField(blank=True, max_length=254)),
                ('phone_label', models.CharField(blank=True, max_length=254)),
                ('phone_number', models.CharField(blank=True, max_length=12, validators=[django.core.validators.RegexValidator(message='Please enter the phone number using the format 773-123-4567', regex='^[0-9]{3}-[0-9]{3}-[0-9]{4}$')])),
                ('intro', 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))))), ('button', wagtail.core.blocks.StructBlock((('button_type', wagtail.core.blocks.ChoiceBlock(choices=[('btn-primary', 'Primary'), ('btn-default', 'Secondary'), ('btn-reserve', 'Reservation')], default='btn-primary')), ('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, 'contextMenu': True, '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'))), blank=True)),
                ('staff_only_email', models.EmailField(blank=True, max_length=254)),
                ('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))))), ('button', wagtail.core.blocks.StructBlock((('button_type', wagtail.core.blocks.ChoiceBlock(choices=[('btn-primary', 'Primary'), ('btn-default', 'Secondary'), ('btn-reserve', 'Reservation')], default='btn-primary')), ('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, 'contextMenu': True, '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'))), blank=True, null=True)),
                ('editor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitspage_editor', to='staff.StaffPage')),
                ('page_maintainer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitspage_maintainer', to='staff.StaffPage')),
                ('show_sidebar', models.BooleanField(default=False)),
                ('start_sidebar_from_here', models.BooleanField(default=False)),
                ('internal_email', models.EmailField(blank=True, max_length=255)),
                ('internal_location', models.CharField(blank=True, max_length=255)),
                ('internal_phone_number', models.CharField(blank=True, max_length=255)),
                ('show_departments', models.BooleanField(default=False)),
                ('show_staff', models.BooleanField(default=False)),
                ('email_label', models.CharField(blank=True, max_length=254)),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page', models.Model),
        ),
        migrations.CreateModel(
            name='IntranetUnitsReportsPage',
            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)),
                ('editor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_editor', to='staff.StaffPage')),
                ('page_maintainer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_maintainer', to='staff.StaffPage')),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='IntranetUnitsReportsPageTable',
            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)),
                ('date', models.DateField()),
                ('summary', models.TextField()),
                ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='intranet_units_reports', to='intranetunits.IntranetUnitsReportsPage')),
                ('link_document', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtaildocs.Document')),
                ('link_external', models.URLField(blank=True, verbose_name='External link')),
                ('link_page', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')),
            ],
            options={
                'abstract': False,
                'ordering': ['sort_order'],
            },
        ),
        migrations.CreateModel(
            name='IntranetUnitsReportsIndexPage',
            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')),
                ('editor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportsindexpage_editor', to='staff.StaffPage')),
                ('page_maintainer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportsindexpage_maintainer', to='staff.StaffPage')),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page',),
        ),
        migrations.AlterField(
            model_name='intranetunitsreportspage',
            name='editor',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_editor', to='staff.StaffPage'),
        ),
        migrations.AlterField(
            model_name='intranetunitsreportspage',
            name='page_maintainer',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_maintainer', to='staff.StaffPage'),
        ),
        migrations.RemoveField(
            model_name='intranetunitsreportspage',
            name='sort_order',
        ),
        migrations.AlterField(
            model_name='intranetunitsreportspage',
            name='editor',
            field=models.ForeignKey(choices=[(44, 'Ricardo R Andrade'), (125, 'Jeffry D. Archer'), (85, 'Dean W. Armstrong'), (51, 'Dale Arntson'), (149, 'Kathleen Arthur'), (184, 'Melina Avery'), (1883, 'Shauna Babcock'), (54, 'Brian Balsamo'), (247, 'Terry Banks'), (55, 'Timothy Barnaby'), (177, 'Michelle B Bass'), (167, 'Linda Beezhold'), (205, 'Paul Belloni'), (82, 'David Bietila'), (71, 'Charles Blair'), (4906, 'Emma Boettcher'), (226, 'Steven Boozer'), (90, 'David Borycz'), (83, 'David W. Bottorff'), (225, 'Samuel B Brown'), (182, 'Michael D. Brown'), (99, 'Ellen Bryan'), (43, 'Amy M Buckland'), (211, 'Vicki Burwell-Rankin'), (56, 'Bradley Busenius'), (65, 'Maura Byrne'), (227, 'Sherry Byrne'), (134, 'John Carey'), (248, 'Timothy Clark'), (180, 'Miranda Clower'), (241, 'Steve Coats'), (66, 'Christine Colburn'), (102, 'Evelyn Collier'), (76, 'Kevin A Collier'), (77, 'James Collins'), (78, 'Christopher Cronin'), (250, 'Theodore Cueller'), (249, 'Tyler Danstrom'), (213, 'Renee Darosky'), (126, 'Judith Dartt'), (84, 'Dora Davis'), (235, 'Subrata De'), (86, 'Will Degenhard'), (228, 'Sean Dempsey'), (178, 'Melanie Dial'), (254, 'Thomas Dousa'), (255, 'Thomas Drueke'), (4835, 'Jennifer Dunlap'), (214, 'Ronald Durham'), (96, 'Elizabeth Edwards'), (68, 'Charles Ellington'), (186, 'Michael C Evans'), (201, 'Octavia Fallwell'), (88, 'David Farley'), (140, 'June P. Farris'), (152, 'Kathleen Feeney'), (69, 'Lily Fieg'), (229, 'Sean Filipov'), (179, 'M. Constance Fleischer'), (107, 'Greg Fleming'), (172, 'Lynn Franco'), (2469, 'David H Frankel'), (4815, 'Jennifer Frary'), (212, 'Raymond Gadke'), (148, 'Julia Gardner'), (252, 'Timothy Garrison'), (111, 'Joseph Gerdeman'), (204, 'Patti Gibbons'), (58, 'Barbara Gilbert'), (103, 'Fabian Gonzalez'), (52, 'Ashley Locke Gosselar'), (132, 'Jaymes B Grider'), (116, 'Gerald Hall'), (142, 'Jamal Hamilton'), (79, 'Catherine Hardy'), (232, 'Susan Harkins'), (89, 'Diana Rose Harper'), (118, 'Jamaar Harris'), (119, 'Jennifer Hart'), (166, 'Laurie Haugland'), (154, 'Kiku Hibino'), (4878, 'Taylor Hixson'), (110, 'Geraldine Hogue'), (98, 'Eileen Ielmini'), (253, 'Todd Ito'), (61, 'Brenda Johnson'), (70, 'Charlotte Jones'), (129, 'John Jung'), (135, 'John Kaderbek'), (4816, 'Kera Kelly'), (187, 'Mark Kennel'), (191, 'Michael Kenny'), (59, 'Barbara Kern'), (123, 'Hyerye Kim'), (131, 'Jenny Kim'), (42, 'Anne Knafl'), (207, 'Priya Kuppuraju'), (120, 'Hannah Landsman'), (236, 'Scott Landvatter'), (164, 'David K. Larsen'), (137, 'Jackie Larson'), (267, 'Simon Lee'), (39, 'Andrew D Lee'), (237, 'Sandra Levy'), (192, 'Melanie Levy'), (234, 'Sheri Lewis'), (46, 'Ann Lindsey'), (121, 'Holly Lipschultz'), (100, 'Elisabeth Long'), (168, 'Lyonette Louis-Jacques'), (41, 'Andrew John Lovdahl'), (57, 'Benita Luke'), (108, 'Grace Lyons'), (73, 'Cheryl Malmborg'), (113, 'Gary Mamlin'), (174, 'Amy Mantrone'), (74, 'Clint Marcy'), (175, 'Catherine M. Mardikes'), (158, 'Kristin E Martin'), (4967, 'Susan Martin'), (217, 'Renee Martonik'), (169, 'Janet L Mather'), (4834, 'Anita Marie Mechler'), (200, 'Edd Merkel'), (185, 'Stacey Metralexis'), (50, 'Daniel Meyer'), (130, 'Jon Miller'), (266, 'Yuan Mo'), (159, 'Kiya Moody'), (242, 'Steven Moore'), (189, 'James Mouw'), (75, 'Colleen Mullarkey'), (97, 'Erica Myles'), (269, 'Youli Na'), (62, 'Brittan Nannenga'), (219, 'Rose Navarro'), (2764, 'Olaf Nelson'), (87, 'Daryl Nelson'), (60, 'Benjamin Niespodziany'), (114, 'Greg Nimmo'), (139, 'James Nye'), (47, 'Adrianne Okoh'), (256, 'Tod Olson'), (265, 'Yasmin Omer'), (221, 'Ru Orb'), (48, 'Anderson Orsburn'), (196, 'Natascha Owens'), (128, 'Jee-Young Park'), (4833, 'Arnisha Parker'), (115, 'Gail Parks'), (124, 'James Anthony Patterson'), (243, 'Scott Perry'), (141, 'Julie Piacentine'), (49, 'Aaron Platte'), (222, 'Robert Pleshar'), (206, 'Laura Pontillo'), (91, 'Darryl Poole'), (160, 'Karen Prack'), (173, 'Mallory A Price'), (262, 'Bill Pugh'), (264, 'Xiaowen Qian'), (170, 'Liping Qin'), (209, 'Sheila Ralston'), (210, 'Emily Raney'), (216, 'Laura Ring'), (4842, 'Jason Robertson'), (223, 'Rachel Rosenberg'), (92, 'Darrin Rosenthal'), (45, 'Andrew Rusin'), (194, 'Marlis J. Saleh'), (208, 'Patricia Sayre-McCoy'), (109, 'George Schell'), (183, 'Margaret A. Schilt'), (260, 'William A. Schwesig'), (146, 'Joseph T Scott'), (104, 'Fred Seaton'), (143, 'James Server'), (198, 'Natasha Sharp'), (4879, 'Allyson E Smally'), (199, 'Nancy Spiegel'), (161, 'Kaitlin A Springmier'), (224, 'Rebecca Starkey'), (106, 'Julie R. Stauffer'), (80, 'Carol Stewart'), (244, 'Christopher Alexander Straughn'), (251, 'Teresa E Sullivan'), (1157, 'Sem C Sutter'), (144, 'James M. Swanson'), (93, 'Deborah Taylor'), (64, 'Brandon Tharp'), (72, 'Christie Thomas'), (101, 'Emily Anne Treptow'), (53, 'Andrea Twiss-Brooks'), (188, 'Marcene Tyler'), (81, 'Catherine Uecker'), (151, 'Keith Waclena'), (259, 'Larisa Walsh'), (176, 'Mary Lee Ward'), (231, 'Sarah G. Wenzel'), (94, 'Debra A Werner'), (171, 'Linda Wheatley-Irving'), (263, 'William White'), (190, 'Peggy Wilkins'), (112, "G'Jordan Williams"), (203, 'Patricia A. Williams'), (246, 'Shelia Wright-Coney'), (133, 'Jiaxun Benjamin Wu'), (127, 'Jin Xu'), (268, 'Ayako Yoshimura'), (163, 'Kathy Zadrozny'), (270, 'Yuan Zhou'), (271, 'Xiaoquan Zhu'), (5090, 'Karen Yu')], null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_editor', to='staff.StaffPage'),
        ),
        migrations.AlterField(
            model_name='intranetunitsreportspage',
            name='page_maintainer',
            field=models.ForeignKey(choices=[(44, 'Ricardo R Andrade'), (125, 'Jeffry D. Archer'), (85, 'Dean W. Armstrong'), (51, 'Dale Arntson'), (149, 'Kathleen Arthur'), (184, 'Melina Avery'), (1883, 'Shauna Babcock'), (54, 'Brian Balsamo'), (247, 'Terry Banks'), (55, 'Timothy Barnaby'), (177, 'Michelle B Bass'), (167, 'Linda Beezhold'), (205, 'Paul Belloni'), (82, 'David Bietila'), (71, 'Charles Blair'), (4906, 'Emma Boettcher'), (226, 'Steven Boozer'), (90, 'David Borycz'), (83, 'David W. Bottorff'), (225, 'Samuel B Brown'), (182, 'Michael D. Brown'), (99, 'Ellen Bryan'), (43, 'Amy M Buckland'), (211, 'Vicki Burwell-Rankin'), (56, 'Bradley Busenius'), (65, 'Maura Byrne'), (227, 'Sherry Byrne'), (134, 'John Carey'), (248, 'Timothy Clark'), (180, 'Miranda Clower'), (241, 'Steve Coats'), (66, 'Christine Colburn'), (102, 'Evelyn Collier'), (76, 'Kevin A Collier'), (77, 'James Collins'), (78, 'Christopher Cronin'), (250, 'Theodore Cueller'), (249, 'Tyler Danstrom'), (213, 'Renee Darosky'), (126, 'Judith Dartt'), (84, 'Dora Davis'), (235, 'Subrata De'), (86, 'Will Degenhard'), (228, 'Sean Dempsey'), (178, 'Melanie Dial'), (254, 'Thomas Dousa'), (255, 'Thomas Drueke'), (4835, 'Jennifer Dunlap'), (214, 'Ronald Durham'), (96, 'Elizabeth Edwards'), (68, 'Charles Ellington'), (186, 'Michael C Evans'), (201, 'Octavia Fallwell'), (88, 'David Farley'), (140, 'June P. Farris'), (152, 'Kathleen Feeney'), (69, 'Lily Fieg'), (229, 'Sean Filipov'), (179, 'M. Constance Fleischer'), (107, 'Greg Fleming'), (172, 'Lynn Franco'), (2469, 'David H Frankel'), (4815, 'Jennifer Frary'), (212, 'Raymond Gadke'), (148, 'Julia Gardner'), (252, 'Timothy Garrison'), (111, 'Joseph Gerdeman'), (204, 'Patti Gibbons'), (58, 'Barbara Gilbert'), (103, 'Fabian Gonzalez'), (52, 'Ashley Locke Gosselar'), (132, 'Jaymes B Grider'), (116, 'Gerald Hall'), (142, 'Jamal Hamilton'), (79, 'Catherine Hardy'), (232, 'Susan Harkins'), (89, 'Diana Rose Harper'), (118, 'Jamaar Harris'), (119, 'Jennifer Hart'), (166, 'Laurie Haugland'), (154, 'Kiku Hibino'), (4878, 'Taylor Hixson'), (110, 'Geraldine Hogue'), (98, 'Eileen Ielmini'), (253, 'Todd Ito'), (61, 'Brenda Johnson'), (70, 'Charlotte Jones'), (129, 'John Jung'), (135, 'John Kaderbek'), (4816, 'Kera Kelly'), (187, 'Mark Kennel'), (191, 'Michael Kenny'), (59, 'Barbara Kern'), (123, 'Hyerye Kim'), (131, 'Jenny Kim'), (42, 'Anne Knafl'), (207, 'Priya Kuppuraju'), (120, 'Hannah Landsman'), (236, 'Scott Landvatter'), (164, 'David K. Larsen'), (137, 'Jackie Larson'), (267, 'Simon Lee'), (39, 'Andrew D Lee'), (237, 'Sandra Levy'), (192, 'Melanie Levy'), (234, 'Sheri Lewis'), (46, 'Ann Lindsey'), (121, 'Holly Lipschultz'), (100, 'Elisabeth Long'), (168, 'Lyonette Louis-Jacques'), (41, 'Andrew John Lovdahl'), (57, 'Benita Luke'), (108, 'Grace Lyons'), (73, 'Cheryl Malmborg'), (113, 'Gary Mamlin'), (174, 'Amy Mantrone'), (74, 'Clint Marcy'), (175, 'Catherine M. Mardikes'), (158, 'Kristin E Martin'), (4967, 'Susan Martin'), (217, 'Renee Martonik'), (169, 'Janet L Mather'), (4834, 'Anita Marie Mechler'), (200, 'Edd Merkel'), (185, 'Stacey Metralexis'), (50, 'Daniel Meyer'), (130, 'Jon Miller'), (266, 'Yuan Mo'), (159, 'Kiya Moody'), (242, 'Steven Moore'), (189, 'James Mouw'), (75, 'Colleen Mullarkey'), (97, 'Erica Myles'), (269, 'Youli Na'), (62, 'Brittan Nannenga'), (219, 'Rose Navarro'), (2764, 'Olaf Nelson'), (87, 'Daryl Nelson'), (60, 'Benjamin Niespodziany'), (114, 'Greg Nimmo'), (139, 'James Nye'), (47, 'Adrianne Okoh'), (256, 'Tod Olson'), (265, 'Yasmin Omer'), (221, 'Ru Orb'), (48, 'Anderson Orsburn'), (196, 'Natascha Owens'), (128, 'Jee-Young Park'), (4833, 'Arnisha Parker'), (115, 'Gail Parks'), (124, 'James Anthony Patterson'), (243, 'Scott Perry'), (141, 'Julie Piacentine'), (49, 'Aaron Platte'), (222, 'Robert Pleshar'), (206, 'Laura Pontillo'), (91, 'Darryl Poole'), (160, 'Karen Prack'), (173, 'Mallory A Price'), (262, 'Bill Pugh'), (264, 'Xiaowen Qian'), (170, 'Liping Qin'), (209, 'Sheila Ralston'), (210, 'Emily Raney'), (216, 'Laura Ring'), (4842, 'Jason Robertson'), (223, 'Rachel Rosenberg'), (92, 'Darrin Rosenthal'), (45, 'Andrew Rusin'), (194, 'Marlis J. Saleh'), (208, 'Patricia Sayre-McCoy'), (109, 'George Schell'), (183, 'Margaret A. Schilt'), (260, 'William A. Schwesig'), (146, 'Joseph T Scott'), (104, 'Fred Seaton'), (143, 'James Server'), (198, 'Natasha Sharp'), (4879, 'Allyson E Smally'), (199, 'Nancy Spiegel'), (161, 'Kaitlin A Springmier'), (224, 'Rebecca Starkey'), (106, 'Julie R. Stauffer'), (80, 'Carol Stewart'), (244, 'Christopher Alexander Straughn'), (251, 'Teresa E Sullivan'), (1157, 'Sem C Sutter'), (144, 'James M. Swanson'), (93, 'Deborah Taylor'), (64, 'Brandon Tharp'), (72, 'Christie Thomas'), (101, 'Emily Anne Treptow'), (53, 'Andrea Twiss-Brooks'), (188, 'Marcene Tyler'), (81, 'Catherine Uecker'), (151, 'Keith Waclena'), (259, 'Larisa Walsh'), (176, 'Mary Lee Ward'), (231, 'Sarah G. Wenzel'), (94, 'Debra A Werner'), (171, 'Linda Wheatley-Irving'), (263, 'William White'), (190, 'Peggy Wilkins'), (112, "G'Jordan Williams"), (203, 'Patricia A. Williams'), (246, 'Shelia Wright-Coney'), (133, 'Jiaxun Benjamin Wu'), (127, 'Jin Xu'), (268, 'Ayako Yoshimura'), (163, 'Kathy Zadrozny'), (270, 'Yuan Zhou'), (271, 'Xiaoquan Zhu'), (5090, 'Karen Yu')], null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_maintainer', to='staff.StaffPage'),
        ),
        migrations.AlterField(
            model_name='intranetunitsreportspage',
            name='editor',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_editor', to='staff.StaffPage'),
        ),
        migrations.AlterField(
            model_name='intranetunitsreportspage',
            name='page_maintainer',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='intranetunits_intranetunitsreportspage_maintainer', to='staff.StaffPage'),
        ),
    ]
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),
        ),
    ]
Esempio n. 7
0
class Migration(migrations.Migration):

    replaces = [('ask_a_librarian', '0001_initial'),
                ('ask_a_librarian', '0002_auto_20160307_2145'),
                ('ask_a_librarian', '0003_auto_20160307_2147'),
                ('ask_a_librarian', '0004_askpage_link_text'),
                ('ask_a_librarian', '0005_auto_20160310_2038'),
                ('ask_a_librarian', '0006_auto_20160328_1905'),
                ('ask_a_librarian', '0007_auto_20160602_1653'),
                ('ask_a_librarian', '0008_auto_20160602_2028'),
                ('ask_a_librarian', '0009_auto_20160609_2056'),
                ('ask_a_librarian', '0010_auto_20160609_2105'),
                ('ask_a_librarian', '0011_auto_20160609_2121'),
                ('ask_a_librarian', '0012_remove_askpage_sort_order'),
                ('ask_a_librarian', '0013_auto_20160616_1727'),
                ('ask_a_librarian',
                 '0014_askpage_display_hours_in_right_sidebar'),
                ('ask_a_librarian', '0015_auto_20160623_1449'),
                ('ask_a_librarian', '0016_askpage_events_feed_url'),
                ('ask_a_librarian', '0017_auto_20160624_1847'),
                ('ask_a_librarian', '0018_askpage_news_feed_url'),
                ('ask_a_librarian', '0019_askpage_active_tag'),
                ('ask_a_librarian', '0020_auto_20160629_2118'),
                ('ask_a_librarian', '0021_askpage_rich_text_external_link'),
                ('ask_a_librarian', '0022_auto_20160630_1949'),
                ('ask_a_librarian', '0023_askpage_change_to_callout'),
                ('ask_a_librarian', '0024_remove_askpage_active_tag'),
                ('ask_a_librarian', '0025_auto_20160702_1751'),
                ('ask_a_librarian', '0026_auto_20160702_1754'),
                ('ask_a_librarian', '0027_auto_20160708_1033'),
                ('ask_a_librarian', '0028_askpage_banner_subtitle'),
                ('ask_a_librarian', '0029_auto_20160912_1227'),
                ('ask_a_librarian', '0030_auto_20160912_1354'),
                ('ask_a_librarian', '0031_auto_20160913_1024'),
                ('ask_a_librarian', '0032_askpage_banner_feature'),
                ('ask_a_librarian', '0033_auto_20160929_1632'),
                ('ask_a_librarian', '0034_auto_20160930_1137'),
                ('ask_a_librarian', '0035_auto_20160930_1327'),
                ('ask_a_librarian', '0036_auto_20161014_1113'),
                ('ask_a_librarian', '0037_auto_20161103_1604'),
                ('ask_a_librarian', '0038_auto_20161104_1314')]

    initial = True

    dependencies = [
        ('units', '0000_manual_pre_initial'),
        ('wagtailimages', '0013_make_rendition_upload_callable'),
        ('staff', '0000_manual_pre_initial'),
        ('wagtailcore', '0023_alter_page_revision_on_delete_behaviour'),
        ('wagtaildocs', '0004_capitalizeverbose'),
        ('wagtailcore', '0028_merge'),
    ]

    operations = [
        migrations.CreateModel(
            name='AskPage',
            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')),
                ('email_label', models.CharField(blank=True, max_length=254)),
                ('email', models.EmailField(blank=True, max_length=254)),
                ('phone_label', models.CharField(blank=True, max_length=254)),
                ('phone_number',
                 models.CharField(
                     blank=True,
                     max_length=12,
                     validators=[
                         django.core.validators.RegexValidator(
                             message=
                             'Please enter the phone number using the format 773-123-4567',
                             regex='^[0-9]{3}-[0-9]{3}-[0-9]{4}$')
                     ])),
                ('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')),
                ('ask_widget_name', models.CharField(blank=True,
                                                     max_length=100)),
                ('reference_resources',
                 wagtail.core.fields.RichTextField(blank=True)),
                ('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))))),
                      ('button',
                       wagtail.core.blocks.StructBlock(
                           (('button_type',
                             wagtail.core.blocks.ChoiceBlock(
                                 choices=[('btn-primary', 'Primary'),
                                          ('btn-default', 'Secondary'),
                                          ('btn-reserve', 'Reservation')],
                                 default='btn-primary')),
                            ('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,
                               'contextMenu': True,
                               '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'
                                                       ))))),
                ('content_specialist',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='ask_a_librarian_askpage_content_specialist',
                     to='staff.StaffPage')),
                ('editor',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='ask_a_librarian_askpage_editor',
                     to='staff.StaffPage')),
                ('page_maintainer',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='ask_a_librarian_askpage_maintainer',
                     to='staff.StaffPage')),
                ('unit',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='ask_a_librarian_askpage_related',
                     to='units.UnitPage')),
                ('fax_number',
                 models.CharField(
                     blank=True,
                     max_length=12,
                     validators=[
                         django.core.validators.RegexValidator(
                             message=
                             'Please enter the phone number using the format 773-123-4567',
                             regex='^[0-9]{3}-[0-9]{3}-[0-9]{4}$')
                     ])),
                ('link_document',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('link_external',
                 models.URLField(blank=True, verbose_name='External link')),
                ('link_page',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtailcore.Page')),
                ('link_text', models.CharField(blank=True, max_length=255)),
                ('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)),
                ('display_hours_in_right_sidebar',
                 models.BooleanField(default=False)),
                ('display_hierarchical_listing',
                 models.BooleanField(default=False)),
                ('enable_index', models.BooleanField(default=False)),
                ('events_feed_url',
                 models.URLField(blank=True,
                                 help_text='Link to a Tiny Tiny RSS Feed')),
                ('news_feed_url',
                 models.URLField(
                     blank=True,
                     help_text=
                     'Link to a wordpress feed from the Library News Site')),
                ('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_heading',
                 models.CharField(blank=True, max_length=25)),
                ('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')),
                ('rich_text_link_text',
                 models.CharField(
                     blank=True,
                     help_text='Display text for the rich text link',
                     max_length=25)),
                ('rich_text_external_link',
                 models.URLField(
                     blank=True,
                     help_text=
                     'Optional external link that displays next to the heading'
                 )),
                ('schedule_appointment_page',
                 models.ForeignKey(
                     blank=True,
                     help_text='Link to a contact form',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtailcore.Page')),
                ('secondary_phone_number',
                 models.CharField(
                     blank=True,
                     max_length=12,
                     validators=[
                         django.core.validators.RegexValidator(
                             message=
                             'Please enter the phone number using the format 773-123-4567',
                             regex='^[0-9]{3}-[0-9]{3}-[0-9]{4}$')
                     ])),
                ('visit_page',
                 models.ForeignKey(
                     blank=True,
                     help_text='Link to a location or hours page',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtailcore.Page')),
                ('change_to_callout', models.BooleanField(default=False)),
                ('external_news_page',
                 models.URLField(
                     blank=True,
                     help_text='Link to an external news page, e.g. wordpress')
                 ),
                ('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')),
                ('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')),
                ('banner_title', models.CharField(blank=True, max_length=100)),
                ('banner_subtitle', models.CharField(blank=True,
                                                     max_length=100)),
                ('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')),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page', models.Model),
        ),
    ]
Esempio n. 8
0
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,
            },
        ),
    ]
Esempio n. 9
0
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')},
        ),
    ]
Esempio n. 10
0
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,
            },
        ),
    ]
Esempio n. 11
0
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',),
        ),
    ]
Esempio n. 12
0
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()),
            ],
        ),
    ]
Esempio n. 13
0
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', '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'),
        ),
    ]