예제 #1
0
class ApplicationDecisionOption(models.Model):
    name = models.CharField(max_length=255, unique=True)
    level = models.ManyToManyField(
        AdmissionLevel,
        blank=True,
        null=True,
        help_text="This decision can apply for these levels.")

    def __unicode__(self):
        return unicode(self.name)
class Migration(migrations.Migration):

    dependencies = [
        ('people_db', '0018_auto_20160419_0926'),
    ]

    operations = [
        migrations.AlterField(
            model_name='abarating',
            name='person',
            field=models.ForeignKey(
                related_name='aba_ratings',
                blank=True,
                to='people_db.Person',
                help_text='The person rated by the American Bar Association',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='abarating',
            name='rating',
            field=models.CharField(help_text='The rating given to the person.',
                                   max_length=5,
                                   choices=[
                                       ('ewq', 'Exceptionally Well Qualified'),
                                       ('wq', 'Well Qualified'),
                                       ('q', 'Qualified'),
                                       ('nq', 'Not Qualified'),
                                       ('nqa',
                                        'Not Qualified By Reason of Age')
                                   ]),
        ),
        migrations.AlterField(
            model_name='education',
            name='person',
            field=models.ForeignKey(
                related_name='educations',
                blank=True,
                to='people_db.Person',
                help_text='The person that completed this education',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='education',
            name='school',
            field=models.ForeignKey(
                related_name='educations',
                to='people_db.School',
                help_text='The school where this education was compeleted',
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='person',
            name='date_dob',
            field=models.DateField(
                help_text='The date of birth for the person',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='date_dod',
            field=models.DateField(
                help_text='The date of death for the person',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='dob_city',
            field=models.CharField(
                help_text='The city where the person was born.',
                max_length=50,
                blank=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='dob_state',
            field=localflavor.us.models.USStateField(
                blank=True,
                help_text='The state where the person was born.',
                max_length=2,
                choices=[('AL', 'Alabama'), ('AK', 'Alaska'),
                         ('AS', 'American Samoa'), ('AZ', 'Arizona'),
                         ('AR', 'Arkansas'), ('AA', 'Armed Forces Americas'),
                         ('AE', 'Armed Forces Europe'),
                         ('AP', 'Armed Forces Pacific'), ('CA', 'California'),
                         ('CO', 'Colorado'), ('CT', 'Connecticut'),
                         ('DE', 'Delaware'), ('DC', 'District of Columbia'),
                         ('FL', 'Florida'), ('GA', 'Georgia'), ('GU', 'Guam'),
                         ('HI', 'Hawaii'), ('ID', 'Idaho'), ('IL', 'Illinois'),
                         ('IN', 'Indiana'), ('IA', 'Iowa'), ('KS', 'Kansas'),
                         ('KY', 'Kentucky'), ('LA', 'Louisiana'),
                         ('ME', 'Maine'), ('MD', 'Maryland'),
                         ('MA', 'Massachusetts'), ('MI', 'Michigan'),
                         ('MN', 'Minnesota'), ('MS', 'Mississippi'),
                         ('MO', 'Missouri'), ('MT', 'Montana'),
                         ('NE', 'Nebraska'), ('NV', 'Nevada'),
                         ('NH', 'New Hampshire'), ('NJ', 'New Jersey'),
                         ('NM', 'New Mexico'), ('NY', 'New York'),
                         ('NC', 'North Carolina'), ('ND', 'North Dakota'),
                         ('MP', 'Northern Mariana Islands'), ('OH', 'Ohio'),
                         ('OK', 'Oklahoma'), ('OR', 'Oregon'),
                         ('PA', 'Pennsylvania'), ('PR', 'Puerto Rico'),
                         ('RI', 'Rhode Island'), ('SC', 'South Carolina'),
                         ('SD', 'South Dakota'), ('TN', 'Tennessee'),
                         ('TX', 'Texas'), ('UT', 'Utah'), ('VT', 'Vermont'),
                         ('VI', 'Virgin Islands'), ('VA', 'Virginia'),
                         ('WA', 'Washington'), ('WV', 'West Virginia'),
                         ('WI', 'Wisconsin'), ('WY', 'Wyoming')]),
        ),
        migrations.AlterField(
            model_name='person',
            name='dod_city',
            field=models.CharField(help_text='The city where the person died.',
                                   max_length=50,
                                   blank=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='dod_state',
            field=localflavor.us.models.USStateField(
                blank=True,
                help_text='The state where the person died.',
                max_length=2,
                choices=[('AL', 'Alabama'), ('AK', 'Alaska'),
                         ('AS', 'American Samoa'), ('AZ', 'Arizona'),
                         ('AR', 'Arkansas'), ('AA', 'Armed Forces Americas'),
                         ('AE', 'Armed Forces Europe'),
                         ('AP', 'Armed Forces Pacific'), ('CA', 'California'),
                         ('CO', 'Colorado'), ('CT', 'Connecticut'),
                         ('DE', 'Delaware'), ('DC', 'District of Columbia'),
                         ('FL', 'Florida'), ('GA', 'Georgia'), ('GU', 'Guam'),
                         ('HI', 'Hawaii'), ('ID', 'Idaho'), ('IL', 'Illinois'),
                         ('IN', 'Indiana'), ('IA', 'Iowa'), ('KS', 'Kansas'),
                         ('KY', 'Kentucky'), ('LA', 'Louisiana'),
                         ('ME', 'Maine'), ('MD', 'Maryland'),
                         ('MA', 'Massachusetts'), ('MI', 'Michigan'),
                         ('MN', 'Minnesota'), ('MS', 'Mississippi'),
                         ('MO', 'Missouri'), ('MT', 'Montana'),
                         ('NE', 'Nebraska'), ('NV', 'Nevada'),
                         ('NH', 'New Hampshire'), ('NJ', 'New Jersey'),
                         ('NM', 'New Mexico'), ('NY', 'New York'),
                         ('NC', 'North Carolina'), ('ND', 'North Dakota'),
                         ('MP', 'Northern Mariana Islands'), ('OH', 'Ohio'),
                         ('OK', 'Oklahoma'), ('OR', 'Oregon'),
                         ('PA', 'Pennsylvania'), ('PR', 'Puerto Rico'),
                         ('RI', 'Rhode Island'), ('SC', 'South Carolina'),
                         ('SD', 'South Dakota'), ('TN', 'Tennessee'),
                         ('TX', 'Texas'), ('UT', 'Utah'), ('VT', 'Vermont'),
                         ('VI', 'Virgin Islands'), ('VA', 'Virginia'),
                         ('WA', 'Washington'), ('WV', 'West Virginia'),
                         ('WI', 'Wisconsin'), ('WY', 'Wyoming')]),
        ),
        migrations.AlterField(
            model_name='person',
            name='gender',
            field=models.CharField(blank=True,
                                   help_text="The person's gender",
                                   max_length=2,
                                   choices=[('m', 'Male'), ('f', 'Female'),
                                            ('o', 'Other')]),
        ),
        migrations.AlterField(
            model_name='person',
            name='is_alias_of',
            field=models.ForeignKey(
                related_name='aliases',
                blank=True,
                to='people_db.Person',
                help_text=
                'Any nicknames or other aliases that a person has. For example, William Jefferson Clinton has an alias to Bill',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='person',
            name='name_first',
            field=models.CharField(help_text='The first name of this person.',
                                   max_length=50),
        ),
        migrations.AlterField(
            model_name='person',
            name='name_last',
            field=models.CharField(help_text='The last name of this person',
                                   max_length=50,
                                   db_index=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='name_middle',
            field=models.CharField(
                help_text='The middle name or names of this person',
                max_length=50,
                blank=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='name_suffix',
            field=models.CharField(
                blank=True,
                help_text="Any suffixes that this person's name may have",
                max_length=5,
                choices=[('jr', 'Jr.'), ('sr', 'Sr.'), ('1', 'I'), ('2', 'II'),
                         ('3', 'III'), ('4', 'IV')]),
        ),
        migrations.AlterField(
            model_name='person',
            name='race',
            field=models.ManyToManyField(
                help_text="A person's race or races if they are multi-racial.",
                to='people_db.Race',
                blank=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='religion',
            field=models.CharField(help_text='The religion of a person',
                                   max_length=30,
                                   blank=True),
        ),
        migrations.AlterField(
            model_name='person',
            name='slug',
            field=models.SlugField(
                help_text=
                'A generated path for this item as used in CourtListener URLs',
                max_length=158),
        ),
        migrations.AlterField(
            model_name='politicalaffiliation',
            name='date_end',
            field=models.DateField(help_text='The date the affiliation ended.',
                                   null=True,
                                   blank=True),
        ),
        migrations.AlterField(
            model_name='politicalaffiliation',
            name='date_start',
            field=models.DateField(
                help_text=
                'The date the political affiliation was first documented',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='politicalaffiliation',
            name='person',
            field=models.ForeignKey(
                related_name='political_affiliations',
                blank=True,
                to='people_db.Person',
                help_text='The person with the political affiliation',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='politicalaffiliation',
            name='political_party',
            field=models.CharField(
                help_text='The political party the person is affiliated with.',
                max_length=5,
                choices=[('d', 'Democrat'), ('r', 'Republican'),
                         ('i', 'Independent'), ('g', 'Green'),
                         ('l', 'Libertarian'), ('f', 'Federalist'),
                         ('w', 'Whig'), ('j', 'Jeffersonian Republican'),
                         ('u', 'National Union')]),
        ),
        migrations.AlterField(
            model_name='politicalaffiliation',
            name='source',
            field=models.CharField(
                blank=True,
                help_text=
                'The source of the political affiliation -- where it is documented that this affiliation exists.',
                max_length=5,
                choices=[('b', 'Ballot'), ('a', 'Appointer'), ('o', 'Other')]),
        ),
        migrations.AlterField(
            model_name='position',
            name='appointer',
            field=models.ForeignKey(
                related_name='appointed_positions',
                blank=True,
                to='people_db.Position',
                help_text=
                'If this is an appointed position, the person-position responsible for the appointment. This field references other positions instead of referencing people because that allows you to know the position a person held when an appointment was made.',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='position',
            name='court',
            field=models.ForeignKey(
                related_name='court_positions',
                blank=True,
                to='search.Court',
                help_text=
                'If this was a judicial position, this is the jurisdiction where it was held.',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='position',
            name='how_selected',
            field=models.CharField(
                blank=True,
                help_text=
                'The method that was used for selecting this judge for this position (generally an election or appointment).',
                max_length=20,
                choices=[
                    ('Election', (('e_part', 'Partisan Election'),
                                  ('e_non_part', 'Non-Partisan Election'))),
                    ('Appointment', (('a_pres', 'Appointment (President)'),
                                     ('a_gov', 'Appointment (Governor)'),
                                     ('a_legis', 'Appointment (Legislature)')))
                ]),
        ),
        migrations.AlterField(
            model_name='position',
            name='job_title',
            field=models.CharField(
                help_text=
                "If title isn't in position_type, a free-text position may be entered here.",
                max_length=100,
                blank=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='judicial_committee_action',
            field=models.CharField(
                blank=True,
                help_text=
                'The action that the judicial committee took in response to a nomination',
                max_length=20,
                choices=[('no_rep', 'Not Reported'),
                         ('rep_w_rec', 'Reported with Recommendation'),
                         ('rep_wo_rec', 'Reported without Recommendation'),
                         ('rec_postpone', 'Recommendation Postponed'),
                         ('rec_bad', 'Recommended Unfavorably')]),
        ),
        migrations.AlterField(
            model_name='position',
            name='nomination_process',
            field=models.CharField(
                blank=True,
                help_text=
                'The process by which a person was nominated into this position.',
                max_length=20,
                choices=[('fed_senate', 'U.S. Senate'),
                         ('state_senate', 'State Senate'),
                         ('election', 'Primary Election'),
                         ('merit_comm', 'Merit Commission')]),
        ),
        migrations.AlterField(
            model_name='position',
            name='organization_name',
            field=models.CharField(
                help_text=
                'If the organization where this position was held is not a school or court, this is the place it was held.',
                max_length=120,
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='person',
            field=models.ForeignKey(
                related_name='positions',
                blank=True,
                to='people_db.Person',
                help_text='The person that held the position.',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='position',
            name='position_type',
            field=models.CharField(
                blank=True,
                max_length=20,
                null=True,
                help_text=
                'If this is a judicial position, this indicates the role the person had. This field may be blank if job_title is complete instead.',
                choices=[(
                    'Judge',
                    (('act-jud', 'Acting Judge'),
                     ('act-pres-jud',
                      'Acting Presiding Judge'),
                     ('ass-jud',
                      'Associate Judge'), ('ass-c-jud',
                                           'Associate Chief Judge'),
                     ('ass-pres-jud',
                      'Associate Presiding Judge'), ('jud', 'Judge'),
                     ('jus', 'Justice'), ('c-jud',
                                          'Chief Judge'), ('c-jus',
                                                           'Chief Justice'),
                     ('pres-jud', 'Presiding Judge'),
                     ('pres-jus',
                      'Presiding Justice'), ('pres-mag',
                                             'Presiding Magistrate'),
                     ('com',
                      'Commissioner'), ('com-dep',
                                        'Deputy Commissioner'),
                     ('jud-pt',
                      'Judge Pro Tem'),
                     ('jus-pt',
                      'Justice Pro Tem'), ('mag-pt',
                                           'Magistrate Pro Tem'),
                     ('ref-jud-tr',
                      'Judge Trial Referee'), ('ref-off', 'Official Referee'),
                     ('ref-state-trial', 'State Trial Referee'),
                     ('ret-act-jus', 'Active Retired Justice'),
                     ('ret-ass-jud',
                      'Retired Associate Judge'), ('ret-c-jud',
                                                   'Retired Chief Judge'),
                     ('ret-jus',
                      'Retired Justice'), ('ret-senior-jud',
                                           'Senior Judge'),
                     ('spec-chair',
                      'Special Chairman'), ('spec-jud', 'Special Judge'),
                     ('spec-m',
                      'Special Master'),
                     ('spec-scjcbc',
                      'Special Superior Court Judge for Complex Business Cases'
                      ), ('chair', 'Chairman'), ('chan',
                                                 'Chancellor'), ('mag',
                                                                 'Magistrate'),
                     ('presi-jud',
                      'President'), ('res-jud',
                                     'Reserve Judge'), ('trial-jud',
                                                        'Trial Judge'),
                     ('vice-chan', 'Vice Chancellor'), ('vice-cj',
                                                        'Vice Chief Judge'))),
                         ('Attorney General',
                          (('att-gen', 'Attorney General'),
                           ('att-gen-ass', 'Assistant Attorney General'),
                           ('att-gen-ass-spec',
                            'Special Assistant Attorney General'),
                           ('sen-counsel', 'Senior Counsel'),
                           ('dep-sol-gen', 'Deputy Solicitor General'))),
                         ('Appointing Authority',
                          (('pres', 'President of the United States'),
                           ('gov', 'Governor'))),
                         ('Clerkships', (('clerk', 'Clerk'),
                                         ('staff-atty', 'Staff Attorney'))),
                         ('prof', 'Professor'), ('prac', 'Practitioner'),
                         ('pros', 'Prosecutor'),
                         ('pub_def', 'Public Defender'),
                         ('legis', 'Legislator')]),
        ),
        migrations.AlterField(
            model_name='position',
            name='predecessor',
            field=models.ForeignKey(
                blank=True,
                to='people_db.Person',
                help_text='The person that previously held this position',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='position',
            name='school',
            field=models.ForeignKey(
                blank=True,
                to='people_db.School',
                help_text=
                'If this was an academic job, this is the school where the person worked.',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='position',
            name='termination_reason',
            field=models.CharField(blank=True,
                                   help_text='The reason for a termination',
                                   max_length=25,
                                   choices=[
                                       ('ded', 'Death'),
                                       ('retire_vol', 'Voluntary Retirement'),
                                       ('retire_mand', 'Mandatory Retirement'),
                                       ('resign', 'Resigned'),
                                       ('other_pos',
                                        'Appointed to Other Judgeship'),
                                       ('lost', 'Lost Election'),
                                       ('abolished', 'Court Abolished'),
                                       ('bad_judge',
                                        'Impeached and Convicted'),
                                       ('recess_not_confirmed',
                                        'Recess Appointment Not Confirmed')
                                   ]),
        ),
        migrations.AlterField(
            model_name='position',
            name='voice_vote',
            field=models.BooleanField(
                help_text=
                'Whether the Senate voted by voice vote for this position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='vote_type',
            field=models.CharField(
                blank=True,
                help_text='The type of vote that resulted in this position.',
                max_length=2,
                choices=[('s', 'Senate'), ('p', 'Partisan Election'),
                         ('np', 'Non-Partisan Election')]),
        ),
        migrations.AlterField(
            model_name='position',
            name='votes_no',
            field=models.PositiveIntegerField(
                help_text=
                'If votes are an integer, this is the number of votes opposed to a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='votes_no_percent',
            field=models.FloatField(
                help_text=
                'If votes are a percentage, this is the percentage of votes opposed to a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='votes_yes',
            field=models.PositiveIntegerField(
                help_text=
                'If votes are an integer, this is the number of votes in favor of a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='votes_yes_percent',
            field=models.FloatField(
                help_text=
                'If votes are a percentage, this is the percentage of votes in favor of a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='date_retention',
            field=models.DateField(help_text='The date of retention',
                                   db_index=True),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='position',
            field=models.ForeignKey(
                related_name='retention_events',
                blank=True,
                to='people_db.Position',
                help_text='The position that was retained by this event.',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='retention_type',
            field=models.CharField(
                help_text=
                'The method through which this position was retained.',
                max_length=10,
                choices=[('reapp_gov', 'Governor Reappointment'),
                         ('reapp_leg', 'Legislative Reappointment'),
                         ('elec_p', 'Partisan Election'),
                         ('elec_n', 'Nonpartisan Election'),
                         ('elec_u', 'Uncontested Election')]),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='unopposed',
            field=models.BooleanField(
                help_text=
                'Whether the position was unopposed at the time of retention.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='votes_no',
            field=models.PositiveIntegerField(
                help_text=
                'If votes are an integer, this is the number of votes opposed to a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='votes_no_percent',
            field=models.FloatField(
                help_text=
                'If votes are a percentage, this is the percentage of votes opposed to a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='votes_yes',
            field=models.PositiveIntegerField(
                help_text=
                'If votes are an integer, this is the number of votes in favor of a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='votes_yes_percent',
            field=models.FloatField(
                help_text=
                'If votes are a percentage, this is the percentage of votes in favor of a position.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='retentionevent',
            name='won',
            field=models.BooleanField(
                help_text='Whether the retention event was won.',
                null=True,
                blank=True),
        ),
        migrations.AlterField(
            model_name='school',
            name='is_alias_of',
            field=models.ForeignKey(
                blank=True,
                to='people_db.School',
                help_text='Any alternate names that a school may have',
                null=True,
                on_delete=models.CASCADE),
        ),
        migrations.AlterField(
            model_name='school',
            name='name',
            field=models.CharField(help_text='The name of the school or alias',
                                   max_length=120,
                                   db_index=True),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name="Course",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("specifics", models.TextField()),
                ("capacity", models.PositiveSmallIntegerField()),
                ("expected_capacity", models.PositiveIntegerField()),
                ("shown", models.BooleanField(default=True)),
                (
                    "instructors",
                    models.ManyToManyField(
                        blank=True,
                        related_name="instructors",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "participants",
                    models.ManyToManyField(
                        blank=True,
                        related_name="participants",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="CourseType",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("name", models.CharField(max_length=300)),
                ("abbreviation", models.CharField(max_length=5)),
                ("description", models.TextField(blank=True)),
                ("visible", models.BooleanField(default=True)),
                ("cost", models.PositiveIntegerField()),
                (
                    "requirement",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="registration.coursetype",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="Discount",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("number_of_courses",
                 models.PositiveSmallIntegerField(unique=True)),
                ("discount", models.PositiveIntegerField()),
                ("stripe_id", models.CharField(max_length=50)),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="EarlySignupEmail",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("email", models.EmailField(max_length=254)),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="RegistrationSettings",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("early_registration_open", models.DateTimeField()),
                ("early_signup_code",
                 models.CharField(blank=True, max_length=15)),
                ("registration_open", models.DateTimeField()),
                ("registration_close", models.DateTimeField()),
                (
                    "refund_period",
                    models.DurationField(default=datetime.timedelta(days=14)),
                ),
                ("cancellation_fee", models.PositiveIntegerField()),
                (
                    "time_to_pay_invoice",
                    models.DurationField(default=datetime.timedelta(days=2)),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="WaitListInvoice",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("date_added", models.DateTimeField(auto_now_add=True)),
                ("email", models.CharField(max_length=200)),
                ("expires", models.DateTimeField()),
                ("invoice_id", models.CharField(max_length=200)),
                ("paid", models.BooleanField(default=False)),
                ("voided", models.BooleanField(default=False)),
                (
                    "course",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.PROTECT,
                        to="registration.course",
                    ),
                ),
                (
                    "user",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.PROTECT,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="UserCart",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                (
                    "user",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="RegistrationForm",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("address", models.CharField(max_length=300)),
                ("address_2", models.CharField(blank=True, max_length=300)),
                ("city", models.CharField(max_length=100)),
                ("state", localflavor.us.models.USStateField(max_length=2)),
                ("zip_code",
                 localflavor.us.models.USZipCodeField(max_length=10)),
                (
                    "phone_1",
                    phonenumber_field.modelfields.PhoneNumberField(
                        max_length=128, region=None),
                ),
                (
                    "phone_2",
                    phonenumber_field.modelfields.PhoneNumberField(
                        blank=True, max_length=128, region=None),
                ),
                ("date_of_birth", models.DateField()),
                (
                    "gender",
                    models.CharField(
                        choices=[
                            ("M", "Male"),
                            ("F", "Female"),
                            ("N", "Non-Binary"),
                            ("U", "Does not wish to identify"),
                        ],
                        max_length=1,
                    ),
                ),
                ("pronouns", models.CharField(blank=True, max_length=30)),
                ("emergency_contact_name", models.CharField(max_length=200)),
                (
                    "emergency_contact_relationship_to_you",
                    models.CharField(max_length=200),
                ),
                (
                    "emergency_contact_phone_number",
                    phonenumber_field.modelfields.PhoneNumberField(
                        max_length=128, region=None),
                ),
                ("physical_fitness", models.TextField()),
                ("medical_condition_description",
                 models.TextField(blank=True)),
                ("allergy_condition_description",
                 models.TextField(blank=True)),
                ("medications_descriptions", models.TextField(blank=True)),
                ("medical_insurance", models.BooleanField()),
                ("name_of_policy_holder", models.CharField(max_length=200)),
                ("relation_of_policy_holder",
                 models.CharField(max_length=100)),
                ("signature", models.CharField(max_length=3)),
                ("todays_date", models.DateField()),
                (
                    "user",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="Profile",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("email_confirmed", models.BooleanField(default=False)),
                ("stripe_customer_id", models.CharField(max_length=200)),
                (
                    "user",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="PaymentRecord",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("checkout_session_id",
                 models.CharField(blank=True, max_length=200)),
                ("payment_intent_id",
                 models.CharField(blank=True, max_length=200)),
                ("invoice_id", models.CharField(blank=True, max_length=200)),
                (
                    "user",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.PROTECT,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="GearItem",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("item", models.CharField(max_length=300)),
                (
                    "type",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        to="registration.coursetype",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="CourseDate",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("name", models.CharField(max_length=200)),
                ("start", models.DateTimeField()),
                ("end", models.DateTimeField()),
                (
                    "course",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="registration.course",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="CourseBought",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("product_id", models.CharField(max_length=200)),
                ("price_id", models.CharField(max_length=200)),
                ("refunded", models.BooleanField(default=False)),
                ("refund_id", models.CharField(blank=True, max_length=200)),
                (
                    "course",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.PROTECT,
                        to="registration.course",
                    ),
                ),
                (
                    "payment_record",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.PROTECT,
                        to="registration.paymentrecord",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.AddField(
            model_name="course",
            name="type",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="registration.coursetype",
            ),
        ),
        migrations.CreateModel(
            name="CartItem",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                (
                    "cart",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="registration.usercart",
                    ),
                ),
                (
                    "course",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="registration.course",
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="WaitList",
            fields=[
                (
                    "id",
                    models.UUIDField(
                        default=uuid.uuid4,
                        editable=False,
                        primary_key=True,
                        serialize=False,
                    ),
                ),
                ("date_added", models.DateTimeField(auto_now_add=True)),
                (
                    "course",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="registration.course",
                    ),
                ),
                (
                    "user",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "unique_together": {("course", "user")},
            },
        ),
    ]
예제 #4
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [("auth", "0008_alter_user_username_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",
                    ),
                ),
                (
                    "uuid",
                    models.UUIDField(default=uuid.uuid4, verbose_name="identifier"),
                ),
                ("username", models.EmailField(max_length=254, unique=True)),
                ("given_name", models.CharField(max_length=255)),
                ("middle_name", models.CharField(blank=True, max_length=255)),
                ("family_name", models.CharField(max_length=255)),
                ("_identicon", models.TextField(verbose_name="identicon")),
                ("is_active", models.BooleanField(default=False)),
                ("is_staff", models.BooleanField(default=False)),
                (
                    "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",
                    ),
                ),
            ],
            options={
                "permissions": (
                    ("can_create", "Can Create"),
                    ("can_view", "Can View"),
                    ("can_edit", "Can Edit"),
                    ("can_remove", "Can Remove"),
                    ("can_view_permissions", "Can View Permissions"),
                    ("can_edit_permissions", "Can Edit Permissions"),
                )
            },
            bases=(models.Model, guardian.mixins.GuardianUserMixin),
        ),
        migrations.CreateModel(
            name="DemographicData",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                (
                    "uuid",
                    models.UUIDField(default=uuid.uuid4, verbose_name="identifier"),
                ),
                (
                    "number_of_children",
                    models.CharField(
                        choices=[
                            ("0", "0"),
                            ("1", "1"),
                            ("2", "2"),
                            ("3", "3"),
                            ("4", "4"),
                            ("5", "5"),
                            ("6", "6"),
                            ("7", "7"),
                            ("8", "8"),
                            ("9", "9"),
                            ("10", "10"),
                            (">10", "More than 10"),
                        ],
                        max_length=3,
                    ),
                ),
                (
                    "child_birthdays",
                    django.contrib.postgres.fields.ArrayField(
                        base_field=models.DateField(),
                        size=None,
                        verbose_name="children's birthdays",
                    ),
                ),
                (
                    "languages_spoken_at_home",
                    models.TextField(verbose_name="languages spoken at home"),
                ),
                (
                    "number_of_guardians",
                    models.CharField(
                        choices=[
                            ("1", "1"),
                            ("2", "2"),
                            ("3>", "3 or more"),
                            ("varies", "varies"),
                        ],
                        max_length=6,
                    ),
                ),
                ("number_of_guardians_explanation", models.TextField()),
                (
                    "race_identification",
                    models.CharField(
                        choices=[
                            ("white", "White"),
                            ("hisp", "Hispanic, Latino, or Spanish origin"),
                            ("black", "Black or African American"),
                            ("asian", "Asian"),
                            ("native", "American Indian or Alaska Native"),
                            ("mideast-naf", "Middle Eastern or North African"),
                            (
                                "hawaiian-pac-isl",
                                "Native Hawaiian or Other Pacific Islander",
                            ),
                            ("other", "Another race, ethnicity, or origin"),
                        ],
                        max_length=16,
                    ),
                ),
                (
                    "age",
                    models.CharField(
                        choices=[
                            ("<18", "under 18"),
                            ("18-21", "18-21"),
                            ("22-24", "22-24"),
                            ("25-29", "25-29"),
                            ("30-34", "30-34"),
                            ("35-39", "35-39"),
                            ("40-44", "40-44"),
                            ("45-59", "45-49"),
                            ("50s", "50-59"),
                            ("60s", "60-69"),
                            (">70", "70 or over"),
                        ],
                        max_length=5,
                    ),
                ),
                (
                    "gender",
                    models.CharField(
                        choices=[
                            ("m", "male"),
                            ("f", "female"),
                            ("o", "other"),
                            ("na", "prefer not to answer"),
                        ],
                        max_length=2,
                    ),
                ),
                (
                    "education_level",
                    models.CharField(
                        choices=[
                            ("some", "some or attending high school"),
                            ("hs", "high school diploma or GED"),
                            ("col", "some or attending college"),
                            ("assoc", "2-year college degree"),
                            ("bach", "4-year college degree"),
                            (
                                "grad",
                                "some or attending graduate or professional school",
                            ),
                            ("prof", "graduate or professional degree"),
                        ],
                        max_length=5,
                    ),
                ),
                (
                    "spouse_education_level",
                    models.CharField(
                        choices=[
                            ("some", "some or attending high school"),
                            ("hs", "high school diploma or GED"),
                            ("col", "some or attending college"),
                            ("assoc", "2-year college degree"),
                            ("bach", "4-year college degree"),
                            (
                                "grad",
                                "some or attending graduate or professional school",
                            ),
                            ("prof", "graduate or professional degree"),
                            ("na", "not applicable - no spouse or partner"),
                        ],
                        max_length=5,
                    ),
                ),
                (
                    "annual_income",
                    models.CharField(
                        choices=[
                            ("0", "0"),
                            ("5000", "5000"),
                            ("10000", "10000"),
                            ("15000", "15000"),
                            ("20000", "20000"),
                            ("30000", "30000"),
                            ("40000", "40000"),
                            ("50000", "50000"),
                            ("60000", "60000"),
                            ("70000", "70000"),
                            ("80000", "80000"),
                            ("90000", "90000"),
                            ("100000", "100000"),
                            ("110000", "110000"),
                            ("120000", "120000"),
                            ("130000", "130000"),
                            ("140000", "140000"),
                            ("150000", "150000"),
                            ("160000", "160000"),
                            ("170000", "170000"),
                            ("180000", "180000"),
                            ("190000", "190000"),
                            (">200000", "over 200000"),
                            ("na", "prefer not to answer"),
                        ],
                        max_length=7,
                    ),
                ),
                ("number_of_books", models.IntegerField()),
                ("additional_comments", models.TextField()),
                ("country", django_countries.fields.CountryField(max_length=2)),
                ("state", localflavor.us.models.USStateField(max_length=2)),
                (
                    "density",
                    models.CharField(
                        choices=[
                            ("urban", "urban"),
                            ("suburban", "suburban"),
                            ("rural", "rural"),
                        ],
                        max_length=8,
                    ),
                ),
                (
                    "extra",
                    project.fields.datetime_aware_jsonfield.DateTimeAwareJSONField(
                        null=True
                    ),
                ),
                (
                    "previous",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="next_demographic_data",
                        related_query_name="next_demographic_data",
                        to="accounts.DemographicData",
                    ),
                ),
                (
                    "user",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="demographics",
                        related_query_name="demographics",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Organization",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("name", models.CharField(max_length=255)),
                ("url", models.URLField(verbose_name="Website")),
            ],
            options={
                "permissions": (
                    ("can_view", "Can View"),
                    ("can_edit", "Can Edit"),
                    ("can_create", "Can Create"),
                    ("can_remove", "Can Remove"),
                )
            },
        ),
        migrations.CreateModel(
            name="Profile",
            fields=[
                (
                    "id",
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "uuid",
                    models.UUIDField(default=uuid.uuid4, verbose_name="identifier"),
                ),
                ("given_name", models.CharField(max_length=255)),
                ("birthday", models.DateField()),
                (
                    "gender",
                    models.CharField(
                        choices=[
                            ("m", "male"),
                            ("f", "female"),
                            ("o", "other"),
                            ("na", "prefer not to answer"),
                        ],
                        max_length=2,
                    ),
                ),
                ("age_at_birth", models.CharField(max_length=25)),
                ("additional_information", models.TextField()),
                ("deleted", models.BooleanField(default=False)),
                (
                    "user",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="profiles",
                        related_query_name="profiles",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
        ),
        migrations.AddField(
            model_name="user",
            name="organization",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name="users",
                related_query_name="user",
                to="accounts.Organization",
            ),
        ),
        migrations.AddField(
            model_name="user",
            name="user_permissions",
            field=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",
            ),
        ),
    ]
예제 #5
0
class Applicant(models.Model, CustomFieldModel):
    fname = models.CharField(max_length=255, verbose_name="First Name")
    mname = models.CharField(max_length=255,
                             verbose_name="Middle Name",
                             blank=True)
    lname = models.CharField(max_length=255, verbose_name="Last Name")
    pic = models.ImageField(upload_to="applicant_pics", blank=True, null=True)
    sex = models.CharField(max_length=1,
                           choices=(('M', 'Male'), ('F', 'Female')),
                           blank=True)
    bday = models.DateField(blank=True,
                            null=True,
                            verbose_name="Birth Date",
                            validators=settings.DATE_VALIDATORS)
    unique_id = models.IntegerField(blank=True, null=True, unique=True)
    street = models.CharField(max_length=150, blank=True)
    city = models.CharField(max_length=360, blank=True)
    state = USStateField(blank=True)
    zip = models.CharField(max_length=10, blank=True)
    ssn = models.CharField(max_length=11, blank=True, verbose_name="SSN")
    parent_email = models.EmailField(blank=True, null=True)
    email = models.EmailField(blank=True, null=True)
    notes = models.TextField(blank=True)
    family_preferred_language = models.ForeignKey('sis.LanguageChoice',
                                                  blank=True,
                                                  null=True,
                                                  on_delete=models.SET_NULL,
                                                  default=get_default_language)
    siblings = models.ManyToManyField('sis.Student',
                                      blank=True,
                                      related_name="+")
    year = models.ForeignKey('sis.GradeLevel',
                             blank=True,
                             null=True,
                             on_delete=models.SET_NULL,
                             help_text="Applying for this grade level",
                             default=get_year)
    school_year = models.ForeignKey('sis.SchoolYear',
                                    blank=True,
                                    null=True,
                                    on_delete=models.SET_NULL,
                                    default=get_school_year)
    parent_guardians = models.ManyToManyField('sis.EmergencyContact',
                                              verbose_name="Student contact",
                                              blank=True,
                                              null=True)
    ethnicity = models.ForeignKey(
        EthnicityChoice,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    hs_grad_yr = models.IntegerField(blank=True, null=True, max_length=4)
    elem_grad_yr = models.IntegerField(blank=True, null=True, max_length=4)
    present_school = models.ForeignKey(
        FeederSchool,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    present_school_typed = models.CharField(
        max_length=255,
        blank=True,
        help_text=
        "This is intended for applicants to apply for the school. Administrators should use the above."
    )
    present_school_type_typed = models.CharField(max_length=255, blank=True)
    religion = models.ForeignKey(
        ReligionChoice,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    place_of_worship = models.ForeignKey(
        PlaceOfWorship,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    follow_up_date = models.DateField(blank=True,
                                      null=True,
                                      validators=settings.DATE_VALIDATORS)
    open_house_attended = models.ManyToManyField(OpenHouse,
                                                 blank=True,
                                                 null=True)
    parent_guardian_first_name = models.CharField(max_length=150, blank=True)
    parent_guardian_last_name = models.CharField(max_length=150, blank=True)
    relationship_to_student = models.CharField(max_length=500, blank=True)
    heard_about_us = models.ForeignKey(
        HeardAboutUsOption,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    from_online_inquiry = models.BooleanField(default=False, )
    first_contact = models.ForeignKey(
        FirstContactOption,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    borough = models.ForeignKey(
        BoroughOption,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    country_of_birth = models.ForeignKey(
        CountryOption,
        blank=True,
        null=True,
        default=get_default_country,
        on_delete=models.SET_NULL,
    )
    immigration_status = models.ForeignKey(
        ImmigrationOption,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    ready_for_export = models.BooleanField(default=False, )
    sis_student = models.OneToOneField('sis.Student',
                                       blank=True,
                                       null=True,
                                       related_name="appl_student",
                                       on_delete=models.SET_NULL)

    total_income = models.DecimalField(max_digits=10,
                                       decimal_places=2,
                                       blank=True,
                                       null=True)
    adjusted_available_income = models.DecimalField(max_digits=10,
                                                    decimal_places=2,
                                                    blank=True,
                                                    null=True)
    calculated_payment = models.DecimalField(max_digits=10,
                                             decimal_places=2,
                                             blank=True,
                                             null=True)

    date_added = models.DateField(auto_now_add=True,
                                  blank=True,
                                  null=True,
                                  validators=settings.DATE_VALIDATORS)
    level = models.ForeignKey(AdmissionLevel,
                              blank=True,
                              null=True,
                              on_delete=models.SET_NULL)
    checklist = models.ManyToManyField(AdmissionCheck, blank=True, null=True)
    application_decision = models.ForeignKey(
        ApplicationDecisionOption,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    application_decision_by = models.ForeignKey(
        User,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    withdrawn = models.ForeignKey(
        WithdrawnChoices,
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
    )
    withdrawn_note = models.CharField(max_length=500, blank=True)
    first_to_college = models.BooleanField(default=False, blank=True)
    individual_education_plan = models.BooleanField(default=False, blank=True)
    lives_with = models.CharField(
        blank=True,
        max_length=50,
        choices=(
            ('Both Parents', 'Both Parents'),
            ('Mother', 'Mother'),
            ('Father', 'Father'),
            ('Guardian(s)', 'Guardian(s)'),
        ),
    )

    class Meta:
        ordering = (
            'lname',
            'fname',
        )

    def __unicode__(self):
        return "%s %s %s" % (self.fname, self.mname, self.lname)

    @property
    def parent_guardian(self):
        """ Compatibility to act like sis.student parent_guardian
        """
        return u"{} {}".format(self.parent_guardian_first_name,
                               self.parent_guardian_last_name)

    def set_cache(self, contact):
        self.parent_guardian_first_name = contact.fname
        self.parent_guardian_last_name = contact.lname
        self.street = contact.street
        self.state = contact.state
        self.zip = contact.zip
        self.city = contact.city
        self.parent_email = contact.email
        self.save()

        for contact in self.parent_guardians.exclude(id=contact.id):
            # There should only be one primary contact!
            if contact.primary_contact:
                contact.primary_contact = False
                contact.save()

    def __set_level(self):
        prev = None
        for level in AdmissionLevel.objects.all():
            checks = level.admissioncheck_set.filter(required=True)
            i = 0
            for check in checks:
                if check in self.checklist.all():
                    i += 1
            if not i >= checks.count():
                break
            prev = level
        self.level = prev

    def save(self, *args, **kwargs):
        if self.id:
            self.__set_level()
        # create contact log entry on application decision
        if self.application_decision and self.id:
            old = Applicant.objects.get(id=self.id)
            if not old.application_decision:
                contact_log = ContactLog(user=self.application_decision_by,
                                         applicant=self,
                                         note="Application Decision: %s" %
                                         (self.application_decision, ))
                contact_log.save()
        super(Applicant, self).save(*args, **kwargs)
예제 #6
0
class Migration(migrations.Migration):

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

    operations = [
        migrations.CreateModel(
            name='BarMembership',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  serialize=False,
                                  auto_created=True,
                                  primary_key=True)),
                ('barMembership',
                 localflavor.us.models.USStateField(
                     max_length=2,
                     verbose_name=
                     'the two letter state abbreviation of a bar membership',
                     choices=[
                         ('AL', 'Alabama'), ('AK', 'Alaska'),
                         ('AS', 'American Samoa'), ('AZ', 'Arizona'),
                         ('AR', 'Arkansas'), ('AA', 'Armed Forces Americas'),
                         ('AE', 'Armed Forces Europe'),
                         ('AP', 'Armed Forces Pacific'), ('CA', 'California'),
                         ('CO', 'Colorado'), ('CT', 'Connecticut'),
                         ('DE', 'Delaware'), ('DC', 'District of Columbia'),
                         ('FL', 'Florida'), ('GA', 'Georgia'), ('GU', 'Guam'),
                         ('HI', 'Hawaii'), ('ID', 'Idaho'), ('IL', 'Illinois'),
                         ('IN', 'Indiana'), ('IA', 'Iowa'), ('KS', 'Kansas'),
                         ('KY', 'Kentucky'), ('LA', 'Louisiana'),
                         ('ME', 'Maine'), ('MD', 'Maryland'),
                         ('MA', 'Massachusetts'), ('MI', 'Michigan'),
                         ('MN', 'Minnesota'), ('MS', 'Mississippi'),
                         ('MO', 'Missouri'), ('MT', 'Montana'),
                         ('NE', 'Nebraska'), ('NV', 'Nevada'),
                         ('NH', 'New Hampshire'), ('NJ', 'New Jersey'),
                         ('NM', 'New Mexico'), ('NY', 'New York'),
                         ('NC', 'North Carolina'), ('ND', 'North Dakota'),
                         ('MP', 'Northern Mariana Islands'), ('OH', 'Ohio'),
                         ('OK', 'Oklahoma'), ('OR', 'Oregon'),
                         ('PA', 'Pennsylvania'), ('PR', 'Puerto Rico'),
                         ('RI', 'Rhode Island'), ('SC', 'South Carolina'),
                         ('SD', 'South Dakota'), ('TN', 'Tennessee'),
                         ('TX', 'Texas'), ('UT', 'Utah'), ('VT', 'Vermont'),
                         ('VI', 'Virgin Islands'), ('VA', 'Virginia'),
                         ('WA', 'Washington'), ('WV', 'West Virginia'),
                         ('WI', 'Wisconsin'), ('WY', 'Wyoming')
                     ])),
            ],
            options={
                'ordering': ['barMembership'],
                'verbose_name': 'bar membership',
            },
        ),
        migrations.CreateModel(
            name='UserProfile',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  serialize=False,
                                  auto_created=True,
                                  primary_key=True)),
                ('stub_account', models.BooleanField(default=False)),
                ('employer',
                 models.CharField(max_length=100,
                                  null=True,
                                  verbose_name="the user's employer",
                                  blank=True)),
                ('address1',
                 models.CharField(max_length=100, null=True, blank=True)),
                ('address2',
                 models.CharField(max_length=100, null=True, blank=True)),
                ('city', models.CharField(max_length=50, null=True,
                                          blank=True)),
                ('state', models.CharField(max_length=2, null=True,
                                           blank=True)),
                ('zip_code',
                 models.CharField(max_length=10, null=True, blank=True)),
                ('avatar',
                 models.ImageField(upload_to='avatars/%Y/%m/%d',
                                   verbose_name="the user's avatar",
                                   blank=True)),
                ('wants_newsletter',
                 models.BooleanField(
                     default=False,
                     verbose_name='This user wants newsletters')),
                ('plaintext_preferred',
                 models.BooleanField(
                     default=False,
                     verbose_name='should the alert should be sent in plaintext'
                 )),
                ('activation_key', models.CharField(max_length=40)),
                ('key_expires',
                 models.DateTimeField(
                     null=True,
                     verbose_name=
                     "The time and date when the user's activation_key expires",
                     blank=True)),
                ('email_confirmed',
                 models.BooleanField(
                     default=False,
                     verbose_name='The user has confirmed their email address')
                 ),
                ('barmembership',
                 models.ManyToManyField(
                     to='users.BarMembership',
                     verbose_name='the bar memberships held by the user',
                     blank=True)),
                ('user',
                 models.OneToOneField(
                     related_name='profile',
                     verbose_name='the user this model extends',
                     to=settings.AUTH_USER_MODEL,
                     on_delete=models.CASCADE)),
            ],
            options={
                'verbose_name': 'user profile',
                'verbose_name_plural': 'user profiles',
            },
        ),
    ]
예제 #7
0
class Migration(migrations.Migration):

    initial = True

    dependencies: List[Tuple[str, str]] = []

    operations = [
        migrations.CreateModel(
            name='Car',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                (
                    'license_plate',
                    models.CharField(
                        max_length=31,
                        validators=[
                            django.core.validators.RegexValidator(
                                '^[a-zA-Z0-9 ]*$',
                                'Only alphanumeric characters and spaces allowed',
                            )
                        ],
                    ),
                ),
                ('state', localflavor.us.models.USStateField(max_length=2)),
                ('make', models.CharField(max_length=63)),
                ('model', models.CharField(max_length=63)),
                (
                    'year',
                    models.PositiveIntegerField(validators=[
                        django.core.validators.MaxValueValidator(2020),
                        django.core.validators.MinValueValidator(1903),
                    ]),
                ),
                ('color', models.CharField(max_length=63)),
            ],
        ),
        migrations.CreateModel(
            name='ClimbingLeaderApplication',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                (
                    'previous_rating',
                    models.CharField(blank=True,
                                     help_text='Previous rating (if any)',
                                     max_length=255),
                ),
                (
                    'year',
                    models.PositiveIntegerField(
                        default=ws.utils.dates.ws_year,
                        help_text='Year this application pertains to.',
                        validators=[
                            django.core.validators.MinValueValidator(2014)
                        ],
                    ),
                ),
                (
                    'desired_rating',
                    models.CharField(
                        choices=[
                            ('Bouldering', 'Bouldering'),
                            ('Single-pitch', 'Single-pitch'),
                            ('Multi-pitch', 'Multi-pitch'),
                            ('Bouldering + Single-pitch',
                             'Bouldering + Single-pitch'),
                            ('Bouldering + Multi-pitch',
                             'Bouldering + Multi-pitch'),
                        ],
                        max_length=32,
                    ),
                ),
                ('years_climbing', models.IntegerField()),
                ('years_climbing_outside', models.IntegerField()),
                (
                    'outdoor_bouldering_grade',
                    models.CharField(
                        help_text=
                        'At what grade are you comfortable bouldering outside?',
                        max_length=255,
                    ),
                ),
                (
                    'outdoor_sport_leading_grade',
                    models.CharField(
                        help_text=
                        'At what grade are you comfortable leading outside on sport routes?',
                        max_length=255,
                    ),
                ),
                (
                    'outdoor_trad_leading_grade',
                    models.CharField(
                        help_text=
                        'At what grade are you comfortable leading outside on trad routes?',
                        max_length=255,
                    ),
                ),
                (
                    'familiarity_spotting',
                    models.CharField(
                        choices=[
                            ('none', 'not at all'),
                            ('some', 'some exposure'),
                            ('comfortable', 'comfortable'),
                            ('very comfortable', 'very comfortable'),
                        ],
                        max_length=16,
                        verbose_name=
                        'Familarity with spotting boulder problems',
                    ),
                ),
                (
                    'familiarity_bolt_anchors',
                    models.CharField(
                        choices=[
                            ('none', 'not at all'),
                            ('some', 'some exposure'),
                            ('comfortable', 'comfortable'),
                            ('very comfortable', 'very comfortable'),
                        ],
                        max_length=16,
                        verbose_name="Familiarity with 2-bolt 'sport' anchors",
                    ),
                ),
                (
                    'familiarity_gear_anchors',
                    models.CharField(
                        choices=[
                            ('none', 'not at all'),
                            ('some', 'some exposure'),
                            ('comfortable', 'comfortable'),
                            ('very comfortable', 'very comfortable'),
                        ],
                        max_length=16,
                        verbose_name="Familiarity with trad 'gear' anchors",
                    ),
                ),
                (
                    'familiarity_sr',
                    models.CharField(
                        choices=[
                            ('none', 'not at all'),
                            ('some', 'some exposure'),
                            ('comfortable', 'comfortable'),
                            ('very comfortable', 'very comfortable'),
                        ],
                        max_length=16,
                        verbose_name='Familiarity with multi-pitch self-rescue',
                    ),
                ),
                (
                    'spotting_description',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Describe how you would spot a climber on a meandering tall bouldering problem.',
                    ),
                ),
                (
                    'tr_anchor_description',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Describe how you would build a top-rope anchor at a sport crag.',
                        verbose_name='Top rope anchor description',
                    ),
                ),
                (
                    'rappel_description',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Describe how you would set up a safe rappel.',
                    ),
                ),
                (
                    'gear_anchor_description',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Describe what you look for when building a typical gear anchor.',
                    ),
                ),
                ('formal_training', models.TextField(blank=True)),
                ('teaching_experience', models.TextField(blank=True)),
                (
                    'notable_climbs',
                    models.TextField(
                        blank=True,
                        help_text=
                        'What are some particularly memorable climbs you have done?',
                    ),
                ),
                (
                    'favorite_route',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Do you have a favorite route? If so, what is it and why?',
                    ),
                ),
                (
                    'extra_info',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Is there anything else you would like us to know?',
                    ),
                ),
            ],
            options={
                'ordering': ['time_created'],
                'abstract': False
            },
        ),
        migrations.CreateModel(
            name='Discount',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                (
                    'active',
                    models.BooleanField(
                        default=True,
                        help_text='Discount is currently open & active'),
                ),
                ('name', models.CharField(max_length=255)),
                ('summary', models.CharField(max_length=255)),
                ('terms', models.TextField(max_length=4095)),
                ('url', models.URLField(blank=True, null=True)),
                (
                    'ga_key',
                    models.CharField(
                        help_text=
                        'key for Google spreadsheet with membership information (shared as read-only with the company)',
                        max_length=63,
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
                (
                    'student_required',
                    models.BooleanField(
                        default=False,
                        help_text=
                        'Discount provider requires recipients to be students',
                    ),
                ),
                (
                    'report_school',
                    models.BooleanField(
                        default=False,
                        help_text=
                        'Report MIT affiliation if participant is a student',
                    ),
                ),
                (
                    'report_student',
                    models.BooleanField(
                        default=False,
                        help_text=
                        'Report MIT affiliation and student status to discount provider',
                    ),
                ),
                (
                    'report_leader',
                    models.BooleanField(
                        default=False,
                        help_text=
                        'Report MITOC leader status to discount provider',
                    ),
                ),
                (
                    'report_access',
                    models.BooleanField(
                        default=False,
                        help_text=
                        'Report if participant should have leader, student, or admin level access',
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name='EmergencyContact',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('name', models.CharField(max_length=255)),
                (
                    'cell_phone',
                    phonenumber_field.modelfields.PhoneNumberField(
                        max_length=128),
                ),
                ('relationship', models.CharField(max_length=63)),
                ('email', models.EmailField(max_length=254)),
            ],
        ),
        migrations.CreateModel(
            name='EmergencyInfo',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('allergies', models.CharField(max_length=255)),
                ('medications', models.CharField(max_length=255)),
                (
                    'medical_history',
                    models.TextField(
                        help_text=
                        'Anything your trip leader would want to know about.',
                        max_length=2000,
                    ),
                ),
                (
                    'emergency_contact',
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.EmergencyContact',
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name='Feedback',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('showed_up', models.BooleanField(default=True)),
                ('comments', models.TextField(max_length=2000)),
                ('time_created', models.DateTimeField(auto_now_add=True)),
            ],
            options={'ordering': ['participant', '-time_created']},
        ),
        migrations.CreateModel(
            name='HikingLeaderApplication',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                (
                    'previous_rating',
                    models.CharField(blank=True,
                                     help_text='Previous rating (if any)',
                                     max_length=255),
                ),
                (
                    'year',
                    models.PositiveIntegerField(
                        default=ws.utils.dates.ws_year,
                        help_text='Year this application pertains to.',
                        validators=[
                            django.core.validators.MinValueValidator(2014)
                        ],
                    ),
                ),
                (
                    'desired_rating',
                    models.CharField(
                        choices=[('Leader', 'Leader'),
                                 ('Co-Leader', 'Co-Leader')],
                        help_text=
                        'Co-Leader: Can co-lead a 3-season hiking trip with a Leader. Leader: Can run 3-season hiking trips.',
                        max_length=10,
                    ),
                ),
                (
                    'mitoc_experience',
                    models.TextField(
                        help_text=
                        'How long have you been a MITOC member? Please indicate what official MITOC hikes and Circuses you have been on. Include approximate dates and locations, number of participants, trail conditions, type of trip, etc. Give details of whether you participated, led, or co-led these trips. [Optional]: If you like, briefly summarize your experience on unofficial trips or experience outside of New England.',
                        max_length=5000,
                        verbose_name='Hiking Experience with MITOC',
                    ),
                ),
                (
                    'formal_training',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Please give details of any medical training and qualifications, with dates. Also include any other formal outdoor education or qualifications.',
                        max_length=5000,
                    ),
                ),
                (
                    'leadership_experience',
                    models.TextField(
                        blank=True,
                        help_text=
                        "If you've been a leader elsewhere, please describe that here. This could include leadership in other collegiate outing clubs, student sports clubs, NOLS, Outward Bound, or AMC; working as a guide, summer camp counselor, or Scout leader; or organizing hikes with friends.",
                        max_length=5000,
                        verbose_name='Group outdoor/leadership experience',
                    ),
                ),
            ],
            options={
                'ordering': ['time_created'],
                'abstract': False
            },
        ),
        migrations.CreateModel(
            name='LeaderRating',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                (
                    'activity',
                    models.CharField(
                        choices=[
                            ('biking', 'Biking'),
                            ('boating', 'Boating'),
                            ('cabin', 'Cabin'),
                            ('climbing', 'Climbing'),
                            ('hiking', 'Hiking'),
                            ('winter_school', 'Winter School'),
                            ('circus', 'Circus'),
                            ('official_event', 'Official Event'),
                            ('course', 'Course'),
                        ],
                        max_length=31,
                    ),
                ),
                ('rating', models.CharField(max_length=31)),
                ('notes', models.TextField(blank=True, max_length=500)),
                ('active', models.BooleanField(default=True)),
            ],
            options={
                'ordering': ['participant'],
                'abstract': False
            },
        ),
        migrations.CreateModel(
            name='LeaderRecommendation',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                (
                    'activity',
                    models.CharField(
                        choices=[
                            ('biking', 'Biking'),
                            ('boating', 'Boating'),
                            ('cabin', 'Cabin'),
                            ('climbing', 'Climbing'),
                            ('hiking', 'Hiking'),
                            ('winter_school', 'Winter School'),
                            ('circus', 'Circus'),
                            ('official_event', 'Official Event'),
                            ('course', 'Course'),
                        ],
                        max_length=31,
                    ),
                ),
                ('rating', models.CharField(max_length=31)),
                ('notes', models.TextField(blank=True, max_length=500)),
            ],
            options={
                'ordering': ['participant'],
                'abstract': False
            },
        ),
        migrations.CreateModel(
            name='LeaderSignUp',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
                ('notes', models.TextField(blank=True, max_length=1000)),
            ],
            options={'ordering': ['time_created']},
        ),
        migrations.CreateModel(
            name='LectureAttendance',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                (
                    'year',
                    models.PositiveIntegerField(
                        default=ws.utils.dates.ws_year,
                        help_text=
                        'Winter School year when lectures were attended.',
                        validators=[
                            django.core.validators.MinValueValidator(2016)
                        ],
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.CreateModel(
            name='LotteryInfo',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                (
                    'car_status',
                    models.CharField(
                        choices=[
                            ('none', 'Not driving'),
                            ('own', 'Can drive own car'),
                            ('rent', 'Willing to rent'),
                        ],
                        default='none',
                        max_length=7,
                    ),
                ),
                (
                    'number_of_passengers',
                    models.PositiveIntegerField(
                        blank=True,
                        null=True,
                        validators=[
                            django.core.validators.MaxValueValidator(
                                13, message='Do you drive a bus?')
                        ],
                    ),
                ),
                ('last_updated', models.DateTimeField(auto_now=True)),
            ],
            options={'ordering': ['car_status', 'number_of_passengers']},
        ),
        migrations.CreateModel(
            name='MentorActivity',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('name', models.CharField(max_length=31, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='Participant',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('user_id', models.IntegerField()),
                ('name', models.CharField(max_length=255)),
                (
                    'cell_phone',
                    phonenumber_field.modelfields.PhoneNumberField(
                        blank=True, max_length=128),
                ),
                ('last_updated', models.DateTimeField(auto_now=True)),
                (
                    'email',
                    models.EmailField(
                        help_text=
                        "This will be shared with leaders & other participants. <a href='/accounts/email/'>Manage email addresses</a>.",
                        max_length=254,
                        unique=True,
                    ),
                ),
                (
                    'affiliation',
                    models.CharField(
                        choices=[
                            (
                                'Undergraduate student',
                                [('MU', 'MIT undergrad'),
                                 ('NU', 'Non-MIT undergrad')],
                            ),
                            (
                                'Graduate student',
                                [
                                    ('MG', 'MIT grad student'),
                                    ('NG', 'Non-MIT grad student'),
                                ],
                            ),
                            ('MA', 'MIT affiliate'),
                            ('NA', 'Non-affiliate'),
                        ],
                        max_length=2,
                    ),
                ),
                (
                    'car',
                    models.OneToOneField(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.Car',
                    ),
                ),
                ('discounts',
                 models.ManyToManyField(blank=True, to='ws.Discount')),
                (
                    'emergency_info',
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.EmergencyInfo',
                    ),
                ),
            ],
            options={'ordering': ['name', 'email']},
        ),
        migrations.CreateModel(
            name='SignUp',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
                ('notes', models.TextField(blank=True, max_length=1000)),
                ('order', models.IntegerField(blank=True, null=True)),
                ('manual_order', models.IntegerField(blank=True, null=True)),
                ('on_trip', models.BooleanField(default=False)),
                (
                    'participant',
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.Participant'),
                ),
            ],
            options={'ordering': ['manual_order', 'last_updated']},
        ),
        migrations.CreateModel(
            name='Trip',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                (
                    'activity',
                    models.CharField(
                        choices=[
                            ('biking', 'Biking'),
                            ('boating', 'Boating'),
                            ('cabin', 'Cabin'),
                            ('climbing', 'Climbing'),
                            ('hiking', 'Hiking'),
                            ('winter_school', 'Winter School'),
                            ('circus', 'Circus'),
                            ('official_event', 'Official Event'),
                            ('course', 'Course'),
                        ],
                        default='winter_school',
                        max_length=31,
                    ),
                ),
                (
                    'allow_leader_signups',
                    models.BooleanField(
                        default=False,
                        help_text=
                        'Allow leaders to sign themselves up as trip leaders. (Leaders can always sign up as participants). Recommended for Circuses!',
                    ),
                ),
                ('name', models.CharField(max_length=127)),
                ('description', models.TextField()),
                (
                    'maximum_participants',
                    models.PositiveIntegerField(
                        default=8, verbose_name='Max participants'),
                ),
                ('difficulty_rating', models.CharField(max_length=63)),
                (
                    'level',
                    models.CharField(
                        blank=True,
                        help_text=
                        "This trip's A, B, or C designation (plus I/S rating if applicable).",
                        max_length=255,
                        null=True,
                    ),
                ),
                (
                    'prereqs',
                    models.CharField(blank=True,
                                     max_length=255,
                                     verbose_name='Prerequisites'),
                ),
                ('chair_approved', models.BooleanField(default=False)),
                (
                    'notes',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Participants must add notes to their signups if you complete this field. This is a great place to ask important questions.',
                        max_length=2000,
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                ('last_edited', models.DateTimeField(auto_now=True)),
                ('trip_date',
                 models.DateField(default=ws.utils.dates.nearest_sat)),
                (
                    'signups_open_at',
                    models.DateTimeField(default=django.utils.timezone.now),
                ),
                (
                    'signups_close_at',
                    models.DateTimeField(blank=True,
                                         default=ws.utils.dates.wed_morning,
                                         null=True),
                ),
                (
                    'let_participants_drop',
                    models.BooleanField(
                        default=False,
                        help_text=
                        'Allow participants to remove themselves from the trip any time before its start date.',
                    ),
                ),
                (
                    'honor_participant_pairing',
                    models.BooleanField(
                        default=True,
                        help_text=
                        'Try to place paired participants together on the trip.',
                    ),
                ),
                (
                    'algorithm',
                    models.CharField(
                        choices=[
                            ('lottery', 'lottery'),
                            ('fcfs', 'first-come, first-serve'),
                        ],
                        default='lottery',
                        max_length=31,
                    ),
                ),
                (
                    'lottery_task_id',
                    models.CharField(blank=True,
                                     max_length=36,
                                     null=True,
                                     unique=True),
                ),
                ('lottery_log', models.TextField(blank=True, null=True)),
                (
                    'creator',
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name='created_trips',
                        to='ws.Participant',
                    ),
                ),
            ],
            options={'ordering': ['-trip_date', '-time_created']},
        ),
        migrations.CreateModel(
            name='TripInfo',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('start_location', models.CharField(max_length=127)),
                ('start_time', models.CharField(max_length=63)),
                (
                    'turnaround_time',
                    models.CharField(
                        blank=True,
                        help_text=
                        "The time at which you'll turn back and head for your car/starting location",
                        max_length=63,
                    ),
                ),
                (
                    'return_time',
                    models.CharField(
                        help_text=
                        'When you expect to return to your car/starting location and be able to call the WIMP',
                        max_length=63,
                    ),
                ),
                (
                    'worry_time',
                    models.CharField(
                        help_text=
                        'Suggested: return time +3 hours. If the WIMP has not heard from you after this time and is unable to make contact with any leaders or participants, the authorities will be called.',
                        max_length=63,
                    ),
                ),
                (
                    'itinerary',
                    models.TextField(
                        help_text=
                        'A detailed account of your trip plan. Where will you be going? What route will you be taking? Include trails, peaks, intermediate destinations, back-up plans- anything that would help rescuers find you.'
                    ),
                ),
                (
                    'drivers',
                    models.ManyToManyField(
                        blank=True,
                        help_text=
                        "If a trip participant is driving, but is not on this list, they must first submit <a href='/profile/edit/#car'>information about their car</a>. They should then be added here.",
                        to='ws.Participant',
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name='WaitList',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                (
                    'trip',
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.Trip'),
                ),
            ],
        ),
        migrations.CreateModel(
            name='WaitListSignup',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                ('manual_order', models.IntegerField(blank=True, null=True)),
                (
                    'signup',
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.SignUp'),
                ),
                (
                    'waitlist',
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.WaitList'),
                ),
            ],
            options={'ordering': ['-manual_order', 'time_created']},
        ),
        migrations.CreateModel(
            name='WinterSchoolLeaderApplication',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                (
                    'previous_rating',
                    models.CharField(blank=True,
                                     help_text='Previous rating (if any)',
                                     max_length=255),
                ),
                (
                    'year',
                    models.PositiveIntegerField(
                        default=ws.utils.dates.ws_year,
                        help_text='Year this application pertains to.',
                        validators=[
                            django.core.validators.MinValueValidator(2014)
                        ],
                    ),
                ),
                ('desired_rating', models.CharField(max_length=255)),
                (
                    'taking_wfa',
                    models.CharField(
                        choices=[
                            ('Yes', 'Yes'),
                            ('No', 'No'),
                            ('Maybe', "Maybe/don't know"),
                        ],
                        help_text=
                        'Save $100 on the course fee by leading two or more trips!',
                        max_length=10,
                        verbose_name=
                        'Do you plan on taking the subsidized WFA at MIT?',
                    ),
                ),
                (
                    'training',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Details of any medical, technical, or leadership training and qualifications relevant to the winter environment. State the approximate dates of these activities. Leave blank if not applicable.',
                        max_length=5000,
                        verbose_name='Formal training and qualifications',
                    ),
                ),
                (
                    'winter_experience',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Details of previous winter outdoors experience. Include the type of trip (x-country skiiing, above treeline, snowshoeing, ice climbing, etc), approximate dates and locations, numbers of participants, notable trail and weather conditions. Please also give details of whether you participated, led, or co-led these trips.',
                        max_length=5000,
                    ),
                ),
                (
                    'other_experience',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Details about any relevant non-winter experience',
                        max_length=5000,
                        verbose_name='Other outdoors/leadership experience',
                    ),
                ),
                (
                    'notes_or_comments',
                    models.TextField(
                        blank=True,
                        help_text=
                        'Any relevant details, such as any limitations on availability on Tue/Thurs nights or weekends during IAP.',
                        max_length=5000,
                    ),
                ),
                (
                    'mentee_activities',
                    models.ManyToManyField(
                        blank=True,
                        help_text='Please select at least one.',
                        related_name='mentee_activities',
                        to='ws.MentorActivity',
                        verbose_name=
                        'For which activities would you like a mentor?',
                    ),
                ),
                (
                    'mentor_activities',
                    models.ManyToManyField(
                        blank=True,
                        help_text='Please select at least one.',
                        related_name='activities_mentored',
                        to='ws.MentorActivity',
                        verbose_name=
                        'Which activities would you like to mentor?',
                    ),
                ),
                (
                    'participant',
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.Participant'),
                ),
            ],
            options={
                'ordering': ['time_created'],
                'abstract': False
            },
        ),
        migrations.CreateModel(
            name='WinterSchoolSettings',
            fields=[
                (
                    'id',
                    models.AutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name='ID',
                    ),
                ),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                ('last_updated', models.DateTimeField(auto_now=True)),
                (
                    'allow_setting_attendance',
                    models.BooleanField(
                        default=False,
                        verbose_name='Let participants set lecture attendance',
                    ),
                ),
                (
                    'last_updated_by',
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        to='ws.Participant',
                    ),
                ),
            ],
            options={'abstract': False},
        ),
        migrations.AddField(
            model_name='waitlist',
            name='unordered_signups',
            field=models.ManyToManyField(through='ws.WaitListSignup',
                                         to='ws.SignUp'),
        ),
        migrations.AddField(
            model_name='trip',
            name='info',
            field=models.OneToOneField(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.TripInfo',
            ),
        ),
        migrations.AddField(
            model_name='trip',
            name='leaders',
            field=models.ManyToManyField(blank=True,
                                         related_name='trips_led',
                                         to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='trip',
            name='signed_up_participants',
            field=models.ManyToManyField(through='ws.SignUp',
                                         to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='signup',
            name='trip',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to='ws.Trip'),
        ),
        migrations.AddField(
            model_name='lotteryinfo',
            name='paired_with',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='paired_by',
                to='ws.Participant',
            ),
        ),
        migrations.AddField(
            model_name='lotteryinfo',
            name='participant',
            field=models.OneToOneField(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='lectureattendance',
            name='creator',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='lecture_attendances_marked',
                to='ws.Participant',
            ),
        ),
        migrations.AddField(
            model_name='lectureattendance',
            name='participant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='leadersignup',
            name='participant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='leadersignup',
            name='trip',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to='ws.Trip'),
        ),
        migrations.AddField(
            model_name='leaderrecommendation',
            name='creator',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='recommendations_created',
                to='ws.Participant',
            ),
        ),
        migrations.AddField(
            model_name='leaderrecommendation',
            name='participant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='leaderrating',
            name='creator',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='ratings_created',
                to='ws.Participant',
            ),
        ),
        migrations.AddField(
            model_name='leaderrating',
            name='participant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='hikingleaderapplication',
            name='participant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='feedback',
            name='leader',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='authored_feedback',
                to='ws.Participant',
            ),
        ),
        migrations.AddField(
            model_name='feedback',
            name='participant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
        migrations.AddField(
            model_name='feedback',
            name='trip',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Trip',
            ),
        ),
        migrations.AddField(
            model_name='discount',
            name='administrators',
            field=models.ManyToManyField(
                blank=True,
                help_text='Persons selected to administer this discount',
                related_name='discounts_administered',
                to='ws.Participant',
            ),
        ),
        migrations.AddField(
            model_name='climbingleaderapplication',
            name='participant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='ws.Participant'),
        ),
    ]
예제 #8
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='BarMembership',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('barMembership',
                 localflavor.us.models.USStateField(
                     max_length=2,
                     verbose_name=
                     'the two letter state abbreviation of a bar membership')),
            ],
            options={
                'verbose_name': 'bar membership',
                'ordering': ['barMembership'],
            },
        ),
        migrations.CreateModel(
            name='UserProfile',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('stub_account', models.BooleanField(default=False)),
                ('employer',
                 models.CharField(blank=True,
                                  help_text="the user's employer",
                                  max_length=100,
                                  null=True)),
                ('address1',
                 models.CharField(blank=True, max_length=100, null=True)),
                ('address2',
                 models.CharField(blank=True, max_length=100, null=True)),
                ('city', models.CharField(blank=True, max_length=50,
                                          null=True)),
                ('state', models.CharField(blank=True, max_length=2,
                                           null=True)),
                ('zip_code',
                 models.CharField(blank=True, max_length=10, null=True)),
                ('avatar',
                 models.ImageField(blank=True,
                                   help_text="the user's avatar",
                                   upload_to='avatars/%Y/%m/%d')),
                ('wants_newsletter',
                 models.BooleanField(default=False,
                                     help_text='This user wants newsletters')),
                ('unlimited_docket_alerts',
                 models.BooleanField(
                     default=False,
                     help_text='Should the user get unlimited docket alerts?')
                 ),
                ('plaintext_preferred',
                 models.BooleanField(
                     default=False,
                     help_text='should the alert should be sent in plaintext')
                 ),
                ('activation_key', models.CharField(max_length=40)),
                ('key_expires',
                 models.DateTimeField(
                     blank=True,
                     help_text=
                     "The time and date when the user's activation_key expires",
                     null=True)),
                ('email_confirmed',
                 models.BooleanField(
                     default=False,
                     help_text='The user has confirmed their email address')),
                ('notes',
                 models.TextField(blank=True,
                                  help_text='Any notes about the user.')),
                ('is_tester',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'The user tests new features before they are finished')),
                ('barmembership',
                 models.ManyToManyField(
                     blank=True,
                     to='users.BarMembership',
                     verbose_name='the bar memberships held by the user')),
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='profile',
                     to=settings.AUTH_USER_MODEL,
                     verbose_name='the user this model extends')),
            ],
            options={
                'verbose_name': 'user profile',
                'verbose_name_plural': 'user profiles',
            },
        ),
    ]