text: # Generated by Django 2.2.5 on 2020-03-26 17:02
  
  import ckeditor.fields
  import django.contrib.gis.db.models.fields
  from django.db import migrations, models
  import django.db.models.deletion
  import django.utils.timezone
  
  
  class Migration(migrations.Migration):
  
      initial = True
  
      dependencies = [
      ]
  
      operations = [
          migrations.CreateModel(
              name='IdentificationQualifier',
              fields=[
                  ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                  ('date_created', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was first created.', verbose_name='Created')),
                  ('date_last_modified', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was last altered.', verbose_name='Modified')),
                  ('problem', models.BooleanField(default=False, help_text='Is there a problem with this record that needs attention?')),
                  ('problem_comment', models.TextField(blank=True, help_text='Description of the problem.', max_length=255, null=True)),
                  ('remarks', ckeditor.fields.RichTextField(blank=True, help_text='General remarks about this database record.', null=True, verbose_name='Record Remarks')),
                  ('last_import', models.BooleanField(default=False)),
                  ('name', models.CharField(blank=True, max_length=15, unique=True)),
                  ('qualified', models.BooleanField(default=False)),
              ],
              options={
                  'verbose_name': 'GDB ID Qualifier',
              },
          ),
          migrations.CreateModel(
              name='Locality',
              fields=[
                  ('name', models.CharField(blank=True, max_length=255, null=True)),
                  ('date_created', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was first created.', verbose_name='Created')),
                  ('date_last_modified', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was last altered.', verbose_name='Modified')),
                  ('problem', models.BooleanField(default=False, help_text='Is there a problem with this record that needs attention?')),
                  ('problem_comment', models.TextField(blank=True, help_text='Description of the problem.', max_length=255, null=True)),
                  ('remarks', ckeditor.fields.RichTextField(blank=True, help_text='General remarks about this database record.', null=True, verbose_name='Record Remarks')),
                  ('last_import', models.BooleanField(default=False)),
                  ('georeference_remarks', models.TextField(blank=True, max_length=500, null=True)),
                  ('geom', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326)),
                  ('formation', models.CharField(blank=True, max_length=50, null=True)),
                  ('member', models.CharField(blank=True, max_length=50, null=True)),
                  ('locality_number', models.IntegerField(primary_key=True, serialize=False)),
                  ('locality_field_number', models.CharField(blank=True, max_length=50, null=True)),
                  ('date_discovered', models.DateField(blank=True, null=True)),
                  ('NALMA', models.CharField(blank=True, choices=[('Bridgerian', 'Bridgerian'), ('Wasatchian', 'Wasatchian'), ('Clarkforkian', 'Clarkforkian')], default='Wasatchian', max_length=50, null=True)),
                  ('sub_age', models.CharField(blank=True, choices=[('Cf1', 'Cf1'), ('Cf2', 'Cf2'), ('Cf3', 'Cf3'), ('Wa0', 'Wa0'), ('Wa1', 'Wa1'), ('Wa2', 'Wa2'), ('Wa3', 'Wa3'), ('Wa4', 'Wa4'), ('Wa5', 'Wa5'), ('Wa6', 'Wa6'), ('Wa7', 'Wa7'), ('Br0', 'Br0'), ('Br1a', 'Br1a'), ('Br1b', 'Br1b'), ('Br2', 'Br2'), ('Br3', 'Br3')], max_length=50, null=True)),
                  ('survey', models.CharField(blank=True, max_length=50, null=True)),
                  ('quad_sheet', models.CharField(blank=True, max_length=50, null=True)),
                  ('verbatim_latitude', models.CharField(blank=True, max_length=50, null=True)),
                  ('verbatim_longitude', models.CharField(blank=True, max_length=50, null=True)),
                  ('verbatim_utm', models.CharField(blank=True, max_length=50, null=True)),
                  ('verbatim_gps_coordinates', models.CharField(blank=True, max_length=50, null=True)),
                  ('verbatim_elevation', models.IntegerField(blank=True, null=True)),
                  ('gps_date', models.DateField(blank=True, null=True)),
                  ('resource_area', models.CharField(blank=True, max_length=50, null=True)),
                  ('notes', ckeditor.fields.RichTextField(blank=True, null=True)),
                  ('cm_locality_number', models.IntegerField(blank=True, null=True)),
                  ('region', models.CharField(blank=True, max_length=50, null=True)),
                  ('blm_district', models.CharField(blank=True, max_length=50, null=True)),
                  ('county', models.CharField(blank=True, max_length=50, null=True)),
                  ('image', models.FileField(blank=True, max_length=255, null=True, upload_to='uploads/images/gdb')),
              ],
              options={
                  'verbose_name_plural': 'GDB Localities',
                  'ordering': ['locality_number'],
              },
          ),
          migrations.CreateModel(
              name='Occurrence',
              fields=[
                  ('name', models.CharField(blank=True, max_length=255, null=True)),
                  ('date_created', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was first created.', verbose_name='Created')),
                  ('date_last_modified', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was last altered.', verbose_name='Modified')),
                  ('problem', models.BooleanField(default=False, help_text='Is there a problem with this record that needs attention?')),
                  ('problem_comment', models.TextField(blank=True, help_text='Description of the problem.', max_length=255, null=True)),
                  ('remarks', ckeditor.fields.RichTextField(blank=True, help_text='General remarks about this database record.', null=True, verbose_name='Record Remarks')),
                  ('last_import', models.BooleanField(default=False)),
                  ('georeference_remarks', models.TextField(blank=True, max_length=500, null=True)),
                  ('geom', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326)),
                  ('date_recorded', models.DateTimeField(blank=True, help_text='Date and time the item was observed or collected.', null=True, verbose_name='Date Rec')),
                  ('year_collected', models.IntegerField(blank=True, help_text='The year, event or field campaign during which the item was found.', null=True, verbose_name='Year')),
                  ('barcode', models.IntegerField(blank=True, help_text='For collected items only.', null=True, verbose_name='Barcode')),
                  ('field_number', models.CharField(blank=True, max_length=50, null=True)),
                  ('catalog_number', models.AutoField(primary_key=True, serialize=False)),
                  ('cm_catalog_number', models.IntegerField(blank=True, null=True)),
                  ('date_time_collected', models.DateTimeField(blank=True, null=True)),
                  ('date_collected', models.DateField(blank=True, null=True)),
                  ('time_collected', models.CharField(blank=True, max_length=50, null=True)),
                  ('basis_of_record', models.CharField(choices=[('FossilSpecimen', 'Fossil'), ('HumanObservation', 'Observation')], default='FossilSpecimen', max_length=50, verbose_name='Basis of Record')),
                  ('item_type', models.CharField(blank=True, choices=[('Artifactual', 'Artifactual'), ('Faunal', 'Faunal'), ('Floral', 'Floral'), ('Geological', 'Geological'), ('Cast', 'Cast')], default='Faunal', max_length=255, null=True, verbose_name='Item Type')),
                  ('collecting_method', models.CharField(blank=True, choices=[('Surface Standard', 'Prospecting'), ('Surface Intensive', 'Surface Crawl'), ('Dry Screen 2mm', 'Dry Screen 2mm')], max_length=50, null=True, verbose_name='Collecting Method')),
                  ('related_catalog_items', models.CharField(blank=True, max_length=50, null=True, verbose_name='Related Catalog Items')),
                  ('item_scientific_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Scientific Name')),
                  ('item_description', models.CharField(blank=True, max_length=255, null=True, verbose_name='Description')),
                  ('image', models.FileField(blank=True, max_length=255, null=True, upload_to='uploads/images/gdb')),
                  ('loan_date', models.DateField(blank=True, null=True)),
                  ('loan_recipient', models.CharField(blank=True, max_length=255, null=True)),
                  ('on_loan', models.BooleanField(default=False)),
                  ('elevation', models.DecimalField(blank=True, decimal_places=4, max_digits=10, null=True)),
                  ('locality', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='gdb.Locality')),
              ],
              options={
                  'verbose_name': 'GDB Occurrence',
              },
          ),
          migrations.CreateModel(
              name='TaxonRank',
              fields=[
                  ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                  ('date_created', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was first created.', verbose_name='Created')),
                  ('date_last_modified', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was last altered.', verbose_name='Modified')),
                  ('problem', models.BooleanField(default=False, help_text='Is there a problem with this record that needs attention?')),
                  ('problem_comment', models.TextField(blank=True, help_text='Description of the problem.', max_length=255, null=True)),
                  ('remarks', ckeditor.fields.RichTextField(blank=True, help_text='General remarks about this database record.', null=True, verbose_name='Record Remarks')),
                  ('last_import', models.BooleanField(default=False)),
                  ('name', models.CharField(max_length=50, unique=True)),
                  ('plural', models.CharField(max_length=50, unique=True)),
                  ('ordinal', models.IntegerField(unique=True)),
              ],
              options={
                  'verbose_name': 'GDB Taxon Rank',
                  'verbose_name_plural': 'GDB Taxon Ranks',
              },
          ),
          migrations.CreateModel(
              name='Taxon',
              fields=[
                  ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                  ('name', models.CharField(blank=True, max_length=255, null=True)),
                  ('date_created', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was first created.', verbose_name='Created')),
                  ('date_last_modified', models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time this resource was last altered.', verbose_name='Modified')),
                  ('problem', models.BooleanField(default=False, help_text='Is there a problem with this record that needs attention?')),
                  ('problem_comment', models.TextField(blank=True, help_text='Description of the problem.', max_length=255, null=True)),
                  ('remarks', ckeditor.fields.RichTextField(blank=True, help_text='General remarks about this database record.', null=True, verbose_name='Record Remarks')),
                  ('last_import', models.BooleanField(default=False)),
                  ('label', models.CharField(blank=True, help_text='For a species, the name field contains the specific epithet and the label contains the full\n    scientific name, e.g. Homo sapiens, name = sapiens, label = Homo sapiens', max_length=244, null=True)),
                  ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='gdb.Taxon')),
                  ('rank', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='gdb.TaxonRank')),
              ],
              options={
                  'verbose_name': 'GDB Taxon',
                  'verbose_name_plural': 'GDB Taxa',
                  'ordering': ['rank__ordinal', 'name'],
              },
          ),
          migrations.CreateModel(
              name='Biology',
              fields=[
                  ('occurrence_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='gdb.Occurrence')),
                  ('kingdom', models.CharField(blank=True, max_length=50, null=True, verbose_name='Kingdom')),
                  ('phylum', models.CharField(blank=True, max_length=50, null=True, verbose_name='Phylum')),
                  ('tax_class', models.CharField(blank=True, max_length=50, null=True, verbose_name='Class')),
                  ('tax_order', models.CharField(blank=True, max_length=50, null=True, verbose_name='Order')),
                  ('family', models.CharField(blank=True, max_length=50, null=True, verbose_name='Family')),
                  ('subfamily', models.CharField(blank=True, max_length=50, null=True, verbose_name='Subfamily')),
                  ('tribe', models.CharField(blank=True, max_length=50, null=True, verbose_name='Tribe')),
                  ('genus', models.CharField(blank=True, max_length=50, null=True, verbose_name='Genus')),
                  ('specific_epithet', models.CharField(blank=True, max_length=50, null=True, verbose_name='Species Name')),
                  ('infraspecific_epithet', models.CharField(blank=True, max_length=50, null=True, verbose_name='Infraspecies')),
                  ('infraspecific_rank', models.CharField(blank=True, max_length=50, null=True, verbose_name='Infraspecies rank')),
                  ('author_year_of_scientific_name', models.CharField(blank=True, max_length=50, null=True)),
                  ('nomenclatural_code', models.CharField(blank=True, max_length=50, null=True)),
                  ('identification_qualifier_original', models.CharField(blank=True, max_length=50, null=True)),
                  ('identified_by', models.CharField(blank=True, max_length=100, null=True)),
                  ('date_identified', models.DateTimeField(blank=True, null=True)),
                  ('type_status', models.CharField(blank=True, max_length=50, null=True)),
                  ('sex', models.CharField(blank=True, max_length=50, null=True)),
                  ('life_stage', models.CharField(blank=True, max_length=50, null=True)),
                  ('preparations', models.CharField(blank=True, max_length=50, null=True)),
                  ('morphobank_num', models.IntegerField(blank=True, null=True)),
                  ('element', models.CharField(blank=True, max_length=50, null=True)),
                  ('side', models.CharField(blank=True, max_length=50, null=True)),
                  ('attributes', models.CharField(blank=True, max_length=50, null=True)),
                  ('notes', ckeditor.fields.RichTextField(blank=True, null=True)),
                  ('lower_tooth', models.CharField(blank=True, max_length=50, null=True)),
                  ('upper_tooth', models.CharField(blank=True, max_length=50, null=True)),
                  ('jaw', models.CharField(blank=True, max_length=50, null=True)),
                  ('mandible', models.CharField(blank=True, max_length=50, null=True)),
                  ('maxilla', models.CharField(blank=True, max_length=50, null=True)),
                  ('teeth', models.CharField(blank=True, max_length=50, null=True)),
                  ('cranial', models.CharField(blank=True, max_length=50, null=True)),
                  ('miscellaneous', models.CharField(blank=True, max_length=50, null=True)),
                  ('vertebral', models.CharField(blank=True, max_length=50, null=True)),
                  ('forelimb', models.CharField(blank=True, max_length=50, null=True)),
                  ('hindlimb', models.CharField(blank=True, max_length=50, null=True)),
                  ('identification_qualifier', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='gdb_id_qualifier_bio_occurrences', to='gdb.IdentificationQualifier')),
                  ('taxon', models.ForeignKey(default=0, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='gdb_taxon_bio_occurrences', to='gdb.Taxon')),
              ],
              options={
                  'verbose_name': 'GDB Biology',
                  'verbose_name_plural': 'GDB Biology Items',
              },
              bases=('gdb.occurrence',),
          ),
      ]
  