aboutsummaryrefslogblamecommitdiffstats
path: root/ctrack/organisations/migrations/0001_initial.py
blob: e13cafbf01cc299f3f25ebca535e2d7b2a125c4e (plain) (tree)
1
2
3
4
5
                                               

                                        

                                  










                                      
















                                                                                                                  






                                                                                                                  




















                                                                                                                                                                                                                     






                                                                                                                  



                                                                                                                  
                                                                                                                        
                                                           
                                                                                                                                  


                                                                                            
                                                                                      



                                                              
















                                                                                                                                                                                               


                                                                                    
                                                              

                                                                            

                                                                                                                                                                                  
              


                                                
          











                                                                                                                  
                                                                                                                  





                                                                                                                  
                                                                                                                      






                                                                  
     
# Generated by Django 3.1.2 on 2020-10-21 15:51

from django.db import migrations, models
import django.db.models.deletion
import django_extensions.db.fields


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Address',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('line1', models.CharField(max_length=255)),
                ('line2', models.CharField(blank=True, max_length=255)),
                ('line3', models.CharField(blank=True, max_length=255)),
                ('city', models.CharField(max_length=100)),
                ('county', models.CharField(blank=True, max_length=100)),
                ('postcode', models.CharField(max_length=10)),
                ('country', models.CharField(max_length=100)),
                ('other_details', models.CharField(blank=True, max_length=255)),
            ],
            options={
                'verbose_name_plural': 'Addresses',
            },
        ),
        migrations.CreateModel(
            name='AddressType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('descriptor', models.CharField(max_length=50)),
            ],
        ),
        migrations.CreateModel(
            name='IncidentReport',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('person_involved', models.CharField(blank=True, max_length=100, verbose_name='Name of person reporting/detecting incident')),
                ('role', models.CharField(blank=True, help_text='Role of person reporting/detecting incident', max_length=100)),
                ('phone_number', models.CharField(max_length=30)),
                ('email', models.EmailField(max_length=254)),
                ('internal_incident_number', models.CharField(blank=True, max_length=30)),
                ('date_time_incident_detected', models.DateTimeField(verbose_name='Date/Time incident detected')),
                ('date_time_incident_reported', models.DateTimeField(auto_now=True, verbose_name='Date/Time incident reported')),
                ('incident_type', models.CharField(choices=[('Cyber', 'Cyber'), ('Non-Cyber', 'Non-Cyber'), ('Both', 'Both'), ('Power Outage', 'Power Outage')], help_text='This can be appoximate', max_length=20)),
                ('incident_status', models.CharField(choices=[('Detected', 'Detected'), ('Suspected', 'Suspected'), ('Resolved', 'Resolved')], max_length=20)),
                ('incident_stage', models.CharField(choices=[('Ongoing', 'Ongoing'), ('Ended', 'Ended'), ('Ongoing but managed', 'Ongoing but managed')], max_length=20)),
                ('summary', models.TextField(help_text='Please provide a summary of your understanding of the incident, including any impact to services and/or users.')),
                ('mitigations', models.TextField(help_text='What investigations and/or mitigations have you or a third party performed or plan to perform?', verbose_name='Investigations or mitigations')),
                ('others_informed', models.TextField(help_text='Who else has been informed about this incident?(CSIRT, NCSC, NCA, etc)', verbose_name='Others parties informed')),
                ('next_steps', models.TextField(help_text='What are your planned next steps?', verbose_name='Planned next steps')),
                ('dft_handle_status', models.CharField(choices=[('QUEUED', 'QUEUED'), ('REVIEWING', 'REVIEWING'), ('WAITING', 'WAITING'), ('COMPLETED', 'COMPLETED')], default='QUEUED', max_length=20)),
            ],
        ),
        migrations.CreateModel(
            name='Mode',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('descriptor', models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name='Organisation',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255)),
                ('slug', django_extensions.db.fields.AutoSlugField(blank=True, editable=False, populate_from=['name'])),
                ('oes', models.BooleanField(default=True)),
                ('designation_type', models.IntegerField(choices=[(1, 'Automatic'), (2, 'Reserve Power'), (3, 'NA')], default=1)),
                ('registered_company_name', models.CharField(blank=True, max_length=255)),
                ('registered_company_number', models.CharField(blank=True, max_length=100)),
                ('date_updated', models.DateField(auto_now=True)),
                ('comments', models.TextField(blank=True, max_length=500, null=True)),
                ('active', models.BooleanField(default=True)),
            ],
        ),
        migrations.CreateModel(
            name='Person',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('primary_nis_contact', models.BooleanField(default=False, verbose_name='Primary NIS contact')),
                ('voluntary_point_of_contact', models.BooleanField(default=False)),
                ('has_egress', models.BooleanField(default=False, verbose_name='Has Egress')),
                ('title', models.IntegerField(choices=[(1, 'Mr'), (2, 'Mrs'), (3, 'Miss'), (4, 'Ms'), (5, 'Dr.'), (6, 'Professor'), (7, 'The Rt Hon.'), (8, 'Lord'), (9, 'Lady')], default=1)),
                ('job_title', models.CharField(max_length=100)),
                ('first_name', models.CharField(max_length=50)),
                ('last_name', models.CharField(max_length=50)),
                ('email', models.EmailField(max_length=254)),
                ('secondary_email', models.EmailField(blank=True, max_length=254)),
                ('mobile', models.CharField(blank=True, max_length=20)),
                ('landline', models.CharField(blank=True, max_length=20)),
                ('date_updated', models.DateField(auto_now=True)),
                ('clearance', models.IntegerField(choices=[(1, 'NA'), (2, 'BPSS'), (3, 'CTC'), (4, 'SC'), (5, 'DV'), (6, 'Other')], default=1)),
                ('clearance_sponsor', models.CharField(blank=True, max_length=100)),
                ('clearance_start_date', models.DateField(blank=True, null=True)),
                ('clearance_last_checked', models.DateField(blank=True, null=True)),
                ('clearance_expiry', models.DateField(blank=True, null=True)),
                ('active', models.BooleanField(default=True)),
                ('date_ended', models.DateField(blank=True, null=True)),
                ('comments', models.TextField(blank=True, max_length=1000)),
                ('organisation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organisations.organisation')),
                ('predecessor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='previous_person', to='organisations.person')),
            ],
            options={
                'verbose_name_plural': 'People',
            },
        ),
        migrations.CreateModel(
            name='Role',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name='Submode',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('descriptor', models.CharField(max_length=100)),
                ('mode', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organisations.mode')),
            ],
        ),
        migrations.CreateModel(
            name='Stakeholder',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organisations.person')),
            ],
        ),
        migrations.AddField(
            model_name='person',
            name='role',
            field=models.ManyToManyField(to='organisations.Role'),
        ),
    ]