From 324f09a13b496ab9cf20aec0a1bcdc0579382563 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 15:04:40 -0700 Subject: [PATCH 01/27] apply ruff format --- TEKDB/Accounts/apps.py | 2 +- TEKDB/Accounts/migrations/0001_initial.py | 190 +- .../0002_alter_users_accesslevel.py | 17 +- TEKDB/Lookup/apps.py | 4 +- TEKDB/Lookup/migrations/0001_initial.py | 524 ++- .../migrations/0002_auto_20191223_1538.py | 207 +- .../migrations/0003_auto_20191223_1604.py | 27 +- .../migrations/0004_auto_20200107_1249.py | 14 +- .../0005_alter_lookupuserinfo_id.py | 11 +- ..._alter_people_relationshiptootherpeople.py | 14 +- TEKDB/Relationships/apps.py | 2 +- .../Relationships/migrations/0001_initial.py | 1628 +++++++- .../migrations/0002_auto_20171013_1650.py | 545 ++- .../migrations/0003_auto_20171031_1434.py | 14 +- .../migrations/0004_auto_20171031_1525.py | 14 +- .../migrations/0005_auto_20191223_1538.py | 22 +- .../migrations/0006_auto_20191223_1604.py | 91 +- .../migrations/0007_auto_20200107_1707.py | 124 +- .../migrations/0008_auto_20211021_1607.py | 665 ++- .../migrations/0009_auto_20230413_1555.py | 23 +- ..._alter_placesresourceevents_needsreview.py | 11 +- ...events_relationshipdescription_and_more.py | 124 +- ...lter_placesmediaevents_mediaid_and_more.py | 30 +- ...mediacitationevents_citationid_and_more.py | 299 +- TEKDB/TEKDB/admin.py | 1719 +++++--- TEKDB/TEKDB/apps.py | 5 +- TEKDB/TEKDB/context_processors.py | 48 +- TEKDB/TEKDB/forms.py | 44 +- TEKDB/TEKDB/management/commands/export_db.py | 16 +- TEKDB/TEKDB/management/commands/import_shp.py | 143 +- TEKDB/TEKDB/management/commands/import_sql.py | 459 +- TEKDB/TEKDB/migrations/0001_initial.py | 1265 +++++- .../migrations/0002_auto_20171031_1421.py | 22 +- .../migrations/0003_auto_20191223_1604.py | 14 +- .../migrations/0004_auto_20200107_1604.py | 55 +- .../migrations/0005_auto_20211021_1607.py | 329 +- .../0006_trigram_unaccent_extensions.py | 13 +- .../migrations/0007_citations_rawcitation.py | 15 +- TEKDB/TEKDB/migrations/0008_citations_date.py | 11 +- .../migrations/0009_auto_20230413_1555.py | 103 +- .../migrations/0010_auto_20231106_1316.py | 43 +- TEKDB/TEKDB/migrations/0011_searchsettings.py | 19 +- .../migrations/0012_auto_20240926_1440.py | 23 +- .../migrations/0013_auto_20241004_1547.py | 52 +- .../0014_alter_media_mediauploadevent.py | 15 +- .../migrations/0015_auto_20241004_1559.py | 19 +- .../migrations/0016_auto_20241016_1549.py | 125 +- .../migrations/0017_auto_20241016_1552.py | 25 +- .../migrations/0018_auto_20241022_1653.py | 25 +- .../migrations/0018_delete_searchsettings.py | 5 +- .../migrations/0019_merge_20241126_1351.py | 8 +- .../0020_alter_media_mediabulkupload.py | 15 +- ...020_alter_mediabulkupload_mediabulkdate.py | 11 +- .../migrations/0021_merge_20241224_1132.py | 8 +- ..._options_alter_media_mediatype_and_more.py | 39 +- ...023_alter_mediabulkupload_mediabulkname.py | 15 +- ...ts_alter_citations_rawcitation_and_more.py | 54 +- ...025_alter_mediabulkupload_mediabulkname.py | 15 +- TEKDB/TEKDB/models.py | 3691 +++++++++++------ TEKDB/TEKDB/settings.py | 254 +- TEKDB/TEKDB/tests/test_admin.py | 41 +- TEKDB/TEKDB/tests/test_models.py | 792 ++-- TEKDB/TEKDB/tests/test_views.py | 279 +- TEKDB/TEKDB/urls.py | 70 +- TEKDB/TEKDB/views.py | 268 +- TEKDB/TEKDB/widgets.py | 50 +- TEKDB/configuration/admin.py | 79 +- TEKDB/configuration/apps.py | 4 +- .../configuration/migrations/0001_initial.py | 47 +- .../migrations/0002_auto_20220503_1757.py | 26 +- .../0003_alter_configuration_geometry.py | 16 +- .../migrations/0004_auto_20220506_1506.py | 88 +- .../migrations/0005_auto_20220510_0939.py | 85 +- .../0006_alter_configuration_logo.py | 18 +- .../migrations/0007_auto_20240913_1539.py | 75 +- ...alter_configuration_preferredinitialism.py | 15 +- ...figuration_preferredinitialismplacement.py | 18 +- ...figuration_preferredinitialismplacement.py | 18 +- ...figuration_preferredinitialismplacement.py | 18 +- .../migrations/0012_auto_20241025_1313.py | 27 +- .../migrations/0013_auto_20241025_1406.py | 41 +- .../migrations/0014_auto_20241025_1603.py | 42 +- ...ter_configuration_min_search_similarity.py | 23 +- ..._configuration_min_search_rank_and_more.py | 42 +- ...onfiguration_homepage_image_attribution.py | 15 +- TEKDB/configuration/models.py | 109 +- TEKDB/explore/apps.py | 2 +- TEKDB/explore/context_processors.py | 134 +- TEKDB/explore/migrations/0001_initial.py | 39 +- .../0002_alter_pagecontent_content.py | 7 +- TEKDB/explore/models.py | 24 +- TEKDB/explore/templatetags/explore_tags.py | 10 +- TEKDB/explore/tests/test_views.py | 22 +- TEKDB/explore/urls.py | 32 +- TEKDB/explore/views.py | 506 ++- TEKDB/login/urls.py | 8 +- TEKDB/login/views.py | 36 +- TEKDB/pyproject.toml | 2 + docs/Data/models_new_fk.py | 1366 ++++-- docs/Data/models_old.py | 1399 +++++-- 100 files changed, 13487 insertions(+), 5730 deletions(-) create mode 100644 TEKDB/pyproject.toml diff --git a/TEKDB/Accounts/apps.py b/TEKDB/Accounts/apps.py index de196728..f6b9fc93 100644 --- a/TEKDB/Accounts/apps.py +++ b/TEKDB/Accounts/apps.py @@ -2,4 +2,4 @@ class AccountsConfig(AppConfig): - name = 'Accounts' + name = "Accounts" diff --git a/TEKDB/Accounts/migrations/0001_initial.py b/TEKDB/Accounts/migrations/0001_initial.py index 0fec0f98..2f012c6a 100644 --- a/TEKDB/Accounts/migrations/0001_initial.py +++ b/TEKDB/Accounts/migrations/0001_initial.py @@ -9,56 +9,182 @@ class Migration(migrations.Migration): - initial = True dependencies = [ - ('auth', '0008_alter_user_username_max_length'), + ("auth", "0008_alter_user_username_max_length"), ] operations = [ migrations.CreateModel( - name='UserAccess', + name="UserAccess", fields=[ - ('accessid', models.AutoField(db_column='accessid', primary_key=True, serialize=False)), - ('accesslevel', models.CharField(blank=True, db_column='accesslevel', max_length=255, null=True, verbose_name='access level')), - ('group', models.OneToOneField(db_column='group_id', on_delete=django.db.models.deletion.CASCADE, to='auth.Group')), + ( + "accessid", + models.AutoField( + db_column="accessid", primary_key=True, serialize=False + ), + ), + ( + "accesslevel", + models.CharField( + blank=True, + db_column="accesslevel", + max_length=255, + null=True, + verbose_name="access level", + ), + ), + ( + "group", + models.OneToOneField( + db_column="group_id", + on_delete=django.db.models.deletion.CASCADE, + to="auth.Group", + ), + ), ], options={ - 'db_table': 'useraccess', - 'verbose_name': 'user access', - 'managed': True, - 'verbose_name_plural': 'user access', + "db_table": "useraccess", + "verbose_name": "user access", + "managed": True, + "verbose_name_plural": "user access", }, ), migrations.CreateModel( - name='Users', + name="Users", fields=[ - ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), - ('userid', models.AutoField(db_column='userid', primary_key=True, serialize=False)), - ('username', models.CharField(db_column='username', max_length=20, unique=True, verbose_name='username')), - ('password', models.CharField(db_column='password', max_length=128, verbose_name='password')), - ('first_name', models.CharField(db_column='firstname', max_length=255, verbose_name='first name')), - ('last_name', models.CharField(db_column='lastname', max_length=255, verbose_name='last name')), - ('affiliation', models.CharField(db_column='affiliation', max_length=255)), - ('title', models.CharField(db_column='title', max_length=255)), - ('is_superuser', models.BooleanField(db_column='is_superuser', default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), - ('email', models.EmailField(blank=True, db_column='email', max_length=254, null=True, verbose_name='email address')), - ('is_staff', models.BooleanField(db_column='is_staff', default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), - ('is_active', models.BooleanField(db_column='is_active', default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), - ('date_joined', models.DateTimeField(db_column='date_joined', default=django.utils.timezone.now, verbose_name='date joined')), - ('accesslevel', models.ForeignKey(blank=True, db_column='accesslevel', null=True, on_delete=django.db.models.deletion.CASCADE, to='Accounts.UserAccess', verbose_name='access level')), - ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), - ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), + ( + "last_login", + models.DateTimeField( + blank=True, null=True, verbose_name="last login" + ), + ), + ( + "userid", + models.AutoField( + db_column="userid", primary_key=True, serialize=False + ), + ), + ( + "username", + models.CharField( + db_column="username", + max_length=20, + unique=True, + verbose_name="username", + ), + ), + ( + "password", + models.CharField( + db_column="password", max_length=128, verbose_name="password" + ), + ), + ( + "first_name", + models.CharField( + db_column="firstname", max_length=255, verbose_name="first name" + ), + ), + ( + "last_name", + models.CharField( + db_column="lastname", max_length=255, verbose_name="last name" + ), + ), + ( + "affiliation", + models.CharField(db_column="affiliation", max_length=255), + ), + ("title", models.CharField(db_column="title", max_length=255)), + ( + "is_superuser", + models.BooleanField( + db_column="is_superuser", + default=False, + help_text="Designates that this user has all permissions without explicitly assigning them.", + verbose_name="superuser status", + ), + ), + ( + "email", + models.EmailField( + blank=True, + db_column="email", + max_length=254, + null=True, + verbose_name="email address", + ), + ), + ( + "is_staff", + models.BooleanField( + db_column="is_staff", + default=False, + help_text="Designates whether the user can log into this admin site.", + verbose_name="staff status", + ), + ), + ( + "is_active", + models.BooleanField( + db_column="is_active", + default=True, + help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", + verbose_name="active", + ), + ), + ( + "date_joined", + models.DateTimeField( + db_column="date_joined", + default=django.utils.timezone.now, + verbose_name="date joined", + ), + ), + ( + "accesslevel", + models.ForeignKey( + blank=True, + db_column="accesslevel", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Accounts.UserAccess", + verbose_name="access level", + ), + ), + ( + "groups", + models.ManyToManyField( + blank=True, + help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", + related_name="user_set", + related_query_name="user", + to="auth.Group", + verbose_name="groups", + ), + ), + ( + "user_permissions", + models.ManyToManyField( + blank=True, + help_text="Specific permissions for this user.", + related_name="user_set", + related_query_name="user", + to="auth.Permission", + verbose_name="user permissions", + ), + ), ], options={ - 'db_table': 'users', - 'verbose_name': 'User', - 'managed': True, - 'verbose_name_plural': 'Users', + "db_table": "users", + "verbose_name": "User", + "managed": True, + "verbose_name_plural": "Users", }, managers=[ - ('objects', django.contrib.auth.models.UserManager()), + ("objects", django.contrib.auth.models.UserManager()), ], ), ] diff --git a/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py b/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py index 497d78f1..e427dcc5 100644 --- a/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py +++ b/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py @@ -5,15 +5,22 @@ class Migration(migrations.Migration): - dependencies = [ - ('Accounts', '0001_initial'), + ("Accounts", "0001_initial"), ] operations = [ migrations.AlterField( - model_name='users', - name='accesslevel', - field=models.ForeignKey(blank=True, db_column='accesslevel', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Accounts.useraccess', verbose_name='access level'), + model_name="users", + name="accesslevel", + field=models.ForeignKey( + blank=True, + db_column="accesslevel", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Accounts.useraccess", + verbose_name="access level", + ), ), ] diff --git a/TEKDB/Lookup/apps.py b/TEKDB/Lookup/apps.py index e93c4b39..a61a1196 100644 --- a/TEKDB/Lookup/apps.py +++ b/TEKDB/Lookup/apps.py @@ -2,5 +2,5 @@ class LookupConfig(AppConfig): - name = 'Lookup' - verbose_name = 'Supplemental Lookups' + name = "Lookup" + verbose_name = "Supplemental Lookups" diff --git a/TEKDB/Lookup/migrations/0001_initial.py b/TEKDB/Lookup/migrations/0001_initial.py index 5318d79b..9de598e1 100644 --- a/TEKDB/Lookup/migrations/0001_initial.py +++ b/TEKDB/Lookup/migrations/0001_initial.py @@ -6,256 +6,500 @@ class Migration(migrations.Migration): - initial = True - dependencies = [ - ] + dependencies = [] operations = [ migrations.CreateModel( - name='CurrentVersion', + name="CurrentVersion", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('backendversion', models.IntegerField(blank=True, db_column='backendversion', null=True, verbose_name='backend version')), - ('frontendversion', models.IntegerField(blank=True, db_column='frontendversion', null=True, verbose_name='frontend version')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "backendversion", + models.IntegerField( + blank=True, + db_column="backendversion", + null=True, + verbose_name="backend version", + ), + ), + ( + "frontendversion", + models.IntegerField( + blank=True, + db_column="frontendversion", + null=True, + verbose_name="frontend version", + ), + ), ], options={ - 'db_table': 'currentversion', - 'verbose_name': 'current version', - 'managed': True, - 'verbose_name_plural': 'current versions', + "db_table": "currentversion", + "verbose_name": "current version", + "managed": True, + "verbose_name_plural": "current versions", }, ), migrations.CreateModel( - name='LookupActivity', + name="LookupActivity", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('activity', models.CharField(db_column='activity', max_length=255)), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ("activity", models.CharField(db_column="activity", max_length=255)), ], options={ - 'db_table': 'lookupactivity', - 'verbose_name': 'activity', - 'managed': True, - 'verbose_name_plural': 'activities', + "db_table": "lookupactivity", + "verbose_name": "activity", + "managed": True, + "verbose_name_plural": "activities", }, ), migrations.CreateModel( - name='LookupAuthorType', + name="LookupAuthorType", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('authortype', models.CharField(db_column='authortype', max_length=50, verbose_name='author type')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "authortype", + models.CharField( + db_column="authortype", + max_length=50, + verbose_name="author type", + ), + ), ], options={ - 'db_table': 'lookupauthortype', - 'verbose_name': 'author type', - 'managed': True, - 'verbose_name_plural': 'author types', + "db_table": "lookupauthortype", + "verbose_name": "author type", + "managed": True, + "verbose_name_plural": "author types", }, ), migrations.CreateModel( - name='LookupCustomaryUse', + name="LookupCustomaryUse", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('usedfor', models.CharField(db_column='usedfor', max_length=255, verbose_name='used_for')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "usedfor", + models.CharField( + db_column="usedfor", max_length=255, verbose_name="used_for" + ), + ), ], options={ - 'db_table': 'lookupcustomaryuse', - 'verbose_name': 'customary use', - 'managed': True, - 'verbose_name_plural': 'customary uses', + "db_table": "lookupcustomaryuse", + "verbose_name": "customary use", + "managed": True, + "verbose_name_plural": "customary uses", }, ), migrations.CreateModel( - name='LookupHabitat', + name="LookupHabitat", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('habitat', models.CharField(db_column='habitat', max_length=100)), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ("habitat", models.CharField(db_column="habitat", max_length=100)), ], options={ - 'db_table': 'lookuphabitat', - 'verbose_name': 'habitat', - 'managed': True, - 'verbose_name_plural': 'habitats', + "db_table": "lookuphabitat", + "verbose_name": "habitat", + "managed": True, + "verbose_name_plural": "habitats", }, ), migrations.CreateModel( - name='LookupLocalityType', + name="LookupLocalityType", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('localitytype', models.CharField(db_column='localitytype', max_length=255, verbose_name='locality type')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "localitytype", + models.CharField( + db_column="localitytype", + max_length=255, + verbose_name="locality type", + ), + ), ], options={ - 'db_table': 'lookuplocalitytype', - 'verbose_name': 'locality type', - 'managed': True, - 'verbose_name_plural': 'locality types', + "db_table": "lookuplocalitytype", + "verbose_name": "locality type", + "managed": True, + "verbose_name_plural": "locality types", }, ), migrations.CreateModel( - name='LookupMediaType', + name="LookupMediaType", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('mediatype', models.CharField(db_column='mediatype', max_length=255, verbose_name='type')), - ('mediacategory', models.CharField(blank=True, db_column='mediacategory', max_length=255, null=True, verbose_name='category')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "mediatype", + models.CharField( + db_column="mediatype", max_length=255, verbose_name="type" + ), + ), + ( + "mediacategory", + models.CharField( + blank=True, + db_column="mediacategory", + max_length=255, + null=True, + verbose_name="category", + ), + ), ], options={ - 'db_table': 'lookupmediatype', - 'verbose_name': 'media type', - 'managed': True, - 'verbose_name_plural': 'media types', + "db_table": "lookupmediatype", + "verbose_name": "media type", + "managed": True, + "verbose_name_plural": "media types", }, ), migrations.CreateModel( - name='LookupParticipants', + name="LookupParticipants", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('participants', models.CharField(db_column='participants', max_length=255)), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "participants", + models.CharField(db_column="participants", max_length=255), + ), ], options={ - 'db_table': 'lookupparticipants', - 'verbose_name': 'participant', - 'managed': True, - 'verbose_name_plural': 'participants', + "db_table": "lookupparticipants", + "verbose_name": "participant", + "managed": True, + "verbose_name_plural": "participants", }, ), migrations.CreateModel( - name='LookupPartUsed', + name="LookupPartUsed", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('partused', models.CharField(db_column='partused', max_length=255, verbose_name='part used')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "partused", + models.CharField( + db_column="partused", max_length=255, verbose_name="part used" + ), + ), ], options={ - 'db_table': 'lookuppartused', - 'verbose_name': 'part used', - 'managed': True, - 'verbose_name_plural': 'parts used', + "db_table": "lookuppartused", + "verbose_name": "part used", + "managed": True, + "verbose_name_plural": "parts used", }, ), migrations.CreateModel( - name='LookupPlanningUnit', + name="LookupPlanningUnit", fields=[ - ('planningunitid', models.AutoField(db_column='planningunitid', primary_key=True, serialize=False)), - ('planningunitname', models.CharField(blank=True, db_column='planningunitname', max_length=100, null=True, verbose_name='planning unit')), + ( + "planningunitid", + models.AutoField( + db_column="planningunitid", primary_key=True, serialize=False + ), + ), + ( + "planningunitname", + models.CharField( + blank=True, + db_column="planningunitname", + max_length=100, + null=True, + verbose_name="planning unit", + ), + ), ], options={ - 'db_table': 'lookupplanningunit', - 'verbose_name': 'planning unit', - 'managed': True, - 'verbose_name_plural': 'planning units', + "db_table": "lookupplanningunit", + "verbose_name": "planning unit", + "managed": True, + "verbose_name_plural": "planning units", }, ), migrations.CreateModel( - name='LookupReferenceType', + name="LookupReferenceType", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('documenttype', models.CharField(db_column='documenttype', max_length=25, verbose_name='document type')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "documenttype", + models.CharField( + db_column="documenttype", + max_length=25, + verbose_name="document type", + ), + ), ], options={ - 'db_table': 'lookupreferencetype', - 'verbose_name': 'reference type', - 'managed': True, - 'verbose_name_plural': 'reference types', + "db_table": "lookupreferencetype", + "verbose_name": "reference type", + "managed": True, + "verbose_name_plural": "reference types", }, ), migrations.CreateModel( - name='LookupResourceGroup', + name="LookupResourceGroup", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('resourceclassificationgroup', models.CharField(db_column='resourceclassificationgroup', max_length=255, verbose_name='broad species group')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "resourceclassificationgroup", + models.CharField( + db_column="resourceclassificationgroup", + max_length=255, + verbose_name="broad species group", + ), + ), ], options={ - 'db_table': 'lookupresourcegroup', - 'verbose_name': 'resource group', - 'managed': True, - 'verbose_name_plural': 'resource groups', + "db_table": "lookupresourcegroup", + "verbose_name": "resource group", + "managed": True, + "verbose_name_plural": "resource groups", }, ), migrations.CreateModel( - name='LookupSeason', + name="LookupSeason", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('season', models.CharField(db_column='season', max_length=255)), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ("season", models.CharField(db_column="season", max_length=255)), ], options={ - 'db_table': 'lookupseason', - 'verbose_name': 'season', - 'managed': True, - 'verbose_name_plural': 'seasons', + "db_table": "lookupseason", + "verbose_name": "season", + "managed": True, + "verbose_name_plural": "seasons", }, ), migrations.CreateModel( - name='LookupTechniques', + name="LookupTechniques", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('techniques', models.CharField(db_column='techniques', max_length=255)), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "techniques", + models.CharField(db_column="techniques", max_length=255), + ), ], options={ - 'db_table': 'lookuptechniques', - 'verbose_name': 'technique', - 'managed': True, - 'verbose_name_plural': 'techniques', + "db_table": "lookuptechniques", + "verbose_name": "technique", + "managed": True, + "verbose_name_plural": "techniques", }, ), migrations.CreateModel( - name='LookupTiming', + name="LookupTiming", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('timing', models.CharField(db_column='timing', max_length=255)), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ("timing", models.CharField(db_column="timing", max_length=255)), ], options={ - 'db_table': 'lookuptiming', - 'verbose_name': 'timing', - 'managed': True, - 'verbose_name_plural': 'timings', + "db_table": "lookuptiming", + "verbose_name": "timing", + "managed": True, + "verbose_name_plural": "timings", }, ), migrations.CreateModel( - name='LookupTribe', + name="LookupTribe", fields=[ - ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), - ('tribeunit', models.CharField(blank=True, db_column='tribeunit', max_length=50, null=True, verbose_name='tribe subunit')), - ('tribe', models.CharField(blank=True, db_column='tribe', max_length=100, null=True, verbose_name='tribe')), - ('federaltribe', models.CharField(blank=True, db_column='federaltribe', max_length=100, null=True, verbose_name='tribal government')), + ( + "id", + models.AutoField(db_column="id", primary_key=True, serialize=False), + ), + ( + "tribeunit", + models.CharField( + blank=True, + db_column="tribeunit", + max_length=50, + null=True, + verbose_name="tribe subunit", + ), + ), + ( + "tribe", + models.CharField( + blank=True, + db_column="tribe", + max_length=100, + null=True, + verbose_name="tribe", + ), + ), + ( + "federaltribe", + models.CharField( + blank=True, + db_column="federaltribe", + max_length=100, + null=True, + verbose_name="tribal government", + ), + ), ], options={ - 'db_table': 'lookuptribe', - 'verbose_name': 'tribe', - 'managed': True, - 'verbose_name_plural': 'tribes', + "db_table": "lookuptribe", + "verbose_name": "tribe", + "managed": True, + "verbose_name_plural": "tribes", }, ), migrations.CreateModel( - name='LookupUserInfo', + name="LookupUserInfo", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('username', models.CharField(blank=True, db_column='username', max_length=100, null=True, verbose_name='username')), - ('usingcustomusername', models.BooleanField(db_column='usingcustomusername', default=False, verbose_name='using custom username')), - ('usertitle', models.CharField(blank=True, db_column='usertitle', max_length=100, null=True, verbose_name='title')), - ('useraffiliation', models.CharField(blank=True, db_column='useraffiliation', max_length=100, null=True, verbose_name='affiliation')), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "username", + models.CharField( + blank=True, + db_column="username", + max_length=100, + null=True, + verbose_name="username", + ), + ), + ( + "usingcustomusername", + models.BooleanField( + db_column="usingcustomusername", + default=False, + verbose_name="using custom username", + ), + ), + ( + "usertitle", + models.CharField( + blank=True, + db_column="usertitle", + max_length=100, + null=True, + verbose_name="title", + ), + ), + ( + "useraffiliation", + models.CharField( + blank=True, + db_column="useraffiliation", + max_length=100, + null=True, + verbose_name="affiliation", + ), + ), ], options={ - 'db_table': 'lookupuserinfo', - 'verbose_name': 'user info', - 'managed': True, - 'verbose_name_plural': 'user info', + "db_table": "lookupuserinfo", + "verbose_name": "user info", + "managed": True, + "verbose_name_plural": "user info", }, ), migrations.CreateModel( - name='People', + name="People", fields=[ - ('personid', models.AutoField(db_column='personid', primary_key=True, serialize=False)), - ('firstname', models.CharField(blank=True, db_column='firstname', max_length=255, null=True, verbose_name='first name')), - ('lastname', models.CharField(blank=True, db_column='lastname', max_length=255, null=True, verbose_name='last name')), - ('village', models.CharField(blank=True, db_column='village', max_length=255, null=True)), - ('yearborn', models.IntegerField(blank=True, db_column='yearborn', null=True, verbose_name='year born')), - ('relationshiptootherpeople', models.TextField(blank=True, db_column='relationshiptootherpeople', null=True, verbose_name='relationship to other people')), + ( + "personid", + models.AutoField( + db_column="personid", primary_key=True, serialize=False + ), + ), + ( + "firstname", + models.CharField( + blank=True, + db_column="firstname", + max_length=255, + null=True, + verbose_name="first name", + ), + ), + ( + "lastname", + models.CharField( + blank=True, + db_column="lastname", + max_length=255, + null=True, + verbose_name="last name", + ), + ), + ( + "village", + models.CharField( + blank=True, db_column="village", max_length=255, null=True + ), + ), + ( + "yearborn", + models.IntegerField( + blank=True, + db_column="yearborn", + null=True, + verbose_name="year born", + ), + ), + ( + "relationshiptootherpeople", + models.TextField( + blank=True, + db_column="relationshiptootherpeople", + null=True, + verbose_name="relationship to other people", + ), + ), ], options={ - 'db_table': 'people', - 'verbose_name': 'person', - 'managed': True, - 'verbose_name_plural': 'people', + "db_table": "people", + "verbose_name": "person", + "managed": True, + "verbose_name_plural": "people", }, ), ] diff --git a/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py b/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py index 62ff1b64..279bd561 100644 --- a/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py +++ b/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py @@ -6,74 +6,153 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0001_initial'), + ("Lookup", "0001_initial"), ] operations = [ migrations.AlterModelOptions( - name='lookupactivity', - options={'managed': True, 'ordering': ['activity'], 'verbose_name': 'activity', 'verbose_name_plural': 'activities'}, - ), - migrations.AlterModelOptions( - name='lookupauthortype', - options={'managed': True, 'ordering': ['authortype'], 'verbose_name': 'author type', 'verbose_name_plural': 'author types'}, - ), - migrations.AlterModelOptions( - name='lookupcustomaryuse', - options={'managed': True, 'ordering': ['usedfor'], 'verbose_name': 'customary use', 'verbose_name_plural': 'customary uses'}, - ), - migrations.AlterModelOptions( - name='lookuphabitat', - options={'managed': True, 'ordering': ['habitat'], 'verbose_name': 'habitat', 'verbose_name_plural': 'habitats'}, - ), - migrations.AlterModelOptions( - name='lookuplocalitytype', - options={'managed': True, 'ordering': ['localitytype'], 'verbose_name': 'locality type', 'verbose_name_plural': 'locality types'}, - ), - migrations.AlterModelOptions( - name='lookupmediatype', - options={'managed': True, 'ordering': ['mediatype'], 'verbose_name': 'media type', 'verbose_name_plural': 'media types'}, - ), - migrations.AlterModelOptions( - name='lookupparticipants', - options={'managed': True, 'ordering': ['participants'], 'verbose_name': 'participant', 'verbose_name_plural': 'participants'}, - ), - migrations.AlterModelOptions( - name='lookuppartused', - options={'managed': True, 'ordering': ['partused'], 'verbose_name': 'part used', 'verbose_name_plural': 'parts used'}, - ), - migrations.AlterModelOptions( - name='lookupplanningunit', - options={'managed': True, 'ordering': ['planningunitname'], 'verbose_name': 'planning unit', 'verbose_name_plural': 'planning units'}, - ), - migrations.AlterModelOptions( - name='lookupreferencetype', - options={'managed': True, 'ordering': ['documenttype'], 'verbose_name': 'reference type', 'verbose_name_plural': 'reference types'}, - ), - migrations.AlterModelOptions( - name='lookupresourcegroup', - options={'managed': True, 'ordering': ['resourceclassificationgroup'], 'verbose_name': 'resource group', 'verbose_name_plural': 'resource groups'}, - ), - migrations.AlterModelOptions( - name='lookupseason', - options={'managed': True, 'ordering': ['season'], 'verbose_name': 'season', 'verbose_name_plural': 'seasons'}, - ), - migrations.AlterModelOptions( - name='lookuptechniques', - options={'managed': True, 'ordering': ['techniques'], 'verbose_name': 'technique', 'verbose_name_plural': 'techniques'}, - ), - migrations.AlterModelOptions( - name='lookuptiming', - options={'managed': True, 'ordering': ['timing'], 'verbose_name': 'timing', 'verbose_name_plural': 'timings'}, - ), - migrations.AlterModelOptions( - name='lookuptribe', - options={'managed': True, 'ordering': ['tribe'], 'verbose_name': 'tribe', 'verbose_name_plural': 'tribes'}, - ), - migrations.AlterModelOptions( - name='lookupuserinfo', - options={'managed': True, 'ordering': ['username'], 'verbose_name': 'user info', 'verbose_name_plural': 'user info'}, + name="lookupactivity", + options={ + "managed": True, + "ordering": ["activity"], + "verbose_name": "activity", + "verbose_name_plural": "activities", + }, + ), + migrations.AlterModelOptions( + name="lookupauthortype", + options={ + "managed": True, + "ordering": ["authortype"], + "verbose_name": "author type", + "verbose_name_plural": "author types", + }, + ), + migrations.AlterModelOptions( + name="lookupcustomaryuse", + options={ + "managed": True, + "ordering": ["usedfor"], + "verbose_name": "customary use", + "verbose_name_plural": "customary uses", + }, + ), + migrations.AlterModelOptions( + name="lookuphabitat", + options={ + "managed": True, + "ordering": ["habitat"], + "verbose_name": "habitat", + "verbose_name_plural": "habitats", + }, + ), + migrations.AlterModelOptions( + name="lookuplocalitytype", + options={ + "managed": True, + "ordering": ["localitytype"], + "verbose_name": "locality type", + "verbose_name_plural": "locality types", + }, + ), + migrations.AlterModelOptions( + name="lookupmediatype", + options={ + "managed": True, + "ordering": ["mediatype"], + "verbose_name": "media type", + "verbose_name_plural": "media types", + }, + ), + migrations.AlterModelOptions( + name="lookupparticipants", + options={ + "managed": True, + "ordering": ["participants"], + "verbose_name": "participant", + "verbose_name_plural": "participants", + }, + ), + migrations.AlterModelOptions( + name="lookuppartused", + options={ + "managed": True, + "ordering": ["partused"], + "verbose_name": "part used", + "verbose_name_plural": "parts used", + }, + ), + migrations.AlterModelOptions( + name="lookupplanningunit", + options={ + "managed": True, + "ordering": ["planningunitname"], + "verbose_name": "planning unit", + "verbose_name_plural": "planning units", + }, + ), + migrations.AlterModelOptions( + name="lookupreferencetype", + options={ + "managed": True, + "ordering": ["documenttype"], + "verbose_name": "reference type", + "verbose_name_plural": "reference types", + }, + ), + migrations.AlterModelOptions( + name="lookupresourcegroup", + options={ + "managed": True, + "ordering": ["resourceclassificationgroup"], + "verbose_name": "resource group", + "verbose_name_plural": "resource groups", + }, + ), + migrations.AlterModelOptions( + name="lookupseason", + options={ + "managed": True, + "ordering": ["season"], + "verbose_name": "season", + "verbose_name_plural": "seasons", + }, + ), + migrations.AlterModelOptions( + name="lookuptechniques", + options={ + "managed": True, + "ordering": ["techniques"], + "verbose_name": "technique", + "verbose_name_plural": "techniques", + }, + ), + migrations.AlterModelOptions( + name="lookuptiming", + options={ + "managed": True, + "ordering": ["timing"], + "verbose_name": "timing", + "verbose_name_plural": "timings", + }, + ), + migrations.AlterModelOptions( + name="lookuptribe", + options={ + "managed": True, + "ordering": ["tribe"], + "verbose_name": "tribe", + "verbose_name_plural": "tribes", + }, + ), + migrations.AlterModelOptions( + name="lookupuserinfo", + options={ + "managed": True, + "ordering": ["username"], + "verbose_name": "user info", + "verbose_name_plural": "user info", + }, ), ] diff --git a/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py b/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py index 2bd255b4..682a1ed5 100644 --- a/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py +++ b/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py @@ -6,20 +6,31 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0002_auto_20191223_1538'), + ("Lookup", "0002_auto_20191223_1538"), ] operations = [ migrations.AlterField( - model_name='lookuptribe', - name='federaltribe', - field=models.CharField(blank=True, db_column='federaltribe', max_length=255, null=True, verbose_name='tribal government'), + model_name="lookuptribe", + name="federaltribe", + field=models.CharField( + blank=True, + db_column="federaltribe", + max_length=255, + null=True, + verbose_name="tribal government", + ), ), migrations.AlterField( - model_name='lookuptribe', - name='tribe', - field=models.CharField(blank=True, db_column='tribe', max_length=255, null=True, verbose_name='tribe'), + model_name="lookuptribe", + name="tribe", + field=models.CharField( + blank=True, + db_column="tribe", + max_length=255, + null=True, + verbose_name="tribe", + ), ), ] diff --git a/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py b/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py index eb5c4b2e..104dcfdf 100644 --- a/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py +++ b/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py @@ -7,15 +7,19 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0003_auto_20191223_1604'), + ("Lookup", "0003_auto_20191223_1604"), ] operations = [ migrations.AlterField( - model_name='people', - name='relationshiptootherpeople', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshiptootherpeople', null=True, verbose_name='relationship to other people'), + model_name="people", + name="relationshiptootherpeople", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshiptootherpeople", + null=True, + verbose_name="relationship to other people", + ), ), ] diff --git a/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py b/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py index 77421b48..ac136b0b 100644 --- a/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py +++ b/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py @@ -4,15 +4,16 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0004_auto_20200107_1249'), + ("Lookup", "0004_auto_20200107_1249"), ] operations = [ migrations.AlterField( - model_name='lookupuserinfo', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + model_name="lookupuserinfo", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), ), ] diff --git a/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py b/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py index 963875b8..2e40ec77 100644 --- a/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py +++ b/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py @@ -5,15 +5,19 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0005_alter_lookupuserinfo_id'), + ("Lookup", "0005_alter_lookupuserinfo_id"), ] operations = [ migrations.AlterField( - model_name='people', - name='relationshiptootherpeople', - field=tinymce.models.HTMLField(blank=True, db_column='relationshiptootherpeople', null=True, verbose_name='relationship to other people'), + model_name="people", + name="relationshiptootherpeople", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshiptootherpeople", + null=True, + verbose_name="relationship to other people", + ), ), ] diff --git a/TEKDB/Relationships/apps.py b/TEKDB/Relationships/apps.py index 99539f7a..66419cd2 100644 --- a/TEKDB/Relationships/apps.py +++ b/TEKDB/Relationships/apps.py @@ -2,4 +2,4 @@ class RelationshipsConfig(AppConfig): - name = 'Relationships' + name = "Relationships" diff --git a/TEKDB/Relationships/migrations/0001_initial.py b/TEKDB/Relationships/migrations/0001_initial.py index a6a883c2..1a49960e 100644 --- a/TEKDB/Relationships/migrations/0001_initial.py +++ b/TEKDB/Relationships/migrations/0001_initial.py @@ -6,331 +6,1505 @@ class Migration(migrations.Migration): - initial = True - dependencies = [ - ] + dependencies = [] operations = [ migrations.CreateModel( - name='LocalityGISSelections', + name="LocalityGISSelections", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('localitylabel', models.CharField(blank=True, db_column='localitylabel', max_length=255, null=True, verbose_name='locality label')), - ('sourcefc', models.CharField(blank=True, db_column='sourcefc', max_length=255, null=True, verbose_name='source fc')), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "localitylabel", + models.CharField( + blank=True, + db_column="localitylabel", + max_length=255, + null=True, + verbose_name="locality label", + ), + ), + ( + "sourcefc", + models.CharField( + blank=True, + db_column="sourcefc", + max_length=255, + null=True, + verbose_name="source fc", + ), + ), ], options={ - 'db_table': 'localitygisselections', - 'managed': True, - 'verbose_name_plural': 'Locality GIS Selections', + "db_table": "localitygisselections", + "managed": True, + "verbose_name_plural": "Locality GIS Selections", }, ), migrations.CreateModel( - name='LocalityPlaceResourceEvent', + name="LocalityPlaceResourceEvent", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), ], options={ - 'db_table': 'localityplaceresourceevent', - 'managed': True, - 'verbose_name_plural': 'Localities - Place-Resources', + "db_table": "localityplaceresourceevent", + "managed": True, + "verbose_name_plural": "Localities - Place-Resources", }, ), migrations.CreateModel( - name='MediaCitationEvents', + name="MediaCitationEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="excerpt/description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=255, null=True + ), + ), ], options={ - 'db_table': 'mediacitationevents', - 'verbose_name_plural': 'Media - Sources', - 'verbose_name': 'Medium - Source', - 'managed': True, + "db_table": "mediacitationevents", + "verbose_name_plural": "Media - Sources", + "verbose_name": "Medium - Source", + "managed": True, }, ), migrations.CreateModel( - name='PlaceAltIndigenousName', + name="PlaceAltIndigenousName", fields=[ - ('altindigenousnameid', models.AutoField(db_column='altindigenousnameid', primary_key=True, serialize=False)), - ('altindigenousname', models.CharField(blank=True, db_column='altindigenousname', max_length=255, null=True, verbose_name='alternate name')), + ( + "altindigenousnameid", + models.AutoField( + db_column="altindigenousnameid", + primary_key=True, + serialize=False, + ), + ), + ( + "altindigenousname", + models.CharField( + blank=True, + db_column="altindigenousname", + max_length=255, + null=True, + verbose_name="alternate name", + ), + ), ], options={ - 'db_table': 'placealtindigenousname', - 'verbose_name': 'Place - Alternate Name', - 'managed': True, - 'verbose_name_plural': 'Places - Alternate Names', + "db_table": "placealtindigenousname", + "verbose_name": "Place - Alternate Name", + "managed": True, + "verbose_name_plural": "Places - Alternate Names", }, ), migrations.CreateModel( - name='PlaceGISSelections', + name="PlaceGISSelections", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('placelabel', models.CharField(blank=True, db_column='placelabel', max_length=255, null=True, verbose_name='label')), - ('sourcefc', models.CharField(blank=True, db_column='sourcefc', max_length=255, null=True, verbose_name='source fc')), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "placelabel", + models.CharField( + blank=True, + db_column="placelabel", + max_length=255, + null=True, + verbose_name="label", + ), + ), + ( + "sourcefc", + models.CharField( + blank=True, + db_column="sourcefc", + max_length=255, + null=True, + verbose_name="source fc", + ), + ), ], options={ - 'db_table': 'placegisselections', - 'managed': True, - 'verbose_name_plural': 'Place GIS Selections', + "db_table": "placegisselections", + "managed": True, + "verbose_name_plural": "Place GIS Selections", }, ), migrations.CreateModel( - name='PlacesCitationEvents', + name="PlacesCitationEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="excerpt/description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=255, null=True + ), + ), ], options={ - 'db_table': 'placescitationevents', - 'verbose_name_plural': 'Places - Sources', - 'verbose_name': 'Place - Source', - 'managed': True, + "db_table": "placescitationevents", + "verbose_name_plural": "Places - Sources", + "verbose_name": "Place - Source", + "managed": True, }, ), migrations.CreateModel( - name='PlacesMediaEvents', + name="PlacesMediaEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="relationship description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=50, null=True + ), + ), ], options={ - 'db_table': 'placesmediaevents', - 'verbose_name_plural': 'Places - Media', - 'verbose_name': 'Place - Medium', - 'managed': True, + "db_table": "placesmediaevents", + "verbose_name_plural": "Places - Media", + "verbose_name": "Place - Medium", + "managed": True, }, ), migrations.CreateModel( - name='PlacesResourceCitationEvents', + name="PlacesResourceCitationEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="excerpt/description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=255, null=True + ), + ), ], options={ - 'db_table': 'placesresourcecitationevents', - 'managed': True, - 'verbose_name_plural': 'Place-Resources - Sources', + "db_table": "placesresourcecitationevents", + "managed": True, + "verbose_name_plural": "Place-Resources - Sources", }, ), migrations.CreateModel( - name='PlacesResourceEvents', + name="PlacesResourceEvents", fields=[ - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('placeresourceid', models.AutoField(db_column='placeresourceid', primary_key=True, serialize=False)), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt')), - ('barterresource', models.BooleanField(db_column='barterresource', default=False, verbose_name='barter resource?')), - ('january', models.BooleanField(db_column='january', default=False)), - ('february', models.BooleanField(db_column='february', default=False)), - ('march', models.BooleanField(db_column='march', default=False)), - ('april', models.BooleanField(db_column='april', default=False)), - ('may', models.BooleanField(db_column='may', default=False)), - ('june', models.BooleanField(db_column='june', default=False)), - ('july', models.BooleanField(db_column='july', default=False)), - ('august', models.BooleanField(db_column='august', default=False)), - ('september', models.BooleanField(db_column='september', default=False)), - ('october', models.BooleanField(db_column='october', default=False)), - ('november', models.BooleanField(db_column='november', default=False)), - ('december', models.BooleanField(db_column='december', default=False)), - ('year', models.IntegerField(blank=True, db_column='year', null=True)), - ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "placeresourceid", + models.AutoField( + db_column="placeresourceid", primary_key=True, serialize=False + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="excerpt", + ), + ), + ( + "barterresource", + models.BooleanField( + db_column="barterresource", + default=False, + verbose_name="barter resource?", + ), + ), + ("january", models.BooleanField(db_column="january", default=False)), + ("february", models.BooleanField(db_column="february", default=False)), + ("march", models.BooleanField(db_column="march", default=False)), + ("april", models.BooleanField(db_column="april", default=False)), + ("may", models.BooleanField(db_column="may", default=False)), + ("june", models.BooleanField(db_column="june", default=False)), + ("july", models.BooleanField(db_column="july", default=False)), + ("august", models.BooleanField(db_column="august", default=False)), + ( + "september", + models.BooleanField(db_column="september", default=False), + ), + ("october", models.BooleanField(db_column="october", default=False)), + ("november", models.BooleanField(db_column="november", default=False)), + ("december", models.BooleanField(db_column="december", default=False)), + ("year", models.IntegerField(blank=True, db_column="year", null=True)), + ( + "islocked", + models.BooleanField( + db_column="islocked", default=False, verbose_name="locked?" + ), + ), ], options={ - 'db_table': 'placesresourceevents', - 'verbose_name': 'Place - Resource', - 'managed': True, - 'verbose_name_plural': 'Places - Resources', + "db_table": "placesresourceevents", + "verbose_name": "Place - Resource", + "managed": True, + "verbose_name_plural": "Places - Resources", }, ), migrations.CreateModel( - name='PlacesResourceMediaEvents', + name="PlacesResourceMediaEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="relationship description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=50, null=True + ), + ), ], options={ - 'db_table': 'placesresourcemediaevents', - 'managed': True, - 'verbose_name_plural': 'Place-Resources - Media', + "db_table": "placesresourcemediaevents", + "managed": True, + "verbose_name_plural": "Place-Resources - Media", }, ), migrations.CreateModel( - name='ResourceActivityCitationEvents', + name="ResourceActivityCitationEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="excerpt/description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=255, null=True + ), + ), ], options={ - 'db_table': 'resourceactivitycitationevents', - 'managed': True, - 'verbose_name_plural': 'Activity - Sources', + "db_table": "resourceactivitycitationevents", + "managed": True, + "verbose_name_plural": "Activity - Sources", }, ), migrations.CreateModel( - name='ResourceActivityMediaEvents', + name="ResourceActivityMediaEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="relationship description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=50, null=True + ), + ), ], options={ - 'db_table': 'resourceactivitymediaevents', - 'managed': True, - 'verbose_name_plural': 'Activity - Media', + "db_table": "resourceactivitymediaevents", + "managed": True, + "verbose_name_plural": "Activity - Media", }, ), migrations.CreateModel( - name='ResourceAltIndigenousName', + name="ResourceAltIndigenousName", fields=[ - ('altindigenousnameid', models.AutoField(db_column='altindigenousnameid', primary_key=True, serialize=False)), - ('altindigenousname', models.CharField(blank=True, db_column='altindigenousname', max_length=255, null=True, verbose_name='alt name')), + ( + "altindigenousnameid", + models.AutoField( + db_column="altindigenousnameid", + primary_key=True, + serialize=False, + ), + ), + ( + "altindigenousname", + models.CharField( + blank=True, + db_column="altindigenousname", + max_length=255, + null=True, + verbose_name="alt name", + ), + ), ], options={ - 'db_table': 'resourcealtindigenousname', - 'managed': True, - 'verbose_name_plural': 'Resource Alternative Names', + "db_table": "resourcealtindigenousname", + "managed": True, + "verbose_name_plural": "Resource Alternative Names", }, ), migrations.CreateModel( - name='ResourceResourceEvents', + name="ResourceResourceEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="relationship description", + ), + ), ], options={ - 'db_table': 'resourceresourceevents', - 'managed': True, - 'verbose_name_plural': 'Resources - Resources', + "db_table": "resourceresourceevents", + "managed": True, + "verbose_name_plural": "Resources - Resources", }, ), migrations.CreateModel( - name='ResourcesCitationEvents', + name="ResourcesCitationEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="excerpt/description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=255, null=True + ), + ), ], options={ - 'db_table': 'resourcescitationevents', - 'verbose_name_plural': 'Resources - Sources', - 'verbose_name': 'Resource - Source', - 'managed': True, + "db_table": "resourcescitationevents", + "verbose_name_plural": "Resources - Sources", + "verbose_name": "Resource - Source", + "managed": True, }, ), migrations.CreateModel( - name='ResourcesMediaEvents', + name="ResourcesMediaEvents", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), - ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "relationshipdescription", + models.CharField( + blank=True, + db_column="relationshipdescription", + max_length=255, + null=True, + verbose_name="relationship description", + ), + ), + ( + "pages", + models.CharField( + blank=True, db_column="pages", max_length=50, null=True + ), + ), ], options={ - 'db_table': 'resourcesmediaevents', - 'verbose_name_plural': 'Resources - Media', - 'verbose_name': 'Resource - Medium', - 'managed': True, + "db_table": "resourcesmediaevents", + "verbose_name_plural": "Resources - Media", + "verbose_name": "Resource - Medium", + "managed": True, }, ), ] diff --git a/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py b/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py index 01ab3597..9b60a90e 100644 --- a/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py +++ b/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py @@ -7,218 +7,395 @@ class Migration(migrations.Migration): - initial = True dependencies = [ - ('Relationships', '0001_initial'), - ('Lookup', '0001_initial'), - ('TEKDB', '0001_initial'), + ("Relationships", "0001_initial"), + ("Lookup", "0001_initial"), + ("TEKDB", "0001_initial"), ] operations = [ migrations.AddField( - model_name='resourcesmediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), - ), - migrations.AddField( - model_name='resourcesmediaevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), - ), - migrations.AddField( - model_name='resourcescitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), - ), - migrations.AddField( - model_name='resourcescitationevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), - ), - migrations.AddField( - model_name='resourceresourceevents', - name='altresourceid', - field=models.ForeignKey(db_column='altresourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_b', to='TEKDB.Resources'), - ), - migrations.AddField( - model_name='resourceresourceevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_a', to='TEKDB.Resources'), - ), - migrations.AddField( - model_name='resourcealtindigenousname', - name='resourceid', - field=models.ForeignKey(blank=True, db_column='resourceid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), - ), - migrations.AddField( - model_name='resourceactivitymediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), - ), - migrations.AddField( - model_name='resourceactivitymediaevents', - name='resourceactivityid', - field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.ResourcesActivityEvents', verbose_name='resource activity'), - ), - migrations.AddField( - model_name='resourceactivitycitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), - ), - migrations.AddField( - model_name='resourceactivitycitationevents', - name='resourceactivityid', - field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.ResourcesActivityEvents', verbose_name='resource activity'), - ), - migrations.AddField( - model_name='placesresourcemediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), - ), - migrations.AddField( - model_name='placesresourcemediaevents', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place - resource'), - ), - migrations.AddField( - model_name='placesresourceevents', - name='customaryuse', - field=models.ForeignKey(blank=True, db_column='customaryuse', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupCustomaryUse', verbose_name='customary use'), - ), - migrations.AddField( - model_name='placesresourceevents', - name='partused', - field=models.ForeignKey(blank=True, db_column='partused', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupPartUsed', verbose_name='part used'), - ), - migrations.AddField( - model_name='placesresourceevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), - ), - migrations.AddField( - model_name='placesresourceevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), - ), - migrations.AddField( - model_name='placesresourceevents', - name='season', - field=models.ForeignKey(blank=True, db_column='season', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupSeason'), - ), - migrations.AddField( - model_name='placesresourceevents', - name='timing', - field=models.ForeignKey(blank=True, db_column='timing', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTiming'), - ), - migrations.AddField( - model_name='placesresourcecitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), - ), - migrations.AddField( - model_name='placesresourcecitationevents', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place resource'), - ), - migrations.AddField( - model_name='placesmediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), - ), - migrations.AddField( - model_name='placesmediaevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), - ), - migrations.AddField( - model_name='placescitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), - ), - migrations.AddField( - model_name='placescitationevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), - ), - migrations.AddField( - model_name='placegisselections', - name='placeid', - field=models.ForeignKey(blank=True, db_column='placeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), - ), - migrations.AddField( - model_name='placealtindigenousname', - name='placeid', - field=models.ForeignKey(blank=True, db_column='placeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), - ), - migrations.AddField( - model_name='mediacitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), - ), - migrations.AddField( - model_name='mediacitationevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), - ), - migrations.AddField( - model_name='localityplaceresourceevent', - name='localityid', - field=models.ForeignKey(db_column='localityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Locality', verbose_name='locality'), - ), - migrations.AddField( - model_name='localityplaceresourceevent', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place resource'), - ), - migrations.AddField( - model_name='localitygisselections', - name='localityid', - field=models.ForeignKey(blank=True, db_column='localityid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Locality', verbose_name='locality'), + model_name="resourcesmediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Media", + verbose_name="media", + ), + ), + migrations.AddField( + model_name="resourcesmediaevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Resources", + verbose_name="resource", + ), + ), + migrations.AddField( + model_name="resourcescitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Citations", + verbose_name="citation", + ), + ), + migrations.AddField( + model_name="resourcescitationevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Resources", + verbose_name="resource", + ), + ), + migrations.AddField( + model_name="resourceresourceevents", + name="altresourceid", + field=models.ForeignKey( + db_column="altresourceid", + on_delete=django.db.models.deletion.CASCADE, + related_name="resource_b", + to="TEKDB.Resources", + ), + ), + migrations.AddField( + model_name="resourceresourceevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + related_name="resource_a", + to="TEKDB.Resources", + ), + ), + migrations.AddField( + model_name="resourcealtindigenousname", + name="resourceid", + field=models.ForeignKey( + blank=True, + db_column="resourceid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Resources", + verbose_name="resource", + ), + ), + migrations.AddField( + model_name="resourceactivitymediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Media", + verbose_name="media", + ), + ), + migrations.AddField( + model_name="resourceactivitymediaevents", + name="resourceactivityid", + field=models.ForeignKey( + db_column="resourceactivityid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.ResourcesActivityEvents", + verbose_name="resource activity", + ), + ), + migrations.AddField( + model_name="resourceactivitycitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Citations", + verbose_name="citation", + ), + ), + migrations.AddField( + model_name="resourceactivitycitationevents", + name="resourceactivityid", + field=models.ForeignKey( + db_column="resourceactivityid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.ResourcesActivityEvents", + verbose_name="resource activity", + ), + ), + migrations.AddField( + model_name="placesresourcemediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Media", + verbose_name="media", + ), + ), + migrations.AddField( + model_name="placesresourcemediaevents", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.CASCADE, + to="Relationships.PlacesResourceEvents", + verbose_name="place - resource", + ), + ), + migrations.AddField( + model_name="placesresourceevents", + name="customaryuse", + field=models.ForeignKey( + blank=True, + db_column="customaryuse", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupCustomaryUse", + verbose_name="customary use", + ), + ), + migrations.AddField( + model_name="placesresourceevents", + name="partused", + field=models.ForeignKey( + blank=True, + db_column="partused", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupPartUsed", + verbose_name="part used", + ), + ), + migrations.AddField( + model_name="placesresourceevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Places", + verbose_name="place", + ), + ), + migrations.AddField( + model_name="placesresourceevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Resources", + verbose_name="resource", + ), + ), + migrations.AddField( + model_name="placesresourceevents", + name="season", + field=models.ForeignKey( + blank=True, + db_column="season", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupSeason", + ), + ), + migrations.AddField( + model_name="placesresourceevents", + name="timing", + field=models.ForeignKey( + blank=True, + db_column="timing", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupTiming", + ), + ), + migrations.AddField( + model_name="placesresourcecitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Citations", + verbose_name="citation", + ), + ), + migrations.AddField( + model_name="placesresourcecitationevents", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.CASCADE, + to="Relationships.PlacesResourceEvents", + verbose_name="place resource", + ), + ), + migrations.AddField( + model_name="placesmediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Media", + verbose_name="media", + ), + ), + migrations.AddField( + model_name="placesmediaevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Places", + verbose_name="place", + ), + ), + migrations.AddField( + model_name="placescitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Citations", + verbose_name="citation", + ), + ), + migrations.AddField( + model_name="placescitationevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Places", + verbose_name="place", + ), + ), + migrations.AddField( + model_name="placegisselections", + name="placeid", + field=models.ForeignKey( + blank=True, + db_column="placeid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Places", + verbose_name="place", + ), + ), + migrations.AddField( + model_name="placealtindigenousname", + name="placeid", + field=models.ForeignKey( + blank=True, + db_column="placeid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Places", + verbose_name="place", + ), + ), + migrations.AddField( + model_name="mediacitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Citations", + verbose_name="citation", + ), + ), + migrations.AddField( + model_name="mediacitationevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Media", + verbose_name="media", + ), + ), + migrations.AddField( + model_name="localityplaceresourceevent", + name="localityid", + field=models.ForeignKey( + db_column="localityid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Locality", + verbose_name="locality", + ), + ), + migrations.AddField( + model_name="localityplaceresourceevent", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.CASCADE, + to="Relationships.PlacesResourceEvents", + verbose_name="place resource", + ), + ), + migrations.AddField( + model_name="localitygisselections", + name="localityid", + field=models.ForeignKey( + blank=True, + db_column="localityid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Locality", + verbose_name="locality", + ), ), migrations.AlterUniqueTogether( - name='resourcesmediaevents', - unique_together=set([('resourceid', 'mediaid')]), + name="resourcesmediaevents", + unique_together=set([("resourceid", "mediaid")]), ), migrations.AlterUniqueTogether( - name='resourcescitationevents', - unique_together=set([('resourceid', 'citationid')]), + name="resourcescitationevents", + unique_together=set([("resourceid", "citationid")]), ), migrations.AlterUniqueTogether( - name='resourceresourceevents', - unique_together=set([('resourceid', 'altresourceid')]), + name="resourceresourceevents", + unique_together=set([("resourceid", "altresourceid")]), ), migrations.AlterUniqueTogether( - name='resourceactivitymediaevents', - unique_together=set([('resourceactivityid', 'mediaid')]), + name="resourceactivitymediaevents", + unique_together=set([("resourceactivityid", "mediaid")]), ), migrations.AlterUniqueTogether( - name='resourceactivitycitationevents', - unique_together=set([('resourceactivityid', 'citationid')]), + name="resourceactivitycitationevents", + unique_together=set([("resourceactivityid", "citationid")]), ), migrations.AlterUniqueTogether( - name='placesresourcemediaevents', - unique_together=set([('placeresourceid', 'mediaid')]), + name="placesresourcemediaevents", + unique_together=set([("placeresourceid", "mediaid")]), ), migrations.AlterUniqueTogether( - name='placesresourcecitationevents', - unique_together=set([('placeresourceid', 'citationid')]), + name="placesresourcecitationevents", + unique_together=set([("placeresourceid", "citationid")]), ), migrations.AlterUniqueTogether( - name='placesmediaevents', - unique_together=set([('placeid', 'mediaid')]), + name="placesmediaevents", + unique_together=set([("placeid", "mediaid")]), ), migrations.AlterUniqueTogether( - name='placescitationevents', - unique_together=set([('placeid', 'citationid')]), + name="placescitationevents", + unique_together=set([("placeid", "citationid")]), ), migrations.AlterUniqueTogether( - name='mediacitationevents', - unique_together=set([('mediaid', 'citationid')]), + name="mediacitationevents", + unique_together=set([("mediaid", "citationid")]), ), migrations.AlterUniqueTogether( - name='localityplaceresourceevent', - unique_together=set([('placeresourceid', 'localityid')]), + name="localityplaceresourceevent", + unique_together=set([("placeresourceid", "localityid")]), ), ] diff --git a/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py b/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py index 3aa0ce10..d226bd96 100644 --- a/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py +++ b/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py @@ -6,15 +6,19 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0002_auto_20171013_1650'), + ("Relationships", "0002_auto_20171013_1650"), ] operations = [ migrations.AlterField( - model_name='resourceresourceevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourceresourceevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py b/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py index 501e9a3a..2c1745df 100644 --- a/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py +++ b/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py @@ -6,15 +6,19 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0003_auto_20171031_1434'), + ("Relationships", "0003_auto_20171031_1434"), ] operations = [ migrations.AlterField( - model_name='placesresourceevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), + model_name="placesresourceevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py b/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py index 908155ad..3a09394f 100644 --- a/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py +++ b/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py @@ -6,19 +6,27 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0004_auto_20171031_1525'), + ("Relationships", "0004_auto_20171031_1525"), ] operations = [ migrations.AlterModelOptions( - name='resourcealtindigenousname', - options={'managed': True, 'verbose_name': 'Resource Alternative Name', 'verbose_name_plural': 'Resource Alternative Names'}, + name="resourcealtindigenousname", + options={ + "managed": True, + "verbose_name": "Resource Alternative Name", + "verbose_name_plural": "Resource Alternative Names", + }, ), migrations.AlterField( - model_name='resourceactivitycitationevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="resourceactivitycitationevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py b/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py index d4483a71..98c516ce 100644 --- a/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py +++ b/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py @@ -6,50 +6,89 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0005_auto_20191223_1538'), + ("Relationships", "0005_auto_20191223_1538"), ] operations = [ migrations.AlterField( - model_name='mediacitationevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="mediacitationevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placescitationevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="placescitationevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placesmediaevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="placesmediaevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='placesresourcecitationevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="placesresourcecitationevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placesresourcemediaevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="placesresourcemediaevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourceactivitymediaevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourceactivitymediaevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourcescitationevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="resourcescitationevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='resourcesmediaevents', - name='relationshipdescription', - field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourcesmediaevents", + name="relationshipdescription", + field=models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py b/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py index 29f99916..de7a27fc 100644 --- a/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py +++ b/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py @@ -7,65 +7,119 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0006_auto_20191223_1604'), + ("Relationships", "0006_auto_20191223_1604"), ] operations = [ migrations.AlterField( - model_name='mediacitationevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="mediacitationevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placescitationevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="placescitationevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placesmediaevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="placesmediaevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='placesresourcecitationevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="placesresourcecitationevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placesresourceevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), + model_name="placesresourceevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt", + ), ), migrations.AlterField( - model_name='placesresourcemediaevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="placesresourcemediaevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourceactivitycitationevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="resourceactivitycitationevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='resourceactivitymediaevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourceactivitymediaevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourceresourceevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourceresourceevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourcescitationevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="resourcescitationevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='resourcesmediaevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourcesmediaevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py b/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py index c85a4be4..843e1ee6 100644 --- a/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py +++ b/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py @@ -5,237 +5,448 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0005_alter_lookupuserinfo_id'), - ('TEKDB', '0004_auto_20200107_1604'), - ('Relationships', '0007_auto_20200107_1707'), + ("Lookup", "0005_alter_lookupuserinfo_id"), + ("TEKDB", "0004_auto_20200107_1604"), + ("Relationships", "0007_auto_20200107_1707"), ] operations = [ migrations.AlterField( - model_name='localitygisselections', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='localitygisselections', - name='localityid', - field=models.ForeignKey(blank=True, db_column='localityid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.locality', verbose_name='locality'), - ), - migrations.AlterField( - model_name='localityplaceresourceevent', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='localityplaceresourceevent', - name='localityid', - field=models.ForeignKey(db_column='localityid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.locality', verbose_name='locality'), - ), - migrations.AlterField( - model_name='localityplaceresourceevent', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place resource'), - ), - migrations.AlterField( - model_name='mediacitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='mediacitationevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='mediacitationevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='placealtindigenousname', - name='placeid', - field=models.ForeignKey(blank=True, db_column='placeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='placegisselections', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='placegisselections', - name='placeid', - field=models.ForeignKey(blank=True, db_column='placeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='placescitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='placescitationevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='placescitationevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='placesmediaevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='placesmediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='placesmediaevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='placesresourcecitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='placesresourcecitationevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='placesresourcecitationevents', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place resource'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='customaryuse', - field=models.ForeignKey(blank=True, db_column='customaryuse', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupcustomaryuse', verbose_name='customary use'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='partused', - field=models.ForeignKey(blank=True, db_column='partused', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuppartused', verbose_name='part used'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resources', verbose_name='resource'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='season', - field=models.ForeignKey(blank=True, db_column='season', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupseason'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='timing', - field=models.ForeignKey(blank=True, db_column='timing', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptiming'), - ), - migrations.AlterField( - model_name='placesresourcemediaevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='placesresourcemediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='placesresourcemediaevents', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place - resource'), - ), - migrations.AlterField( - model_name='resourceactivitycitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='resourceactivitycitationevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='resourceactivitycitationevents', - name='resourceactivityid', - field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), - ), - migrations.AlterField( - model_name='resourceactivitymediaevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='resourceactivitymediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='resourceactivitymediaevents', - name='resourceactivityid', - field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), - ), - migrations.AlterField( - model_name='resourcealtindigenousname', - name='resourceid', - field=models.ForeignKey(blank=True, db_column='resourceid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.resources', verbose_name='resource'), - ), - migrations.AlterField( - model_name='resourceresourceevents', - name='altresourceid', - field=models.ForeignKey(db_column='altresourceid', on_delete=django.db.models.deletion.PROTECT, related_name='resource_b', to='TEKDB.resources'), - ), - migrations.AlterField( - model_name='resourceresourceevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='resourceresourceevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, related_name='resource_a', to='TEKDB.resources'), - ), - migrations.AlterField( - model_name='resourcescitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='resourcescitationevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='resourcescitationevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resources', verbose_name='resource'), - ), - migrations.AlterField( - model_name='resourcesmediaevents', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='resourcesmediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='resourcesmediaevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resources', verbose_name='resource'), + model_name="localitygisselections", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="localitygisselections", + name="localityid", + field=models.ForeignKey( + blank=True, + db_column="localityid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="TEKDB.locality", + verbose_name="locality", + ), + ), + migrations.AlterField( + model_name="localityplaceresourceevent", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="localityplaceresourceevent", + name="localityid", + field=models.ForeignKey( + db_column="localityid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.locality", + verbose_name="locality", + ), + ), + migrations.AlterField( + model_name="localityplaceresourceevent", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.PROTECT, + to="Relationships.placesresourceevents", + verbose_name="place resource", + ), + ), + migrations.AlterField( + model_name="mediacitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="mediacitationevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="mediacitationevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="placealtindigenousname", + name="placeid", + field=models.ForeignKey( + blank=True, + db_column="placeid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="placegisselections", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="placegisselections", + name="placeid", + field=models.ForeignKey( + blank=True, + db_column="placeid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="placescitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="placescitationevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="placescitationevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="placesmediaevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="placesmediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="placesmediaevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="placesresourcecitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="placesresourcecitationevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="placesresourcecitationevents", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.PROTECT, + to="Relationships.placesresourceevents", + verbose_name="place resource", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="customaryuse", + field=models.ForeignKey( + blank=True, + db_column="customaryuse", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupcustomaryuse", + verbose_name="customary use", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="partused", + field=models.ForeignKey( + blank=True, + db_column="partused", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuppartused", + verbose_name="part used", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.resources", + verbose_name="resource", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="season", + field=models.ForeignKey( + blank=True, + db_column="season", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupseason", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="timing", + field=models.ForeignKey( + blank=True, + db_column="timing", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuptiming", + ), + ), + migrations.AlterField( + model_name="placesresourcemediaevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="placesresourcemediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="placesresourcemediaevents", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.PROTECT, + to="Relationships.placesresourceevents", + verbose_name="place - resource", + ), + ), + migrations.AlterField( + model_name="resourceactivitycitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="resourceactivitycitationevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="resourceactivitycitationevents", + name="resourceactivityid", + field=models.ForeignKey( + db_column="resourceactivityid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.resourcesactivityevents", + verbose_name="resource activity", + ), + ), + migrations.AlterField( + model_name="resourceactivitymediaevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="resourceactivitymediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="resourceactivitymediaevents", + name="resourceactivityid", + field=models.ForeignKey( + db_column="resourceactivityid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.resourcesactivityevents", + verbose_name="resource activity", + ), + ), + migrations.AlterField( + model_name="resourcealtindigenousname", + name="resourceid", + field=models.ForeignKey( + blank=True, + db_column="resourceid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="TEKDB.resources", + verbose_name="resource", + ), + ), + migrations.AlterField( + model_name="resourceresourceevents", + name="altresourceid", + field=models.ForeignKey( + db_column="altresourceid", + on_delete=django.db.models.deletion.PROTECT, + related_name="resource_b", + to="TEKDB.resources", + ), + ), + migrations.AlterField( + model_name="resourceresourceevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="resourceresourceevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.PROTECT, + related_name="resource_a", + to="TEKDB.resources", + ), + ), + migrations.AlterField( + model_name="resourcescitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="resourcescitationevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="resourcescitationevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.resources", + verbose_name="resource", + ), + ), + migrations.AlterField( + model_name="resourcesmediaevents", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="resourcesmediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="resourcesmediaevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.PROTECT, + to="TEKDB.resources", + verbose_name="resource", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py b/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py index fa069ce5..c0124ef5 100644 --- a/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py +++ b/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py @@ -4,20 +4,27 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0008_auto_20211021_1607'), + ("Relationships", "0008_auto_20211021_1607"), ] operations = [ migrations.AddField( - model_name='placesresourceevents', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), + model_name="placesresourceevents", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=False, verbose_name="Needs Review" + ), ), migrations.AddField( - model_name='placesresourceevents', - name='researchComments', - field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), + model_name="placesresourceevents", + name="researchComments", + field=models.TextField( + blank=True, + db_column="researchcomments", + default=None, + null=True, + verbose_name="Research Comments", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py b/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py index 5b9e8997..c55ceef6 100644 --- a/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py +++ b/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py @@ -4,15 +4,16 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0009_auto_20230413_1555'), + ("Relationships", "0009_auto_20230413_1555"), ] operations = [ migrations.AlterField( - model_name='placesresourceevents', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), + model_name="placesresourceevents", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ), ), ] diff --git a/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py b/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py index e87c19d7..cc5acd1f 100644 --- a/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py +++ b/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py @@ -5,65 +5,119 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0010_alter_placesresourceevents_needsreview'), + ("Relationships", "0010_alter_placesresourceevents_needsreview"), ] operations = [ migrations.AlterField( - model_name='mediacitationevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="mediacitationevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placescitationevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="placescitationevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placesmediaevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="placesmediaevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='placesresourcecitationevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="placesresourcecitationevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='placesresourceevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), + model_name="placesresourceevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt", + ), ), migrations.AlterField( - model_name='placesresourcemediaevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="placesresourcemediaevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourceactivitycitationevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="resourceactivitycitationevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='resourceactivitymediaevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourceactivitymediaevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourceresourceevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourceresourceevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), migrations.AlterField( - model_name='resourcescitationevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), + model_name="resourcescitationevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt/description", + ), ), migrations.AlterField( - model_name='resourcesmediaevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), + model_name="resourcesmediaevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="relationship description", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py b/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py index 4bf2651e..d4a402cb 100644 --- a/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py +++ b/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py @@ -5,21 +5,33 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0025_alter_mediabulkupload_mediabulkname'), - ('Relationships', '0011_alter_mediacitationevents_relationshipdescription_and_more'), + ("TEKDB", "0025_alter_mediabulkupload_mediabulkname"), + ( + "Relationships", + "0011_alter_mediacitationevents_relationshipdescription_and_more", + ), ] operations = [ migrations.AlterField( - model_name='placesmediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), + model_name="placesmediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.media", + verbose_name="media", + ), ), migrations.AlterField( - model_name='placesmediaevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.places', verbose_name='place'), + model_name="placesmediaevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.places", + verbose_name="place", + ), ), ] diff --git a/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py b/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py index 106aff71..428afa0b 100644 --- a/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py +++ b/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py @@ -5,110 +5,209 @@ class Migration(migrations.Migration): - dependencies = [ - ('Relationships', '0012_alter_placesmediaevents_mediaid_and_more'), + ("Relationships", "0012_alter_placesmediaevents_mediaid_and_more"), ] operations = [ migrations.AlterField( - model_name='mediacitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='mediacitationevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='placescitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='placescitationevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='placesresourcecitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='placesresourcecitationevents', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.placesresourceevents', verbose_name='place resource'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='placeid', - field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='placesresourceevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resources', verbose_name='resource'), - ), - migrations.AlterField( - model_name='placesresourcemediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='placesresourcemediaevents', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.placesresourceevents', verbose_name='place - resource'), - ), - migrations.AlterField( - model_name='resourceactivitycitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='resourceactivitycitationevents', - name='resourceactivityid', - field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), - ), - migrations.AlterField( - model_name='resourceactivitymediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='resourceactivitymediaevents', - name='resourceactivityid', - field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), - ), - migrations.AlterField( - model_name='resourceresourceevents', - name='altresourceid', - field=models.ForeignKey(db_column='altresourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_b', to='TEKDB.resources'), - ), - migrations.AlterField( - model_name='resourceresourceevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_a', to='TEKDB.resources'), - ), - migrations.AlterField( - model_name='resourcescitationevents', - name='citationid', - field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), - ), - migrations.AlterField( - model_name='resourcescitationevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resources', verbose_name='resource'), - ), - migrations.AlterField( - model_name='resourcesmediaevents', - name='mediaid', - field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), - ), - migrations.AlterField( - model_name='resourcesmediaevents', - name='resourceid', - field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resources', verbose_name='resource'), + model_name="mediacitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="mediacitationevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="placescitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="placescitationevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="placesresourcecitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="placesresourcecitationevents", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.CASCADE, + to="Relationships.placesresourceevents", + verbose_name="place resource", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="placeid", + field=models.ForeignKey( + db_column="placeid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="placesresourceevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.resources", + verbose_name="resource", + ), + ), + migrations.AlterField( + model_name="placesresourcemediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="placesresourcemediaevents", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.CASCADE, + to="Relationships.placesresourceevents", + verbose_name="place - resource", + ), + ), + migrations.AlterField( + model_name="resourceactivitycitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="resourceactivitycitationevents", + name="resourceactivityid", + field=models.ForeignKey( + db_column="resourceactivityid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.resourcesactivityevents", + verbose_name="resource activity", + ), + ), + migrations.AlterField( + model_name="resourceactivitymediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="resourceactivitymediaevents", + name="resourceactivityid", + field=models.ForeignKey( + db_column="resourceactivityid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.resourcesactivityevents", + verbose_name="resource activity", + ), + ), + migrations.AlterField( + model_name="resourceresourceevents", + name="altresourceid", + field=models.ForeignKey( + db_column="altresourceid", + on_delete=django.db.models.deletion.CASCADE, + related_name="resource_b", + to="TEKDB.resources", + ), + ), + migrations.AlterField( + model_name="resourceresourceevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + related_name="resource_a", + to="TEKDB.resources", + ), + ), + migrations.AlterField( + model_name="resourcescitationevents", + name="citationid", + field=models.ForeignKey( + db_column="citationid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.citations", + verbose_name="citation", + ), + ), + migrations.AlterField( + model_name="resourcescitationevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.resources", + verbose_name="resource", + ), + ), + migrations.AlterField( + model_name="resourcesmediaevents", + name="mediaid", + field=models.ForeignKey( + db_column="mediaid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.media", + verbose_name="media", + ), + ), + migrations.AlterField( + model_name="resourcesmediaevents", + name="resourceid", + field=models.ForeignKey( + db_column="resourceid", + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.resources", + verbose_name="resource", + ), ), ] diff --git a/TEKDB/TEKDB/admin.py b/TEKDB/TEKDB/admin.py index 006435a3..69ffd9de 100644 --- a/TEKDB/TEKDB/admin.py +++ b/TEKDB/TEKDB/admin.py @@ -8,6 +8,7 @@ from dal import autocomplete from mimetypes import guess_type from django.templatetags.static import static + # from moderation.admin import ModerationAdmin import nested_admin from tinymce.widgets import TinyMCE @@ -17,6 +18,7 @@ from .models import * from TEKDB.settings import ADMIN_SITE_HEADER + admin.site.site_header = ADMIN_SITE_HEADER from TEKDB.settings import BASE_DIR @@ -32,261 +34,323 @@ class Meta: # widgets = { # 'medialink':forms.FileInput # } - fields = '__all__' + fields = "__all__" def __init__(self, *args, **kwargs): super(MediaForm, self).__init__(*args, **kwargs) - self.fields['mediatype'].queryset = LookupMediaType.objects.order_by(Lower('mediatype')) + self.fields["mediatype"].queryset = LookupMediaType.objects.order_by( + Lower("mediatype") + ) + class ResourcesActivityEventsForm(forms.ModelForm): class Meta: model = ResourcesActivityEvents widgets = { - 'placeresourceid': autocomplete.ModelSelect2(url='select2_fk_placeresource') + "placeresourceid": autocomplete.ModelSelect2(url="select2_fk_placeresource") } - fields = '__all__' + fields = "__all__" def __init__(self, *args, **kwargs): super(ResourcesActivityEventsForm, self).__init__(*args, **kwargs) - self.fields['participants'].queryset = LookupParticipants.objects.order_by(Lower('participants')) - self.fields['technique'].queryset = LookupTechniques.objects.order_by(Lower('techniques')) - self.fields['activityshortdescription'].queryset = LookupActivity.objects.order_by(Lower('activity')) + self.fields["participants"].queryset = LookupParticipants.objects.order_by( + Lower("participants") + ) + self.fields["technique"].queryset = LookupTechniques.objects.order_by( + Lower("techniques") + ) + self.fields[ + "activityshortdescription" + ].queryset = LookupActivity.objects.order_by(Lower("activity")) + class CitationsForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(CitationsForm, self).__init__(*args, **kwargs) - self.fields['referencetype'].queryset = LookupReferenceType.objects.order_by(Lower('documenttype')) + self.fields["referencetype"].queryset = LookupReferenceType.objects.order_by( + Lower("documenttype") + ) # self.fields['authortype'].queryset = LookupAuthorType.objects.order_by(Lower('authortype')) - self.fields['intervieweeid'].queryset = People.objects.order_by(Lower('firstname'), Lower('lastname')) - self.fields['interviewerid'].queryset = People.objects.order_by(Lower('firstname'), Lower('lastname')) + self.fields["intervieweeid"].queryset = People.objects.order_by( + Lower("firstname"), Lower("lastname") + ) + self.fields["interviewerid"].queryset = People.objects.order_by( + Lower("firstname"), Lower("lastname") + ) + class PlacesForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(PlacesForm, self).__init__(*args, **kwargs) - self.fields['planningunitid'].queryset = LookupPlanningUnit.objects.order_by(Lower('planningunitname')) - self.fields['primaryhabitat'].queryset = LookupHabitat.objects.order_by(Lower('habitat')) - self.fields['tribeid'].queryset = LookupTribe.objects.order_by(Lower('tribe')) + self.fields["planningunitid"].queryset = LookupPlanningUnit.objects.order_by( + Lower("planningunitname") + ) + self.fields["primaryhabitat"].queryset = LookupHabitat.objects.order_by( + Lower("habitat") + ) + self.fields["tribeid"].queryset = LookupTribe.objects.order_by(Lower("tribe")) class Meta: model = Places widgets = { - 'geometry': OpenLayers6Widget(), + "geometry": OpenLayers6Widget(), } - fields = '__all__' + fields = "__all__" + class ResourcesForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(ResourcesForm, self).__init__(*args, **kwargs) - self.fields['resourceclassificationgroup'].queryset = LookupResourceGroup.objects.order_by(Lower('resourceclassificationgroup')) + self.fields[ + "resourceclassificationgroup" + ].queryset = LookupResourceGroup.objects.order_by( + Lower("resourceclassificationgroup") + ) + class PlacesResourceEventForm(forms.ModelForm): class Meta: model = PlacesResourceEvents widgets = { - 'placeid': autocomplete.ModelSelect2(url='select2_fk_place'), - 'resourceid': autocomplete.ModelSelect2(url='select2_fk_resource'), - 'relationshipdescription': TinyMCE, + "placeid": autocomplete.ModelSelect2(url="select2_fk_place"), + "resourceid": autocomplete.ModelSelect2(url="select2_fk_resource"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" def __init__(self, *args, **kwargs): super(PlacesResourceEventForm, self).__init__(*args, **kwargs) - self.fields['partused'].queryset = LookupPartUsed.objects.order_by(Lower('partused')) - self.fields['season'].queryset = LookupSeason.objects.order_by(Lower('season')) - self.fields['timing'].queryset = LookupTiming.objects.order_by(Lower('timing')) + self.fields["partused"].queryset = LookupPartUsed.objects.order_by( + Lower("partused") + ) + self.fields["season"].queryset = LookupSeason.objects.order_by(Lower("season")) + self.fields["timing"].queryset = LookupTiming.objects.order_by(Lower("timing")) + class MediaCitationEventsForm(forms.ModelForm): class Meta: model = MediaCitationEvents widgets = { - 'mediaid': autocomplete.ModelSelect2(url='select2_fk_media'), - 'citationid': autocomplete.ModelSelect2(url='select2_fk_citation'), - 'relationshipdescription': TinyMCE, + "mediaid": autocomplete.ModelSelect2(url="select2_fk_media"), + "citationid": autocomplete.ModelSelect2(url="select2_fk_citation"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" + class PlacesCitationEventsForm(forms.ModelForm): class Meta: model = PlacesCitationEvents widgets = { - 'placeid': autocomplete.ModelSelect2(url='select2_fk_place'), - 'citationid': autocomplete.ModelSelect2(url='select2_fk_citation'), - 'relationshipdescription': TinyMCE, + "placeid": autocomplete.ModelSelect2(url="select2_fk_place"), + "citationid": autocomplete.ModelSelect2(url="select2_fk_citation"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" + class PlacesMediaEventsForm(forms.ModelForm): class Meta: model = PlacesMediaEvents widgets = { - 'placeid': autocomplete.ModelSelect2(url='select2_fk_place'), - 'mediaid': autocomplete.ModelSelect2(url='select2_fk_media'), - 'relationshipdescription': TinyMCE, + "placeid": autocomplete.ModelSelect2(url="select2_fk_place"), + "mediaid": autocomplete.ModelSelect2(url="select2_fk_media"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" + class PlacesResourceCitationEventsForm(forms.ModelForm): class Meta: model = PlacesResourceCitationEvents widgets = { - 'placeresourceid': autocomplete.ModelSelect2(url='select2_fk_placeresource'), - 'citationid': autocomplete.ModelSelect2(url='select2_fk_citation'), - 'relationshipdescription': TinyMCE(), + "placeresourceid": autocomplete.ModelSelect2( + url="select2_fk_placeresource" + ), + "citationid": autocomplete.ModelSelect2(url="select2_fk_citation"), + "relationshipdescription": TinyMCE(), } - fields = '__all__' + fields = "__all__" + class PlacesResourceMediaEventsForm(forms.ModelForm): class Meta: model = PlacesResourceMediaEvents widgets = { - 'placeresourceid': autocomplete.ModelSelect2(url='select2_fk_placeresource'), - 'mediaid': autocomplete.ModelSelect2(url='select2_fk_media'), - 'relationshipdescription': TinyMCE, + "placeresourceid": autocomplete.ModelSelect2( + url="select2_fk_placeresource" + ), + "mediaid": autocomplete.ModelSelect2(url="select2_fk_media"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" + class ResourceActivityMediaEventsForm(forms.ModelForm): class Meta: model = ResourceActivityMediaEvents widgets = { - 'resourceactivityid': autocomplete.ModelSelect2(url='select2_fk_resourceactivity'), - 'mediaid': autocomplete.ModelSelect2(url='select2_fk_media'), - 'relationshipdescription': TinyMCE, + "resourceactivityid": autocomplete.ModelSelect2( + url="select2_fk_resourceactivity" + ), + "mediaid": autocomplete.ModelSelect2(url="select2_fk_media"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" + class ResourceActivityCitationEventsForm(forms.ModelForm): class Meta: model = ResourceActivityCitationEvents widgets = { - 'resourceactivityid': autocomplete.ModelSelect2(url='select2_fk_resourceactivity'), - 'citationid': autocomplete.ModelSelect2(url='select2_fk_citation'), - 'relationshipdescription': TinyMCE, + "resourceactivityid": autocomplete.ModelSelect2( + url="select2_fk_resourceactivity" + ), + "citationid": autocomplete.ModelSelect2(url="select2_fk_citation"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" + class ResourceResourceEventsForm(forms.ModelForm): class Meta: model = ResourceResourceEvents widgets = { - 'resourceid': autocomplete.ModelSelect2(url='select2_fk_resource'), - 'altresourceid': autocomplete.ModelSelect2(url='select2_fk_resource'), - 'relationshipdescription': TinyMCE, + "resourceid": autocomplete.ModelSelect2(url="select2_fk_resource"), + "altresourceid": autocomplete.ModelSelect2(url="select2_fk_resource"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" + class ResourcesCitationEventsForm(forms.ModelForm): class Meta: model = ResourcesCitationEvents widgets = { - 'resourceid': autocomplete.ModelSelect2(url='select2_fk_resource'), - 'citationid': autocomplete.ModelSelect2(url='select2_fk_citation'), - 'relationshipdescription': TinyMCE, + "resourceid": autocomplete.ModelSelect2(url="select2_fk_resource"), + "citationid": autocomplete.ModelSelect2(url="select2_fk_citation"), + "relationshipdescription": TinyMCE, } - fields = '__all__' + fields = "__all__" class ResourcesMediaEventsForm(forms.ModelForm): class Meta: model = ResourcesMediaEvents widgets = { - 'resourceid': autocomplete.ModelSelect2(url='select2_fk_resource'), - 'mediaid': autocomplete.ModelSelect2(url='select2_fk_media'), - 'relationshipdescription': TinyMCE, + "resourceid": autocomplete.ModelSelect2(url="select2_fk_resource"), + "mediaid": autocomplete.ModelSelect2(url="select2_fk_media"), + "relationshipdescription": TinyMCE, } - fields = '__all__' - + fields = "__all__" + class PlaceAltIndigenousNameForm(forms.ModelForm): class Meta: model = PlaceAltIndigenousName - widgets = { - 'placeid': autocomplete.ModelSelect2(url='select2_fk_place') - } - fields = '__all__' + widgets = {"placeid": autocomplete.ModelSelect2(url="select2_fk_place")} + fields = "__all__" + class ResourceAltIndigenousNameForm(forms.ModelForm): class Meta: model = ResourceAltIndigenousName widgets = { - 'resourceid': autocomplete.ModelSelect2(url='select2_fk_resource'), + "resourceid": autocomplete.ModelSelect2(url="select2_fk_resource"), } - fields = '__all__' + fields = "__all__" + ############### ### INLINES ### ############### + #### ACTIVITIES #### class NestedResourcesactivitymediaeventsInline(nested_admin.NestedTabularInline): model = ResourceActivityMediaEvents - fields = ('mediaid', 'relationshipdescription', 'pages') + fields = ("mediaid", "relationshipdescription", "pages") extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'Related Media' + classes = ["collapse", "open"] + verbose_name_plural = "Related Media" + class NestedResourcesactivitycitationeventsInline(nested_admin.NestedTabularInline): model = ResourceActivityCitationEvents - fields = ('citationid', 'relationshipdescription', 'pages') + fields = ("citationid", "relationshipdescription", "pages") extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'Related Bibliographic Sources' + classes = ["collapse", "open"] + verbose_name_plural = "Related Bibliographic Sources" + #### PLACESRESOURCES #### class NestedPlacesresourcecitationeventsInline(nested_admin.NestedTabularInline): model = PlacesResourceCitationEvents - fields = ('citationid','relationshipdescription','pages') + fields = ("citationid", "relationshipdescription", "pages") extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'related Bibliographic Sources' + classes = ["collapse", "open"] + verbose_name_plural = "related Bibliographic Sources" form = PlacesResourceCitationEventsForm + class NestedPlacesresourcemediaeventsInline(nested_admin.NestedTabularInline): model = PlacesResourceMediaEvents - fields = ('mediaid','relationshipdescription','pages') + fields = ("mediaid", "relationshipdescription", "pages") extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'related media' + classes = ["collapse", "open"] + verbose_name_plural = "related media" form = PlacesResourceMediaEventsForm + class NestedPlaceresourcelocalityeventInline(nested_admin.NestedTabularInline): model = LocalityPlaceResourceEvent - fields = ('localityid',) + fields = ("localityid",) extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'related localities' + classes = ["collapse", "open"] + verbose_name_plural = "related localities" + class NestedPlacesresourceactivityeventInline(nested_admin.NestedStackedInline): model = ResourcesActivityEvents fieldsets = ( - ('', { - 'fields': (('participants', 'technique','relationshipdescription'), - ('activityshortdescription', 'activitylongdescription', ) - ) - }), + ( + "", + { + "fields": ( + ("participants", "technique", "relationshipdescription"), + ( + "activityshortdescription", + "activitylongdescription", + ), + ) + }, + ), ) extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'related Activities' + classes = ["collapse", "open"] + verbose_name_plural = "related Activities" inlines = [ NestedResourcesactivitycitationeventsInline, NestedResourcesactivitymediaeventsInline, ] + #### LOCALITIES #### class LocalityplaceresourceeventInline(admin.TabularInline): model = LocalityPlaceResourceEvent - fields = ('placeresourceid',) + fields = ("placeresourceid",) extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'related place-resources' + classes = ["collapse", "open"] + verbose_name_plural = "related place-resources" + class LocalityGISSelectionsInline(admin.TabularInline): model = LocalityGISSelections - fields = ('localitylabel', 'sourcefc') + fields = ("localitylabel", "sourcefc") extra = 0 - classes = ['collapse', 'open'] - verbose_name_plural = 'Locality GIS Selections' + classes = ["collapse", "open"] + verbose_name_plural = "Locality GIS Selections" + #################### ### MODEL ADMINS ### @@ -294,12 +358,20 @@ class LocalityGISSelectionsInline(admin.TabularInline): #### PROXY MODELS #### # class RecordAdminProxy(VersionAdmin, ModerationAdmin): class RecordAdminProxy(VersionAdmin): - readonly_fields = ('enteredbyname', 'enteredbytribe','enteredbytitle','enteredbydate', - 'modifiedbyname','modifiedbytribe','modifiedbytitle','modifiedbydate') + readonly_fields = ( + "enteredbyname", + "enteredbytribe", + "enteredbytitle", + "enteredbydate", + "modifiedbyname", + "modifiedbytribe", + "modifiedbytitle", + "modifiedbydate", + ) def save_model(self, request, obj, form, change): instance = form.save(commit=False) - if hasattr(instance, 'enteredbyname'): + if hasattr(instance, "enteredbyname"): if instance.enteredbyname == None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation @@ -313,7 +385,7 @@ def save_model(self, request, obj, form, change): def save_formset(self, request, form, formset, change): instances = formset.save(commit=False) for instance in instances: - if hasattr(instance, 'enteredbyname'): + if hasattr(instance, "enteredbyname"): if instance.enteredbyname == None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation @@ -323,13 +395,22 @@ def save_formset(self, request, form, formset, change): instance.modifiedbytitle = request.user.title instance.save() + class NestedRecordAdminProxy(nested_admin.NestedModelAdmin): - readonly_fields = ('enteredbyname', 'enteredbytribe','enteredbytitle','enteredbydate', - 'modifiedbyname','modifiedbytribe','modifiedbytitle','modifiedbydate') + readonly_fields = ( + "enteredbyname", + "enteredbytribe", + "enteredbytitle", + "enteredbydate", + "modifiedbyname", + "modifiedbytribe", + "modifiedbytitle", + "modifiedbydate", + ) def save_model(self, request, obj, form, change): instance = form.save(commit=False) - if hasattr(instance, 'enteredbyname'): + if hasattr(instance, "enteredbyname"): if instance.enteredbyname == None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation @@ -343,7 +424,7 @@ def save_model(self, request, obj, form, change): def save_formset(self, request, form, formset, change): instances = formset.save(commit=False) for instance in instances: - if hasattr(instance, 'enteredbyname'): + if hasattr(instance, "enteredbyname"): if instance.enteredbyname == None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation @@ -356,88 +437,129 @@ def save_formset(self, request, form, formset, change): @admin.display() def needs_Review(self, obj): if obj.needsReview: - return format_html('', obj.needsReview) + return format_html( + '', obj.needsReview + ) else: - return format_html('', obj.needsReview) + return format_html("", obj.needsReview) + #### RECORD MODELS #### # class RecordModelAdmin(VersionAdmin, ModerationAdmin): class RecordModelAdmin(VersionAdmin): - record_form = '%s/TEKDB/templates/admin/RecordForm.html' % BASE_DIR + record_form = "%s/TEKDB/templates/admin/RecordForm.html" % BASE_DIR add_form_template = record_form change_form_template = record_form @admin.display() def needs_Review(self, obj): if obj.needsReview: - return format_html('', obj.needsReview) + return format_html( + '', obj.needsReview + ) else: - return format_html('', obj.needsReview) + return format_html("", obj.needsReview) - def change_view(self, request, object_id, form_url='', extra_context={}): + def change_view(self, request, object_id, form_url="", extra_context={}): object_instance = self.model.objects.get(pk=object_id) - extra_context['related_objects'] = object_instance.get_related_objects(object_id) - return super(RecordModelAdmin, self).change_view(request, object_id, form_url, extra_context=extra_context) + extra_context["related_objects"] = object_instance.get_related_objects( + object_id + ) + return super(RecordModelAdmin, self).change_view( + request, object_id, form_url, extra_context=extra_context + ) + @admin.register(Citations) class CitationsAdmin(RecordAdminProxy, RecordModelAdmin): - list_display = ('referencetype','title_text','description_text', 'needs_Review', - 'modifiedbyname','modifiedbydate','enteredbyname','enteredbydate') + list_display = ( + "referencetype", + "title_text", + "description_text", + "needs_Review", + "modifiedbyname", + "modifiedbydate", + "enteredbyname", + "enteredbydate", + ) fieldsets = ( - (None, { - 'classes': ('citation-ref-type',), - 'fields': ('referencetype',) - }), - ('Bibliographic Source', { - 'classes': ('citation-form-fieldset',), - 'fields': ( - 'title', - 'referencetext', - ('authorprimary', 'authorsecondary'), - ('intervieweeid', 'interviewerid'), - 'date', - 'year', - ('publisher', 'publishercity'), - 'seriestitle', - ('seriesvolume','serieseditor'), - 'placeofinterview', - ('journal', 'journalpages'), - 'preparedfor', - # 'rawcitation', - 'comments', - ) - }), - ('Review', { - 'fields': ( - 'needsReview', - 'researchComments' - ) - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + (None, {"classes": ("citation-ref-type",), "fields": ("referencetype",)}), + ( + "Bibliographic Source", + { + "classes": ("citation-form-fieldset",), + "fields": ( + "title", + "referencetext", + ("authorprimary", "authorsecondary"), + ("intervieweeid", "interviewerid"), + "date", + "year", + ("publisher", "publishercity"), + "seriestitle", + ("seriesvolume", "serieseditor"), + "placeofinterview", + ("journal", "journalpages"), + "preparedfor", + # 'rawcitation', + "comments", + ), + }, + ), + ("Review", {"fields": ("needsReview", "researchComments")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) - add_form_template = '%s/TEKDB/templates/admin/CitationsForm.html' % BASE_DIR - change_form_template = '%s/TEKDB/templates/admin/CitationsForm.html' % BASE_DIR + add_form_template = "%s/TEKDB/templates/admin/CitationsForm.html" % BASE_DIR + change_form_template = "%s/TEKDB/templates/admin/CitationsForm.html" % BASE_DIR search_fields = ( - 'referencetype__documenttype', 'intervieweeid__firstname', - 'intervieweeid__lastname', 'interviewerid__lastname', - 'interviewerid__firstname', 'authortype__authortype', - 'interviewerid__village', 'intervieweeid__village', - 'interviewerid__relationshiptootherpeople', - 'intervieweeid__relationshiptootherpeople', - 'referencetext', 'authorprimary', 'authorsecondary', - 'placeofinterview', 'title', 'seriestitle', - 'seriesvolume', 'serieseditor', 'publisher', - 'publishercity', 'preparedfor', 'rawcitation', - 'comments', 'journal', - 'enteredbyname', 'enteredbytribe', 'modifiedbyname', - 'modifiedbytribe' + "referencetype__documenttype", + "intervieweeid__firstname", + "intervieweeid__lastname", + "interviewerid__lastname", + "interviewerid__firstname", + "authortype__authortype", + "interviewerid__village", + "intervieweeid__village", + "interviewerid__relationshiptootherpeople", + "intervieweeid__relationshiptootherpeople", + "referencetext", + "authorprimary", + "authorsecondary", + "placeofinterview", + "title", + "seriestitle", + "seriesvolume", + "serieseditor", + "publisher", + "publishercity", + "preparedfor", + "rawcitation", + "comments", + "journal", + "enteredbyname", + "enteredbytribe", + "modifiedbyname", + "modifiedbytribe", ) form = CitationsForm @@ -447,30 +569,33 @@ class CitationsAdmin(RecordAdminProxy, RecordModelAdmin): class MediaBulkUploadAdmin(admin.ModelAdmin): form = MediaBulkUploadForm - list_display = ('mediabulkname','mediabulkdate', - 'enteredbyname','enteredbydate') + list_display = ("mediabulkname", "mediabulkdate", "enteredbyname", "enteredbydate") def save_model(self, request, obj, form, change): super().save_model(request, obj, form, change) - places = form.cleaned_data.get('places') - resources = form.cleaned_data.get('resources') - citations = form.cleaned_data.get('citations') - activities = form.cleaned_data.get('activities') - placesresources = form.cleaned_data.get('placesresources') - - for file in request.FILES.getlist('files'): + places = form.cleaned_data.get("places") + resources = form.cleaned_data.get("resources") + citations = form.cleaned_data.get("citations") + activities = form.cleaned_data.get("activities") + placesresources = form.cleaned_data.get("placesresources") + + for file in request.FILES.getlist("files"): mime_type, _ = guess_type(file.name) # if mime_type: - file_mime_type = mime_type.split('/')[0] - media_type_instance = LookupMediaType.objects.filter(mediatype__startswith=file_mime_type).first() + file_mime_type = mime_type.split("/")[0] + media_type_instance = LookupMediaType.objects.filter( + mediatype__startswith=file_mime_type + ).first() if media_type_instance: mediatype = media_type_instance else: - media_type_instance = LookupMediaType.objects.filter(mediatype__startswith='other').first() + media_type_instance = LookupMediaType.objects.filter( + mediatype__startswith="other" + ).first() mediatype = media_type_instance - - filename = file.name.split('.')[0] - + + filename = file.name.split(".")[0] + media_instance = Media( medianame=filename, mediadescription=f'Part of the "{obj.mediabulkname}" Media Bulk Upload that was uploaded on {obj.mediabulkdate}', @@ -483,24 +608,31 @@ def save_model(self, request, obj, form, change): # Add relationships if places: for place in places: - PlacesMediaEvents.objects.create(placeid=place, mediaid=media_instance) + PlacesMediaEvents.objects.create( + placeid=place, mediaid=media_instance + ) if resources: for resource in resources: - ResourcesMediaEvents.objects.create(resourceid=resource, mediaid=media_instance) + ResourcesMediaEvents.objects.create( + resourceid=resource, mediaid=media_instance + ) if citations: for citation in citations: - MediaCitationEvents.objects.create(citationid=citation, mediaid=media_instance) + MediaCitationEvents.objects.create( + citationid=citation, mediaid=media_instance + ) if activities: for activity in activities: - ResourceActivityMediaEvents.objects.create(resourceactivityid=activity, mediaid=media_instance) + ResourceActivityMediaEvents.objects.create( + resourceactivityid=activity, mediaid=media_instance + ) if placesresources: for placeresource in placesresources: - PlacesResourceMediaEvents.objects.create(placeresourceid=placeresource, mediaid=media_instance) + PlacesResourceMediaEvents.objects.create( + placeresourceid=placeresource, mediaid=media_instance + ) - - @admin.display( - description='Thumbnails' - ) + @admin.display(description="Thumbnails") def thumbnail_gallery(self, obj): thumbnails = [] for media in obj.mediabulkupload.all(): @@ -510,53 +642,88 @@ def thumbnail_gallery(self, obj): file_name = media.mediafile.name if mime_type: - if mime_type.startswith('image'): - thumbnails.append(format_html( - '
' - '' - '
{}' - '
', media.mediafile.url, file_name)) - elif mime_type.startswith('video'): - thumbnails.append(format_html( - '
' - '' - '
{}' - '
', media.mediafile.url, mime_type, file_name)) - elif mime_type.startswith('audio'): - generic_audio_icon = static('assets/audio-x-generic.svg') - thumbnails.append(format_html( - '
' - 'Audio File' - '
{}' - '
', generic_audio_icon, file_name)) - elif mime_type.startswith('text') or 'application/msword' in mime_type or 'application/vnd' in mime_type: - generic_doc_icon = static('assets/doc-text.svg') - thumbnails.append(format_html( - '
' - 'Document File' - '
{}' - '
', generic_doc_icon, file_name)) + if mime_type.startswith("image"): + thumbnails.append( + format_html( + '
' + '' + '
{}' + "
", + media.mediafile.url, + file_name, + ) + ) + elif mime_type.startswith("video"): + thumbnails.append( + format_html( + '
' + '" + '
{}' + "
", + media.mediafile.url, + mime_type, + file_name, + ) + ) + elif mime_type.startswith("audio"): + generic_audio_icon = static("assets/audio-x-generic.svg") + thumbnails.append( + format_html( + '
' + 'Audio File' + '
{}' + "
", + generic_audio_icon, + file_name, + ) + ) + elif ( + mime_type.startswith("text") + or "application/msword" in mime_type + or "application/vnd" in mime_type + ): + generic_doc_icon = static("assets/doc-text.svg") + thumbnails.append( + format_html( + '
' + 'Document File' + '
{}' + "
", + generic_doc_icon, + file_name, + ) + ) else: # For unknown or other file types, show a generic file image - generic_file_icon = static('assets/unknown-mail.png') - thumbnails.append(format_html( + generic_file_icon = static("assets/unknown-mail.png") + thumbnails.append( + format_html( + '
' + 'File' + '
{}' + "
", + generic_file_icon, + file_name, + ) + ) + else: + # In case the MIME type could not be determined, use a generic file icon + generic_file_icon = static("assets/unknown-mail.png") + thumbnails.append( + format_html( '
' 'File' '
{}' - '
', generic_file_icon, file_name)) - else: - # In case the MIME type could not be determined, use a generic file icon - generic_file_icon = static('assets/unknown-mail.png') - thumbnails.append(format_html( - '
' - 'File' - '
{}' - '
', generic_file_icon, file_name)) + "", + generic_file_icon, + file_name, + ) + ) - return format_html(''.join(thumbnails)) + return format_html("".join(thumbnails)) def get_readonly_fields(self, request, obj=None): if obj: # If the object already exists @@ -575,236 +742,429 @@ def has_delete_permission(self, request, obj=None): def has_add_permission(self, request): return True - readonly_fields = ('thumbnail_gallery', - 'enteredbyname', 'enteredbytribe','enteredbytitle','enteredbydate') + readonly_fields = ( + "thumbnail_gallery", + "enteredbyname", + "enteredbytribe", + "enteredbytitle", + "enteredbydate", + ) fieldsets = ( - (None, { - 'fields': ('mediabulkname', 'mediabulkdescription', 'files', 'mediabulkdate', 'places', 'resources', 'citations', 'activities', 'placesresources', 'thumbnail_gallery') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate') - ) - }), + ( + None, + { + "fields": ( + "mediabulkname", + "mediabulkdescription", + "files", + "mediabulkdate", + "places", + "resources", + "citations", + "activities", + "placesresources", + "thumbnail_gallery", + ) + }, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ) + ) + }, + ), ) - @admin.register(Media) class MediaAdmin(RecordAdminProxy, RecordModelAdmin): - readonly_fields = ('medialink', - 'enteredbyname', 'enteredbytribe','enteredbytitle','enteredbydate', - 'modifiedbyname','modifiedbytribe','modifiedbytitle','modifiedbydate', - 'mediabulkupload',) - list_display = ('medianame','mediatype','needs_Review','modifiedbyname','modifiedbydate', - 'enteredbyname','enteredbydate') + readonly_fields = ( + "medialink", + "enteredbyname", + "enteredbytribe", + "enteredbytitle", + "enteredbydate", + "modifiedbyname", + "modifiedbytribe", + "modifiedbytitle", + "modifiedbydate", + "mediabulkupload", + ) + list_display = ( + "medianame", + "mediatype", + "needs_Review", + "modifiedbyname", + "modifiedbydate", + "enteredbyname", + "enteredbydate", + ) fieldsets = ( - (None, { - 'fields': (('medianame','mediatype','limitedaccess'),'mediafile','medialink','mediadescription','mediabulkupload',) - }), - ('Review', { - 'fields': ( - 'needsReview', - 'researchComments' - ) - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }), + ( + None, + { + "fields": ( + ("medianame", "mediatype", "limitedaccess"), + "mediafile", + "medialink", + "mediadescription", + "mediabulkupload", + ) + }, + ), + ("Review", {"fields": ("needsReview", "researchComments")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) from TEKDB.settings import BASE_DIR - add_form_template = '%s/TEKDB/templates/admin/MediaForm.html' % BASE_DIR - change_form_template = '%s/TEKDB/templates/admin/MediaForm.html' % BASE_DIR + + add_form_template = "%s/TEKDB/templates/admin/MediaForm.html" % BASE_DIR + change_form_template = "%s/TEKDB/templates/admin/MediaForm.html" % BASE_DIR search_fields = ( - 'medianame', 'mediadescription', 'medialink', - 'mediatype__mediatype', 'mediatype__mediacategory', - 'enteredbyname', 'enteredbytribe', 'modifiedbyname', - 'modifiedbytribe' + "medianame", + "mediadescription", + "medialink", + "mediatype__mediatype", + "mediatype__mediacategory", + "enteredbyname", + "enteredbytribe", + "modifiedbyname", + "modifiedbytribe", ) form = MediaForm + # class PlacesAdmin(NestedRecordAdminProxy, OSMGeoAdmin, RecordModelAdmin): @admin.register(Places) class PlacesAdmin(NestedRecordAdminProxy, RecordModelAdmin): - list_display = ('indigenousplacename','englishplacename','needs_Review','modifiedbyname', - 'modifiedbydate','enteredbyname','enteredbydate') + list_display = ( + "indigenousplacename", + "englishplacename", + "needs_Review", + "modifiedbyname", + "modifiedbydate", + "enteredbyname", + "enteredbydate", + ) fieldsets = ( - (None, { - 'fields':( - ('indigenousplacename','indigenousplacenamemeaning'), - 'englishplacename', - ('planningunitid','primaryhabitat'), - 'tribeid', - 'geometry', - ) - }), - ('Review', { - 'fields': ( - 'needsReview', - 'researchComments' - ) - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ('Source','DigitizedBy','DigitizedDate') - ) - }), + ( + None, + { + "fields": ( + ("indigenousplacename", "indigenousplacenamemeaning"), + "englishplacename", + ("planningunitid", "primaryhabitat"), + "tribeid", + "geometry", + ) + }, + ), + ("Review", {"fields": ("needsReview", "researchComments")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ("Source", "DigitizedBy", "DigitizedDate"), + ) + }, + ), ) search_fields = ( - 'englishplacename', 'indigenousplacename', 'indigenousplacenamemeaning', - 'planningunitid__planningunitname', 'primaryhabitat__habitat', - 'tribeid__tribeunit','tribeid__tribe','tribeid__federaltribe', - 'enteredbyname', 'enteredbytribe', 'modifiedbyname', - 'modifiedbytribe' + "englishplacename", + "indigenousplacename", + "indigenousplacenamemeaning", + "planningunitid__planningunitname", + "primaryhabitat__habitat", + "tribeid__tribeunit", + "tribeid__tribe", + "tribeid__federaltribe", + "enteredbyname", + "enteredbytribe", + "modifiedbyname", + "modifiedbytribe", ) form = PlacesForm - change_list_template = 'admin/TEKDB/places/change_list.html' + change_list_template = "admin/TEKDB/places/change_list.html" def changelist_view(self, request, extra_context=None): from .views import getPlacesGeoJSON + extra_context = extra_context or {} - extra_context['results_geojson'] = getPlacesGeoJSON(request) - return super(PlacesAdmin, self).changelist_view(request, extra_context=extra_context) + extra_context["results_geojson"] = getPlacesGeoJSON(request) + return super(PlacesAdmin, self).changelist_view( + request, extra_context=extra_context + ) + @admin.register(Resources) class ResourcesAdmin(NestedRecordAdminProxy, RecordModelAdmin): - list_display = ('commonname','indigenousname', 'needs_Review', 'modifiedbyname', - 'modifiedbydate','enteredbyname','enteredbydate') + list_display = ( + "commonname", + "indigenousname", + "needs_Review", + "modifiedbyname", + "modifiedbydate", + "enteredbyname", + "enteredbydate", + ) fieldsets = ( - (None, { - 'fields':( - ('commonname', 'indigenousname'), - ('genus', 'species'), - 'resourceclassificationgroup', - ) - }), - ('Review', { - 'fields': ( - 'needsReview', - 'researchComments' - ) - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }), + ( + None, + { + "fields": ( + ("commonname", "indigenousname"), + ("genus", "species"), + "resourceclassificationgroup", + ) + }, + ), + ("Review", {"fields": ("needsReview", "researchComments")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) search_fields = ( - 'commonname', 'indigenousname', 'genus', 'species', - 'resourceclassificationgroup__resourceclassificationgroup', - 'enteredbyname', 'enteredbytribe', 'modifiedbyname', - 'modifiedbytribe' + "commonname", + "indigenousname", + "genus", + "species", + "resourceclassificationgroup__resourceclassificationgroup", + "enteredbyname", + "enteredbytribe", + "modifiedbyname", + "modifiedbytribe", ) - ordering = ('commonname',) + ordering = ("commonname",) form = ResourcesForm + @admin.register(ResourcesActivityEvents) class ResourcesActivityEventsAdmin(RecordAdminProxy, RecordModelAdmin): - list_display = ('placeresourceid', 'excerpt_text', 'needs_Review', - 'modifiedbyname','modifiedbydate', 'enteredbyname','enteredbydate') + list_display = ( + "placeresourceid", + "excerpt_text", + "needs_Review", + "modifiedbyname", + "modifiedbydate", + "enteredbyname", + "enteredbydate", + ) fieldsets = ( - (None, { - 'fields': ('placeresourceid',) - }), - ('Activity', { - 'fields': ( - ('participants', 'technique'), - 'relationshipdescription', - ('partused', 'activityshortdescription'), - 'activitylongdescription', - 'gear', - 'customaryuse', - 'timing', - 'timingdescription', - ) - }), - ('Review', { - 'fields': ( - 'needsReview', - 'researchComments' - ) - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }), + (None, {"fields": ("placeresourceid",)}), + ( + "Activity", + { + "fields": ( + ("participants", "technique"), + "relationshipdescription", + ("partused", "activityshortdescription"), + "activitylongdescription", + "gear", + "customaryuse", + "timing", + "timingdescription", + ) + }, + ), + ("Review", {"fields": ("needsReview", "researchComments")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) search_fields = ( - 'placeresourceid__resourceid__commonname', 'placeresourceid__placeid__englishplacename', - 'placeresourceid__placeid__indigenousplacename', 'relationshipdescription', - 'activityshortdescription__activity', 'activitylongdescription', - 'participants__participants', 'technique__techniques', + "placeresourceid__resourceid__commonname", + "placeresourceid__placeid__englishplacename", + "placeresourceid__placeid__indigenousplacename", + "relationshipdescription", + "activityshortdescription__activity", + "activitylongdescription", + "participants__participants", + "technique__techniques", # 'customaryuse__usedfor', 'gear', 'timing__timing', 'timingdescription', #'partused__partused', - 'enteredbyname', 'enteredbytribe', 'enteredbytitle', 'modifiedbyname', - 'modifiedbytribe', 'modifiedbytitle' + "enteredbyname", + "enteredbytribe", + "enteredbytitle", + "modifiedbyname", + "modifiedbytribe", + "modifiedbytitle", ) form = ResourcesActivityEventsForm + class LocalityAdmin(RecordAdminProxy, OSMGeoAdmin): - list_display = ('placeid', 'englishname', 'indigenousname', - 'modifiedbyname','modifiedbydate', 'enteredbyname','enteredbydate') + list_display = ( + "placeid", + "englishname", + "indigenousname", + "modifiedbyname", + "modifiedbydate", + "enteredbyname", + "enteredbydate", + ) fieldsets = ( - (None, { - 'fields': ('placeid', 'englishname', 'indigenousname', 'geometry') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ('Source','DigitizedBy','DigitizedDate') - ) - }), + (None, {"fields": ("placeid", "englishname", "indigenousname", "geometry")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ("Source", "DigitizedBy", "DigitizedDate"), + ) + }, + ), + ) + search_fields = ( + "placeid__indigenousplacename", + "placeid__englishplacename", + "englishname", + "indigenousname", + "enteredbyname", + "enteredbytribe", + "enteredbytitle", + "modifiedbyname", + "modifiedbytribe", + "modifiedbytitle", ) - search_fields = ('placeid__indigenousplacename', 'placeid__englishplacename', - 'englishname', 'indigenousname', 'enteredbyname', 'enteredbytribe', - 'enteredbytitle', 'modifiedbyname', 'modifiedbytribe', 'modifiedbytitle') inlines = [ LocalityplaceresourceeventInline, LocalityGISSelectionsInline, ] + #### RELATIONSHIP MODELS #### @admin.register(PlacesResourceEvents) class PlacesResourceEventsAdmin(NestedRecordAdminProxy): - list_display = ('placeid', 'resourceid', 'needs_Review','partused', 'season', - 'enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "placeid", + "resourceid", + "needs_Review", + "partused", + "season", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('placeid', 'resourceid'),'relationshipdescription', - ('partused', 'barterresource'), - ('season', 'timing'), - ('january', 'february', 'march', 'april', 'may', 'june'), - ('july', 'august', 'september', 'october', 'november', - 'december'), 'year', - ) - }), - ('Review', { - 'fields': ( - 'needsReview', - 'researchComments' - ) - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }), + ( + "", + { + "fields": ( + ("placeid", "resourceid"), + "relationshipdescription", + ("partused", "barterresource"), + ("season", "timing"), + ("january", "february", "march", "april", "may", "june"), + ("july", "august", "september", "october", "november", "december"), + "year", + ) + }, + ), + ("Review", {"fields": ("needsReview", "researchComments")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) - form=PlacesResourceEventForm + form = PlacesResourceEventForm inlines = [ NestedPlacesresourcecitationeventsInline, NestedPlacesresourcemediaeventsInline, @@ -812,219 +1172,520 @@ class PlacesResourceEventsAdmin(NestedRecordAdminProxy): NestedPlacesresourceactivityeventInline, ] + @admin.register(MediaCitationEvents) class MediaCitationEventsAdmin(RecordAdminProxy): - list_display = ('mediaid','citationid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "mediaid", + "citationid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('mediaid','citationid'), 'relationshipdescription','pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + {"fields": (("mediaid", "citationid"), "relationshipdescription", "pages")}, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = MediaCitationEventsForm + @admin.register(PlacesCitationEvents) class PlacesCitationEventsAdmin(RecordAdminProxy): - list_display = ('placeid','citationid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "placeid", + "citationid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('placeid','citationid'), 'relationshipdescription','pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + {"fields": (("placeid", "citationid"), "relationshipdescription", "pages")}, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = PlacesCitationEventsForm + @admin.register(PlacesMediaEvents) class PlacesMediaEventsAdmin(RecordAdminProxy): - list_display = ('placeid','mediaid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "placeid", + "mediaid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('placeid','mediaid'), 'relationshipdescription','pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ("", {"fields": (("placeid", "mediaid"), "relationshipdescription", "pages")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = PlacesMediaEventsForm - + + @admin.register(PlaceAltIndigenousName) class PlaceAltIndigenousNameAdmin(VersionAdmin): fieldsets = ( - ('', { - 'fields': (('placeid', 'altindigenousname'),), - }), + ( + "", + { + "fields": (("placeid", "altindigenousname"),), + }, + ), ) form = PlaceAltIndigenousNameForm + @admin.register(PlacesResourceCitationEvents) class PlacesResourceCitationEventsAdmin(RecordAdminProxy): - list_display = ('placeresourceid','citationid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "placeresourceid", + "citationid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('placeresourceid','citationid'), 'relationshipdescription','pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + { + "fields": ( + ("placeresourceid", "citationid"), + "relationshipdescription", + "pages", + ) + }, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = PlacesResourceCitationEventsForm + @admin.register(PlacesResourceMediaEvents) class PlacesResourceMediaEventsAdmin(RecordAdminProxy): - list_display = ('placeresourceid','mediaid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "placeresourceid", + "mediaid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('placeresourceid','mediaid'), 'relationshipdescription','pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + { + "fields": ( + ("placeresourceid", "mediaid"), + "relationshipdescription", + "pages", + ) + }, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = PlacesResourceMediaEventsForm + @admin.register(ResourceActivityCitationEvents) class ResourceActivityCitationEventsAdmin(RecordAdminProxy): - list_display = ('resourceactivityid','citationid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "resourceactivityid", + "citationid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('resourceactivityid','citationid'), 'relationshipdescription','pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + { + "fields": ( + ("resourceactivityid", "citationid"), + "relationshipdescription", + "pages", + ) + }, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = ResourceActivityCitationEventsForm - + + @admin.register(ResourceActivityMediaEvents) class ResourceActivityMediaEventsAdmin(RecordAdminProxy): - list_display = ('resourceactivityid','mediaid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "resourceactivityid", + "mediaid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('resourceactivityid','mediaid'), 'relationshipdescription','pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + { + "fields": ( + ("resourceactivityid", "mediaid"), + "relationshipdescription", + "pages", + ) + }, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = ResourceActivityMediaEventsForm + @admin.register(ResourceResourceEvents) class ResourceResourceEventsAdmin(RecordAdminProxy): - list_display = ('resourceid','altresourceid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "resourceid", + "altresourceid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('resourceid','altresourceid'), 'relationshipdescription') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ("", {"fields": (("resourceid", "altresourceid"), "relationshipdescription")}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = ResourceResourceEventsForm + @admin.register(ResourcesCitationEvents) class ResourcesCitationEventsAdmin(RecordAdminProxy): - list_display = ('resourceid','citationid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "resourceid", + "citationid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('resourceid','citationid'), 'relationshipdescription', 'pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + { + "fields": ( + ("resourceid", "citationid"), + "relationshipdescription", + "pages", + ) + }, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = ResourcesCitationEventsForm + @admin.register(ResourcesMediaEvents) class ResourcesMediaEventsAdmin(RecordAdminProxy): - list_display = ('resourceid','mediaid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "resourceid", + "mediaid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('resourceid','mediaid'), 'relationshipdescription', 'pages') - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ( + "", + {"fields": (("resourceid", "mediaid"), "relationshipdescription", "pages")}, + ), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) form = ResourcesMediaEventsForm + @admin.register(ResourceAltIndigenousName) class ResourceAltIndigenousNameAdmin(VersionAdmin): fieldsets = ( - ('', { - 'fields': (('resourceid', 'altindigenousname'),), - }), + ( + "", + { + "fields": (("resourceid", "altindigenousname"),), + }, + ), ) form = ResourceAltIndigenousNameForm + class LocalityPlaceResourceEventAdmin(RecordAdminProxy): - list_display = ('localityid','placeresourceid','enteredbyname','enteredbydate','modifiedbyname','modifiedbydate') + list_display = ( + "localityid", + "placeresourceid", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ) fieldsets = ( - ('', { - 'fields': (('localityid','placeresourceid'),) - }), - ('History', { - 'fields': ( - ('enteredbyname','enteredbytitle','enteredbytribe','enteredbydate'), - ('modifiedbyname','modifiedbytitle','modifiedbytribe','modifiedbydate'), - ) - }) + ("", {"fields": (("localityid", "placeresourceid"),)}), + ( + "History", + { + "fields": ( + ( + "enteredbyname", + "enteredbytitle", + "enteredbytribe", + "enteredbydate", + ), + ( + "modifiedbyname", + "modifiedbytitle", + "modifiedbytribe", + "modifiedbydate", + ), + ) + }, + ), ) + ##################### #### AUTH MODELS #### ##################### @admin.register(Users) class UsersAdmin(UserAdmin): list_display = ( - 'username', 'first_name', 'last_name', 'affiliation', - 'accesslevel','title','last_login', 'date_joined') + "username", + "first_name", + "last_name", + "affiliation", + "accesslevel", + "title", + "last_login", + "date_joined", + ) fieldsets = ( - (None, {'fields': ('username', 'password',)}), - (_('Personal info'), {'fields': ( - 'first_name', 'last_name', 'email', 'affiliation', 'title', - )}), - (_('Permissions'), {'fields': ('accesslevel',)}), - (_('Important dates'), {'fields': ('last_login', 'date_joined')}), + ( + None, + { + "fields": ( + "username", + "password", + ) + }, + ), + ( + _("Personal info"), + { + "fields": ( + "first_name", + "last_name", + "email", + "affiliation", + "title", + ) + }, + ), + (_("Permissions"), {"fields": ("accesslevel",)}), + (_("Important dates"), {"fields": ("last_login", "date_joined")}), ) search_fields = ( - 'username', 'first_name', 'last_name', 'affiliation', 'email' - 'title', 'accesslevel__accesslevel' + "username", + "first_name", + "last_name", + "affiliation", + "emailtitle", + "accesslevel__accesslevel", ) + # admin.site.register(Locality, LocalityAdmin) # admin.site.register(LocalityGISSelections) # admin.site.register(LocalityPlaceResourceEvent, LocalityPlaceResourceEventAdmin) diff --git a/TEKDB/TEKDB/apps.py b/TEKDB/TEKDB/apps.py index 284b1675..957301f6 100644 --- a/TEKDB/TEKDB/apps.py +++ b/TEKDB/TEKDB/apps.py @@ -2,6 +2,7 @@ from django.apps import AppConfig + class TEKDBConfig(AppConfig): - name = 'TEKDB' - verbose_name = 'Records' + name = "TEKDB" + verbose_name = "Records" diff --git a/TEKDB/TEKDB/context_processors.py b/TEKDB/TEKDB/context_processors.py index bedfaf12..5dfc2b3f 100644 --- a/TEKDB/TEKDB/context_processors.py +++ b/TEKDB/TEKDB/context_processors.py @@ -5,39 +5,44 @@ def search_settings(request=None): try: from TEKDB import settings except Exception as e: - print('Could not import settings from TEKDB') + print("Could not import settings from TEKDB") print(e) settings = False - + try: from configuration.models import Configuration + configs = Configuration.objects.all()[0] except Exception as e: configs = False search_config = { - 'MIN_SEARCH_RANK': 0.01, # Default value - 'MIN_SEARCH_SIMILARITY': 0.1, # Default + "MIN_SEARCH_RANK": 0.01, # Default value + "MIN_SEARCH_SIMILARITY": 0.1, # Default } if settings: try: search_config = { - 'MIN_SEARCH_RANK': settings.MIN_SEARCH_RANK, - 'MIN_SEARCH_SIMILARITY': settings.MIN_SEARCH_SIMILARITY, + "MIN_SEARCH_RANK": settings.MIN_SEARCH_RANK, + "MIN_SEARCH_SIMILARITY": settings.MIN_SEARCH_SIMILARITY, } except Exception as e: - print('No MIN_SEARCH_RANK or MIN_SEARCH_SIMILARITY in settings') + print("No MIN_SEARCH_RANK or MIN_SEARCH_SIMILARITY in settings") pass if configs: try: search_config = { - 'MIN_SEARCH_RANK': configs.min_search_rank if configs.min_search_rank else search_config['MIN_SEARCH_RANK'], - 'MIN_SEARCH_SIMILARITY': configs.min_search_similarity if configs.min_search_similarity else search_config['MIN_SEARCH_SIMILARITY'], + "MIN_SEARCH_RANK": configs.min_search_rank + if configs.min_search_rank + else search_config["MIN_SEARCH_RANK"], + "MIN_SEARCH_SIMILARITY": configs.min_search_similarity + if configs.min_search_similarity + else search_config["MIN_SEARCH_SIMILARITY"], } except Exception as e: - print('No min_search_rank or min_search_similarity in Configuration') + print("No min_search_rank or min_search_similarity in Configuration") pass return search_config @@ -46,17 +51,17 @@ def search_settings(request=None): def add_map_default_context(request): from django.conf import settings from configuration.models import Configuration - + # SET BASELINE MAP_DEFAULTS = { - 'default_lon': 0, - 'default_lat': 0, - 'default_zoom': 1, - 'map_extent': False + "default_lon": 0, + "default_lat": 0, + "default_zoom": 1, + "map_extent": False, } # Override BASELINE with any settings or local settings - if hasattr(settings, 'DATABASE_GEOGRAPHY'): + if hasattr(settings, "DATABASE_GEOGRAPHY"): for key in settings.DATABASE_GEOGRAPHY.keys(): MAP_DEFAULTS[key] = settings.DATABASE_GEOGRAPHY[key] @@ -64,14 +69,15 @@ def add_map_default_context(request): configurations = Configuration.objects.all() if configurations.count() > 0: for config in configurations: - if hasattr(config, 'geometry') and hasattr(config.geometry, 'extent') and len(config.geometry.extent) == 4: - MAP_DEFAULTS['map_extent'] = [x for x in config.geometry.extent] + if ( + hasattr(config, "geometry") + and hasattr(config.geometry, "extent") + and len(config.geometry.extent) == 4 + ): + MAP_DEFAULTS["map_extent"] = [x for x in config.geometry.extent] break except Exception as e: pass return MAP_DEFAULTS - - - diff --git a/TEKDB/TEKDB/forms.py b/TEKDB/TEKDB/forms.py index aab2d27d..2a02c5f9 100644 --- a/TEKDB/TEKDB/forms.py +++ b/TEKDB/TEKDB/forms.py @@ -1,6 +1,14 @@ from django import forms from django.contrib.admin.widgets import FilteredSelectMultiple -from .models import MediaBulkUpload, Media, Places, Resources, Citations, ResourcesActivityEvents, PlacesResourceEvents +from .models import ( + MediaBulkUpload, + Media, + Places, + Resources, + Citations, + ResourcesActivityEvents, + PlacesResourceEvents, +) from .widgets import ThumbnailFileInput @@ -17,35 +25,45 @@ def clean(self, data, initial=None): result = [single_file_clean(data, initial)] return result + class MediaBulkUploadForm(forms.ModelForm): files = MultipleFileField() places = forms.ModelMultipleChoiceField( - queryset=Places.objects.all(), + queryset=Places.objects.all(), required=False, - widget=FilteredSelectMultiple("Places", is_stacked=False) + widget=FilteredSelectMultiple("Places", is_stacked=False), ) resources = forms.ModelMultipleChoiceField( - queryset=Resources.objects.all(), + queryset=Resources.objects.all(), required=False, - widget=FilteredSelectMultiple("Resources", is_stacked=False) + widget=FilteredSelectMultiple("Resources", is_stacked=False), ) citations = forms.ModelMultipleChoiceField( - queryset=Citations.objects.all(), + queryset=Citations.objects.all(), required=False, - widget=FilteredSelectMultiple("Citations", is_stacked=False) + widget=FilteredSelectMultiple("Citations", is_stacked=False), ) activities = forms.ModelMultipleChoiceField( - queryset=ResourcesActivityEvents.objects.all(), + queryset=ResourcesActivityEvents.objects.all(), required=False, - widget=FilteredSelectMultiple("Activities", is_stacked=False) + widget=FilteredSelectMultiple("Activities", is_stacked=False), ) placesresources = forms.ModelMultipleChoiceField( - queryset=PlacesResourceEvents.objects.all(), + queryset=PlacesResourceEvents.objects.all(), required=False, - widget=FilteredSelectMultiple("Places Resources", is_stacked=False) + widget=FilteredSelectMultiple("Places Resources", is_stacked=False), ) class Meta: model = MediaBulkUpload - fields = ['mediabulkname', 'mediabulkdescription', 'mediabulkdate', 'files', 'places', 'resources', 'citations', 'activities', 'placesresources'] - \ No newline at end of file + fields = [ + "mediabulkname", + "mediabulkdescription", + "mediabulkdate", + "files", + "places", + "resources", + "citations", + "activities", + "placesresources", + ] diff --git a/TEKDB/TEKDB/management/commands/export_db.py b/TEKDB/TEKDB/management/commands/export_db.py index 689bb059..504a2601 100644 --- a/TEKDB/TEKDB/management/commands/export_db.py +++ b/TEKDB/TEKDB/management/commands/export_db.py @@ -9,14 +9,14 @@ import tempfile import zipfile -class Command(BaseCommand): - help = 'Exports current content of database to /tmp/' +class Command(BaseCommand): + help = "Exports current content of database to /tmp/" def handle(self, *args, **options): - datestamp = datetime.now().strftime('%Y%m%d') + datestamp = datetime.now().strftime("%Y%m%d") outfile = "/tmp/{}_backup.zip".format(datestamp) - os.chdir(os.path.join(settings.MEDIA_ROOT, '..')) + os.chdir(os.path.join(settings.MEDIA_ROOT, "..")) relative_media_directory = settings.MEDIA_ROOT.split(os.path.sep)[-1] # media_paths = get_all_file_paths(relative_media_directory, cwd=os.getcwd()) media_paths = [] @@ -31,17 +31,17 @@ def handle(self, *args, **options): # create filename dumpfile = "{}_backup.json".format(datestamp) dumpfile_location = os.path.join(tmp_dir, dumpfile) - with open(dumpfile_location, 'w') as of: - management.call_command('dumpdata', '--indent=2', stdout=of) + with open(dumpfile_location, "w") as of: + management.call_command("dumpdata", "--indent=2", stdout=of) # zip up: # * Data Dump file # * Media files - with zipfile.ZipFile(outfile, 'w') as zip: + with zipfile.ZipFile(outfile, "w") as zip: zip.write(dumpfile_location, dumpfile) for media_file in media_paths: zip.write(media_file) print("Export complete. Find your file at: {}".format(outfile)) - + except Exception as e: print("Unknown Error Exporting Data: {}".format(e)) diff --git a/TEKDB/TEKDB/management/commands/import_shp.py b/TEKDB/TEKDB/management/commands/import_shp.py index 99a42509..a03c96af 100644 --- a/TEKDB/TEKDB/management/commands/import_shp.py +++ b/TEKDB/TEKDB/management/commands/import_shp.py @@ -3,12 +3,12 @@ # from TEKDB.models import * # from TEKDB.settings import * -class Command(BaseCommand): - help = 'Imports spatial data from a separate PostGIS database with schema matching old db' +class Command(BaseCommand): + help = "Imports spatial data from a separate PostGIS database with schema matching old db" def add_arguments(self, parser): - parser.add_argument('infile', nargs='+', type=str) + parser.add_argument("infile", nargs="+", type=str) def handle(self, *args, **options): from django.contrib.gis.gdal import DataSource @@ -17,15 +17,15 @@ def handle(self, *args, **options): from datetime import datetime FILE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - MANAGE_DIR = os.path.join(FILE_DIR,'..','..') - import_output = os.path.join(MANAGE_DIR, 'scripts','import_shp_output.txt') - import_error = os.path.join(MANAGE_DIR, 'scripts','import_shp_output.txt') - manage_py = os.path.join(MANAGE_DIR, 'manage.py') - infile = os.path.normpath(os.path.join(MANAGE_DIR, options['infile'][0])) + MANAGE_DIR = os.path.join(FILE_DIR, "..", "..") + import_output = os.path.join(MANAGE_DIR, "scripts", "import_shp_output.txt") + import_error = os.path.join(MANAGE_DIR, "scripts", "import_shp_output.txt") + manage_py = os.path.join(MANAGE_DIR, "manage.py") + infile = os.path.normpath(os.path.join(MANAGE_DIR, options["infile"][0])) if not os.path.exists(infile): - print('File not found: %s' % infile) + print("File not found: %s" % infile) quit() - if not infile[-4:] == '.shp': + if not infile[-4:] == ".shp": print('Please provide shapefile name ending in ".shp".') quit() @@ -34,71 +34,130 @@ def handle(self, *args, **options): layer = ds[0] # TODO: Can we detect the srs and convert to 3857 on the fly? print("SRID: %s" % layer.srs.srid) - fields = layer.fields + fields = layer.fields - if not 'PlaceID' in fields: - print('This is not a valid shapefile - no PlaceID field found. Available given: %s' % str(fields)) + if not "PlaceID" in fields: + print( + "This is not a valid shapefile - no PlaceID field found. Available given: %s" + % str(fields) + ) quit() - from TEKDB.models import Places, Locality, LookupPlanningUnit, LookupHabitat, LookupLocalityType - if 'LocalityID' in fields: + from TEKDB.models import ( + Places, + Locality, + LookupPlanningUnit, + LookupHabitat, + LookupLocalityType, + ) + + if "LocalityID" in fields: model = Locality - pk_field = 'LocalityID' - label_field = 'LocalityLa' - description_field = 'LocalityDe' + pk_field = "LocalityID" + label_field = "LocalityLa" + description_field = "LocalityDe" else: model = Places - pk_field = 'PlaceID' - label_field = 'PlaceLabel' - description_field = 'PlaceDescr' + pk_field = "PlaceID" + label_field = "PlaceLabel" + description_field = "PlaceDescr" for geom_index, feature in enumerate(layer.get_geoms()): pk = layer.get_fields(pk_field)[geom_index] try: (record, created) = model.objects.get_or_create(pk=pk) from TEKDB.settings import TIME_ZONE + local_tz = timezone(TIME_ZONE) - record_date = local_tz.localize(datetime.combine(layer.get_fields('DigitizedD')[geom_index], datetime.min.time())) + record_date = local_tz.localize( + datetime.combine( + layer.get_fields("DigitizedD")[geom_index], + datetime.min.time(), + ) + ) if created: - print('No DB record for %s (ID: %s) found. Creating a new one...' % (layer.get_fields(label_field)[geom_index], str(pk))) + print( + "No DB record for %s (ID: %s) found. Creating a new one..." + % (layer.get_fields(label_field)[geom_index], str(pk)) + ) if model == Locality: - place = Places.objects.filter(pk=layer.get_fields('PlaceID')[geom_index]) + place = Places.objects.filter( + pk=layer.get_fields("PlaceID")[geom_index] + ) if len(place) == 1: record.placeid = place[0] - record.englishname = layer.get_fields(label_field)[geom_index] - record.indigenousname = layer.get_fields(label_field)[geom_index] - (localitytype, lt_created) = LookupLocalityType.objects.get_or_create(localitytype__iexact=layer.get_fields('FeatType')[geom_index]) + record.englishname = layer.get_fields(label_field)[ + geom_index + ] + record.indigenousname = layer.get_fields(label_field)[ + geom_index + ] + (localitytype, lt_created) = ( + LookupLocalityType.objects.get_or_create( + localitytype__iexact=layer.get_fields("FeatType")[ + geom_index + ] + ) + ) if lt_created: - localitytype.localitytype = layer.get_fields('FeatType')[geom_index] + localitytype.localitytype = layer.get_fields( + "FeatType" + )[geom_index] localitytype.save() - print('Created Locality Type: %s (ID: %s)' % (localitytype.localitytype, localitytype.id)) + print( + "Created Locality Type: %s (ID: %s)" + % (localitytype.localitytype, localitytype.id) + ) record.localitytype = localitytype else: - record.indigenousplacename = layer.get_fields(label_field)[geom_index] - record.indigenousplacenamemeaning = layer.get_fields(description_field)[geom_index] - record.englishplacename = layer.get_fields(label_field)[geom_index] - (habitat, hab_created) = LookupHabitat.objects.get_or_create(habitat__iexact=layer.get_fields('FeatType')[geom_index]) + record.indigenousplacename = layer.get_fields(label_field)[ + geom_index + ] + record.indigenousplacenamemeaning = layer.get_fields( + description_field + )[geom_index] + record.englishplacename = layer.get_fields(label_field)[ + geom_index + ] + (habitat, hab_created) = ( + LookupHabitat.objects.get_or_create( + habitat__iexact=layer.get_fields("FeatType")[ + geom_index + ] + ) + ) if hab_created: - habitat.habitat = layer.get_fields('FeatType')[geom_index] + habitat.habitat = layer.get_fields("FeatType")[ + geom_index + ] habitat.save() - print('Created Habitat: %s (ID: %s)' % (habitat.habitat, habitat.id)) + print( + "Created Habitat: %s (ID: %s)" + % (habitat.habitat, habitat.id) + ) record.primaryhabitat = habitat - record.enteredbyname = layer.get_fields('DigitizedB')[geom_index] + record.enteredbyname = layer.get_fields("DigitizedB")[ + geom_index + ] record.enteredbydate = record_date - record.modifiedbyname = layer.get_fields('DigitizedB')[geom_index] + record.modifiedbyname = layer.get_fields("DigitizedB")[ + geom_index + ] record.modifiedbydate = record_date record.geometry = feature.geos - record.Source = layer.get_fields('Source')[geom_index] - record.DigitizedBy = layer.get_fields('DigitizedB')[geom_index] + record.Source = layer.get_fields("Source")[geom_index] + record.DigitizedBy = layer.get_fields("DigitizedB")[geom_index] record.DigitizedDate = record_date record.save() except: - print('Error editing %s record with ID: %s' % (model, str(pk))) + print("Error editing %s record with ID: %s" % (model, str(pk))) except Exception: - print('An unexpected error occurred while trying to read the \ + print( + "An unexpected error occurred while trying to read the \ shapefile. Please be sure the shapefile exists as given in your \ arguments and that it is unzipped and has the Place or Locality \ -data you wish to import and try again.') +data you wish to import and try again." + ) quit() diff --git a/TEKDB/TEKDB/management/commands/import_sql.py b/TEKDB/TEKDB/management/commands/import_sql.py index ac885bd6..0e7ff68e 100644 --- a/TEKDB/TEKDB/management/commands/import_sql.py +++ b/TEKDB/TEKDB/management/commands/import_sql.py @@ -7,86 +7,89 @@ from django.contrib.contenttypes.models import ContentType from django import db -class Command(BaseCommand): - help = 'Imports and rearranges SQL for PostgreSQL generated by Bullzip from Access DB' +class Command(BaseCommand): + help = ( + "Imports and rearranges SQL for PostgreSQL generated by Bullzip from Access DB" + ) def add_arguments(self, parser): - parser.add_argument('infile', nargs='+', type=str) - parser.add_argument('revert', nargs='*', type=bool) + parser.add_argument("infile", nargs="+", type=str) + parser.add_argument("revert", nargs="*", type=bool) def create_groups(self): - admin_group, created = Group.objects.get_or_create(name='Administrator') + admin_group, created = Group.objects.get_or_create(name="Administrator") admin_group_id = admin_group.id - edit_group, created = Group.objects.get_or_create(name='Editor') + edit_group, created = Group.objects.get_or_create(name="Editor") edit_group_id = edit_group.id - read_group, created = Group.objects.get_or_create(name='Reader') + read_group, created = Group.objects.get_or_create(name="Reader") read_group_id = read_group.id admin_add_perms = Permission.objects.all() admin_group.permissions.set(admin_add_perms) from django.db.models import Q + cts = ContentType.objects.filter( - Q(app_label='TEKDB') | - Q(app_label='Relationships') + Q(app_label="TEKDB") | Q(app_label="Relationships") ) edit_add_perms = Permission.objects.filter(content_type__in=cts) edit_group.permissions.set(edit_add_perms) return { - 'admin_id': admin_group_id, - 'edit_id': edit_group_id, - 'read_id': read_group_id + "admin_id": admin_group_id, + "edit_id": edit_group_id, + "read_id": read_group_id, } def get_model_list(self): return [ - 'lookupplanningunit', - 'lookuptribe', - 'lookuphabitat', - 'places', - 'lookupresourcegroup', - 'resources', - 'lookuppartused', - 'lookupcustomaryuse', - 'lookupseason', - 'lookuptiming', - 'placesresourceevents', - 'lookupparticipants', - 'lookuptechniques', - 'lookupactivity', - 'resourcesactivityevents', - 'people', - 'lookupreferencetype', - 'lookupauthortype', - 'citations', - 'placescitationevents', - 'currentversion', - 'lookuplocalitytype', - 'locality', - 'localitygisselections', - 'localityplaceresourceevent', - 'lookupmediatype', - 'lookupuserinfo', - 'media', - 'mediacitationevents', - 'placealtindigenousname', - 'placegisselections', - 'placesmediaevents', - 'placesresourcecitationevents', - 'placesresourcemediaevents', - 'resourceactivitycitationevents', - 'resourceactivitymediaevents', - 'resourcealtindigenousname', - 'resourceresourceevents', - 'resourcescitationevents', - 'resourcesmediaevents', - 'useraccess', - 'users', + "lookupplanningunit", + "lookuptribe", + "lookuphabitat", + "places", + "lookupresourcegroup", + "resources", + "lookuppartused", + "lookupcustomaryuse", + "lookupseason", + "lookuptiming", + "placesresourceevents", + "lookupparticipants", + "lookuptechniques", + "lookupactivity", + "resourcesactivityevents", + "people", + "lookupreferencetype", + "lookupauthortype", + "citations", + "placescitationevents", + "currentversion", + "lookuplocalitytype", + "locality", + "localitygisselections", + "localityplaceresourceevent", + "lookupmediatype", + "lookupuserinfo", + "media", + "mediacitationevents", + "placealtindigenousname", + "placegisselections", + "placesmediaevents", + "placesresourcecitationevents", + "placesresourcemediaevents", + "resourceactivitycitationevents", + "resourceactivitymediaevents", + "resourcealtindigenousname", + "resourceresourceevents", + "resourcescitationevents", + "resourcesmediaevents", + "useraccess", + "users", ] - def create_sql_dict(self,infile): + def create_sql_dict(self, infile): import string import re import shlex + now = timezone.now() ############################################ print("Generating insert script") @@ -98,37 +101,37 @@ def create_sql_dict(self,infile): lookups = [ # 'lookupplanningunit', #Already has a numeric auto pk # 'lookuptribe', #Already has a numeric auto pk - 'lookuphabitat', - 'lookupresourcegroup', - 'lookuppartused', - 'lookupcustomaryuse', - 'lookupseason', - 'lookuptiming', - 'lookupparticipants', - 'lookuptechniques', - 'lookupactivity', - 'lookupreferencetype', - 'lookupauthortype', - 'lookuplocalitytype', - 'lookupmediatype', + "lookuphabitat", + "lookupresourcegroup", + "lookuppartused", + "lookupcustomaryuse", + "lookupseason", + "lookuptiming", + "lookupparticipants", + "lookuptechniques", + "lookupactivity", + "lookupreferencetype", + "lookupauthortype", + "lookuplocalitytype", + "lookupmediatype", # 'lookupuserinfo', #Not used as an FK anywhere ] lookup_pks = { # 'lookupplanningunit': '"planningunitid"', #Already has a numeric auto pk # 'lookuptribe': '"id"', #Already has a numeric auto pk - 'lookuphabitat': '"habitat"', - 'lookupresourcegroup': '"resourceclassificationgroup"', - 'lookuppartused': '"partused"', - 'lookupcustomaryuse': '"usedfor"', - 'lookupseason': '"season"', - 'lookuptiming': '"timing"', - 'lookupparticipants': '"participants"', - 'lookuptechniques': '"techniques"', - 'lookupactivity': '"activity"', - 'lookupreferencetype': '"documenttype"', - 'lookupauthortype': '"authortype"', - 'lookuplocalitytype': '"localitytype"', - 'lookupmediatype': '"mediatype"', + "lookuphabitat": '"habitat"', + "lookupresourcegroup": '"resourceclassificationgroup"', + "lookuppartused": '"partused"', + "lookupcustomaryuse": '"usedfor"', + "lookupseason": '"season"', + "lookuptiming": '"timing"', + "lookupparticipants": '"participants"', + "lookuptechniques": '"techniques"', + "lookupactivity": '"activity"', + "lookupreferencetype": '"documenttype"', + "lookupauthortype": '"authortype"', + "lookuplocalitytype": '"localitytype"', + "lookupmediatype": '"mediatype"', # 'lookupuserinfo': '"pk"', #Not used as an FK anywhere } lookup_indices = {} @@ -136,47 +139,41 @@ def create_sql_dict(self,infile): lookup_values = {} for lookup in lookups: lookup_indices[lookup] = 0 - lookup_values[lookup] = { - 'NULL': 'NULL' - } + lookup_values[lookup] = {"NULL": "NULL"} # { 'Rocky Shore': 7 } # create list of models with lookup dependencies lookup_dependencies = { - 'citations': { - '"referencetype"': 'lookupreferencetype', - '"authortype"': 'lookupauthortype' - }, - 'locality': { - '"localitytype"': 'lookuplocalitytype' + "citations": { + '"referencetype"': "lookupreferencetype", + '"authortype"': "lookupauthortype", }, - 'media': { - '"mediatype"': 'lookupmediatype' + "locality": {'"localitytype"': "lookuplocalitytype"}, + "media": {'"mediatype"': "lookupmediatype"}, + "places": { + '"primaryhabitat"': "lookuphabitat", }, - 'places': { - '"primaryhabitat"': 'lookuphabitat', + "placesresourceevents": { + '"partused"': "lookuppartused", + '"customaryuse"': "lookupcustomaryuse", + '"season"': "lookupseason", + '"timing"': "lookuptiming", }, - 'placesresourceevents': { - '"partused"': 'lookuppartused', - '"customaryuse"': 'lookupcustomaryuse', - '"season"': 'lookupseason', - '"timing"': 'lookuptiming' + "resources": { + '"resourceclassificationgroup"': "lookupresourcegroup", }, - 'resources': { - '"resourceclassificationgroup"': 'lookupresourcegroup', + "resourcesactivityevents": { + '"partused"': "lookuppartused", + '"timing"': "lookuptiming", + '"participants"': "lookupparticipants", + '"technique"': "lookuptechniques", + '"activityshortdescription"': "lookupactivity", }, - 'resourcesactivityevents': { - '"partused"': 'lookuppartused', - '"timing"': 'lookuptiming', - '"participants"': 'lookupparticipants', - '"technique"': 'lookuptechniques', - '"activityshortdescription"': 'lookupactivity', - } } for model in model_list: insert_dict[model] = { - 'inserts': [], - 'selects': [], - 'indices': [], + "inserts": [], + "selects": [], + "indices": [], } with open(infile) as rf: reg_match = r'(E\'".+?(?!\\)"\'|E\'.*?(?!\\)\'|.+?)(?:,\s|$)' @@ -185,35 +182,47 @@ def create_sql_dict(self,infile): # reg_match = r'(E\'".+?(?!\\)"\'{0,2}\'|E\'.*?(?!\\)\'{0,2}\'|.+?)(?:,\s|$)' for line in rf: - if "INSERT INTO \"" in line: - pattern = re.compile(r'INSERT INTO "(?P.*)" \((?P.*)\) VALUES \((?P.*)\);') + if 'INSERT INTO "' in line: + pattern = re.compile( + r'INSERT INTO "(?P
.*)" \((?P.*)\) VALUES \((?P.*)\);' + ) result = pattern.match(line) - model = result.groupdict()['table'].lower() + model = result.groupdict()["table"].lower() if model in model_list: - columns_lex = shlex.shlex(result.groupdict()['columns']) + columns_lex = shlex.shlex(result.groupdict()["columns"]) columns_lex.quotes = '"' columns = list(columns_lex) - columns = list(filter((',').__ne__, columns)) + columns = list(filter((",").__ne__, columns)) columns = [x.lower() for x in columns] - values = re.findall(reg_match, result.groupdict()['values']) + values = re.findall(reg_match, result.groupdict()["values"]) if len(columns) != len(values): import ipdb + ipdb.set_trace() # This is left in place so that any detected mismatches can be fixed by hand now. print(values) - if model == "users": - columns = columns + ['"is_superuser"', '"is_staff"', '"is_active"', '"date_joined"'] - values = values + ["E'0'", "E'0'", "E'1'", "'%s'" % str(now)] + columns = columns + [ + '"is_superuser"', + '"is_staff"', + '"is_active"', + '"date_joined"', + ] + values = values + [ + "E'0'", + "E'0'", + "E'1'", + "'%s'" % str(now), + ] elif model == "useraccess": accessLevelIndex = columns.index('"accesslevel"') - if values[accessLevelIndex] == "E'Administrator'" : - group_id = group_id_dict['admin_id'] + if values[accessLevelIndex] == "E'Administrator'": + group_id = group_id_dict["admin_id"] elif values[accessLevelIndex] == "E'Editor'": - group_id = group_id_dict['edit_id'] + group_id = group_id_dict["edit_id"] else: - group_id = group_id_dict['read_id'] + group_id = group_id_dict["read_id"] columns = columns + ['"group_id"'] values = values + [str(group_id)] if model in lookups: @@ -225,99 +234,113 @@ def create_sql_dict(self,infile): pk_index = columns.index(pk_field) except Exception: import ipdb + ipdb.set_trace() pk_value = values[pk_index] if not pk_value in lookup_values[model].keys(): lookup_values[model][pk_value] = str(record_id) lookup_indices[model] = record_id + 1 - insert_dict[model]['inserts'].append({ - 'table': model, - 'columns': columns, - 'values': values - }) + insert_dict[model]["inserts"].append( + {"table": model, "columns": columns, "values": values} + ) else: - print('%s - not found in Model List.' % model) + print("%s - not found in Model List." % model) elif "SELECT setval(" in line: # SELECT setval('"Users_UserID_seq"', MAX("UserID")) FROM "Users"; - pattern = re.compile(r'SELECT setval\(\'(?P.*)\', MAX\((?P.*)\)\) FROM "(?P
.*)";') + pattern = re.compile( + r'SELECT setval\(\'(?P.*)\', MAX\((?P.*)\)\) FROM "(?P
.*)";' + ) result = pattern.match(line) - model = result.groupdict()['table'].lower() + model = result.groupdict()["table"].lower() if model in model_list: - column = result.groupdict()['column'].lower() - sequence = result.groupdict()['sequence'].lower() - insert_dict[model]['selects'].append({ - 'sequence': sequence, - 'table': model, - 'column': column - }) + column = result.groupdict()["column"].lower() + sequence = result.groupdict()["sequence"].lower() + insert_dict[model]["selects"].append( + {"sequence": sequence, "table": model, "column": column} + ) else: - print('%s - not found in Model List.' % model) + print("%s - not found in Model List." % model) elif "CREATE INDEX " in line: # CREATE INDEX "Users_UserID" ON "Users" ("UserID"); - pattern = re.compile(r'CREATE INDEX "(?P.*)" ON "(?P
.*)"\s(?:USING\s.*\s)?\((?P.*)\);(?:\\n)?') + pattern = re.compile( + r'CREATE INDEX "(?P.*)" ON "(?P
.*)"\s(?:USING\s.*\s)?\((?P.*)\);(?:\\n)?' + ) result = pattern.match(line) if result: - model = result.groupdict()['table'].lower() + model = result.groupdict()["table"].lower() if model in model_list: - columns = result.groupdict()['columns'].lower() - index = result.groupdict()['index'].lower() - insert_dict[model]['indices'].append({ - 'index': index, - 'table': model, - 'columns': columns - }) + columns = result.groupdict()["columns"].lower() + index = result.groupdict()["index"].lower() + insert_dict[model]["indices"].append( + {"index": index, "table": model, "columns": columns} + ) else: - print('%s - not found in Model List.' % model) + print("%s - not found in Model List." % model) # else: # print('Line does not match CREATE INDEX pattern: %s' % line) - #TODO: when done: - #TODO: For each user: - #TODO: Check access-level and adjust 'is_superuser' and 'is_staff' accordingly - #TODO: or see that groups are appropriate + # TODO: when done: + # TODO: For each user: + # TODO: Check access-level and adjust 'is_superuser' and 'is_staff' accordingly + # TODO: or see that groups are appropriate for model in lookup_dependencies.keys(): - for insert_rec in insert_dict[model]['inserts']: + for insert_rec in insert_dict[model]["inserts"]: for lookup in lookup_dependencies[model].keys(): # get index of lookup fk field - lookup_index = insert_rec['columns'].index(lookup) + lookup_index = insert_rec["columns"].index(lookup) # get old char pk value for fk lookup model - char_pk_value = insert_rec['values'][lookup_index] + char_pk_value = insert_rec["values"][lookup_index] # get model of lookup fk lookup_model = lookup_dependencies[model][lookup] # Check to be sure lookup_value exists and has an associated ID if not char_pk_value in lookup_values[lookup_model].keys(): lookup_record_id = lookup_indices[lookup_model] - lookup_values[lookup_model][char_pk_value] = str(lookup_record_id) + lookup_values[lookup_model][char_pk_value] = str( + lookup_record_id + ) lookup_indices[lookup_model] = lookup_record_id + 1 - insert_dict[lookup_model]['inserts'].append({ - 'table': lookup_model, - 'columns': ['"id"', lookup_pks[lookup_model]], - 'values': [str(lookup_record_id), char_pk_value] - }) + insert_dict[lookup_model]["inserts"].append( + { + "table": lookup_model, + "columns": ['"id"', lookup_pks[lookup_model]], + "values": [str(lookup_record_id), char_pk_value], + } + ) # get int pk value from old char pk value lookup_id = lookup_values[lookup_model][char_pk_value] - insert_rec['values'][lookup_index] = lookup_id + insert_rec["values"][lookup_index] = lookup_id return insert_dict - def create_insert_script(self, insert_script,insert_dict): + def create_insert_script(self, insert_script, insert_dict): model_list = self.get_model_list() with open(insert_script, "w") as wf: for model in model_list: - for insert in insert_dict[model]['inserts']: - line = 'INSERT INTO "%s" (%s) VALUES (%s);\n' % (insert['table'], ', '.join(insert['columns']), ', '.join(insert['values'])) + for insert in insert_dict[model]["inserts"]: + line = 'INSERT INTO "%s" (%s) VALUES (%s);\n' % ( + insert["table"], + ", ".join(insert["columns"]), + ", ".join(insert["values"]), + ) wf.write(line) - for select in insert_dict[model]['selects']: - line = 'SELECT setval(\'%s\', MAX(%s)) FROM "%s";\n' % (select['sequence'], select['column'], select['table']) + for select in insert_dict[model]["selects"]: + line = "SELECT setval('%s', MAX(%s)) FROM \"%s\";\n" % ( + select["sequence"], + select["column"], + select["table"], + ) wf.write(line) - for index in insert_dict[model]['indices']: - line = 'CREATE INDEX "%s" ON "%s" (%s);\n' % (index['index'], index['table'], index['columns']) + for index in insert_dict[model]["indices"]: + line = 'CREATE INDEX "%s" ON "%s" (%s);\n' % ( + index["index"], + index["table"], + index["columns"], + ) wf.write(line) - def get_app_list(self): - return ['TEKDB', 'Lookup', 'Accounts', 'Relationships', 'explore'] + return ["TEKDB", "Lookup", "Accounts", "Relationships", "explore"] def revert_migrations(self, manage_py): ############################################ @@ -331,14 +354,19 @@ def delete_old_migrations(self, MANAGE_DIR): print("Deleting migration files...") ############################################ from pathlib import Path + for module in self.get_app_list(): - migrations_path = os.path.join(MANAGE_DIR,module,'migrations') + migrations_path = os.path.join(MANAGE_DIR, module, "migrations") migrations = Path(migrations_path) - migration_files = [x for x in migrations.iterdir() if not x.name == '__init__.py' and not x.is_dir()] + migration_files = [ + x + for x in migrations.iterdir() + if not x.name == "__init__.py" and not x.is_dir() + ] for migration_file in migration_files: try: os.remove(str(migration_file)) - print('%s deleted' % migration_file.name) + print("%s deleted" % migration_file.name) except OSError as e: pass @@ -347,13 +375,14 @@ def rebuild_db(self, dbname, manage_py): print("Dropping Database") ############################################ import psycopg2 + db.connections.close_all() conn_psql = psycopg2.connect("dbname=postgres user=postgres") cur_psql = conn_psql.cursor() conn_psql.set_isolation_level(0) - cur_psql.execute('DROP DATABASE if exists %s;' % dbname) + cur_psql.execute("DROP DATABASE if exists %s;" % dbname) print("Recreating Database") - cur_psql.execute('CREATE DATABASE %s;' % dbname) + cur_psql.execute("CREATE DATABASE %s;" % dbname) cur_psql.close() conn_psql.close() @@ -367,57 +396,71 @@ def rebuild_db(self, dbname, manage_py): ############################################ os.system("%s migrate" % manage_py) - def import_sql_data(self,import_output,import_error,dbname,insert_script): + def import_sql_data(self, import_output, import_error, dbname, insert_script): ############################################ print("Transferring old data into new database") ############################################ from subprocess import call - stdout = open(import_output, 'wb') - stderr = open(import_error, 'wb') - call(['psql', '-U', 'postgres', '-d', dbname, '-f', insert_script], stdout=stdout, stderr=stderr) + + stdout = open(import_output, "wb") + stderr = open(import_error, "wb") + call( + ["psql", "-U", "postgres", "-d", dbname, "-f", insert_script], + stdout=stdout, + stderr=stderr, + ) ############################################ - print('Setting up access privileges') + print("Setting up access privileges") ############################################ from TEKDB.models import Users + users = Users.objects.all() for user in users: user.set_password(user.password) - if user.accesslevel.accesslevel == 'Administrator': + if user.accesslevel.accesslevel == "Administrator": user.is_superuser = True user.is_staff = True - if user.accesslevel.accesslevel == 'Editor': + if user.accesslevel.accesslevel == "Editor": user.is_staff = True user.save() - def set_auto_pk_initial_values(self,import_output,import_error,dbname,update_script): + def set_auto_pk_initial_values( + self, import_output, import_error, dbname, update_script + ): ############################################ print("Resetting AutoIncrement Values") ############################################ from subprocess import call - stdout = open(import_output, 'ab') - stderr = open(import_error, 'ab') - call(['psql', '-U', 'postgres', '-d', dbname, '-f', update_script], stdout=stdout, stderr=stderr) + + stdout = open(import_output, "ab") + stderr = open(import_error, "ab") + call( + ["psql", "-U", "postgres", "-d", dbname, "-f", update_script], + stdout=stdout, + stderr=stderr, + ) def handle(self, *args, **options): import ipdb + ipdb.set_trace() # # Running this will delete your database. If you are okay with this, press 'c' and enter. If not, press 'q' and enter try: - revert = os.path.join(MANAGE_DIR, options['revert'][0]) + revert = os.path.join(MANAGE_DIR, options["revert"][0]) except Exception: revert = False FILE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - MANAGE_DIR = os.path.normpath(os.path.join(FILE_DIR,os.pardir,os.pardir)) - infile = os.path.normpath(os.path.join(MANAGE_DIR, options['infile'][0])) - insert_script = os.path.join(MANAGE_DIR, 'scripts','insert.sql') - update_script = os.path.join(MANAGE_DIR, 'scripts','update_sequences.sql') - import_output = os.path.join(MANAGE_DIR, 'scripts','import_output.txt') - import_error = os.path.join(MANAGE_DIR, 'scripts','import_output.txt') - manage_py = os.path.join(MANAGE_DIR, 'manage.py') + MANAGE_DIR = os.path.normpath(os.path.join(FILE_DIR, os.pardir, os.pardir)) + infile = os.path.normpath(os.path.join(MANAGE_DIR, options["infile"][0])) + insert_script = os.path.join(MANAGE_DIR, "scripts", "insert.sql") + update_script = os.path.join(MANAGE_DIR, "scripts", "update_sequences.sql") + import_output = os.path.join(MANAGE_DIR, "scripts", "import_output.txt") + import_error = os.path.join(MANAGE_DIR, "scripts", "import_output.txt") + manage_py = os.path.join(MANAGE_DIR, "manage.py") if not os.path.exists(infile): - print('File not found: %s' % infile) + print("File not found: %s" % infile) quit() if revert: @@ -425,21 +468,27 @@ def handle(self, *args, **options): self.delete_old_migrations(MANAGE_DIR) try: from TEKDB.settings import DATABASES - dbname = DATABASES['default']['NAME'] + + dbname = DATABASES["default"]["NAME"] except Exception: - dbname = 'tekdb' - print('Failed to set DB name from Local Settings!') - print('Enter c to contine, or type your desired dbname as `dbname = _____` hit enter, then c, then enter again.') + dbname = "tekdb" + print("Failed to set DB name from Local Settings!") + print( + "Enter c to contine, or type your desired dbname as `dbname = _____` hit enter, then c, then enter again." + ) import ipdb + ipdb.set_trace() self.rebuild_db(dbname, manage_py) insert_dict = self.create_sql_dict(infile) - self.create_insert_script(insert_script,insert_dict) + self.create_insert_script(insert_script, insert_dict) - self.import_sql_data(import_output,import_error,dbname,insert_script) + self.import_sql_data(import_output, import_error, dbname, insert_script) - self.set_auto_pk_initial_values(import_output,import_error,dbname,update_script) + self.set_auto_pk_initial_values( + import_output, import_error, dbname, update_script + ) ############################################ print("Import Complete") ############################################ diff --git a/TEKDB/TEKDB/migrations/0001_initial.py b/TEKDB/TEKDB/migrations/0001_initial.py index 532cc943..7df266b3 100644 --- a/TEKDB/TEKDB/migrations/0001_initial.py +++ b/TEKDB/TEKDB/migrations/0001_initial.py @@ -8,198 +8,1163 @@ class Migration(migrations.Migration): - initial = True dependencies = [ - ('Lookup', '0001_initial'), - ('Relationships', '0001_initial'), + ("Lookup", "0001_initial"), + ("Relationships", "0001_initial"), ] operations = [ migrations.CreateModel( - name='Citations', + name="Citations", fields=[ - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('citationid', models.AutoField(db_column='citationid', primary_key=True, serialize=False)), - ('referencetext', models.CharField(blank=True, db_column='referencetext', max_length=50, null=True, verbose_name='description')), - ('authorprimary', models.CharField(blank=True, db_column='authorprimary', max_length=255, null=True, verbose_name='primary author')), - ('authorsecondary', models.CharField(blank=True, db_column='authorsecondary', max_length=255, null=True, verbose_name='secondary author')), - ('placeofinterview', models.CharField(blank=True, db_column='placeofinterview', max_length=255, null=True, verbose_name='place of interview')), - ('year', models.IntegerField(blank=True, db_column='year', null=True)), - ('title', models.TextField(blank=True, db_column='title', null=True)), - ('seriestitle', models.CharField(blank=True, db_column='seriestitle', max_length=255, null=True, verbose_name='series title')), - ('seriesvolume', models.CharField(blank=True, db_column='seriesvolume', max_length=50, null=True, verbose_name='series volume')), - ('serieseditor', models.CharField(blank=True, db_column='serieseditor', max_length=255, null=True, verbose_name='series editor')), - ('publisher', models.CharField(blank=True, db_column='publisher', max_length=100, null=True)), - ('publishercity', models.CharField(blank=True, db_column='publishercity', max_length=255, null=True, verbose_name='city')), - ('preparedfor', models.CharField(blank=True, db_column='preparedfor', max_length=100, null=True, verbose_name='prepared_for')), - ('comments', models.TextField(blank=True, db_column='comments', null=True)), - ('authortype', models.ForeignKey(blank=True, db_column='authortype', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupAuthorType', verbose_name='author type')), - ('intervieweeid', models.ForeignKey(blank=True, db_column='intervieweeid', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='interviewee', to='Lookup.People', verbose_name='interviewee')), - ('interviewerid', models.ForeignKey(blank=True, db_column='interviewerid', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='interviewer', to='Lookup.People', verbose_name='interviewer')), - ('referencetype', models.ForeignKey(db_column='referencetype', help_text='Select a reference type to continue', max_length=255, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupReferenceType', verbose_name='reference type')), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "citationid", + models.AutoField( + db_column="citationid", primary_key=True, serialize=False + ), + ), + ( + "referencetext", + models.CharField( + blank=True, + db_column="referencetext", + max_length=50, + null=True, + verbose_name="description", + ), + ), + ( + "authorprimary", + models.CharField( + blank=True, + db_column="authorprimary", + max_length=255, + null=True, + verbose_name="primary author", + ), + ), + ( + "authorsecondary", + models.CharField( + blank=True, + db_column="authorsecondary", + max_length=255, + null=True, + verbose_name="secondary author", + ), + ), + ( + "placeofinterview", + models.CharField( + blank=True, + db_column="placeofinterview", + max_length=255, + null=True, + verbose_name="place of interview", + ), + ), + ("year", models.IntegerField(blank=True, db_column="year", null=True)), + ("title", models.TextField(blank=True, db_column="title", null=True)), + ( + "seriestitle", + models.CharField( + blank=True, + db_column="seriestitle", + max_length=255, + null=True, + verbose_name="series title", + ), + ), + ( + "seriesvolume", + models.CharField( + blank=True, + db_column="seriesvolume", + max_length=50, + null=True, + verbose_name="series volume", + ), + ), + ( + "serieseditor", + models.CharField( + blank=True, + db_column="serieseditor", + max_length=255, + null=True, + verbose_name="series editor", + ), + ), + ( + "publisher", + models.CharField( + blank=True, db_column="publisher", max_length=100, null=True + ), + ), + ( + "publishercity", + models.CharField( + blank=True, + db_column="publishercity", + max_length=255, + null=True, + verbose_name="city", + ), + ), + ( + "preparedfor", + models.CharField( + blank=True, + db_column="preparedfor", + max_length=100, + null=True, + verbose_name="prepared_for", + ), + ), + ( + "comments", + models.TextField(blank=True, db_column="comments", null=True), + ), + ( + "authortype", + models.ForeignKey( + blank=True, + db_column="authortype", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupAuthorType", + verbose_name="author type", + ), + ), + ( + "intervieweeid", + models.ForeignKey( + blank=True, + db_column="intervieweeid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name="interviewee", + to="Lookup.People", + verbose_name="interviewee", + ), + ), + ( + "interviewerid", + models.ForeignKey( + blank=True, + db_column="interviewerid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name="interviewer", + to="Lookup.People", + verbose_name="interviewer", + ), + ), + ( + "referencetype", + models.ForeignKey( + db_column="referencetype", + help_text="Select a reference type to continue", + max_length=255, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupReferenceType", + verbose_name="reference type", + ), + ), ], options={ - 'db_table': 'citations', - 'verbose_name': 'Bibliographic Source', - 'managed': True, - 'verbose_name_plural': 'Bibliographic Sources', + "db_table": "citations", + "verbose_name": "Bibliographic Source", + "managed": True, + "verbose_name_plural": "Bibliographic Sources", }, ), migrations.CreateModel( - name='Locality', + name="Locality", fields=[ - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('localityid', models.AutoField(db_column='localityid', primary_key=True, serialize=False)), - ('englishname', models.CharField(blank=True, db_column='englishname', max_length=255, null=True, verbose_name='english name')), - ('indigenousname', models.CharField(blank=True, db_column='indigenousname', max_length=255, null=True, verbose_name='indigenous name')), - ('geometry', django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, null=True, srid=3857, verbose_name='Place Geometry')), - ('Source', models.CharField(blank=True, db_column='source', default=None, max_length=255, null=True, verbose_name='source')), - ('DigitizedBy', models.CharField(blank=True, db_column='digitizedby', default=None, max_length=255, null=True, verbose_name='digitized by')), - ('DigitizedDate', models.DateTimeField(blank=True, db_column='digitizeddate', default=None, null=True, verbose_name='digitized date')), - ('localitytype', models.ForeignKey(blank=True, db_column='localitytype', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupLocalityType', verbose_name='type')), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "localityid", + models.AutoField( + db_column="localityid", primary_key=True, serialize=False + ), + ), + ( + "englishname", + models.CharField( + blank=True, + db_column="englishname", + max_length=255, + null=True, + verbose_name="english name", + ), + ), + ( + "indigenousname", + models.CharField( + blank=True, + db_column="indigenousname", + max_length=255, + null=True, + verbose_name="indigenous name", + ), + ), + ( + "geometry", + django.contrib.gis.db.models.fields.GeometryField( + blank=True, + default=None, + null=True, + srid=3857, + verbose_name="Place Geometry", + ), + ), + ( + "Source", + models.CharField( + blank=True, + db_column="source", + default=None, + max_length=255, + null=True, + verbose_name="source", + ), + ), + ( + "DigitizedBy", + models.CharField( + blank=True, + db_column="digitizedby", + default=None, + max_length=255, + null=True, + verbose_name="digitized by", + ), + ), + ( + "DigitizedDate", + models.DateTimeField( + blank=True, + db_column="digitizeddate", + default=None, + null=True, + verbose_name="digitized date", + ), + ), + ( + "localitytype", + models.ForeignKey( + blank=True, + db_column="localitytype", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupLocalityType", + verbose_name="type", + ), + ), ], options={ - 'db_table': 'locality', - 'verbose_name': 'Locality', - 'managed': True, - 'verbose_name_plural': 'Localities', + "db_table": "locality", + "verbose_name": "Locality", + "managed": True, + "verbose_name_plural": "Localities", }, ), migrations.CreateModel( - name='Media', + name="Media", fields=[ - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('mediaid', models.AutoField(db_column='mediaid', primary_key=True, serialize=False)), - ('medianame', models.CharField(blank=True, db_column='medianame', max_length=255, null=True, verbose_name='name')), - ('mediadescription', models.TextField(blank=True, db_column='mediadescription', null=True, verbose_name='description')), - ('medialink', models.CharField(blank=True, db_column='medialink', max_length=255, null=True, verbose_name='historic location')), - ('mediafile', models.FileField(blank=True, db_column='mediafile', max_length=255, null=True, upload_to='', verbose_name='file')), - ('limitedaccess', models.NullBooleanField(db_column='limitedaccess', default=False, verbose_name='limited access?')), - ('mediatype', models.ForeignKey(blank=True, db_column='mediatype', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupMediaType', verbose_name='type')), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "mediaid", + models.AutoField( + db_column="mediaid", primary_key=True, serialize=False + ), + ), + ( + "medianame", + models.CharField( + blank=True, + db_column="medianame", + max_length=255, + null=True, + verbose_name="name", + ), + ), + ( + "mediadescription", + models.TextField( + blank=True, + db_column="mediadescription", + null=True, + verbose_name="description", + ), + ), + ( + "medialink", + models.CharField( + blank=True, + db_column="medialink", + max_length=255, + null=True, + verbose_name="historic location", + ), + ), + ( + "mediafile", + models.FileField( + blank=True, + db_column="mediafile", + max_length=255, + null=True, + upload_to="", + verbose_name="file", + ), + ), + ( + "limitedaccess", + models.NullBooleanField( + db_column="limitedaccess", + default=False, + verbose_name="limited access?", + ), + ), + ( + "mediatype", + models.ForeignKey( + blank=True, + db_column="mediatype", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupMediaType", + verbose_name="type", + ), + ), ], options={ - 'db_table': 'media', - 'verbose_name': 'Medium', - 'managed': True, - 'verbose_name_plural': 'Media', + "db_table": "media", + "verbose_name": "Medium", + "managed": True, + "verbose_name_plural": "Media", }, ), migrations.CreateModel( - name='Places', + name="Places", fields=[ - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('placeid', models.AutoField(db_column='placeid', primary_key=True, serialize=False)), - ('indigenousplacename', models.CharField(blank=True, db_column='indigenousplacename', max_length=255, null=True, verbose_name='indigenous name')), - ('indigenousplacenamemeaning', models.CharField(blank=True, db_column='indigenousplacenamemeaning', max_length=255, null=True, verbose_name='english translation')), - ('englishplacename', models.CharField(blank=True, db_column='englishplacename', max_length=255, null=True, verbose_name='english name')), - ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), - ('geometry', django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, null=True, srid=3857, verbose_name='Place Geometry')), - ('Source', models.CharField(blank=True, db_column='source', default=None, max_length=255, null=True, verbose_name='source')), - ('DigitizedBy', models.CharField(blank=True, db_column='digitizedby', default=None, max_length=255, null=True, verbose_name='digitized by')), - ('DigitizedDate', models.DateTimeField(blank=True, db_column='digitizeddate', default=None, null=True, verbose_name='digitized date')), - ('planningunitid', models.ForeignKey(blank=True, db_column='planningunitid', null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupPlanningUnit', verbose_name='planning unit')), - ('primaryhabitat', models.ForeignKey(blank=True, db_column='primaryhabitat', max_length=100, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupHabitat', verbose_name='primary habitat')), - ('tribeid', models.ForeignKey(blank=True, db_column='tribeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTribe', verbose_name='tribe')), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "placeid", + models.AutoField( + db_column="placeid", primary_key=True, serialize=False + ), + ), + ( + "indigenousplacename", + models.CharField( + blank=True, + db_column="indigenousplacename", + max_length=255, + null=True, + verbose_name="indigenous name", + ), + ), + ( + "indigenousplacenamemeaning", + models.CharField( + blank=True, + db_column="indigenousplacenamemeaning", + max_length=255, + null=True, + verbose_name="english translation", + ), + ), + ( + "englishplacename", + models.CharField( + blank=True, + db_column="englishplacename", + max_length=255, + null=True, + verbose_name="english name", + ), + ), + ( + "islocked", + models.BooleanField( + db_column="islocked", default=False, verbose_name="locked?" + ), + ), + ( + "geometry", + django.contrib.gis.db.models.fields.GeometryField( + blank=True, + default=None, + null=True, + srid=3857, + verbose_name="Place Geometry", + ), + ), + ( + "Source", + models.CharField( + blank=True, + db_column="source", + default=None, + max_length=255, + null=True, + verbose_name="source", + ), + ), + ( + "DigitizedBy", + models.CharField( + blank=True, + db_column="digitizedby", + default=None, + max_length=255, + null=True, + verbose_name="digitized by", + ), + ), + ( + "DigitizedDate", + models.DateTimeField( + blank=True, + db_column="digitizeddate", + default=None, + null=True, + verbose_name="digitized date", + ), + ), + ( + "planningunitid", + models.ForeignKey( + blank=True, + db_column="planningunitid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupPlanningUnit", + verbose_name="planning unit", + ), + ), + ( + "primaryhabitat", + models.ForeignKey( + blank=True, + db_column="primaryhabitat", + max_length=100, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupHabitat", + verbose_name="primary habitat", + ), + ), + ( + "tribeid", + models.ForeignKey( + blank=True, + db_column="tribeid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupTribe", + verbose_name="tribe", + ), + ), ], options={ - 'db_table': 'places', - 'verbose_name': 'Place', - 'managed': True, - 'verbose_name_plural': 'Places', + "db_table": "places", + "verbose_name": "Place", + "managed": True, + "verbose_name_plural": "Places", }, ), migrations.CreateModel( - name='Resources', + name="Resources", fields=[ - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('resourceid', models.AutoField(db_column='resourceid', primary_key=True, serialize=False)), - ('commonname', models.CharField(blank=True, db_column='commonname', max_length=255, null=True, unique=True, verbose_name='common name')), - ('indigenousname', models.CharField(blank=True, db_column='indigenousname', max_length=255, null=True, verbose_name='indigenous name')), - ('genus', models.CharField(blank=True, db_column='genus', max_length=255, null=True, verbose_name='genus')), - ('species', models.CharField(blank=True, db_column='species', max_length=255, null=True)), - ('specific', models.BooleanField(db_column='specific', default=False)), - ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), - ('resourceclassificationgroup', models.ForeignKey(blank=True, db_column='resourceclassificationgroup', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupResourceGroup', verbose_name='broad species group')), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "resourceid", + models.AutoField( + db_column="resourceid", primary_key=True, serialize=False + ), + ), + ( + "commonname", + models.CharField( + blank=True, + db_column="commonname", + max_length=255, + null=True, + unique=True, + verbose_name="common name", + ), + ), + ( + "indigenousname", + models.CharField( + blank=True, + db_column="indigenousname", + max_length=255, + null=True, + verbose_name="indigenous name", + ), + ), + ( + "genus", + models.CharField( + blank=True, + db_column="genus", + max_length=255, + null=True, + verbose_name="genus", + ), + ), + ( + "species", + models.CharField( + blank=True, db_column="species", max_length=255, null=True + ), + ), + ("specific", models.BooleanField(db_column="specific", default=False)), + ( + "islocked", + models.BooleanField( + db_column="islocked", default=False, verbose_name="locked?" + ), + ), + ( + "resourceclassificationgroup", + models.ForeignKey( + blank=True, + db_column="resourceclassificationgroup", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupResourceGroup", + verbose_name="broad species group", + ), + ), ], options={ - 'db_table': 'resources', - 'verbose_name': 'Resource', - 'managed': True, - 'verbose_name_plural': 'Resources', + "db_table": "resources", + "verbose_name": "Resource", + "managed": True, + "verbose_name_plural": "Resources", }, ), migrations.CreateModel( - name='ResourcesActivityEvents', + name="ResourcesActivityEvents", fields=[ - ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), - ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), - ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), - ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), - ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), - ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), - ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), - ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), - ('resourceactivityid', models.AutoField(db_column='resourceactivityid', primary_key=True, serialize=False)), - ('relationshipdescription', models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt')), - ('activitylongdescription', models.TextField(blank=True, db_column='activitylongdescription', null=True, verbose_name='full activity description')), - ('gear', models.CharField(blank=True, db_column='gear', max_length=255, null=True)), - ('customaryuse', models.CharField(blank=True, db_column='customaryuse', max_length=255, null=True, verbose_name='customary use')), - ('timingdescription', models.CharField(blank=True, db_column='timingdescription', max_length=255, null=True, verbose_name='timing description')), - ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), - ('activityshortdescription', models.ForeignKey(blank=True, db_column='activityshortdescription', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupActivity', verbose_name='activity type')), - ('participants', models.ForeignKey(blank=True, db_column='participants', max_length=50, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupParticipants')), - ('partused', models.ForeignKey(blank=True, db_column='partused', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupPartUsed', verbose_name='part used')), - ('placeresourceid', models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place resource')), - ('technique', models.ForeignKey(blank=True, db_column='technique', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTechniques')), - ('timing', models.ForeignKey(blank=True, db_column='timing', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTiming')), + ( + "enteredbyname", + models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), + ), + ( + "enteredbytribe", + models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), + ), + ( + "enteredbytitle", + models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), + ), + ( + "enteredbydate", + models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), + ), + ( + "modifiedbyname", + models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), + ), + ( + "modifiedbytitle", + models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), + ), + ( + "modifiedbytribe", + models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), + ), + ( + "modifiedbydate", + models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), + ), + ( + "resourceactivityid", + models.AutoField( + db_column="resourceactivityid", + primary_key=True, + serialize=False, + ), + ), + ( + "relationshipdescription", + models.TextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt", + ), + ), + ( + "activitylongdescription", + models.TextField( + blank=True, + db_column="activitylongdescription", + null=True, + verbose_name="full activity description", + ), + ), + ( + "gear", + models.CharField( + blank=True, db_column="gear", max_length=255, null=True + ), + ), + ( + "customaryuse", + models.CharField( + blank=True, + db_column="customaryuse", + max_length=255, + null=True, + verbose_name="customary use", + ), + ), + ( + "timingdescription", + models.CharField( + blank=True, + db_column="timingdescription", + max_length=255, + null=True, + verbose_name="timing description", + ), + ), + ( + "islocked", + models.BooleanField( + db_column="islocked", default=False, verbose_name="locked?" + ), + ), + ( + "activityshortdescription", + models.ForeignKey( + blank=True, + db_column="activityshortdescription", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupActivity", + verbose_name="activity type", + ), + ), + ( + "participants", + models.ForeignKey( + blank=True, + db_column="participants", + max_length=50, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupParticipants", + ), + ), + ( + "partused", + models.ForeignKey( + blank=True, + db_column="partused", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupPartUsed", + verbose_name="part used", + ), + ), + ( + "placeresourceid", + models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.CASCADE, + to="Relationships.PlacesResourceEvents", + verbose_name="place resource", + ), + ), + ( + "technique", + models.ForeignKey( + blank=True, + db_column="technique", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupTechniques", + ), + ), + ( + "timing", + models.ForeignKey( + blank=True, + db_column="timing", + max_length=255, + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="Lookup.LookupTiming", + ), + ), ], options={ - 'db_table': 'resourcesactivityevents', - 'verbose_name': 'Activity', - 'managed': True, - 'verbose_name_plural': 'Activities', + "db_table": "resourcesactivityevents", + "verbose_name": "Activity", + "managed": True, + "verbose_name_plural": "Activities", }, ), migrations.AddField( - model_name='locality', - name='placeid', - field=models.ForeignKey(blank=True, db_column='placeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), + model_name="locality", + name="placeid", + field=models.ForeignKey( + blank=True, + db_column="placeid", + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="TEKDB.Places", + verbose_name="place", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py b/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py index a193a04d..3f24cdd1 100644 --- a/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py +++ b/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py @@ -6,20 +6,26 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0001_initial'), + ("TEKDB", "0001_initial"), ] operations = [ migrations.AddField( - model_name='citations', - name='journal', - field=models.TextField(blank=True, db_column='journal', null=True, verbose_name='journal'), + model_name="citations", + name="journal", + field=models.TextField( + blank=True, db_column="journal", null=True, verbose_name="journal" + ), ), migrations.AddField( - model_name='citations', - name='journalpages', - field=models.TextField(blank=True, db_column='journalpages', null=True, verbose_name='journal pages'), + model_name="citations", + name="journalpages", + field=models.TextField( + blank=True, + db_column="journalpages", + null=True, + verbose_name="journal pages", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py b/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py index e8c5fb4e..9488561e 100644 --- a/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py +++ b/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py @@ -6,15 +6,19 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0002_auto_20171031_1421'), + ("TEKDB", "0002_auto_20171031_1421"), ] operations = [ migrations.AlterField( - model_name='places', - name='indigenousplacenamemeaning', - field=models.TextField(blank=True, db_column='indigenousplacenamemeaning', null=True, verbose_name='english translation'), + model_name="places", + name="indigenousplacenamemeaning", + field=models.TextField( + blank=True, + db_column="indigenousplacenamemeaning", + null=True, + verbose_name="english translation", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py b/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py index e59e18cd..323739e8 100644 --- a/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py +++ b/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py @@ -7,35 +7,56 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0003_auto_20191223_1604'), + ("TEKDB", "0003_auto_20191223_1604"), ] operations = [ migrations.AlterField( - model_name='citations', - name='comments', - field=ckeditor.fields.RichTextField(blank=True, db_column='comments', null=True), + model_name="citations", + name="comments", + field=ckeditor.fields.RichTextField( + blank=True, db_column="comments", null=True + ), ), migrations.AlterField( - model_name='citations', - name='referencetext', - field=models.TextField(blank=True, db_column='referencetext', null=True, verbose_name='description'), + model_name="citations", + name="referencetext", + field=models.TextField( + blank=True, + db_column="referencetext", + null=True, + verbose_name="description", + ), ), migrations.AlterField( - model_name='media', - name='mediadescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='mediadescription', null=True, verbose_name='description'), + model_name="media", + name="mediadescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="mediadescription", + null=True, + verbose_name="description", + ), ), migrations.AlterField( - model_name='resourcesactivityevents', - name='activitylongdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='activitylongdescription', null=True, verbose_name='full activity description'), + model_name="resourcesactivityevents", + name="activitylongdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="activitylongdescription", + null=True, + verbose_name="full activity description", + ), ), migrations.AlterField( - model_name='resourcesactivityevents', - name='relationshipdescription', - field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), + model_name="resourcesactivityevents", + name="relationshipdescription", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py b/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py index 0193dcca..8542421c 100644 --- a/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py +++ b/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py @@ -5,102 +5,247 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0005_alter_lookupuserinfo_id'), - ('Relationships', '0008_auto_20211021_1607'), - ('TEKDB', '0004_auto_20200107_1604'), + ("Lookup", "0005_alter_lookupuserinfo_id"), + ("Relationships", "0008_auto_20211021_1607"), + ("TEKDB", "0004_auto_20200107_1604"), ] operations = [ migrations.AlterField( - model_name='citations', - name='authortype', - field=models.ForeignKey(blank=True, db_column='authortype', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupauthortype', verbose_name='author type'), - ), - migrations.AlterField( - model_name='citations', - name='intervieweeid', - field=models.ForeignKey(blank=True, db_column='intervieweeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='interviewee', to='Lookup.people', verbose_name='interviewee'), - ), - migrations.AlterField( - model_name='citations', - name='interviewerid', - field=models.ForeignKey(blank=True, db_column='interviewerid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='interviewer', to='Lookup.people', verbose_name='interviewer'), - ), - migrations.AlterField( - model_name='citations', - name='referencetype', - field=models.ForeignKey(db_column='referencetype', help_text='Select a reference type to continue', max_length=255, on_delete=django.db.models.deletion.PROTECT, to='Lookup.lookupreferencetype', verbose_name='reference type'), - ), - migrations.AlterField( - model_name='locality', - name='localitytype', - field=models.ForeignKey(blank=True, db_column='localitytype', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuplocalitytype', verbose_name='type'), - ), - migrations.AlterField( - model_name='locality', - name='placeid', - field=models.ForeignKey(blank=True, db_column='placeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.places', verbose_name='place'), - ), - migrations.AlterField( - model_name='media', - name='limitedaccess', - field=models.BooleanField(db_column='limitedaccess', default=False, null=True, verbose_name='limited access?'), - ), - migrations.AlterField( - model_name='media', - name='mediatype', - field=models.ForeignKey(blank=True, db_column='mediatype', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupmediatype', verbose_name='type'), - ), - migrations.AlterField( - model_name='places', - name='planningunitid', - field=models.ForeignKey(blank=True, db_column='planningunitid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupplanningunit', verbose_name='planning unit'), - ), - migrations.AlterField( - model_name='places', - name='primaryhabitat', - field=models.ForeignKey(blank=True, db_column='primaryhabitat', default=None, max_length=100, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuphabitat', verbose_name='primary habitat'), - ), - migrations.AlterField( - model_name='places', - name='tribeid', - field=models.ForeignKey(blank=True, db_column='tribeid', default=True, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptribe', verbose_name='tribe'), - ), - migrations.AlterField( - model_name='resources', - name='resourceclassificationgroup', - field=models.ForeignKey(blank=True, db_column='resourceclassificationgroup', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupresourcegroup', verbose_name='broad species group'), - ), - migrations.AlterField( - model_name='resourcesactivityevents', - name='activityshortdescription', - field=models.ForeignKey(blank=True, db_column='activityshortdescription', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupactivity', verbose_name='activity type'), - ), - migrations.AlterField( - model_name='resourcesactivityevents', - name='participants', - field=models.ForeignKey(blank=True, db_column='participants', default=None, max_length=50, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupparticipants'), - ), - migrations.AlterField( - model_name='resourcesactivityevents', - name='partused', - field=models.ForeignKey(blank=True, db_column='partused', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuppartused', verbose_name='part used'), - ), - migrations.AlterField( - model_name='resourcesactivityevents', - name='placeresourceid', - field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place resource'), - ), - migrations.AlterField( - model_name='resourcesactivityevents', - name='technique', - field=models.ForeignKey(blank=True, db_column='technique', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptechniques'), - ), - migrations.AlterField( - model_name='resourcesactivityevents', - name='timing', - field=models.ForeignKey(blank=True, db_column='timing', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptiming'), + model_name="citations", + name="authortype", + field=models.ForeignKey( + blank=True, + db_column="authortype", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupauthortype", + verbose_name="author type", + ), + ), + migrations.AlterField( + model_name="citations", + name="intervieweeid", + field=models.ForeignKey( + blank=True, + db_column="intervieweeid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + related_name="interviewee", + to="Lookup.people", + verbose_name="interviewee", + ), + ), + migrations.AlterField( + model_name="citations", + name="interviewerid", + field=models.ForeignKey( + blank=True, + db_column="interviewerid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + related_name="interviewer", + to="Lookup.people", + verbose_name="interviewer", + ), + ), + migrations.AlterField( + model_name="citations", + name="referencetype", + field=models.ForeignKey( + db_column="referencetype", + help_text="Select a reference type to continue", + max_length=255, + on_delete=django.db.models.deletion.PROTECT, + to="Lookup.lookupreferencetype", + verbose_name="reference type", + ), + ), + migrations.AlterField( + model_name="locality", + name="localitytype", + field=models.ForeignKey( + blank=True, + db_column="localitytype", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuplocalitytype", + verbose_name="type", + ), + ), + migrations.AlterField( + model_name="locality", + name="placeid", + field=models.ForeignKey( + blank=True, + db_column="placeid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="TEKDB.places", + verbose_name="place", + ), + ), + migrations.AlterField( + model_name="media", + name="limitedaccess", + field=models.BooleanField( + db_column="limitedaccess", + default=False, + null=True, + verbose_name="limited access?", + ), + ), + migrations.AlterField( + model_name="media", + name="mediatype", + field=models.ForeignKey( + blank=True, + db_column="mediatype", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupmediatype", + verbose_name="type", + ), + ), + migrations.AlterField( + model_name="places", + name="planningunitid", + field=models.ForeignKey( + blank=True, + db_column="planningunitid", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupplanningunit", + verbose_name="planning unit", + ), + ), + migrations.AlterField( + model_name="places", + name="primaryhabitat", + field=models.ForeignKey( + blank=True, + db_column="primaryhabitat", + default=None, + max_length=100, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuphabitat", + verbose_name="primary habitat", + ), + ), + migrations.AlterField( + model_name="places", + name="tribeid", + field=models.ForeignKey( + blank=True, + db_column="tribeid", + default=True, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuptribe", + verbose_name="tribe", + ), + ), + migrations.AlterField( + model_name="resources", + name="resourceclassificationgroup", + field=models.ForeignKey( + blank=True, + db_column="resourceclassificationgroup", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupresourcegroup", + verbose_name="broad species group", + ), + ), + migrations.AlterField( + model_name="resourcesactivityevents", + name="activityshortdescription", + field=models.ForeignKey( + blank=True, + db_column="activityshortdescription", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupactivity", + verbose_name="activity type", + ), + ), + migrations.AlterField( + model_name="resourcesactivityevents", + name="participants", + field=models.ForeignKey( + blank=True, + db_column="participants", + default=None, + max_length=50, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupparticipants", + ), + ), + migrations.AlterField( + model_name="resourcesactivityevents", + name="partused", + field=models.ForeignKey( + blank=True, + db_column="partused", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuppartused", + verbose_name="part used", + ), + ), + migrations.AlterField( + model_name="resourcesactivityevents", + name="placeresourceid", + field=models.ForeignKey( + db_column="placeresourceid", + on_delete=django.db.models.deletion.PROTECT, + to="Relationships.placesresourceevents", + verbose_name="place resource", + ), + ), + migrations.AlterField( + model_name="resourcesactivityevents", + name="technique", + field=models.ForeignKey( + blank=True, + db_column="technique", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuptechniques", + ), + ), + migrations.AlterField( + model_name="resourcesactivityevents", + name="timing", + field=models.ForeignKey( + blank=True, + db_column="timing", + default=None, + max_length=255, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookuptiming", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py b/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py index bc038e67..32a20a25 100644 --- a/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py +++ b/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py @@ -1,13 +1,10 @@ from django.contrib.postgres.operations import TrigramExtension, UnaccentExtension from django.db import migrations, models -class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0005_auto_20211021_1607'), - ] +class Migration(migrations.Migration): + dependencies = [ + ("TEKDB", "0005_auto_20211021_1607"), + ] - operations = [ - TrigramExtension(), - UnaccentExtension() - ] + operations = [TrigramExtension(), UnaccentExtension()] diff --git a/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py b/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py index abaa6613..ecb2a48e 100644 --- a/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py +++ b/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py @@ -5,15 +5,20 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0006_trigram_unaccent_extensions'), + ("TEKDB", "0006_trigram_unaccent_extensions"), ] operations = [ migrations.AddField( - model_name='citations', - name='rawcitation', - field=ckeditor.fields.RichTextField(blank=True, db_column='rawcitation', help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", null=True, verbose_name='Raw, formatted bibliographic citation'), + model_name="citations", + name="rawcitation", + field=ckeditor.fields.RichTextField( + blank=True, + db_column="rawcitation", + help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", + null=True, + verbose_name="Raw, formatted bibliographic citation", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0008_citations_date.py b/TEKDB/TEKDB/migrations/0008_citations_date.py index 0ed457a0..70a7eb55 100644 --- a/TEKDB/TEKDB/migrations/0008_citations_date.py +++ b/TEKDB/TEKDB/migrations/0008_citations_date.py @@ -4,15 +4,16 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0007_citations_rawcitation'), + ("TEKDB", "0007_citations_rawcitation"), ] operations = [ migrations.AddField( - model_name='citations', - name='date', - field=models.DateField(blank=True, db_column='date', default=None, null=True), + model_name="citations", + name="date", + field=models.DateField( + blank=True, db_column="date", default=None, null=True + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py b/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py index 03b26c3c..f5d59170 100644 --- a/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py +++ b/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py @@ -4,60 +4,99 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0008_citations_date'), + ("TEKDB", "0008_citations_date"), ] operations = [ migrations.AddField( - model_name='citations', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), + model_name="citations", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=False, verbose_name="Needs Review" + ), ), migrations.AddField( - model_name='citations', - name='researchComments', - field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), + model_name="citations", + name="researchComments", + field=models.TextField( + blank=True, + db_column="researchcomments", + default=None, + null=True, + verbose_name="Research Comments", + ), ), migrations.AddField( - model_name='media', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), + model_name="media", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=False, verbose_name="Needs Review" + ), ), migrations.AddField( - model_name='media', - name='researchComments', - field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), + model_name="media", + name="researchComments", + field=models.TextField( + blank=True, + db_column="researchcomments", + default=None, + null=True, + verbose_name="Research Comments", + ), ), migrations.AddField( - model_name='places', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), + model_name="places", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=False, verbose_name="Needs Review" + ), ), migrations.AddField( - model_name='places', - name='researchComments', - field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), + model_name="places", + name="researchComments", + field=models.TextField( + blank=True, + db_column="researchcomments", + default=None, + null=True, + verbose_name="Research Comments", + ), ), migrations.AddField( - model_name='resources', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), + model_name="resources", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=False, verbose_name="Needs Review" + ), ), migrations.AddField( - model_name='resources', - name='researchComments', - field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), + model_name="resources", + name="researchComments", + field=models.TextField( + blank=True, + db_column="researchcomments", + default=None, + null=True, + verbose_name="Research Comments", + ), ), migrations.AddField( - model_name='resourcesactivityevents', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), + model_name="resourcesactivityevents", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=False, verbose_name="Needs Review" + ), ), migrations.AddField( - model_name='resourcesactivityevents', - name='researchComments', - field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), + model_name="resourcesactivityevents", + name="researchComments", + field=models.TextField( + blank=True, + db_column="researchcomments", + default=None, + null=True, + verbose_name="Research Comments", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py b/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py index 3241fb1d..cbbfb513 100644 --- a/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py +++ b/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py @@ -4,35 +4,44 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0009_auto_20230413_1555'), + ("TEKDB", "0009_auto_20230413_1555"), ] operations = [ migrations.AlterField( - model_name='citations', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), + model_name="citations", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ), ), migrations.AlterField( - model_name='media', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), + model_name="media", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ), ), migrations.AlterField( - model_name='places', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), + model_name="places", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ), ), migrations.AlterField( - model_name='resources', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), + model_name="resources", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ), ), migrations.AlterField( - model_name='resourcesactivityevents', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), + model_name="resourcesactivityevents", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0011_searchsettings.py b/TEKDB/TEKDB/migrations/0011_searchsettings.py index d1fc17ac..082a6720 100644 --- a/TEKDB/TEKDB/migrations/0011_searchsettings.py +++ b/TEKDB/TEKDB/migrations/0011_searchsettings.py @@ -4,18 +4,25 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0010_auto_20231106_1316'), + ("TEKDB", "0010_auto_20231106_1316"), ] operations = [ migrations.CreateModel( - name='SearchSettings', + name="SearchSettings", fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('min_search_rank', models.FloatField(default=0.01)), - ('min_search_similarity', models.FloatField(default=0.1)), + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("min_search_rank", models.FloatField(default=0.01)), + ("min_search_similarity", models.FloatField(default=0.1)), ], ), ] diff --git a/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py b/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py index cfd18bd3..8dd09a4d 100644 --- a/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py +++ b/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py @@ -4,20 +4,27 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0011_searchsettings'), + ("TEKDB", "0011_searchsettings"), ] operations = [ migrations.AlterField( - model_name='searchsettings', - name='min_search_rank', - field=models.FloatField(default=0.01, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', verbose_name='Minimum Search Rank'), + model_name="searchsettings", + name="min_search_rank", + field=models.FloatField( + default=0.01, + help_text="Weight 0-1 representing the minimum search rank threshold for search results.", + verbose_name="Minimum Search Rank", + ), ), migrations.AlterField( - model_name='searchsettings', - name='min_search_similarity', - field=models.FloatField(default=0.1, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', verbose_name='Minimum Search Similarity'), + model_name="searchsettings", + name="min_search_similarity", + field=models.FloatField( + default=0.1, + help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", + verbose_name="Minimum Search Similarity", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py b/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py index 750cb883..9681bce0 100644 --- a/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py +++ b/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py @@ -5,28 +5,52 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0005_alter_lookupuserinfo_id'), - ('TEKDB', '0012_auto_20240926_1440'), + ("Lookup", "0005_alter_lookupuserinfo_id"), + ("TEKDB", "0012_auto_20240926_1440"), ] operations = [ migrations.CreateModel( - name='MediaBulkUpload', + name="MediaBulkUpload", fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, max_length=255, null=True)), - ('description', models.TextField(blank=True, null=True)), - ('date', models.DateField(blank=True, default=None, null=True)), - ('created_at', models.DateTimeField(auto_now_add=True, null=True)), - ('updated_at', models.DateTimeField(auto_now=True, null=True)), - ('user', models.ForeignKey(blank=True, db_column='user', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupuserinfo', verbose_name='user')), + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(blank=True, max_length=255, null=True)), + ("description", models.TextField(blank=True, null=True)), + ("date", models.DateField(blank=True, default=None, null=True)), + ("created_at", models.DateTimeField(auto_now_add=True, null=True)), + ("updated_at", models.DateTimeField(auto_now=True, null=True)), + ( + "user", + models.ForeignKey( + blank=True, + db_column="user", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupuserinfo", + verbose_name="user", + ), + ), ], ), migrations.AddField( - model_name='media', - name='mediauploadevent', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mediabulkupload', to='TEKDB.mediabulkupload'), + model_name="media", + name="mediauploadevent", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="mediabulkupload", + to="TEKDB.mediabulkupload", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py b/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py index 0b511fb9..ad7d0322 100644 --- a/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py +++ b/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py @@ -5,15 +5,20 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0013_auto_20241004_1547'), + ("TEKDB", "0013_auto_20241004_1547"), ] operations = [ migrations.AlterField( - model_name='media', - name='mediauploadevent', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mediauploadevent', to='TEKDB.mediabulkupload'), + model_name="media", + name="mediauploadevent", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="mediauploadevent", + to="TEKDB.mediabulkupload", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py b/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py index 8ecc5443..fbe2686b 100644 --- a/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py +++ b/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py @@ -5,19 +5,24 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0014_alter_media_mediauploadevent'), + ("TEKDB", "0014_alter_media_mediauploadevent"), ] operations = [ migrations.RemoveField( - model_name='media', - name='mediauploadevent', + model_name="media", + name="mediauploadevent", ), migrations.AddField( - model_name='media', - name='mediabulkupload', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mediabulkupload', to='TEKDB.mediabulkupload'), + model_name="media", + name="mediabulkupload", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="mediabulkupload", + to="TEKDB.mediabulkupload", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py b/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py index 823f0def..9f981ee9 100644 --- a/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py +++ b/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py @@ -4,68 +4,121 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0015_auto_20241004_1559'), + ("TEKDB", "0015_auto_20241004_1559"), ] operations = [ migrations.RemoveField( - model_name='mediabulkupload', - name='created_at', + model_name="mediabulkupload", + name="created_at", ), migrations.RemoveField( - model_name='mediabulkupload', - name='updated_at', + model_name="mediabulkupload", + name="updated_at", ), migrations.AddField( - model_name='mediabulkupload', - name='enteredbydate', - field=models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date'), + model_name="mediabulkupload", + name="enteredbydate", + field=models.DateTimeField( + auto_now_add=True, + db_column="enteredbydate", + null=True, + verbose_name="entered by date", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='enteredbyname', - field=models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name'), + model_name="mediabulkupload", + name="enteredbyname", + field=models.CharField( + blank=True, + db_column="enteredbyname", + max_length=25, + null=True, + verbose_name="entered by name", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='enteredbytitle', - field=models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title'), + model_name="mediabulkupload", + name="enteredbytitle", + field=models.CharField( + blank=True, + db_column="enteredbytitle", + max_length=100, + null=True, + verbose_name="entered by title", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='enteredbytribe', - field=models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe'), + model_name="mediabulkupload", + name="enteredbytribe", + field=models.CharField( + blank=True, + db_column="enteredbytribe", + max_length=100, + null=True, + verbose_name="entered by tribe", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='modifiedbydate', - field=models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date'), + model_name="mediabulkupload", + name="modifiedbydate", + field=models.DateTimeField( + auto_now=True, + db_column="modifiedbydate", + null=True, + verbose_name="modified by date", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='modifiedbyname', - field=models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name'), + model_name="mediabulkupload", + name="modifiedbyname", + field=models.CharField( + blank=True, + db_column="modifiedbyname", + max_length=25, + null=True, + verbose_name="modified by name", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='modifiedbytitle', - field=models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title'), + model_name="mediabulkupload", + name="modifiedbytitle", + field=models.CharField( + blank=True, + db_column="modifiedbytitle", + max_length=100, + null=True, + verbose_name="modified by title", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='modifiedbytribe', - field=models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe'), + model_name="mediabulkupload", + name="modifiedbytribe", + field=models.CharField( + blank=True, + db_column="modifiedbytribe", + max_length=100, + null=True, + verbose_name="modified by tribe", + ), ), migrations.AddField( - model_name='mediabulkupload', - name='needsReview', - field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), + model_name="mediabulkupload", + name="needsReview", + field=models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ), ), migrations.AddField( - model_name='mediabulkupload', - name='researchComments', - field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), + model_name="mediabulkupload", + name="researchComments", + field=models.TextField( + blank=True, + db_column="researchcomments", + default=None, + null=True, + verbose_name="Research Comments", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py b/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py index d1835fd1..75e2365c 100644 --- a/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py +++ b/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py @@ -4,29 +4,28 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0016_auto_20241016_1549'), + ("TEKDB", "0016_auto_20241016_1549"), ] operations = [ migrations.RenameField( - model_name='mediabulkupload', - old_name='date', - new_name='mediabulkdate', + model_name="mediabulkupload", + old_name="date", + new_name="mediabulkdate", ), migrations.RenameField( - model_name='mediabulkupload', - old_name='description', - new_name='mediabulkdescription', + model_name="mediabulkupload", + old_name="description", + new_name="mediabulkdescription", ), migrations.RenameField( - model_name='mediabulkupload', - old_name='name', - new_name='mediabulkname', + model_name="mediabulkupload", + old_name="name", + new_name="mediabulkname", ), migrations.RemoveField( - model_name='mediabulkupload', - name='user', + model_name="mediabulkupload", + name="user", ), ] diff --git a/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py b/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py index 33691f6c..b1ed5428 100644 --- a/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py +++ b/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py @@ -4,25 +4,28 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0017_auto_20241016_1552'), + ("TEKDB", "0017_auto_20241016_1552"), ] operations = [ migrations.AlterField( - model_name='mediabulkupload', - name='mediabulkdate', - field=models.DateField(blank=True, default=None, null=True, verbose_name='date'), + model_name="mediabulkupload", + name="mediabulkdate", + field=models.DateField( + blank=True, default=None, null=True, verbose_name="date" + ), ), migrations.AlterField( - model_name='mediabulkupload', - name='mediabulkdescription', - field=models.TextField(blank=True, null=True, verbose_name='description'), + model_name="mediabulkupload", + name="mediabulkdescription", + field=models.TextField(blank=True, null=True, verbose_name="description"), ), migrations.AlterField( - model_name='mediabulkupload', - name='mediabulkname', - field=models.CharField(blank=True, max_length=255, null=True, verbose_name='name'), + model_name="mediabulkupload", + name="mediabulkname", + field=models.CharField( + blank=True, max_length=255, null=True, verbose_name="name" + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py b/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py index 55734ff4..7bb7abe7 100644 --- a/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py +++ b/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py @@ -4,13 +4,12 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0017_auto_20241016_1552'), + ("TEKDB", "0017_auto_20241016_1552"), ] operations = [ migrations.DeleteModel( - name='SearchSettings', + name="SearchSettings", ), ] diff --git a/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py b/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py index 5078a851..17fa6b8c 100644 --- a/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py +++ b/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py @@ -4,11 +4,9 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0018_auto_20241022_1653'), - ('TEKDB', '0018_delete_searchsettings'), + ("TEKDB", "0018_auto_20241022_1653"), + ("TEKDB", "0018_delete_searchsettings"), ] - operations = [ - ] + operations = [] diff --git a/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py b/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py index bd5d2b52..389d8884 100644 --- a/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py +++ b/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py @@ -5,15 +5,20 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0019_merge_20241126_1351'), + ("TEKDB", "0019_merge_20241126_1351"), ] operations = [ migrations.AlterField( - model_name='media', - name='mediabulkupload', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mediabulkupload', to='TEKDB.mediabulkupload'), + model_name="media", + name="mediabulkupload", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name="mediabulkupload", + to="TEKDB.mediabulkupload", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py b/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py index baad901c..91c244fa 100644 --- a/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py +++ b/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py @@ -5,15 +5,16 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0019_merge_20241126_1351'), + ("TEKDB", "0019_merge_20241126_1351"), ] operations = [ migrations.AlterField( - model_name='mediabulkupload', - name='mediabulkdate', - field=models.DateField(blank=True, default=datetime.date.today, null=True, verbose_name='date'), + model_name="mediabulkupload", + name="mediabulkdate", + field=models.DateField( + blank=True, default=datetime.date.today, null=True, verbose_name="date" + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py b/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py index 0aca19ad..33e7a48e 100644 --- a/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py +++ b/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py @@ -4,11 +4,9 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0020_alter_media_mediabulkupload'), - ('TEKDB', '0020_alter_mediabulkupload_mediabulkdate'), + ("TEKDB", "0020_alter_media_mediabulkupload"), + ("TEKDB", "0020_alter_mediabulkupload_mediabulkdate"), ] - operations = [ - ] + operations = [] diff --git a/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py b/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py index 32b63c48..4d22dfe9 100644 --- a/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py +++ b/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py @@ -5,25 +5,42 @@ class Migration(migrations.Migration): - dependencies = [ - ('Lookup', '0005_alter_lookupuserinfo_id'), - ('TEKDB', '0021_merge_20241224_1132'), + ("Lookup", "0005_alter_lookupuserinfo_id"), + ("TEKDB", "0021_merge_20241224_1132"), ] operations = [ migrations.AlterModelOptions( - name='mediabulkupload', - options={'managed': True, 'verbose_name': 'Media Bulk Upload', 'verbose_name_plural': 'Media Bulk Uploads'}, + name="mediabulkupload", + options={ + "managed": True, + "verbose_name": "Media Bulk Upload", + "verbose_name_plural": "Media Bulk Uploads", + }, ), migrations.AlterField( - model_name='media', - name='mediatype', - field=models.ForeignKey(blank=True, db_column='mediatype', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupmediatype', verbose_name='type'), + model_name="media", + name="mediatype", + field=models.ForeignKey( + blank=True, + db_column="mediatype", + default=None, + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + to="Lookup.lookupmediatype", + verbose_name="type", + ), ), migrations.AlterField( - model_name='mediabulkupload', - name='mediabulkname', - field=models.CharField(blank=True, default='Bulk Upload on 2025-05-02', max_length=255, null=True, verbose_name='name'), + model_name="mediabulkupload", + name="mediabulkname", + field=models.CharField( + blank=True, + default="Bulk Upload on 2025-05-02", + max_length=255, + null=True, + verbose_name="name", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py b/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py index d65f4e94..155e19ce 100644 --- a/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py +++ b/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py @@ -4,15 +4,20 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0022_alter_mediabulkupload_options_alter_media_mediatype_and_more'), + ("TEKDB", "0022_alter_mediabulkupload_options_alter_media_mediatype_and_more"), ] operations = [ migrations.AlterField( - model_name='mediabulkupload', - name='mediabulkname', - field=models.CharField(blank=True, default='Bulk Upload on 2025-05-08', max_length=255, null=True, verbose_name='name'), + model_name="mediabulkupload", + name="mediabulkname", + field=models.CharField( + blank=True, + default="Bulk Upload on 2025-05-08", + max_length=255, + null=True, + verbose_name="name", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py b/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py index 45ddee9f..6efb7fe3 100644 --- a/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py +++ b/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py @@ -5,35 +5,55 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0023_alter_mediabulkupload_mediabulkname'), + ("TEKDB", "0023_alter_mediabulkupload_mediabulkname"), ] operations = [ migrations.AlterField( - model_name='citations', - name='comments', - field=tinymce.models.HTMLField(blank=True, db_column='comments', null=True), + model_name="citations", + name="comments", + field=tinymce.models.HTMLField(blank=True, db_column="comments", null=True), ), migrations.AlterField( - model_name='citations', - name='rawcitation', - field=tinymce.models.HTMLField(blank=True, db_column='rawcitation', help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", null=True, verbose_name='Raw, formatted bibliographic citation'), + model_name="citations", + name="rawcitation", + field=tinymce.models.HTMLField( + blank=True, + db_column="rawcitation", + help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", + null=True, + verbose_name="Raw, formatted bibliographic citation", + ), ), migrations.AlterField( - model_name='media', - name='mediadescription', - field=tinymce.models.HTMLField(blank=True, db_column='mediadescription', null=True, verbose_name='description'), + model_name="media", + name="mediadescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="mediadescription", + null=True, + verbose_name="description", + ), ), migrations.AlterField( - model_name='resourcesactivityevents', - name='activitylongdescription', - field=tinymce.models.HTMLField(blank=True, db_column='activitylongdescription', null=True, verbose_name='full activity description'), + model_name="resourcesactivityevents", + name="activitylongdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="activitylongdescription", + null=True, + verbose_name="full activity description", + ), ), migrations.AlterField( - model_name='resourcesactivityevents', - name='relationshipdescription', - field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), + model_name="resourcesactivityevents", + name="relationshipdescription", + field=tinymce.models.HTMLField( + blank=True, + db_column="relationshipdescription", + null=True, + verbose_name="excerpt", + ), ), ] diff --git a/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py b/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py index 29282b4d..b97e26dd 100644 --- a/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py +++ b/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py @@ -4,15 +4,20 @@ class Migration(migrations.Migration): - dependencies = [ - ('TEKDB', '0024_alter_citations_comments_alter_citations_rawcitation_and_more'), + ("TEKDB", "0024_alter_citations_comments_alter_citations_rawcitation_and_more"), ] operations = [ migrations.AlterField( - model_name='mediabulkupload', - name='mediabulkname', - field=models.CharField(blank=True, default='Bulk Upload on 2025-05-11', max_length=255, null=True, verbose_name='name'), + model_name="mediabulkupload", + name="mediabulkname", + field=models.CharField( + blank=True, + default="Bulk Upload on 2025-05-11", + max_length=255, + null=True, + verbose_name="name", + ), ), ] diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index 1f76ceae..e8b3d135 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -12,18 +12,25 @@ from django.db.models.signals import post_delete from django.dispatch import receiver from django.contrib.auth.models import AbstractUser -from django.contrib.postgres.search import SearchQuery, SearchRank, SearchVector, TrigramSimilarity +from django.contrib.postgres.search import ( + SearchQuery, + SearchRank, + SearchVector, + TrigramSimilarity, +) from django.utils.translation import gettext_lazy as _ from django.utils import timezone from django.conf import settings from django.contrib.gis.db.models import GeometryField from tinymce.models import HTMLField + # from moderation.db import ModeratedModel import os # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table MANAGED = True + def run_keyword_search(model, keyword, fields, fk_fields, weight_lookup, sort_field): # model -> the model calling this function # keyword -> [str] your search string -- can be multiple words @@ -32,9 +39,9 @@ def run_keyword_search(model, keyword, fields, fk_fields, weight_lookup, sort_fi # fk_fields can search any models with a fk for current model as well! # weight_lookup -> [dict] lookup to get relative ['A','B','C','D'] weights for scoring search results. - if keyword == '': + if keyword == "": return model.objects.all() - + similarities = [] vector = False similarity = False @@ -46,8 +53,10 @@ def run_keyword_search(model, keyword, fields, fk_fields, weight_lookup, sort_fi vector += SearchVector(val, weight=weight_lookup[val]) for val in fk_fields: - relationship_name = '__'.join(val) - similarities.append(TrigramSimilarity(relationship_name, keyword, weight=weight_lookup[val[0]])) + relationship_name = "__".join(val) + similarities.append( + TrigramSimilarity(relationship_name, keyword, weight=weight_lookup[val[0]]) + ) if not vector: vector = SearchVector(relationship_name, weight=weight_lookup[val[0]]) else: @@ -63,12 +72,13 @@ def run_keyword_search(model, keyword, fields, fk_fields, weight_lookup, sort_fi try: from TEKDB.context_processors import search_settings + search_settings = search_settings() - min_search_rank = search_settings['MIN_SEARCH_RANK'] - min_search_similarity = search_settings['MIN_SEARCH_SIMILARITY'] + min_search_rank = search_settings["MIN_SEARCH_RANK"] + min_search_similarity = search_settings["MIN_SEARCH_SIMILARITY"] except Exception as e: print(e) - pass + pass if len(similarities) > 1: similarity = Greatest(*similarities) @@ -77,27 +87,29 @@ def run_keyword_search(model, keyword, fields, fk_fields, weight_lookup, sort_fi else: return model.objects.none() - results = model.objects.annotate( - # search=vector, - rank=SearchRank(vector,query), - similarity=similarity - ).filter( - # Q(search__icontains=keyword) | # for some reason 'search=' in Q lose icontains abilities - # Q(search=keyword) | # for some reason __icontains paired w/ Q misses perfect matches - Q(rank__gte=min_search_rank) | - Q(similarity__gte=min_search_similarity) - ).order_by( - '-rank', - '-similarity', - sort_field - ).distinct() + results = ( + model.objects.annotate( + # search=vector, + rank=SearchRank(vector, query), + similarity=similarity, + ) + .filter( + # Q(search__icontains=keyword) | # for some reason 'search=' in Q lose icontains abilities + # Q(search=keyword) | # for some reason __icontains paired w/ Q misses perfect matches + Q(rank__gte=min_search_rank) | Q(similarity__gte=min_search_similarity) + ) + .order_by("-rank", "-similarity", sort_field) + .distinct() + ) return results + class ModeratedModel(models.Model): class Meta: abstract = True + class DefaultModeratedModel(models.Model): class Moderator: auto_approve_for_staff = not settings.MODERATE_STAFF @@ -109,18 +121,20 @@ class Moderator: class Meta: abstract = True + class DefaultModel(models.Model): """ An abstract base model that provides custom behavior for saving instances. - + This class overrides the `save` method to handle `IntegrityError` exceptions caused by duplicate key violations. If such an error occurs, it updates the database sequence for the primary key to ensure consistency and retries the save. - + Usage: - Inherit from this class to add the custom save behavior to your model. - Ensure that your model has a primary key field and a corresponding database sequence. """ + class Meta: abstract = True @@ -129,17 +143,21 @@ def save(self, *args, **kwargs): with transaction.atomic(): super(DefaultModel, self).save(*args, **kwargs) except IntegrityError as e: - if 'duplicate key value violates unique constraint' in str(e): + if "duplicate key value violates unique constraint" in str(e): # print("Duplicate key error: {}".format(e)) model = type(self) manager = model.objects # Formerly separate function 'update_model_sequence' - MAX_MODEL_PK = manager.all().order_by('pk').last().pk + MAX_MODEL_PK = manager.all().order_by("pk").last().pk DB_TABLE = model._meta.db_table PK_FIELD = model._meta.pk.name SEQUENCE_NAME = '"{}_{}_seq"'.format(DB_TABLE, PK_FIELD) with connection.cursor() as cursor: - cursor.execute("SELECT setval('{}', {}, true);".format(SEQUENCE_NAME, MAX_MODEL_PK)) + cursor.execute( + "SELECT setval('{}', {}, true);".format( + SEQUENCE_NAME, MAX_MODEL_PK + ) + ) with transaction.atomic(): super(DefaultModel, self).save(*args, **kwargs) else: @@ -148,7 +166,7 @@ def save(self, *args, **kwargs): class Record(DefaultModel, DefaultModeratedModel): def format_data(self, data_set, fk_field_id, ignore_columns=[]): - columns = ['id'] + columns = ["id"] rows = [] model = data_set.model model_name = model._meta.model_name @@ -163,7 +181,7 @@ def format_data(self, data_set, fk_field_id, ignore_columns=[]): else: model_instance = data_set.all()[0] if model_instance: - columns = columns + [field['key'] for field in model_instance.data()] + columns = columns + [field["key"] for field in model_instance.data()] for ignore_column in ignore_columns: try: columns.pop(columns.index(ignore_column)) @@ -173,19 +191,20 @@ def format_data(self, data_set, fk_field_id, ignore_columns=[]): row = [item.pk] for column in columns: for field in item.data(): - if field['key'] == column: - row.append(field['value']) + if field["key"] == column: + row.append(field["value"]) break rows.append(row) return { # 'object': self, - 'columns': columns, - 'rows': rows, - 'module': module, - 'model': model_name, - 'id_field': id_field, - 'fk_field_id': fk_field_id, + "columns": columns, + "rows": rows, + "module": module, + "model": model_name, + "id_field": id_field, + "fk_field_id": fk_field_id, } + def get_related_objects(self, object_id): # For each record with external relationships: # 1. get the relationship sets () @@ -198,39 +217,97 @@ def get_related_objects(self, object_id): class Meta: abstract = True + class Reviewable(models.Model): - needsReview = models.BooleanField(db_column='needsreview', default=True, verbose_name="Needs Review") - researchComments = models.TextField(db_column='researchcomments', blank=True, null=True, default=None, verbose_name="Research Comments") + needsReview = models.BooleanField( + db_column="needsreview", default=True, verbose_name="Needs Review" + ) + researchComments = models.TextField( + db_column="researchcomments", + blank=True, + null=True, + default=None, + verbose_name="Research Comments", + ) class Meta: abstract = True + class Queryable(models.Model): - enteredbyname = models.CharField(db_column='enteredbyname', max_length=25, blank=True, null=True, verbose_name='entered by name') - enteredbytribe = models.CharField(db_column='enteredbytribe', max_length=100, blank=True, null=True, verbose_name='entered by tribe') - enteredbytitle = models.CharField(db_column='enteredbytitle', max_length=100, blank=True, null=True, verbose_name='entered by title') - enteredbydate = models.DateTimeField(db_column='enteredbydate', blank=True, null=True, auto_now_add=True, verbose_name='entered by date') - modifiedbyname = models.CharField(db_column='modifiedbyname', max_length=25, blank=True, null=True, verbose_name='modified by name') - modifiedbytitle = models.CharField(db_column='modifiedbytitle', max_length=100, blank=True, null=True, verbose_name='modified by title') - modifiedbytribe = models.CharField(db_column='modifiedbytribe', max_length=100, blank=True, null=True, verbose_name='modified by tribe') - modifiedbydate = models.DateTimeField(db_column='modifiedbydate', blank=True, null=True, auto_now=True, verbose_name='modified by date') + enteredbyname = models.CharField( + db_column="enteredbyname", + max_length=25, + blank=True, + null=True, + verbose_name="entered by name", + ) + enteredbytribe = models.CharField( + db_column="enteredbytribe", + max_length=100, + blank=True, + null=True, + verbose_name="entered by tribe", + ) + enteredbytitle = models.CharField( + db_column="enteredbytitle", + max_length=100, + blank=True, + null=True, + verbose_name="entered by title", + ) + enteredbydate = models.DateTimeField( + db_column="enteredbydate", + blank=True, + null=True, + auto_now_add=True, + verbose_name="entered by date", + ) + modifiedbyname = models.CharField( + db_column="modifiedbyname", + max_length=25, + blank=True, + null=True, + verbose_name="modified by name", + ) + modifiedbytitle = models.CharField( + db_column="modifiedbytitle", + max_length=100, + blank=True, + null=True, + verbose_name="modified by title", + ) + modifiedbytribe = models.CharField( + db_column="modifiedbytribe", + max_length=100, + blank=True, + null=True, + verbose_name="modified by tribe", + ) + modifiedbydate = models.DateTimeField( + db_column="modifiedbydate", + blank=True, + null=True, + auto_now=True, + verbose_name="modified by date", + ) class Meta: abstract = True - #Actually a dict, not true JSON. + # Actually a dict, not true JSON. def get_query_json(self): return { - 'name': str(self), - 'image': self.image(), - 'subtitle': self.subtitle(), - 'data': self.data(), - 'link': self.link(), - 'issimplerelationship': self.is_simple_relationship(), - 'enteredbyname': self.enteredbyname, - 'enteredbydate': self.enteredbydate, - 'modifiedbyname': self.modifiedbyname, - 'modifiedbydate': self.modifiedbydate, + "name": str(self), + "image": self.image(), + "subtitle": self.subtitle(), + "data": self.data(), + "link": self.link(), + "issimplerelationship": self.is_simple_relationship(), + "enteredbyname": self.enteredbyname, + "enteredbydate": self.enteredbydate, + "modifiedbyname": self.modifiedbyname, + "modifiedbydate": self.modifiedbydate, } def map(self, srid=None): @@ -250,26 +327,26 @@ def get_record_dict(self, user, srid=3857): data = self.data() restricted = False return { - 'name': str(self), - 'image': self.image(), - 'subtitle': self.subtitle(), - 'data': data, - 'relationships': self.relationships(), - 'map': self.map(srid), - 'media': self.media(), + "name": str(self), + "image": self.image(), + "subtitle": self.subtitle(), + "data": data, + "relationships": self.relationships(), + "map": self.map(srid), + "media": self.media(), # 'link': self.link(), - 'enteredbyname': self.enteredbyname, - 'enteredbydate': self.enteredbydate, - 'modifiedbyname': self.modifiedbyname, - 'modifiedbydate': self.modifiedbydate, - 'restricted': restricted, + "enteredbyname": self.enteredbyname, + "enteredbydate": self.enteredbydate, + "modifiedbyname": self.modifiedbyname, + "modifiedbydate": self.modifiedbydate, + "restricted": restricted, } def media(self): return False def save(self, *args, **kwargs): - #TODO: set entered/modified by info now + # TODO: set entered/modified by info now super(Queryable, self).save(*args, **kwargs) def is_simple_relationship(self): @@ -278,8 +355,8 @@ def is_simple_relationship(self): def get_relationship_json(self, req_model): return self.get_query_json() -class SimpleRelationship(DefaultModel, Queryable): +class SimpleRelationship(DefaultModel, Queryable): class Meta: abstract = True @@ -293,195 +370,302 @@ def get_relationship_json(self, req_model_type): relationship_model = self.get_relationship_model(req_model_type) rel_model_json = relationship_model.get_query_json() return { - 'name': rel_model_json['name'], - 'link': rel_model_json['link'], - 'issimplerelationship': self.is_simple_relationship(), - 'data': { - 'description': self.relationshipdescription, - 'pages': self.pages, + "name": rel_model_json["name"], + "link": rel_model_json["link"], + "issimplerelationship": self.is_simple_relationship(), + "data": { + "description": self.relationshipdescription, + "pages": self.pages, }, } -class Lookup(DefaultModel, DefaultModeratedModel, ModeratedModel): +class Lookup(DefaultModel, DefaultModeratedModel, ModeratedModel): class Meta: abstract = True + class LookupPlanningUnit(Lookup): - planningunitid = models.AutoField(db_column='planningunitid', primary_key=True) - planningunitname = models.CharField(db_column='planningunitname', max_length=100, blank=True, null=True, verbose_name='planning unit') + planningunitid = models.AutoField(db_column="planningunitid", primary_key=True) + planningunitname = models.CharField( + db_column="planningunitname", + max_length=100, + blank=True, + null=True, + verbose_name="planning unit", + ) class Meta: - ordering = ['planningunitname'] + ordering = ["planningunitname"] managed = MANAGED - ordering = ['planningunitname'] - db_table = 'lookupplanningunit' - app_label="Lookup" - verbose_name="planning unit" - verbose_name_plural="planning units" + ordering = ["planningunitname"] + db_table = "lookupplanningunit" + app_label = "Lookup" + verbose_name = "planning unit" + verbose_name_plural = "planning units" def __unicode__(self): return unicode("%s" % (self.planningunitname)) def __str__(self): - return self.planningunitname or '' + return self.planningunitname or "" + class LookupTribe(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - tribeunit = models.CharField(db_column='tribeunit', max_length=50, blank=True, null=True, verbose_name='tribe subunit') - tribe = models.CharField(db_column='tribe', max_length=255, blank=True, null=True, verbose_name='tribe') - federaltribe = models.CharField(db_column='federaltribe', max_length=255, blank=True, null=True, verbose_name='tribal government') + id = models.AutoField(db_column="id", primary_key=True) + tribeunit = models.CharField( + db_column="tribeunit", + max_length=50, + blank=True, + null=True, + verbose_name="tribe subunit", + ) + tribe = models.CharField( + db_column="tribe", max_length=255, blank=True, null=True, verbose_name="tribe" + ) + federaltribe = models.CharField( + db_column="federaltribe", + max_length=255, + blank=True, + null=True, + verbose_name="tribal government", + ) class Meta: managed = MANAGED - ordering = ['tribe'] - db_table = 'lookuptribe' - app_label="Lookup" - verbose_name="tribe" - verbose_name_plural="tribes" + ordering = ["tribe"] + db_table = "lookuptribe" + app_label = "Lookup" + verbose_name = "tribe" + verbose_name_plural = "tribes" def keyword_search(keyword): return LookupTribe.objects.filter( - Q(tribeunit__icontains=keyword) | - Q(tribe__icontains=keyword) | - Q(federaltribe__icontains=keyword) + Q(tribeunit__icontains=keyword) + | Q(tribe__icontains=keyword) + | Q(federaltribe__icontains=keyword) ) def __unicode__(self): return unicode("%s: %s, %s" % (self.tribe, self.tribeunit, self.federaltribe)) def __str__(self): - return "%s: %s, %s" % (self.tribe, self.tribeunit, self.federaltribe) or '' + return "%s: %s, %s" % (self.tribe, self.tribeunit, self.federaltribe) or "" def data(self): return [ - {'key':'tribe', 'value': self.tribe}, - {'key':'tribe subunit', 'value': self.tribeunit}, - {'key':'tribal government', 'value': self.federaltribe} + {"key": "tribe", "value": self.tribe}, + {"key": "tribe subunit", "value": self.tribeunit}, + {"key": "tribal government", "value": self.federaltribe}, ] def get_response_format(self): - type = 'tribes' + type = "tribes" category_name = "Tribe" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': None, - 'description': None, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": None, + "description": None, + "link": "/explore/%s/%d" % (type, self.pk), } + class LookupHabitat(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - habitat = models.CharField(db_column='habitat', max_length=100) + id = models.AutoField(db_column="id", primary_key=True) + habitat = models.CharField(db_column="habitat", max_length=100) class Meta: managed = MANAGED - ordering = ['habitat'] - db_table = 'lookuphabitat' - app_label="Lookup" - verbose_name="habitat" - verbose_name_plural="habitats" + ordering = ["habitat"] + db_table = "lookuphabitat" + app_label = "Lookup" + verbose_name = "habitat" + verbose_name_plural = "habitats" def __unicode__(self): - return unicode('%s' % (self.habitat)) + return unicode("%s" % (self.habitat)) def __str__(self): - return self.habitat or '' + return self.habitat or "" + class Places(Reviewable, Queryable, Record, ModeratedModel): - placeid = models.AutoField(db_column='placeid', primary_key=True) + placeid = models.AutoField(db_column="placeid", primary_key=True) # PlaceID - indigenousplacename = models.CharField(db_column='indigenousplacename', max_length=255, blank=True, null=True, verbose_name='indigenous name') - indigenousplacenamemeaning = models.TextField(db_column='indigenousplacenamemeaning', blank=True, null=True, verbose_name='english translation') - englishplacename = models.CharField(db_column='englishplacename', max_length=255, blank=True, null=True, verbose_name='english name') + indigenousplacename = models.CharField( + db_column="indigenousplacename", + max_length=255, + blank=True, + null=True, + verbose_name="indigenous name", + ) + indigenousplacenamemeaning = models.TextField( + db_column="indigenousplacenamemeaning", + blank=True, + null=True, + verbose_name="english translation", + ) + englishplacename = models.CharField( + db_column="englishplacename", + max_length=255, + blank=True, + null=True, + verbose_name="english name", + ) # PlaceLabel = models.CharField(max_length=255, blank=True, null=True, verbose_name='Place Label') - planningunitid = models.ForeignKey(LookupPlanningUnit, db_column='planningunitid', blank=True, null=True, verbose_name='planning unit', default=None, on_delete=models.SET_DEFAULT) - primaryhabitat = models.ForeignKey(LookupHabitat, db_column='primaryhabitat', max_length=100, blank=True, null=True, verbose_name='primary habitat', default=None, on_delete=models.SET_DEFAULT) + planningunitid = models.ForeignKey( + LookupPlanningUnit, + db_column="planningunitid", + blank=True, + null=True, + verbose_name="planning unit", + default=None, + on_delete=models.SET_DEFAULT, + ) + primaryhabitat = models.ForeignKey( + LookupHabitat, + db_column="primaryhabitat", + max_length=100, + blank=True, + null=True, + verbose_name="primary habitat", + default=None, + on_delete=models.SET_DEFAULT, + ) # FeatType = models.CharField(choices=FEATURE_TYPE_CHOICES) - tribeid = models.ForeignKey(LookupTribe, db_column='tribeid', blank=True, null=True, verbose_name='tribe', default=True, on_delete=models.SET_DEFAULT) - islocked = models.BooleanField(db_column='islocked', default=False, verbose_name='locked?') + tribeid = models.ForeignKey( + LookupTribe, + db_column="tribeid", + blank=True, + null=True, + verbose_name="tribe", + default=True, + on_delete=models.SET_DEFAULT, + ) + islocked = models.BooleanField( + db_column="islocked", default=False, verbose_name="locked?" + ) ### Updated Geometry Fields ### objects = GeoManager() geometry = GeometryField( - srid=3857, - null=True, blank=True, - verbose_name="Place Geometry", - default=None - ) - Source = models.CharField(db_column='source', max_length=255, blank=True, null=True, default=None, verbose_name='source') - DigitizedBy = models.CharField(db_column='digitizedby', max_length=255, blank=True, null=True, default=None, verbose_name='digitized by') - DigitizedDate = models.DateTimeField(db_column='digitizeddate', blank=True, null=True, auto_now_add=False, default=None, verbose_name='digitized date') + srid=3857, null=True, blank=True, verbose_name="Place Geometry", default=None + ) + Source = models.CharField( + db_column="source", + max_length=255, + blank=True, + null=True, + default=None, + verbose_name="source", + ) + DigitizedBy = models.CharField( + db_column="digitizedby", + max_length=255, + blank=True, + null=True, + default=None, + verbose_name="digitized by", + ) + DigitizedDate = models.DateTimeField( + db_column="digitizeddate", + blank=True, + null=True, + auto_now_add=False, + default=None, + verbose_name="digitized date", + ) # PlaceDescription # SHAPE_Length # SHAPE_Area class Meta: managed = MANAGED - db_table = 'places' - verbose_name = 'Place' - verbose_name_plural = 'Places' + db_table = "places" + verbose_name = "Place" + verbose_name_plural = "Places" def keyword_search( - keyword, # string - fields=['indigenousplacename','englishplacename','indigenousplacenamemeaning','Source','DigitizedBy'], # fields to search - fk_fields=[ - ('planningunitid','planningunitname'), - ('primaryhabitat','habitat'), - ('tribeid','tribe'), - ('placealtindigenousname','altindigenousname') - ] # fields to search for fk objects - ): - + keyword, # string + fields=[ + "indigenousplacename", + "englishplacename", + "indigenousplacenamemeaning", + "Source", + "DigitizedBy", + ], # fields to search + fk_fields=[ + ("planningunitid", "planningunitname"), + ("primaryhabitat", "habitat"), + ("tribeid", "tribe"), + ("placealtindigenousname", "altindigenousname"), + ], # fields to search for fk objects + ): weight_lookup = { - 'indigenousplacename': 'A', - 'englishplacename': 'A', - 'indigenousplacenamemeaning': 'A', - 'Source': 'C', - 'DigitizedBy': 'C', - 'planningunitid': 'B', - 'primaryhabitat': 'B', - 'tribeid': 'B', - 'placealtindigenousname': 'A' + "indigenousplacename": "A", + "englishplacename": "A", + "indigenousplacenamemeaning": "A", + "Source": "C", + "DigitizedBy": "C", + "planningunitid": "B", + "primaryhabitat": "B", + "tribeid": "B", + "placealtindigenousname": "A", } - sort_field = 'indigenousplacename' - - return run_keyword_search(Places, keyword, fields, fk_fields, weight_lookup, sort_field) + sort_field = "indigenousplacename" + return run_keyword_search( + Places, keyword, fields, fk_fields, weight_lookup, sort_field + ) def image(self): - return settings.RECORD_ICONS['place'] + return settings.RECORD_ICONS["place"] def subtitle(self): return self.indigenousplacenamemeaning def data(self): return [ - {'key':'indigenous place name', 'value': self.indigenousplacename}, - {'key':'english place name', 'value': self.englishplacename}, - {'key':'indigenous place name meaning', 'value': self.indigenousplacenamemeaning}, - {'key':'planning unit', 'value': str(self.planningunitid)}, - {'key':'primary habitat', 'value': str(self.primaryhabitat)}, - {'key':'tribe', 'value': str(self.tribeid)} + {"key": "indigenous place name", "value": self.indigenousplacename}, + {"key": "english place name", "value": self.englishplacename}, + { + "key": "indigenous place name meaning", + "value": self.indigenousplacenamemeaning, + }, + {"key": "planning unit", "value": str(self.planningunitid)}, + {"key": "primary habitat", "value": str(self.primaryhabitat)}, + {"key": "tribe", "value": str(self.tribeid)}, ] def relationships(self): relationship_list = [] - alt_names = [ainame.get_query_json() for ainame in self.placealtindigenousname_set.all()] + alt_names = [ + ainame.get_query_json() for ainame in self.placealtindigenousname_set.all() + ] if len(alt_names) > 0: - relationship_list.append({'key':'Alternate Names', 'value':alt_names}) - resources = [res.get_query_json() for res in self.placesresourceevents_set.all()] + relationship_list.append({"key": "Alternate Names", "value": alt_names}) + resources = [ + res.get_query_json() for res in self.placesresourceevents_set.all() + ] if len(resources) > 0: - relationship_list.append({'key':'Place-Resource Events', 'value':resources}) - media = [media.get_relationship_json(type(self)) for media in self.placesmediaevents_set.all()] + relationship_list.append( + {"key": "Place-Resource Events", "value": resources} + ) + media = [ + media.get_relationship_json(type(self)) + for media in self.placesmediaevents_set.all() + ] if len(media) > 0: - relationship_list.append({'key':'Media', 'value':media}) - sources = [citation.get_relationship_json(type(self)) for citation in self.placescitationevents_set.all()] + relationship_list.append({"key": "Media", "value": media}) + sources = [ + citation.get_relationship_json(type(self)) + for citation in self.placescitationevents_set.all() + ] if len(sources) > 0: - relationship_list.append({'key':'Bibliographic Sources', 'value':sources}) + relationship_list.append({"key": "Bibliographic Sources", "value": sources}) return relationship_list @@ -494,25 +678,25 @@ def map(self, srid=3857): return geom def link(self): - return '/explore/places/%d/' % self.pk + return "/explore/places/%d/" % self.pk def get_response_format(self): - type = 'places' - category_name = 'Place' + type = "places" + category_name = "Place" try: feature = self.geometry.json except AttributeError as e: feature = None return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'map_pin': settings.RECORD_ICONS['map_pin'], - 'description': self.indigenousplacenamemeaning, - 'link': '/explore/%s/%d' % (type, self.pk), - 'feature': feature + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "map_pin": settings.RECORD_ICONS["map_pin"], + "description": self.indigenousplacenamemeaning, + "link": "/explore/%s/%d" % (type, self.pk), + "feature": feature, } # def get_record_dict(self, user, srid=3857): @@ -528,20 +712,22 @@ def get_related_objects(self, object_id): related_citations = self.placescitationevents_set.all() return [ { - 'title': 'Alternate Names', - 'data': self.format_data(alt_names, 'placeid', ['place']) + "title": "Alternate Names", + "data": self.format_data(alt_names, "placeid", ["place"]), }, { - 'title': 'Resource Relationships', - 'data': self.format_data(related_resources, 'placeid', ['place','excerpt','months']) + "title": "Resource Relationships", + "data": self.format_data( + related_resources, "placeid", ["place", "excerpt", "months"] + ), }, { - 'title': 'Media Relationships', - 'data': self.format_data(related_media, 'placeid', ['place']) + "title": "Media Relationships", + "data": self.format_data(related_media, "placeid", ["place"]), }, { - 'title': 'Citation Relationships', - 'data': self.format_data(related_citations, 'placeid', ['place']) + "title": "Citation Relationships", + "data": self.format_data(related_citations, "placeid", ["place"]), }, ] @@ -550,13 +736,13 @@ def __unicode__(self): english = self.englishplacename or "" if indigenous and english: - return u'%s (%s)' % (indigenous, english) + return "%s (%s)" % (indigenous, english) elif indigenous: return unicode(indigenous) elif english: return unicode(english) else: - return u'No Name Given' + return "No Name Given" def __str__(self): indigenous = self.indigenousplacename or "" @@ -571,67 +757,102 @@ def __str__(self): else: return "No Name Given" + class LookupResourceGroup(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - resourceclassificationgroup = models.CharField(db_column='resourceclassificationgroup', max_length=255, verbose_name='broad species group') + id = models.AutoField(db_column="id", primary_key=True) + resourceclassificationgroup = models.CharField( + db_column="resourceclassificationgroup", + max_length=255, + verbose_name="broad species group", + ) class Meta: managed = MANAGED - ordering = ['resourceclassificationgroup'] - db_table = 'lookupresourcegroup' - app_label = 'Lookup' - verbose_name="resource group" - verbose_name_plural="resource groups" + ordering = ["resourceclassificationgroup"] + db_table = "lookupresourcegroup" + app_label = "Lookup" + verbose_name = "resource group" + verbose_name_plural = "resource groups" def __unicode__(self): - return unicode('%s' % (self.resourceclassificationgroup)) + return unicode("%s" % (self.resourceclassificationgroup)) def __str__(self): - return self.resourceclassificationgroup or '' + return self.resourceclassificationgroup or "" + class Resources(Reviewable, Queryable, Record, ModeratedModel): - resourceid = models.AutoField(db_column='resourceid', primary_key=True) - commonname = models.CharField(db_column='commonname', max_length=255, blank=True, null=True, unique=True, verbose_name='common name') - indigenousname = models.CharField(db_column='indigenousname', max_length=255, blank=True, null=True, verbose_name='indigenous name') - genus = models.CharField(db_column='genus', max_length=255, blank=True, null=True, verbose_name='genus') - species = models.CharField(db_column='species', max_length=255, blank=True, null=True) - specific = models.BooleanField(db_column='specific', default=False) - resourceclassificationgroup = models.ForeignKey(LookupResourceGroup, db_column='resourceclassificationgroup', max_length=255, blank=True, null=True, verbose_name='broad species group', default=None, on_delete=models.SET_DEFAULT) - islocked = models.BooleanField(db_column='islocked', default=False, verbose_name='locked?') + resourceid = models.AutoField(db_column="resourceid", primary_key=True) + commonname = models.CharField( + db_column="commonname", + max_length=255, + blank=True, + null=True, + unique=True, + verbose_name="common name", + ) + indigenousname = models.CharField( + db_column="indigenousname", + max_length=255, + blank=True, + null=True, + verbose_name="indigenous name", + ) + genus = models.CharField( + db_column="genus", max_length=255, blank=True, null=True, verbose_name="genus" + ) + species = models.CharField( + db_column="species", max_length=255, blank=True, null=True + ) + specific = models.BooleanField(db_column="specific", default=False) + resourceclassificationgroup = models.ForeignKey( + LookupResourceGroup, + db_column="resourceclassificationgroup", + max_length=255, + blank=True, + null=True, + verbose_name="broad species group", + default=None, + on_delete=models.SET_DEFAULT, + ) + islocked = models.BooleanField( + db_column="islocked", default=False, verbose_name="locked?" + ) class Meta: managed = MANAGED - db_table = 'resources' - verbose_name = 'Resource' - verbose_name_plural = 'Resources' + db_table = "resources" + verbose_name = "Resource" + verbose_name_plural = "Resources" def __unicode__(self): - return unicode('%s' % (self.commonname)) + return unicode("%s" % (self.commonname)) def __str__(self): - return self.commonname or '' + return self.commonname or "" def keyword_search( - keyword, # string - fields=['commonname','indigenousname','genus','species'], # fields to search - fk_fields=[ - ('resourceclassificationgroup','resourceclassificationgroup'), - ('resourcealtindigenousname', 'altindigenousname') - ] # fields to search for fk objects - ): - + keyword, # string + fields=["commonname", "indigenousname", "genus", "species"], # fields to search + fk_fields=[ + ("resourceclassificationgroup", "resourceclassificationgroup"), + ("resourcealtindigenousname", "altindigenousname"), + ], # fields to search for fk objects + ): weight_lookup = { - 'commonname': 'A', - 'indigenousname': 'A', - 'genus': 'C', - 'species': 'C', - 'resourceclassificationgroup': 'B', - 'resourcealtindigenousname': 'A' + "commonname": "A", + "indigenousname": "A", + "genus": "C", + "species": "C", + "resourceclassificationgroup": "B", + "resourcealtindigenousname": "A", } - sort_field = 'commonname' + sort_field = "commonname" - return run_keyword_search(Resources, keyword, fields, fk_fields, weight_lookup, sort_field) + return run_keyword_search( + Resources, keyword, fields, fk_fields, weight_lookup, sort_field + ) ################################ # NEW APPROACH ################# ################################ @@ -666,58 +887,82 @@ def keyword_search( # ) def image(self): - return settings.RECORD_ICONS['resource'] + return settings.RECORD_ICONS["resource"] def subtitle(self): return self.species def relationships(self): relationship_list = [] - alternate_names = [altname.get_query_json() for altname in self.resourcealtindigenousname_set.all()] + alternate_names = [ + altname.get_query_json() + for altname in self.resourcealtindigenousname_set.all() + ] if len(alternate_names) > 0: - relationship_list.append({'key':'Alternate Names', 'value': alternate_names}) + relationship_list.append( + {"key": "Alternate Names", "value": alternate_names} + ) placeresources = self.placesresourceevents_set.all() placeresourceidlist = [x.pk for x in placeresources] - activities = [x.get_query_json() for x in ResourcesActivityEvents.objects.filter(placeresourceid__in=placeresourceidlist)] + activities = [ + x.get_query_json() + for x in ResourcesActivityEvents.objects.filter( + placeresourceid__in=placeresourceidlist + ) + ] if len(activities) > 0: - relationship_list.append({'key':'Activities', 'value': activities }) - media = [x.get_relationship_json(type(self)) for x in self.resourcesmediaevents_set.all()] + relationship_list.append({"key": "Activities", "value": activities}) + media = [ + x.get_relationship_json(type(self)) + for x in self.resourcesmediaevents_set.all() + ] if len(media) > 0: - relationship_list.append({'key':'Media', 'value':media }) - citations = [x.get_relationship_json(type(self)) for x in self.resourcescitationevents_set.all()] + relationship_list.append({"key": "Media", "value": media}) + citations = [ + x.get_relationship_json(type(self)) + for x in self.resourcescitationevents_set.all() + ] if len(citations) > 0: - relationship_list.append({'key':'Bibliographic Sources', 'value': citations}) + relationship_list.append( + {"key": "Bibliographic Sources", "value": citations} + ) places = [x.get_query_json() for x in placeresources] if len(places) > 0: - relationship_list.append({'key':'Place-Resource Events', 'value': places}) - resources = [x.get_relationship_json(type(self)) for x in ResourceResourceEvents.objects.filter(altresourceid=self)] + relationship_list.append({"key": "Place-Resource Events", "value": places}) + resources = [ + x.get_relationship_json(type(self)) + for x in ResourceResourceEvents.objects.filter(altresourceid=self) + ] if len(resources) > 0: - relationship_list.append({'key':'Resources', 'value': resources}) + relationship_list.append({"key": "Resources", "value": resources}) return relationship_list def link(self): - return '/explore/resources/%d/' % self.pk + return "/explore/resources/%d/" % self.pk def data(self): return [ - {'key':'name', 'value': self.commonname}, - {'key':'indigenous name', 'value': self.indigenousname}, - {'key':'genus', 'value': self.genus}, - {'key':'species', 'value': self.species}, - {'key':'broad species group', 'value': str(self.resourceclassificationgroup)} + {"key": "name", "value": self.commonname}, + {"key": "indigenous name", "value": self.indigenousname}, + {"key": "genus", "value": self.genus}, + {"key": "species", "value": self.species}, + { + "key": "broad species group", + "value": str(self.resourceclassificationgroup), + }, ] def get_response_format(self): - type = 'resources' - category_name = 'Resource' + type = "resources" + category_name = "Resource" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.indigenousname, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.indigenousname, + "link": "/explore/%s/%d" % (type, self.pk), } def get_related_objects(self, object_id): @@ -727,117 +972,193 @@ def get_related_objects(self, object_id): resource_events = ResourceResourceEvents.objects.filter(resourceid=self.pk) alt_names = self.resourcealtindigenousname_set.all() return [ - {'title': 'Media Relationships', 'data': self.format_data(media_events, 'resourceid', ['resource'])}, - {'title': 'Citation Relationships', 'data': self.format_data(citation_events, 'resourceid', ['resource'])}, - {'title': 'Place Relationships', 'data': self.format_data(place_events, 'resourceid', ['resource','months'])}, - {'title': 'Resource Relationships', 'data': self.format_data(resource_events, 'resourceid', ['resource a'])}, - {'title': 'Alternate Names', 'data': self.format_data(alt_names, 'resourceid', ['resource'])}, + { + "title": "Media Relationships", + "data": self.format_data(media_events, "resourceid", ["resource"]), + }, + { + "title": "Citation Relationships", + "data": self.format_data(citation_events, "resourceid", ["resource"]), + }, + { + "title": "Place Relationships", + "data": self.format_data( + place_events, "resourceid", ["resource", "months"] + ), + }, + { + "title": "Resource Relationships", + "data": self.format_data(resource_events, "resourceid", ["resource a"]), + }, + { + "title": "Alternate Names", + "data": self.format_data(alt_names, "resourceid", ["resource"]), + }, ] + class LookupPartUsed(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - partused = models.CharField(db_column='partused', max_length=255, verbose_name='part used') + id = models.AutoField(db_column="id", primary_key=True) + partused = models.CharField( + db_column="partused", max_length=255, verbose_name="part used" + ) class Meta: managed = MANAGED - ordering = ['partused'] - db_table = 'lookuppartused' - app_label="Lookup" - verbose_name="part used" - verbose_name_plural="parts used" + ordering = ["partused"] + db_table = "lookuppartused" + app_label = "Lookup" + verbose_name = "part used" + verbose_name_plural = "parts used" def __unicode__(self): - return unicode('%s' % (self.partused)) + return unicode("%s" % (self.partused)) def __str__(self): - return self.partused or '' + return self.partused or "" + class LookupCustomaryUse(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - usedfor = models.CharField(db_column='usedfor', max_length=255, verbose_name='used_for') + id = models.AutoField(db_column="id", primary_key=True) + usedfor = models.CharField( + db_column="usedfor", max_length=255, verbose_name="used_for" + ) class Meta: managed = MANAGED - ordering = ['usedfor'] - db_table = 'lookupcustomaryuse' - app_label="Lookup" - verbose_name="customary use" - verbose_name_plural="customary uses" + ordering = ["usedfor"] + db_table = "lookupcustomaryuse" + app_label = "Lookup" + verbose_name = "customary use" + verbose_name_plural = "customary uses" def __unicode__(self): - return unicode('%s' % (self.usedfor)) + return unicode("%s" % (self.usedfor)) def __str__(self): - return self.usedfor or '' + return self.usedfor or "" + class LookupSeason(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - season = models.CharField(db_column='season', max_length=255) + id = models.AutoField(db_column="id", primary_key=True) + season = models.CharField(db_column="season", max_length=255) class Meta: managed = MANAGED - ordering = ['season'] - db_table = 'lookupseason' - app_label="Lookup" - verbose_name="season" - verbose_name_plural="seasons" + ordering = ["season"] + db_table = "lookupseason" + app_label = "Lookup" + verbose_name = "season" + verbose_name_plural = "seasons" def __unicode__(self): - return unicode('%s' % (self.season)) + return unicode("%s" % (self.season)) def __str__(self): - return self.season or '' + return self.season or "" + class LookupTiming(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - timing = models.CharField(db_column='timing', max_length=255) + id = models.AutoField(db_column="id", primary_key=True) + timing = models.CharField(db_column="timing", max_length=255) class Meta: managed = MANAGED - ordering = ['timing'] - db_table = 'lookuptiming' - app_label="Lookup" - verbose_name="timing" - verbose_name_plural="timings" + ordering = ["timing"] + db_table = "lookuptiming" + app_label = "Lookup" + verbose_name = "timing" + verbose_name_plural = "timings" def __unicode__(self): - return unicode('%s' % (self.timing)) + return unicode("%s" % (self.timing)) def __str__(self): - return self.timing or '' + return self.timing or "" -#Unsure why this is not a 'SimpleRelationship' + +# Unsure why this is not a 'SimpleRelationship' class PlacesResourceEvents(DefaultModel, Reviewable, Queryable): - placeresourceid = models.AutoField(db_column='placeresourceid', primary_key=True) - placeid = models.ForeignKey(Places, db_column='placeid', verbose_name='place', on_delete=models.CASCADE) - resourceid = models.ForeignKey(Resources, db_column='resourceid', verbose_name='resource', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='excerpt') - partused = models.ForeignKey(LookupPartUsed, db_column='partused', max_length=255, blank=True, null=True, verbose_name='part used', default=None, on_delete=models.SET_DEFAULT) - customaryuse = models.ForeignKey(LookupCustomaryUse, db_column='customaryuse', max_length=255, blank=True, null=True, verbose_name='customary use', default=None, on_delete=models.SET_DEFAULT) - barterresource = models.BooleanField(db_column='barterresource', verbose_name='barter resource?', default=False) - season = models.ForeignKey(LookupSeason, db_column='season', max_length=255, blank=True, null=True, default=None, on_delete=models.SET_DEFAULT) - timing = models.ForeignKey(LookupTiming, db_column='timing', max_length=255, blank=True, null=True, default=None, on_delete=models.SET_DEFAULT) - january = models.BooleanField(db_column='january', default=False) - february = models.BooleanField(db_column='february', default=False) - march = models.BooleanField(db_column='march', default=False) - april = models.BooleanField(db_column='april', default=False) - may = models.BooleanField(db_column='may', default=False) - june = models.BooleanField(db_column='june', default=False) - july = models.BooleanField(db_column='july', default=False) - august = models.BooleanField(db_column='august', default=False) - september = models.BooleanField(db_column='september', default=False) - october = models.BooleanField(db_column='october', default=False) - november = models.BooleanField(db_column='november', default=False) - december = models.BooleanField(db_column='december', default=False) - year = models.IntegerField(db_column='year', blank=True, null=True) - islocked = models.BooleanField(db_column='islocked', verbose_name='locked?', default=False) + placeresourceid = models.AutoField(db_column="placeresourceid", primary_key=True) + placeid = models.ForeignKey( + Places, db_column="placeid", verbose_name="place", on_delete=models.CASCADE + ) + resourceid = models.ForeignKey( + Resources, + db_column="resourceid", + verbose_name="resource", + on_delete=models.CASCADE, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="excerpt", + ) + partused = models.ForeignKey( + LookupPartUsed, + db_column="partused", + max_length=255, + blank=True, + null=True, + verbose_name="part used", + default=None, + on_delete=models.SET_DEFAULT, + ) + customaryuse = models.ForeignKey( + LookupCustomaryUse, + db_column="customaryuse", + max_length=255, + blank=True, + null=True, + verbose_name="customary use", + default=None, + on_delete=models.SET_DEFAULT, + ) + barterresource = models.BooleanField( + db_column="barterresource", verbose_name="barter resource?", default=False + ) + season = models.ForeignKey( + LookupSeason, + db_column="season", + max_length=255, + blank=True, + null=True, + default=None, + on_delete=models.SET_DEFAULT, + ) + timing = models.ForeignKey( + LookupTiming, + db_column="timing", + max_length=255, + blank=True, + null=True, + default=None, + on_delete=models.SET_DEFAULT, + ) + january = models.BooleanField(db_column="january", default=False) + february = models.BooleanField(db_column="february", default=False) + march = models.BooleanField(db_column="march", default=False) + april = models.BooleanField(db_column="april", default=False) + may = models.BooleanField(db_column="may", default=False) + june = models.BooleanField(db_column="june", default=False) + july = models.BooleanField(db_column="july", default=False) + august = models.BooleanField(db_column="august", default=False) + september = models.BooleanField(db_column="september", default=False) + october = models.BooleanField(db_column="october", default=False) + november = models.BooleanField(db_column="november", default=False) + december = models.BooleanField(db_column="december", default=False) + year = models.IntegerField(db_column="year", blank=True, null=True) + islocked = models.BooleanField( + db_column="islocked", verbose_name="locked?", default=False + ) class Meta: managed = MANAGED - db_table = 'placesresourceevents' - app_label = 'Relationships' - verbose_name = 'Place - Resource' - verbose_name_plural = 'Places - Resources' + db_table = "placesresourceevents" + app_label = "Relationships" + verbose_name = "Place - Resource" + verbose_name_plural = "Places - Resources" def keyword_search(keyword): resource_qs = Resources.keyword_search(keyword) @@ -859,216 +1180,355 @@ def keyword_search(keyword): timing_loi = [timing.pk for timing in timing_qs] return PlacesResourceEvents.objects.filter( - Q(resourceid__in=resource_loi) | - Q(placeid__in=place_loi) | - Q(relationshipdescription__icontains=keyword) | - Q(partused__in=part_loi) | - Q(customaryuse__in=use_loi) | - Q(season__in=season_loi) | - Q(timing__in=timing_loi) + Q(resourceid__in=resource_loi) + | Q(placeid__in=place_loi) + | Q(relationshipdescription__icontains=keyword) + | Q(partused__in=part_loi) + | Q(customaryuse__in=use_loi) + | Q(season__in=season_loi) + | Q(timing__in=timing_loi) ) def __unicode__(self): return unicode("%s at %s" % (str(self.resourceid), str(self.placeid))) def __str__(self): - return "%s at %s" % (str(self.resourceid), str(self.placeid)) or '' + return "%s at %s" % (str(self.resourceid), str(self.placeid)) or "" def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return None def data(self): if self.barterresource: - barter = 'Yes' + barter = "Yes" else: - barter = 'No' + barter = "No" months_list = [ - x for x in [ - 'january', 'february', 'march', 'april', 'may', 'june', 'july', - 'august', 'september', 'october', 'november', 'december' - ] if self.__getattribute__(x) + x + for x in [ + "january", + "february", + "march", + "april", + "may", + "june", + "july", + "august", + "september", + "october", + "november", + "december", + ] + if self.__getattribute__(x) ] if len(months_list) > 0: - months = ', '.join(months_list) + months = ", ".join(months_list) else: - months = 'None' + months = "None" data_list = [] - data_list.append({'key':'place', 'value': str(self.placeid), 'link': "/explore/places/{id}/".format(id=self.placeid.pk)}) - data_list.append({'key':'resource', 'value': str(self.resourceid), 'link': "/explore/resources/{id}/".format(id=self.resourceid.pk)}) - if not self.relationshipdescription == None and len(self.relationshipdescription) > 0: - data_list.append({'key':'excerpt', 'value': self.relationshipdescription}) + data_list.append( + { + "key": "place", + "value": str(self.placeid), + "link": "/explore/places/{id}/".format(id=self.placeid.pk), + } + ) + data_list.append( + { + "key": "resource", + "value": str(self.resourceid), + "link": "/explore/resources/{id}/".format(id=self.resourceid.pk), + } + ) + if ( + not self.relationshipdescription == None + and len(self.relationshipdescription) > 0 + ): + data_list.append({"key": "excerpt", "value": self.relationshipdescription}) if self.partused: - data_list.append({'key':'part used', 'value': str(self.partused)}) - data_list.append({'key':'used for barter', 'value': barter}) + data_list.append({"key": "part used", "value": str(self.partused)}) + data_list.append({"key": "used for barter", "value": barter}) if not self.season == None: - data_list.append({'key':'season', 'value': str(self.season)}) + data_list.append({"key": "season", "value": str(self.season)}) if not self.timing == None: - data_list.append({'key':'timing', 'value': str(self.timing)}) - if not months == 'None': - data_list.append({'key':'months', 'value': months}) + data_list.append({"key": "timing", "value": str(self.timing)}) + if not months == "None": + data_list.append({"key": "months", "value": months}) if not self.year == None: - data_list.append({'key':'year', 'value': str(self.year)}) + data_list.append({"key": "year", "value": str(self.year)}) return data_list def link(self): - return '/explore/placesresourceevents/%s' % self.pk + return "/explore/placesresourceevents/%s" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Place', 'value': [self.placeid.get_query_json()]}) - relationship_list.append({'key':'Resource', 'value': [self.resourceid.get_query_json()]}) - activities = [x.get_query_json() for x in self.resourcesactivityevents_set.all()] + relationship_list.append( + {"key": "Place", "value": [self.placeid.get_query_json()]} + ) + relationship_list.append( + {"key": "Resource", "value": [self.resourceid.get_query_json()]} + ) + activities = [ + x.get_query_json() for x in self.resourcesactivityevents_set.all() + ] if len(activities) > 0: - relationship_list.append({'key':'Activities', 'value': activities}) - citations = [x.get_relationship_json(type(self)) for x in self.placesresourcecitationevents_set.all()] + relationship_list.append({"key": "Activities", "value": activities}) + citations = [ + x.get_relationship_json(type(self)) + for x in self.placesresourcecitationevents_set.all() + ] if len(citations) > 0: - relationship_list.append({'key':'Bibliographic Sources', 'value': citations}) + relationship_list.append( + {"key": "Bibliographic Sources", "value": citations} + ) return relationship_list def get_response_format(self): - type = 'Placesresourceevents' - category_name = 'Place - Resource' + type = "Placesresourceevents" + category_name = "Place - Resource" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } + class LookupParticipants(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - participants = models.CharField(db_column='participants', max_length=255) + id = models.AutoField(db_column="id", primary_key=True) + participants = models.CharField(db_column="participants", max_length=255) class Meta: managed = MANAGED - ordering = ['participants'] - db_table = 'lookupparticipants' + ordering = ["participants"] + db_table = "lookupparticipants" app_label = "Lookup" verbose_name = "participant" verbose_name_plural = "participants" def __unicode__(self): - return unicode('%s' % (self.participants)) + return unicode("%s" % (self.participants)) def __str__(self): - return self.participants or '' + return self.participants or "" + class LookupTechniques(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - techniques = models.CharField(db_column='techniques', max_length=255) + id = models.AutoField(db_column="id", primary_key=True) + techniques = models.CharField(db_column="techniques", max_length=255) class Meta: managed = MANAGED - ordering = ['techniques'] - db_table = 'lookuptechniques' + ordering = ["techniques"] + db_table = "lookuptechniques" app_label = "Lookup" verbose_name = "technique" verbose_name_plural = "techniques" def __unicode__(self): - return unicode('%s' % (self.techniques)) + return unicode("%s" % (self.techniques)) def __str__(self): - return self.techniques or '' + return self.techniques or "" + class LookupActivity(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - activity = models.CharField(db_column='activity', max_length=255) + id = models.AutoField(db_column="id", primary_key=True) + activity = models.CharField(db_column="activity", max_length=255) class Meta: managed = MANAGED - ordering = ['activity'] - db_table = 'lookupactivity' - app_label = 'Lookup' - verbose_name = 'activity' - verbose_name_plural = 'activities' + ordering = ["activity"] + db_table = "lookupactivity" + app_label = "Lookup" + verbose_name = "activity" + verbose_name_plural = "activities" def __unicode__(self): - return unicode('%s' % (self.activity)) + return unicode("%s" % (self.activity)) def __str__(self): - return self.activity or '' + return self.activity or "" + class ResourcesActivityEvents(Reviewable, Queryable, Record, ModeratedModel): - resourceactivityid = models.AutoField(db_column='resourceactivityid', primary_key=True) - placeresourceid = models.ForeignKey(PlacesResourceEvents, db_column='placeresourceid', verbose_name='place resource', on_delete=models.PROTECT) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='excerpt') - partused = models.ForeignKey(LookupPartUsed, db_column='partused', max_length=255, blank=True, null=True, verbose_name='part used', default=None, on_delete=models.SET_DEFAULT) - activityshortdescription = models.ForeignKey(LookupActivity, db_column='activityshortdescription', max_length=255, blank=True, null=True, verbose_name='activity type', default=None, on_delete=models.SET_DEFAULT) - activitylongdescription = HTMLField(db_column='activitylongdescription', blank=True, null=True, verbose_name='full activity description') - participants = models.ForeignKey(LookupParticipants, db_column='participants', max_length=50, blank=True, null=True, default=None, on_delete=models.SET_DEFAULT) - gear = models.CharField(db_column='gear', max_length=255, blank=True, null=True) - technique = models.ForeignKey(LookupTechniques, db_column='technique', max_length=255, blank=True, null=True, default=None, on_delete=models.SET_DEFAULT) - customaryuse = models.CharField(db_column='customaryuse', max_length=255, blank=True, null=True, verbose_name='customary use') - timing = models.ForeignKey(LookupTiming, db_column='timing', max_length=255, blank=True, null=True, default=None, on_delete=models.SET_DEFAULT) - timingdescription = models.CharField(db_column='timingdescription', max_length=255, blank=True, null=True, verbose_name='timing description') - islocked = models.BooleanField(db_column='islocked', default=False, verbose_name='locked?') + resourceactivityid = models.AutoField( + db_column="resourceactivityid", primary_key=True + ) + placeresourceid = models.ForeignKey( + PlacesResourceEvents, + db_column="placeresourceid", + verbose_name="place resource", + on_delete=models.PROTECT, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="excerpt", + ) + partused = models.ForeignKey( + LookupPartUsed, + db_column="partused", + max_length=255, + blank=True, + null=True, + verbose_name="part used", + default=None, + on_delete=models.SET_DEFAULT, + ) + activityshortdescription = models.ForeignKey( + LookupActivity, + db_column="activityshortdescription", + max_length=255, + blank=True, + null=True, + verbose_name="activity type", + default=None, + on_delete=models.SET_DEFAULT, + ) + activitylongdescription = HTMLField( + db_column="activitylongdescription", + blank=True, + null=True, + verbose_name="full activity description", + ) + participants = models.ForeignKey( + LookupParticipants, + db_column="participants", + max_length=50, + blank=True, + null=True, + default=None, + on_delete=models.SET_DEFAULT, + ) + gear = models.CharField(db_column="gear", max_length=255, blank=True, null=True) + technique = models.ForeignKey( + LookupTechniques, + db_column="technique", + max_length=255, + blank=True, + null=True, + default=None, + on_delete=models.SET_DEFAULT, + ) + customaryuse = models.CharField( + db_column="customaryuse", + max_length=255, + blank=True, + null=True, + verbose_name="customary use", + ) + timing = models.ForeignKey( + LookupTiming, + db_column="timing", + max_length=255, + blank=True, + null=True, + default=None, + on_delete=models.SET_DEFAULT, + ) + timingdescription = models.CharField( + db_column="timingdescription", + max_length=255, + blank=True, + null=True, + verbose_name="timing description", + ) + islocked = models.BooleanField( + db_column="islocked", default=False, verbose_name="locked?" + ) class Meta: managed = MANAGED - db_table = 'resourcesactivityevents' - verbose_name = 'Activity' - verbose_name_plural = 'Activities' + db_table = "resourcesactivityevents" + verbose_name = "Activity" + verbose_name_plural = "Activities" def __unicode__(self): - return unicode("%s: %s" % (str(self.placeresourceid), self.activityshortdescription)) + return unicode( + "%s: %s" % (str(self.placeresourceid), self.activityshortdescription) + ) def __str__(self): if not self.activityshortdescription == None: activity_name = self.activityshortdescription else: - activity_name = 'Unspecified Activity' - return "{activity} at {place} involving {resource}".format(activity=activity_name, place=self.placeresourceid.placeid, resource=self.placeresourceid.resourceid) + activity_name = "Unspecified Activity" + return "{activity} at {place} involving {resource}".format( + activity=activity_name, + place=self.placeresourceid.placeid, + resource=self.placeresourceid.resourceid, + ) # return "%s: %s" % (str(self.placeresourceid), self.activityshortdescription) or '' @property def excerpt_text(self): from django.utils.html import strip_tags from html import unescape + return unescape(strip_tags(self.relationshipdescription)) def keyword_search( - keyword, # string - fields=['relationshipdescription','activitylongdescription','gear','customaryuse','timingdescription'], # fields to search - fk_fields=[ - ('partused','partused'), - ('placeresourceid','resourceid','commonname'), - ('placeresourceid','placeid','englishplacename'), - ('placeresourceid','placeid','indigenousplacename'), - ('placeresourceid','placeid','placealtindigenousname', 'altindigenousname'), - ('activityshortdescription','activity'), - ('participants','participants'), - ('technique','techniques'), - ('timing','timing') - ] # fields to search for fk objects - ): - + keyword, # string + fields=[ + "relationshipdescription", + "activitylongdescription", + "gear", + "customaryuse", + "timingdescription", + ], # fields to search + fk_fields=[ + ("partused", "partused"), + ("placeresourceid", "resourceid", "commonname"), + ("placeresourceid", "placeid", "englishplacename"), + ("placeresourceid", "placeid", "indigenousplacename"), + ( + "placeresourceid", + "placeid", + "placealtindigenousname", + "altindigenousname", + ), + ("activityshortdescription", "activity"), + ("participants", "participants"), + ("technique", "techniques"), + ("timing", "timing"), + ], # fields to search for fk objects + ): weight_lookup = { - 'relationshipdescription': 'B', - 'activitylongdescription': 'A', - 'gear': 'B', - 'customaryuse': 'B', - 'timingdescription': 'B', - 'partused': 'C', - 'placeresourceid': 'A', - 'activityshortdescription': 'A', - 'participants': 'C', - 'technique': 'C', - 'timing': 'C' + "relationshipdescription": "B", + "activitylongdescription": "A", + "gear": "B", + "customaryuse": "B", + "timingdescription": "B", + "partused": "C", + "placeresourceid": "A", + "activityshortdescription": "A", + "participants": "C", + "technique": "C", + "timing": "C", } - sort_field = 'activitylongdescription' + sort_field = "activitylongdescription" - return run_keyword_search(ResourcesActivityEvents, keyword, fields, fk_fields, weight_lookup, sort_field) + return run_keyword_search( + ResourcesActivityEvents, + keyword, + fields, + fk_fields, + weight_lookup, + sort_field, + ) # def keyword_search(keyword): # placeresource_qs = PlacesResourceEvents.keyword_search(keyword) @@ -1107,118 +1567,185 @@ def keyword_search( # ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return None def link(self): - return '/explore/resourcesactivityevents/%d/' % self.pk + return "/explore/resourcesactivityevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Place-Resource', 'value': [self.placeresourceid.get_query_json()]}) - citations = [x.get_relationship_json(type(self)) for x in self.resourceactivitycitationevents_set.all()] + relationship_list.append( + {"key": "Place-Resource", "value": [self.placeresourceid.get_query_json()]} + ) + citations = [ + x.get_relationship_json(type(self)) + for x in self.resourceactivitycitationevents_set.all() + ] if len(citations) > 0: - relationship_list.append({'key':'Bibliographic Sources', 'value': citations}) + relationship_list.append( + {"key": "Bibliographic Sources", "value": citations} + ) media = [x.get_query_json() for x in self.resourceactivitymediaevents_set.all()] if len(media) > 0: - relationship_list.append({'key':'Media', 'value': media}) + relationship_list.append({"key": "Media", "value": media}) return relationship_list def data(self): data_list = [] - data_list.append({'key':'place', 'value': str(self.placeresourceid.placeid), 'link': "/explore/places/{id}/".format(id=self.placeresourceid.placeid.pk)}) - data_list.append({'key':'resource', 'value': str(self.placeresourceid.resourceid), 'link': "/explore/resources/{id}/".format(id=self.placeresourceid.resourceid.pk)}) - if not self.relationshipdescription == None and len(self.relationshipdescription) > 0: - data_list.append({'key':'excerpt', 'value': self.relationshipdescription}) + data_list.append( + { + "key": "place", + "value": str(self.placeresourceid.placeid), + "link": "/explore/places/{id}/".format( + id=self.placeresourceid.placeid.pk + ), + } + ) + data_list.append( + { + "key": "resource", + "value": str(self.placeresourceid.resourceid), + "link": "/explore/resources/{id}/".format( + id=self.placeresourceid.resourceid.pk + ), + } + ) + if ( + not self.relationshipdescription == None + and len(self.relationshipdescription) > 0 + ): + data_list.append({"key": "excerpt", "value": self.relationshipdescription}) if not self.partused == None: - data_list.append({'key':'part used', 'value': str(self.partused)}) + data_list.append({"key": "part used", "value": str(self.partused)}) if not self.activityshortdescription == None: - data_list.append({'key':'activity type', 'value': str(self.activityshortdescription)}) - if not self.activitylongdescription == None and not self.activitylongdescription == '': - data_list.append({'key':'full description', 'value': self.activitylongdescription}) + data_list.append( + {"key": "activity type", "value": str(self.activityshortdescription)} + ) + if ( + not self.activitylongdescription == None + and not self.activitylongdescription == "" + ): + data_list.append( + {"key": "full description", "value": self.activitylongdescription} + ) if not self.participants == None: - data_list.append({'key':'participants', 'value': str(self.participants)}) + data_list.append({"key": "participants", "value": str(self.participants)}) if not self.technique == None: - data_list.append({'key':'technique', 'value': str(self.technique)}) + data_list.append({"key": "technique", "value": str(self.technique)}) if not self.gear == None: - data_list.append({'key':'gear', 'value': self.gear}) + data_list.append({"key": "gear", "value": self.gear}) if not self.customaryuse == None: - data_list.append({'key':'customary use', 'value': str(self.customaryuse)}) + data_list.append({"key": "customary use", "value": str(self.customaryuse)}) if not self.timing == None: - data_list.append({'key':'timing', 'value': str(self.timing)}) + data_list.append({"key": "timing", "value": str(self.timing)}) if not self.timingdescription == None: - data_list.append({'key':'timing description', 'value': self.timingdescription}) + data_list.append( + {"key": "timing description", "value": self.timingdescription} + ) return data_list def get_response_format(self): - type = 'Resourcesactivityevents' - category_name = 'Activity' + type = "Resourcesactivityevents" + category_name = "Activity" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_related_objects(self, object_id): citation_events = self.resourceactivitycitationevents_set.all() media_events = self.resourceactivitymediaevents_set.all() return [ - {'title': 'Citation Relationships', 'data': self.format_data(citation_events, 'resourceactivityid', ['resource activity'])}, - {'title': 'Media Relationships', 'data': self.format_data(media_events, 'resourceactivityid', ['resource activity'])}, + { + "title": "Citation Relationships", + "data": self.format_data( + citation_events, "resourceactivityid", ["resource activity"] + ), + }, + { + "title": "Media Relationships", + "data": self.format_data( + media_events, "resourceactivityid", ["resource activity"] + ), + }, ] + class People(Lookup): - personid = models.AutoField(db_column='personid', primary_key=True) - firstname = models.CharField(db_column='firstname', max_length=255, blank=True, null=True, verbose_name='first name') - lastname = models.CharField(db_column='lastname', max_length=255, blank=True, null=True, verbose_name='last name') - village = models.CharField(db_column='village', max_length=255, blank=True, null=True) - yearborn = models.IntegerField(db_column='yearborn', blank=True, null=True, verbose_name='year born') - relationshiptootherpeople = HTMLField(db_column='relationshiptootherpeople', blank=True, null=True, verbose_name='relationship to other people') + personid = models.AutoField(db_column="personid", primary_key=True) + firstname = models.CharField( + db_column="firstname", + max_length=255, + blank=True, + null=True, + verbose_name="first name", + ) + lastname = models.CharField( + db_column="lastname", + max_length=255, + blank=True, + null=True, + verbose_name="last name", + ) + village = models.CharField( + db_column="village", max_length=255, blank=True, null=True + ) + yearborn = models.IntegerField( + db_column="yearborn", blank=True, null=True, verbose_name="year born" + ) + relationshiptootherpeople = HTMLField( + db_column="relationshiptootherpeople", + blank=True, + null=True, + verbose_name="relationship to other people", + ) class Meta: managed = MANAGED - db_table = 'people' + db_table = "people" app_label = "Lookup" verbose_name = "person" verbose_name_plural = "people" def keyword_search(keyword): return People.objects.filter( - Q(firstname__icontains=keyword) | - Q(lastname__icontains=keyword) | - Q(village__icontains=keyword) | - Q(relationshiptootherpeople__icontains=keyword) + Q(firstname__icontains=keyword) + | Q(lastname__icontains=keyword) + | Q(village__icontains=keyword) + | Q(relationshiptootherpeople__icontains=keyword) ) def __unicode__(self): return unicode("%s %s" % (self.firstname, self.lastname)) def __str__(self): - return "%s %s" % (self.firstname, self.lastname) or '' + return "%s %s" % (self.firstname, self.lastname) or "" def image(self): - #TODO: Better icon or no icon - return settings.RECORD_ICONS['person'] + # TODO: Better icon or no icon + return settings.RECORD_ICONS["person"] def data(self): return [ - {'key':'first name', 'value': self.firstname}, - {'key':'last name', 'value': self.lastname}, - {'key':'year born', 'value': str(self.yearborn)}, - {'key':'village', 'value': self.village}, - {'key':'relationship to others', 'value': self.relationshiptootherpeople} + {"key": "first name", "value": self.firstname}, + {"key": "last name", "value": self.lastname}, + {"key": "year born", "value": str(self.yearborn)}, + {"key": "village", "value": self.village}, + {"key": "relationship to others", "value": self.relationshiptootherpeople}, ] def link(self): - return '/explore/people/%s' % self.pk + return "/explore/people/%s" % self.pk def relationships(self): relationship_list = [] @@ -1226,131 +1753,250 @@ def relationships(self): interviewer_citations = [x.get_query_json() for x in self.interviewer.all()] # citations = list(set(interviewee_citations) | set(interviewer_citations)) if len(interviewee_citations) > 0: - relationship_list.append({'key': 'Sources as interviewee', 'value': interviewee_citations}) + relationship_list.append( + {"key": "Sources as interviewee", "value": interviewee_citations} + ) if len(interviewer_citations) > 0: - relationship_list.append({'key': 'Sources as interviewer', 'value': interviewer_citations}) + relationship_list.append( + {"key": "Sources as interviewer", "value": interviewer_citations} + ) return relationship_list - #Actually a dict, not true JSON. + # Actually a dict, not true JSON. def get_query_json(self): return { - 'name': str(self), - 'image': self.image(), - 'subtitle': self.village, - 'data': self.data(), - 'link': self.link() + "name": str(self), + "image": self.image(), + "subtitle": self.village, + "data": self.data(), + "link": self.link(), } def get_record_dict(self, user, srid=None): return { - 'name': str(self), - 'image': self.image(), - 'subtitle': self.village, - 'data': self.data(), - 'relationships': self.relationships(), - 'map': False, + "name": str(self), + "image": self.image(), + "subtitle": self.village, + "data": self.data(), + "relationships": self.relationships(), + "map": False, # 'link': self.link(), } + class LookupReferenceType(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - documenttype = models.CharField(db_column='documenttype', max_length=25, verbose_name='document type') + id = models.AutoField(db_column="id", primary_key=True) + documenttype = models.CharField( + db_column="documenttype", max_length=25, verbose_name="document type" + ) class Meta: managed = MANAGED - ordering = ['documenttype'] - db_table = 'lookupreferencetype' + ordering = ["documenttype"] + db_table = "lookupreferencetype" app_label = "Lookup" - verbose_name="reference type" - verbose_name_plural="reference types" + verbose_name = "reference type" + verbose_name_plural = "reference types" def __unicode__(self): - return unicode('%s' % (self.documenttype)) + return unicode("%s" % (self.documenttype)) def __str__(self): - return self.documenttype or '' + return self.documenttype or "" + class LookupAuthorType(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - authortype = models.CharField(db_column='authortype', max_length=50, verbose_name='author type') + id = models.AutoField(db_column="id", primary_key=True) + authortype = models.CharField( + db_column="authortype", max_length=50, verbose_name="author type" + ) class Meta: managed = MANAGED - ordering = ['authortype'] - db_table = 'lookupauthortype' - app_label = 'Lookup' - verbose_name = 'author type' - verbose_name_plural = 'author types' - + ordering = ["authortype"] + db_table = "lookupauthortype" + app_label = "Lookup" + verbose_name = "author type" + verbose_name_plural = "author types" def __unicode__(self): - return unicode('%s' % (self.authortype)) + return unicode("%s" % (self.authortype)) def __str__(self): - return self.authortype or '' + return self.authortype or "" + class Citations(Reviewable, Queryable, Record, ModeratedModel): - citationid = models.AutoField(db_column='citationid', primary_key=True) - referencetype = models.ForeignKey(LookupReferenceType, db_column='referencetype', max_length=255, verbose_name='reference type', help_text="Select a reference type to continue", on_delete=models.PROTECT) - referencetext = models.TextField(db_column='referencetext', blank=True, null=True, verbose_name='description') - authortype = models.ForeignKey(LookupAuthorType, db_column='authortype', max_length=255, blank=True, null=True, verbose_name='author type', default=None, on_delete=models.SET_DEFAULT) - authorprimary = models.CharField(db_column='authorprimary', max_length=255, blank=True, null=True, verbose_name='primary author') - authorsecondary = models.CharField(db_column='authorsecondary', max_length=255, blank=True, null=True, verbose_name='secondary author') - intervieweeid = models.ForeignKey(People, db_column='intervieweeid', related_name='interviewee', blank=True, null=True, verbose_name='interviewee', default=None, on_delete=models.SET_DEFAULT) - interviewerid = models.ForeignKey(People, db_column='interviewerid', related_name='interviewer', blank=True, null=True, verbose_name='interviewer', default=None, on_delete=models.SET_DEFAULT) - placeofinterview = models.CharField(db_column='placeofinterview', max_length=255, blank=True, null=True, verbose_name='place of interview') - date = models.DateField(db_column='date', blank=True, null=True, default=None) - year = models.IntegerField(db_column='year', blank=True, null=True) - title = models.TextField(db_column='title', blank=True, null=True) - seriestitle = models.CharField(db_column='seriestitle', max_length=255, blank=True, null=True, verbose_name='series title') - seriesvolume = models.CharField(db_column='seriesvolume', max_length=50, blank=True, null=True, verbose_name='series volume') - serieseditor = models.CharField(db_column='serieseditor', max_length=255, blank=True, null=True, verbose_name='series editor') - publisher = models.CharField(db_column='publisher', max_length=100, blank=True, null=True) - publishercity = models.CharField(db_column='publishercity', max_length=255, blank=True, null=True, verbose_name='city') - preparedfor = models.CharField(db_column='preparedfor', max_length=100, blank=True, null=True, verbose_name='prepared_for') - rawcitation = HTMLField(db_column='rawcitation', blank=True, null=True, verbose_name='Raw, formatted bibliographic citation', help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.") - comments = HTMLField(db_column='comments', blank=True, null=True) - journal = models.TextField(db_column='journal', blank=True, null=True, verbose_name='journal') - journalpages = models.TextField(db_column='journalpages', blank=True, null=True, verbose_name='journal pages') + citationid = models.AutoField(db_column="citationid", primary_key=True) + referencetype = models.ForeignKey( + LookupReferenceType, + db_column="referencetype", + max_length=255, + verbose_name="reference type", + help_text="Select a reference type to continue", + on_delete=models.PROTECT, + ) + referencetext = models.TextField( + db_column="referencetext", blank=True, null=True, verbose_name="description" + ) + authortype = models.ForeignKey( + LookupAuthorType, + db_column="authortype", + max_length=255, + blank=True, + null=True, + verbose_name="author type", + default=None, + on_delete=models.SET_DEFAULT, + ) + authorprimary = models.CharField( + db_column="authorprimary", + max_length=255, + blank=True, + null=True, + verbose_name="primary author", + ) + authorsecondary = models.CharField( + db_column="authorsecondary", + max_length=255, + blank=True, + null=True, + verbose_name="secondary author", + ) + intervieweeid = models.ForeignKey( + People, + db_column="intervieweeid", + related_name="interviewee", + blank=True, + null=True, + verbose_name="interviewee", + default=None, + on_delete=models.SET_DEFAULT, + ) + interviewerid = models.ForeignKey( + People, + db_column="interviewerid", + related_name="interviewer", + blank=True, + null=True, + verbose_name="interviewer", + default=None, + on_delete=models.SET_DEFAULT, + ) + placeofinterview = models.CharField( + db_column="placeofinterview", + max_length=255, + blank=True, + null=True, + verbose_name="place of interview", + ) + date = models.DateField(db_column="date", blank=True, null=True, default=None) + year = models.IntegerField(db_column="year", blank=True, null=True) + title = models.TextField(db_column="title", blank=True, null=True) + seriestitle = models.CharField( + db_column="seriestitle", + max_length=255, + blank=True, + null=True, + verbose_name="series title", + ) + seriesvolume = models.CharField( + db_column="seriesvolume", + max_length=50, + blank=True, + null=True, + verbose_name="series volume", + ) + serieseditor = models.CharField( + db_column="serieseditor", + max_length=255, + blank=True, + null=True, + verbose_name="series editor", + ) + publisher = models.CharField( + db_column="publisher", max_length=100, blank=True, null=True + ) + publishercity = models.CharField( + db_column="publishercity", + max_length=255, + blank=True, + null=True, + verbose_name="city", + ) + preparedfor = models.CharField( + db_column="preparedfor", + max_length=100, + blank=True, + null=True, + verbose_name="prepared_for", + ) + rawcitation = HTMLField( + db_column="rawcitation", + blank=True, + null=True, + verbose_name="Raw, formatted bibliographic citation", + help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", + ) + comments = HTMLField(db_column="comments", blank=True, null=True) + journal = models.TextField( + db_column="journal", blank=True, null=True, verbose_name="journal" + ) + journalpages = models.TextField( + db_column="journalpages", blank=True, null=True, verbose_name="journal pages" + ) class Meta: managed = MANAGED - db_table = 'citations' - verbose_name = 'Bibliographic Source' - verbose_name_plural = 'Bibliographic Sources' + db_table = "citations" + verbose_name = "Bibliographic Source" + verbose_name_plural = "Bibliographic Sources" def keyword_search( - keyword, # string - fields=['referencetext','authorprimary','authorsecondary','placeofinterview','title','seriestitle','seriesvolume','serieseditor','publisher','publishercity','preparedfor'], # fields to search - fk_fields=[ - ('referencetype','documenttype'), - ('authortype','authortype'), - # ('intervieweeid','interviewee'), - # ('interviewerid','interviewer') - ] # fields to search for fk objects - ): - + keyword, # string + fields=[ + "referencetext", + "authorprimary", + "authorsecondary", + "placeofinterview", + "title", + "seriestitle", + "seriesvolume", + "serieseditor", + "publisher", + "publishercity", + "preparedfor", + ], # fields to search + fk_fields=[ + ("referencetype", "documenttype"), + ("authortype", "authortype"), + # ('intervieweeid','interviewee'), + # ('interviewerid','interviewer') + ], # fields to search for fk objects + ): weight_lookup = { - 'referencetext': 'A', - 'authorprimary': 'A', - 'authorsecondary': 'A', - 'placeofinterview': 'C', - 'title': 'A', - 'seriestitle': 'C', - 'seriesvolume': 'C', - 'serieseditor': 'C', - 'publisher': 'C', - 'publishercity': 'C', - 'preparedfor': 'C', - 'referencetype': 'B', - 'authortype': 'B', + "referencetext": "A", + "authorprimary": "A", + "authorsecondary": "A", + "placeofinterview": "C", + "title": "A", + "seriestitle": "C", + "seriesvolume": "C", + "serieseditor": "C", + "publisher": "C", + "publishercity": "C", + "preparedfor": "C", + "referencetype": "B", + "authortype": "B", # 'intervieweeid': 'B', # 'interviewerid': 'B' } - sort_field = 'referencetext' + sort_field = "referencetext" - return run_keyword_search(Citations, keyword, fields, fk_fields, weight_lookup, sort_field) + return run_keyword_search( + Citations, keyword, fields, fk_fields, weight_lookup, sort_field + ) # def keyword_search(keyword): # reference_qs = LookupReferenceType.objects.filter(documenttype__icontains=keyword) @@ -1383,119 +2029,135 @@ def keyword_search( # ) def image(self): - return settings.RECORD_ICONS['citation'] + return settings.RECORD_ICONS["citation"] def subtitle(self): return self.referencetext def link(self): - return '/explore/citations/%d/' % self.pk + return "/explore/citations/%d/" % self.pk def relationships(self): relationship_list = [] - if self.referencetype.documenttype == 'Interview': + if self.referencetype.documenttype == "Interview": people = [] if not self.intervieweeid == None: people.append(self.intervieweeid.get_query_json()) if not self.interviewerid == None: people.append(self.interviewerid.get_query_json()) if len(people) > 0: - relationship_list.append({'key':'People', 'value': people}) - places = [x.get_relationship_json(type(self)) for x in self.placescitationevents_set.all()] + relationship_list.append({"key": "People", "value": people}) + places = [ + x.get_relationship_json(type(self)) + for x in self.placescitationevents_set.all() + ] if len(places) > 0: - relationship_list.append({'key': 'Places', 'value': places}) - resources = [x.get_relationship_json(type(self)) for x in self.resourcescitationevents_set.all()] + relationship_list.append({"key": "Places", "value": places}) + resources = [ + x.get_relationship_json(type(self)) + for x in self.resourcescitationevents_set.all() + ] if len(resources) > 0: - relationship_list.append({'key': 'Resources', 'value': resources}) - media = [x.get_relationship_json(type(self)) for x in self.mediacitationevents_set.all()] + relationship_list.append({"key": "Resources", "value": resources}) + media = [ + x.get_relationship_json(type(self)) + for x in self.mediacitationevents_set.all() + ] if len(media) > 0: - relationship_list.append({'key': 'Media', 'value': media}) - activities = [x.get_relationship_json(type(self)) for x in self.resourceactivitycitationevents_set.all()] + relationship_list.append({"key": "Media", "value": media}) + activities = [ + x.get_relationship_json(type(self)) + for x in self.resourceactivitycitationevents_set.all() + ] if len(activities) > 0: - relationship_list.append({'key': 'Activities', 'value': activities}) - placesResources = [x.get_relationship_json(type(self)) for x in self.placesresourcecitationevents_set.all()] + relationship_list.append({"key": "Activities", "value": activities}) + placesResources = [ + x.get_relationship_json(type(self)) + for x in self.placesresourcecitationevents_set.all() + ] if len(placesResources) > 0: - relationship_list.append({'key': 'Place-Resources', 'value': placesResources}) + relationship_list.append( + {"key": "Place-Resources", "value": placesResources} + ) return relationship_list def data(self): - - if str(self.referencetype).lower() == 'book': + if str(self.referencetype).lower() == "book": return [ - {'key':'reference type', 'value': str(self.referencetype)}, - {'key':'title', 'value': self.title}, - {'key':'description', 'value': self.referencetext}, - {'key':'year', 'value': self.year}, - {'key':'primary author', 'value': self.authorprimary}, - {'key':'secondary author', 'value': self.authorsecondary}, - {'key':'publisher', 'value': self.publisher}, - {'key':'publisher city', 'value': self.publishercity}, - {'key':'raw citation', 'value': self.rawcitation}, - {'key':'comments', 'value': self.comments}, + {"key": "reference type", "value": str(self.referencetype)}, + {"key": "title", "value": self.title}, + {"key": "description", "value": self.referencetext}, + {"key": "year", "value": self.year}, + {"key": "primary author", "value": self.authorprimary}, + {"key": "secondary author", "value": self.authorsecondary}, + {"key": "publisher", "value": self.publisher}, + {"key": "publisher city", "value": self.publishercity}, + {"key": "raw citation", "value": self.rawcitation}, + {"key": "comments", "value": self.comments}, ] - if str(self.referencetype).lower() == 'edited volume': + if str(self.referencetype).lower() == "edited volume": return [ - {'key':'reference type', 'value': str(self.referencetype)}, - {'key':'title', 'value': self.title}, - {'key':'description', 'value': self.referencetext}, - {'key':'year', 'value': self.year}, - {'key':'primary author', 'value': self.authorprimary}, - {'key':'secondary author', 'value': self.authorsecondary}, - {'key':'publisher', 'value': self.publisher}, - {'key':'publisher city', 'value': self.publishercity}, - {'key':'series volume', 'value': self.seriesvolume}, - {'key':'series title', 'value': self.seriestitle}, - {'key':'series editor', 'value': self.serieseditor}, - {'key':'raw citation', 'value': self.rawcitation}, - {'key':'comments', 'value': self.comments}, + {"key": "reference type", "value": str(self.referencetype)}, + {"key": "title", "value": self.title}, + {"key": "description", "value": self.referencetext}, + {"key": "year", "value": self.year}, + {"key": "primary author", "value": self.authorprimary}, + {"key": "secondary author", "value": self.authorsecondary}, + {"key": "publisher", "value": self.publisher}, + {"key": "publisher city", "value": self.publishercity}, + {"key": "series volume", "value": self.seriesvolume}, + {"key": "series title", "value": self.seriestitle}, + {"key": "series editor", "value": self.serieseditor}, + {"key": "raw citation", "value": self.rawcitation}, + {"key": "comments", "value": self.comments}, ] - if str(self.referencetype).lower() == 'interview': + if str(self.referencetype).lower() == "interview": return [ - {'key':'reference type', 'value': str(self.referencetype)}, - {'key':'description', 'value': self.referencetext}, - {'key':'interviewee', 'value': str(self.intervieweeid)}, - {'key':'interviewer', 'value': str(self.interviewerid)}, - {'key':'year', 'value': self.year}, - {'key':'place of interview', 'value': self.placeofinterview}, - {'key':'raw citation', 'value': self.rawcitation}, - {'key':'comments', 'value': self.comments}, + {"key": "reference type", "value": str(self.referencetype)}, + {"key": "description", "value": self.referencetext}, + {"key": "interviewee", "value": str(self.intervieweeid)}, + {"key": "interviewer", "value": str(self.interviewerid)}, + {"key": "year", "value": self.year}, + {"key": "place of interview", "value": self.placeofinterview}, + {"key": "raw citation", "value": self.rawcitation}, + {"key": "comments", "value": self.comments}, ] return [ - {'key':'reference type', 'value': str(self.referencetype)}, - {'key':'title', 'value': self.title}, - {'key':'description', 'value': self.referencetext}, - {'key':'year', 'value': self.year}, - {'key':'primary author', 'value': self.authorprimary}, - {'key':'secondary author', 'value': self.authorsecondary}, - {'key':'publisher', 'value': self.publisher}, - {'key':'publisher city', 'value': self.publishercity}, - {'key':'series volume', 'value': self.seriesvolume}, - {'key':'series title', 'value': self.seriestitle}, - {'key':'series editor', 'value': self.serieseditor}, - {'key':'interviewee', 'value': str(self.intervieweeid)}, - {'key':'interviewer', 'value': str(self.interviewerid)}, - {'key':'place of interview', 'value': self.placeofinterview}, - {'key':'journal', 'value': self.journal}, - {'key':'journal pages', 'value': self.journalpages}, - {'key':'prepared for', 'value': self.preparedfor}, - {'key':'raw citation', 'value': self.rawcitation}, - {'key':'comments', 'value': self.comments}, + {"key": "reference type", "value": str(self.referencetype)}, + {"key": "title", "value": self.title}, + {"key": "description", "value": self.referencetext}, + {"key": "year", "value": self.year}, + {"key": "primary author", "value": self.authorprimary}, + {"key": "secondary author", "value": self.authorsecondary}, + {"key": "publisher", "value": self.publisher}, + {"key": "publisher city", "value": self.publishercity}, + {"key": "series volume", "value": self.seriesvolume}, + {"key": "series title", "value": self.seriestitle}, + {"key": "series editor", "value": self.serieseditor}, + {"key": "interviewee", "value": str(self.intervieweeid)}, + {"key": "interviewer", "value": str(self.interviewerid)}, + {"key": "place of interview", "value": self.placeofinterview}, + {"key": "journal", "value": self.journal}, + {"key": "journal pages", "value": self.journalpages}, + {"key": "prepared for", "value": self.preparedfor}, + {"key": "raw citation", "value": self.rawcitation}, + {"key": "comments", "value": self.comments}, ] def get_response_format(self): - type = 'citations' - category_name = 'Source' + type = "citations" + category_name = "Source" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.referencetext, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.referencetext, + "link": "/explore/%s/%d" % (type, self.pk), } def get_related_objects(self, object_id): @@ -1505,60 +2167,107 @@ def get_related_objects(self, object_id): place_resource_events = self.placesresourcecitationevents_set.all() activity_events = self.resourceactivitycitationevents_set.all() return [ - {'title': 'Place Relationships', 'data': self.format_data(place_events, 'citationid', ['citation'])}, - {'title': 'Resource Relationships', 'data': self.format_data(resource_events, 'citationid', ['citation'])}, - {'title': 'Media Relationships', 'data': self.format_data(media_events, 'citationid', ['citation'])}, - {'title': 'Place-Resource Relationships', 'data': self.format_data(place_resource_events, 'citationid', ['citation'])}, - {'title': 'Activity Relationships', 'data': self.format_data(activity_events, 'citationid', ['citation'])}, + { + "title": "Place Relationships", + "data": self.format_data(place_events, "citationid", ["citation"]), + }, + { + "title": "Resource Relationships", + "data": self.format_data(resource_events, "citationid", ["citation"]), + }, + { + "title": "Media Relationships", + "data": self.format_data(media_events, "citationid", ["citation"]), + }, + { + "title": "Place-Resource Relationships", + "data": self.format_data( + place_resource_events, "citationid", ["citation"] + ), + }, + { + "title": "Activity Relationships", + "data": self.format_data(activity_events, "citationid", ["citation"]), + }, ] @property def title_text(self): - if str(self.referencetype).lower() == 'interview': - return "%s: interviewed by %s" % (str(self.intervieweeid), str(self.interviewerid)) + if str(self.referencetype).lower() == "interview": + return "%s: interviewed by %s" % ( + str(self.intervieweeid), + str(self.interviewerid), + ) from django.utils.html import strip_tags from html import unescape + return unescape(strip_tags(self.title)) @property def description_text(self): from django.utils.html import strip_tags from html import unescape + return unescape(strip_tags(self.referencetext)) def __str__(self): - if str(self.referencetype) == 'Interview': + if str(self.referencetype) == "Interview": try: interviewee = People.objects.get(pk=self.intervieweeid.pk) except Exception as e: - interviewee = 'Unknown Interviewee' + interviewee = "Unknown Interviewee" # return '[%s] %s (%d) - %d' % (str(self.referencetype), interviewee, self.year, self.pk) - return '[%s] %s (%s)' % (str(self.referencetype), str(interviewee), str(self.year)) or '' + return ( + "[%s] %s (%s)" + % (str(self.referencetype), str(interviewee), str(self.year)) + or "" + ) else: - return '[%s] %s (%s)' % (str(self.referencetype), str(self.title), str(self.year)) or '' + return ( + "[%s] %s (%s)" + % (str(self.referencetype), str(self.title), str(self.year)) + or "" + ) def __unicode__(self): - return unicode('%s' % (str(self))) + return unicode("%s" % (str(self))) + class PlacesCitationEvents(SimpleRelationship): - placeid = models.ForeignKey(Places, db_column='placeid', primary_key=False, verbose_name='place', on_delete=models.CASCADE) - citationid = models.ForeignKey(Citations, db_column='citationid', verbose_name='citation', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='excerpt/description') - pages = models.CharField(db_column='pages', max_length=255, blank=True, null=True) + placeid = models.ForeignKey( + Places, + db_column="placeid", + primary_key=False, + verbose_name="place", + on_delete=models.CASCADE, + ) + citationid = models.ForeignKey( + Citations, + db_column="citationid", + verbose_name="citation", + on_delete=models.CASCADE, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="excerpt/description", + ) + pages = models.CharField(db_column="pages", max_length=255, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'placescitationevents' + db_table = "placescitationevents" app_label = "Relationships" - verbose_name = 'Place - Source' - verbose_name_plural = 'Places - Sources' - unique_together = (('placeid', 'citationid'),) + verbose_name = "Place - Source" + verbose_name_plural = "Places - Sources" + unique_together = (("placeid", "citationid"),) def __unicode__(self): return unicode("%s %s" % (str(self.placeid), str(self.citationid))) def __str__(self): - return "%s %s" % (str(self.placeid), str(self.citationid)) or '' + return "%s %s" % (str(self.placeid), str(self.citationid)) or "" def keyword_search(keyword): place_qs = Places.keyword_search(keyword) @@ -1568,51 +2277,56 @@ def keyword_search(keyword): citation_loi = [citation.pk for citation in citation_qs] return PlacesCitationEvents.objects.filter( - Q(citationid__in=citation_loi) | - Q(placeid__in=place_loi) | - Q(relationshipdescription__icontains=keyword) + Q(citationid__in=citation_loi) + | Q(placeid__in=place_loi) + | Q(relationshipdescription__icontains=keyword) ) @property def description_text(self): from django.utils.html import strip_tags from html import unescape + return unescape(strip_tags(self.relationshipdescription)) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/placescitationevents/%d/' % self.pk + return "/explore/placescitationevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key': 'Place', 'value': [self.placeid.get_query_json()]}) - relationship_list.append({'key': 'Bibliographic Source', 'value': [self.citationid.get_query_json()]}) + relationship_list.append( + {"key": "Place", "value": [self.placeid.get_query_json()]} + ) + relationship_list.append( + {"key": "Bibliographic Source", "value": [self.citationid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'place', 'value': str(self.placeid)}, - {'key':'citation', 'value': str(self.citationid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} + {"key": "place", "value": str(self.placeid)}, + {"key": "citation", "value": str(self.citationid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Placescitationevents' - category_name = 'Place - Source' + type = "Placescitationevents" + category_name = "Place - Source" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -1621,78 +2335,142 @@ def get_relationship_model(self, req_model): else: return self.placeid + # Appears to be the version of AccessDB(s). Export gave 1 entry: [1,1,1] class CurrentVersion(models.Model): - id = models.AutoField(db_column='id', primary_key=True) - backendversion = models.IntegerField(db_column='backendversion', blank=True, null=True, verbose_name='backend version') - frontendversion = models.IntegerField(db_column='frontendversion', blank=True, null=True, verbose_name='frontend version') + id = models.AutoField(db_column="id", primary_key=True) + backendversion = models.IntegerField( + db_column="backendversion", + blank=True, + null=True, + verbose_name="backend version", + ) + frontendversion = models.IntegerField( + db_column="frontendversion", + blank=True, + null=True, + verbose_name="frontend version", + ) class Meta: managed = MANAGED - db_table = 'currentversion' - app_label = 'Lookup' - verbose_name = 'current version' - verbose_name_plural = 'current versions' + db_table = "currentversion" + app_label = "Lookup" + verbose_name = "current version" + verbose_name_plural = "current versions" def __unicode__(self): - return unicode("Back: %d, Front:%d" % (self.backendversion, self.frontendversion)) + return unicode( + "Back: %d, Front:%d" % (self.backendversion, self.frontendversion) + ) def __str__(self): - return "Back: %d, Front:%d" % (self.backendversion, self.frontendversion) or '' + return "Back: %d, Front:%d" % (self.backendversion, self.frontendversion) or "" + class LookupLocalityType(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - localitytype = models.CharField(db_column='localitytype', max_length=255, verbose_name='locality type') + id = models.AutoField(db_column="id", primary_key=True) + localitytype = models.CharField( + db_column="localitytype", max_length=255, verbose_name="locality type" + ) class Meta: managed = MANAGED - ordering = ['localitytype'] - db_table = 'lookuplocalitytype' + ordering = ["localitytype"] + db_table = "lookuplocalitytype" app_label = "Lookup" verbose_name = "locality type" verbose_name_plural = "locality types" def __unicode__(self): - return unicode('%s' % (self.localitytype)) + return unicode("%s" % (self.localitytype)) def __str__(self): - return self.localitytype or '' + return self.localitytype or "" + class Locality(Queryable): - localityid = models.AutoField(db_column='localityid', primary_key=True) - placeid = models.ForeignKey(Places, db_column='placeid', blank=True, null=True, verbose_name='place', default=None, on_delete=models.SET_DEFAULT) - englishname = models.CharField(db_column='englishname', max_length=255, blank=True, null=True, verbose_name='english name') - indigenousname = models.CharField(db_column='indigenousname', max_length=255, blank=True, null=True, verbose_name='indigenous name') - localitytype = models.ForeignKey(LookupLocalityType, db_column='localitytype', max_length=255, blank=True, null=True, verbose_name='type', default=None, on_delete=models.SET_DEFAULT) + localityid = models.AutoField(db_column="localityid", primary_key=True) + placeid = models.ForeignKey( + Places, + db_column="placeid", + blank=True, + null=True, + verbose_name="place", + default=None, + on_delete=models.SET_DEFAULT, + ) + englishname = models.CharField( + db_column="englishname", + max_length=255, + blank=True, + null=True, + verbose_name="english name", + ) + indigenousname = models.CharField( + db_column="indigenousname", + max_length=255, + blank=True, + null=True, + verbose_name="indigenous name", + ) + localitytype = models.ForeignKey( + LookupLocalityType, + db_column="localitytype", + max_length=255, + blank=True, + null=True, + verbose_name="type", + default=None, + on_delete=models.SET_DEFAULT, + ) ### Updated Geometry Fields ### objects = GeoManager() geometry = GeometryField( - srid=3857, - null=True, blank=True, - verbose_name="Place Geometry", - default=None + srid=3857, null=True, blank=True, verbose_name="Place Geometry", default=None + ) + Source = models.CharField( + db_column="source", + max_length=255, + blank=True, + null=True, + default=None, + verbose_name="source", + ) + DigitizedBy = models.CharField( + db_column="digitizedby", + max_length=255, + blank=True, + null=True, + default=None, + verbose_name="digitized by", + ) + DigitizedDate = models.DateTimeField( + db_column="digitizeddate", + blank=True, + null=True, + auto_now_add=False, + default=None, + verbose_name="digitized date", ) - Source = models.CharField(db_column='source', max_length=255, blank=True, null=True, default=None, verbose_name='source') - DigitizedBy = models.CharField(db_column='digitizedby', max_length=255, blank=True, null=True, default=None, verbose_name='digitized by') - DigitizedDate = models.DateTimeField(db_column='digitizeddate', blank=True, null=True, auto_now_add=False, default=None, verbose_name='digitized date') class Meta: managed = MANAGED - db_table = 'locality' - verbose_name = 'Locality' - verbose_name_plural = 'Localities' + db_table = "locality" + verbose_name = "Locality" + verbose_name_plural = "Localities" def __unicode__(self): if self.englishname: - return unicode('%s' % (self.englishname)) + return unicode("%s" % (self.englishname)) else: - return unicode('Locality in %s' % (self.placeid.englishplacename)) + return unicode("Locality in %s" % (self.placeid.englishplacename)) def __str__(self): if self.englishname: - return self.englishname or '' + return self.englishname or "" else: - return ('Locality in %s' % (self.placeid.englishplacename)) or '' + return ("Locality in %s" % (self.placeid.englishplacename)) or "" def keyword_search(keyword): place_qs = Places.keyword_search(keyword) @@ -1702,32 +2480,38 @@ def keyword_search(keyword): locality_loi = [locality.pk for locality in locality_qs] return Locality.objects.filter( - Q(placeid__in=place_loi) | - Q(englishname__icontains=keyword) | - Q(indigenousname__icontains=keyword) | - Q(localitytype__in=locality_loi) + Q(placeid__in=place_loi) + | Q(englishname__icontains=keyword) + | Q(indigenousname__icontains=keyword) + | Q(localitytype__in=locality_loi) ) def image(self): - return settings.RECORD_ICONS['place'] + return settings.RECORD_ICONS["place"] def subtitle(self): return self.indigenousname def link(self): - return '/explore/locality/%d/' % self.pk + return "/explore/locality/%d/" % self.pk def relationships(self): relationship_list = [] places = [self.placeid.get_query_json()] if len(places) > 0: - relationship_list.append({'key': 'Place', 'value': places}) - placeresources = [x.get_query_json() for x in self.localityplaceresourceevents_set.all()] + relationship_list.append({"key": "Place", "value": places}) + placeresources = [ + x.get_query_json() for x in self.localityplaceresourceevents_set.all() + ] if len(placeresources) > 0: - relationship_list.append({'key': 'Place-resources', 'value': placeresources}) - gisselections = [x.get_query_json() for x in self.localitygisselections_set.all()] + relationship_list.append( + {"key": "Place-resources", "value": placeresources} + ) + gisselections = [ + x.get_query_json() for x in self.localitygisselections_set.all() + ] if len(gisselections) > 0: - relationship_list.append({'key': 'GIS Selections', 'value': gisselections}) + relationship_list.append({"key": "GIS Selections", "value": gisselections}) return relationship_list def map(self, srid=3857): @@ -1740,58 +2524,91 @@ def map(self, srid=3857): def data(self): return [ - {'key':'english name', 'value': self.englishname}, - {'key':'indigenous name', 'value': self.indigenousname}, - {'key':'place', 'value': str(self.placeid)}, - {'key':'locality type', 'value': str(self.localitytype)} + {"key": "english name", "value": self.englishname}, + {"key": "indigenous name", "value": self.indigenousname}, + {"key": "place", "value": str(self.placeid)}, + {"key": "locality type", "value": str(self.localitytype)}, ] def get_response_format(self): - type = 'locality' + type = "locality" category_name = "Locality" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.indigenousname, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.indigenousname, + "link": "/explore/%s/%d" % (type, self.pk), } + class LocalityGISSelections(models.Model): - localityid = models.ForeignKey(Locality, db_column='localityid', blank=True, null=True, verbose_name='locality', default=None, on_delete=models.SET_DEFAULT) - localitylabel = models.CharField(db_column='localitylabel', max_length=255, blank=True, null=True, verbose_name='locality label') - sourcefc = models.CharField(db_column='sourcefc', max_length=255, blank=True, null=True, verbose_name='source fc') + localityid = models.ForeignKey( + Locality, + db_column="localityid", + blank=True, + null=True, + verbose_name="locality", + default=None, + on_delete=models.SET_DEFAULT, + ) + localitylabel = models.CharField( + db_column="localitylabel", + max_length=255, + blank=True, + null=True, + verbose_name="locality label", + ) + sourcefc = models.CharField( + db_column="sourcefc", + max_length=255, + blank=True, + null=True, + verbose_name="source fc", + ) class Meta: managed = MANAGED - db_table = 'localitygisselections' - app_label = 'Relationships' - verbose_name_plural = 'Locality GIS Selections' + db_table = "localitygisselections" + app_label = "Relationships" + verbose_name_plural = "Locality GIS Selections" def __unicode__(self): - return unicode('%s' % (self.localitylabel)) + return unicode("%s" % (self.localitylabel)) def __str__(self): - return self.localitylabel or '' + return self.localitylabel or "" + class LocalityPlaceResourceEvent(Queryable): - placeresourceid = models.ForeignKey(PlacesResourceEvents, db_column='placeresourceid', primary_key=False, verbose_name='place resource', on_delete=models.PROTECT) - localityid = models.ForeignKey(Locality, db_column='localityid', verbose_name='locality', on_delete=models.PROTECT) + placeresourceid = models.ForeignKey( + PlacesResourceEvents, + db_column="placeresourceid", + primary_key=False, + verbose_name="place resource", + on_delete=models.PROTECT, + ) + localityid = models.ForeignKey( + Locality, + db_column="localityid", + verbose_name="locality", + on_delete=models.PROTECT, + ) class Meta: managed = MANAGED - db_table = 'localityplaceresourceevent' - unique_together = (('placeresourceid', 'localityid'),) - app_label = 'Relationships' - verbose_name_plural = 'Localities - Place-Resources' + db_table = "localityplaceresourceevent" + unique_together = (("placeresourceid", "localityid"),) + app_label = "Relationships" + verbose_name_plural = "Localities - Place-Resources" def __unicode__(self): return unicode("%s - %s" % (str(self.localityid), str(self.placeresourceid))) def __str__(self): - return "%s - %s" % (str(self.localityid), str(self.placeresourceid)) or '' + return "%s - %s" % (str(self.localityid), str(self.placeresourceid)) or "" def keyword_search(keyword): locality_qs = Locality.keyword_search(keyword) @@ -1801,161 +2618,248 @@ def keyword_search(keyword): placeresource_loi = [placeresource.pk for placeresource in placeresource_qs] return LocalityPlaceResourceEvent.objects.filter( - Q(placeresourceid__in=placeresource_loi) | - Q(localityid__in=locality_loi) + Q(placeresourceid__in=placeresource_loi) | Q(localityid__in=locality_loi) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): - return '' + return "" def link(self): - return '/explore/localityplaceresourceevent/%d/' % self.pk + return "/explore/localityplaceresourceevent/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key': 'Place-Resource', 'value': [self.placeresourceid.get_query_json()]}) - relationship_list.append({'key': 'Locality', 'value': [self.localityid.get_query_json()]}) + relationship_list.append( + {"key": "Place-Resource", "value": [self.placeresourceid.get_query_json()]} + ) + relationship_list.append( + {"key": "Locality", "value": [self.localityid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'place', 'value': str(self.placeresourceid.placeid)}, - {'key':'resource', 'value': str(self.placeresourceid.resourceid)}, - {'key':'locality', 'value': str(self.localityid)} + {"key": "place", "value": str(self.placeresourceid.placeid)}, + {"key": "resource", "value": str(self.placeresourceid.resourceid)}, + {"key": "locality", "value": str(self.localityid)}, ] def get_response_format(self): - type = 'Placescitationevents' + type = "Placescitationevents" category_name = "Place - Source" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': 'locality place resource event', - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": "locality place resource event", + "link": "/explore/%s/%d" % (type, self.pk), } + class LookupMediaType(Lookup): - id = models.AutoField(db_column='id', primary_key=True) - mediatype = models.CharField(db_column='mediatype', max_length=255, verbose_name='type') - mediacategory = models.CharField(db_column='mediacategory', max_length=255, blank=True, null=True, verbose_name='category') + id = models.AutoField(db_column="id", primary_key=True) + mediatype = models.CharField( + db_column="mediatype", max_length=255, verbose_name="type" + ) + mediacategory = models.CharField( + db_column="mediacategory", + max_length=255, + blank=True, + null=True, + verbose_name="category", + ) class Meta: managed = MANAGED - ordering = ['mediatype'] - db_table = 'lookupmediatype' - app_label = 'Lookup' - verbose_name="media type" - verbose_name_plural="media types" + ordering = ["mediatype"] + db_table = "lookupmediatype" + app_label = "Lookup" + verbose_name = "media type" + verbose_name_plural = "media types" def __unicode__(self): - return unicode('%s' % (self.mediatype)) + return unicode("%s" % (self.mediatype)) def __str__(self): - return self.mediatype or '' + return self.mediatype or "" def keyword_search(keyword): return LookupMediaType.objects.filter( - Q(mediatype__icontains=keyword) | - Q(mediacategory__icontains=keyword) + Q(mediatype__icontains=keyword) | Q(mediacategory__icontains=keyword) ) + class LookupUserInfo(Lookup): - username = models.CharField(db_column='username', max_length=100, blank=True, null=True, verbose_name='username') - usingcustomusername = models.BooleanField(db_column='usingcustomusername', default=False, verbose_name='using custom username') - usertitle = models.CharField(db_column='usertitle', max_length=100, blank=True, null=True, verbose_name='title') - useraffiliation = models.CharField(db_column='useraffiliation', max_length=100, blank=True, null=True, verbose_name='affiliation') + username = models.CharField( + db_column="username", + max_length=100, + blank=True, + null=True, + verbose_name="username", + ) + usingcustomusername = models.BooleanField( + db_column="usingcustomusername", + default=False, + verbose_name="using custom username", + ) + usertitle = models.CharField( + db_column="usertitle", + max_length=100, + blank=True, + null=True, + verbose_name="title", + ) + useraffiliation = models.CharField( + db_column="useraffiliation", + max_length=100, + blank=True, + null=True, + verbose_name="affiliation", + ) class Meta: managed = MANAGED - ordering = ['username'] - db_table = 'lookupuserinfo' - app_label = 'Lookup' - verbose_name = 'user info' - verbose_name_plural = 'user info' + ordering = ["username"] + db_table = "lookupuserinfo" + app_label = "Lookup" + verbose_name = "user info" + verbose_name_plural = "user info" def __unicode__(self): - return unicode('%s' % (self.username)) + return unicode("%s" % (self.username)) def __str__(self): - return self.username or '' + return self.username or "" -# * Bulk Media Upload +# * Bulk Media Upload # formerly known as Media Collection class MediaBulkUpload(Reviewable, Queryable, Record, ModeratedModel): from datetime import date - # Default name for the media bulk upload - defaultmediabulkname = 'Bulk Upload on %s' % date.today() + # Default name for the media bulk upload + defaultmediabulkname = "Bulk Upload on %s" % date.today() - mediabulkname = models.CharField(max_length=255, blank=True, null=True, verbose_name='name', default=defaultmediabulkname) - mediabulkdate = models.DateField(blank=True, null=True, default=date.today, verbose_name='date') - mediabulkdescription = models.TextField(blank=True, null=True, verbose_name='description') + mediabulkname = models.CharField( + max_length=255, + blank=True, + null=True, + verbose_name="name", + default=defaultmediabulkname, + ) + mediabulkdate = models.DateField( + blank=True, null=True, default=date.today, verbose_name="date" + ) + mediabulkdescription = models.TextField( + blank=True, null=True, verbose_name="description" + ) - class Meta: managed = MANAGED - verbose_name = 'Media Bulk Upload' - verbose_name_plural = 'Media Bulk Uploads' + verbose_name = "Media Bulk Upload" + verbose_name_plural = "Media Bulk Uploads" def __str__(self): - return self.mediabulkname or '' + return self.mediabulkname or "" # @property # def count(self): - # number of media items uploaded + # number of media items uploaded # Ability to edit Media + class Media(Reviewable, Queryable, Record, ModeratedModel): - mediaid = models.AutoField(db_column='mediaid', primary_key=True) - mediatype = models.ForeignKey(LookupMediaType, db_column='mediatype', blank=True, null=True, verbose_name='type', default=None, on_delete=models.SET_DEFAULT) - medianame = models.CharField(db_column='medianame', max_length=255, blank=True, null=True, verbose_name='name') - mediadescription = HTMLField(db_column='mediadescription', blank=True, null=True, verbose_name='description') - medialink = models.CharField(db_column='medialink', max_length=255, blank=True, null=True, verbose_name='historic location') - mediafile = models.FileField(db_column='mediafile', max_length=255, blank=True, null=True, verbose_name='file') - limitedaccess = models.BooleanField(db_column='limitedaccess', null=True, default=False, verbose_name='limited access?') + mediaid = models.AutoField(db_column="mediaid", primary_key=True) + mediatype = models.ForeignKey( + LookupMediaType, + db_column="mediatype", + blank=True, + null=True, + verbose_name="type", + default=None, + on_delete=models.SET_DEFAULT, + ) + medianame = models.CharField( + db_column="medianame", + max_length=255, + blank=True, + null=True, + verbose_name="name", + ) + mediadescription = HTMLField( + db_column="mediadescription", blank=True, null=True, verbose_name="description" + ) + medialink = models.CharField( + db_column="medialink", + max_length=255, + blank=True, + null=True, + verbose_name="historic location", + ) + mediafile = models.FileField( + db_column="mediafile", + max_length=255, + blank=True, + null=True, + verbose_name="file", + ) + limitedaccess = models.BooleanField( + db_column="limitedaccess", + null=True, + default=False, + verbose_name="limited access?", + ) # * Media Bulk Upload Event - mediabulkupload = models.ForeignKey(MediaBulkUpload, related_name='mediabulkupload', blank=True, null=True, on_delete=models.CASCADE) + mediabulkupload = models.ForeignKey( + MediaBulkUpload, + related_name="mediabulkupload", + blank=True, + null=True, + on_delete=models.CASCADE, + ) class Meta: managed = MANAGED - db_table = 'media' - verbose_name = 'Medium' - verbose_name_plural = 'Media' + db_table = "media" + verbose_name = "Medium" + verbose_name_plural = "Media" def __unicode__(self): - return unicode('%s' % (self.medianame)) + return unicode("%s" % (self.medianame)) def __str__(self): - return "%s [ %s ]" % (self.medianame, self.mediatype) or '' + return "%s [ %s ]" % (self.medianame, self.mediatype) or "" def keyword_search( - keyword, # string - fields=['medianame','mediadescription','medialink','mediafile'], # fields to search - fk_fields=[ - ('mediatype','mediatype') - ] # fields to search for fk objects - ): - + keyword, # string + fields=[ + "medianame", + "mediadescription", + "medialink", + "mediafile", + ], # fields to search + fk_fields=[("mediatype", "mediatype")], # fields to search for fk objects + ): weight_lookup = { - 'medianame': 'A', - 'mediadescription': 'B', - 'medialink': 'B', - 'mediafile': 'B', - 'mediatype': 'C' + "medianame": "A", + "mediadescription": "B", + "medialink": "B", + "mediafile": "B", + "mediatype": "C", } - sort_field = 'medianame' + sort_field = "medianame" - return run_keyword_search(Media, keyword, fields, fk_fields, weight_lookup, sort_field) + return run_keyword_search( + Media, keyword, fields, fk_fields, weight_lookup, sort_field + ) # def keyword_search(keyword): # type_qs = LookupMediaType.keyword_search(keyword) @@ -1971,95 +2875,123 @@ def keyword_search( def description_text(self): from django.utils.html import strip_tags from html import unescape + return unescape(strip_tags(self.mediadescription)) def image(self): - return settings.RECORD_ICONS['media'] + return settings.RECORD_ICONS["media"] def subtitle(self): return self.mediatype def link(self): - return '/explore/media/%d/' % self.pk + return "/explore/media/%d/" % self.pk def relationships(self): relationship_list = [] - places = [x.get_relationship_json(type(self)) for x in self.placesmediaevents_set.all()] + places = [ + x.get_relationship_json(type(self)) + for x in self.placesmediaevents_set.all() + ] if len(places) > 0: - relationship_list.append({'key': 'Places', 'value': places}) - resources = [x.get_relationship_json(type(self)) for x in self.resourcesmediaevents_set.all()] + relationship_list.append({"key": "Places", "value": places}) + resources = [ + x.get_relationship_json(type(self)) + for x in self.resourcesmediaevents_set.all() + ] if len(resources) > 0: - relationship_list.append({'key': 'Resources', 'value': resources}) - citations = [x.get_relationship_json(type(self)) for x in self.mediacitationevents_set.all()] + relationship_list.append({"key": "Resources", "value": resources}) + citations = [ + x.get_relationship_json(type(self)) + for x in self.mediacitationevents_set.all() + ] if len(citations) > 0: - relationship_list.append({'key': 'Bibliographic Sources', 'value': citations}) - activities = [x.get_relationship_json(type(self)) for x in self.resourceactivitymediaevents_set.all()] + relationship_list.append( + {"key": "Bibliographic Sources", "value": citations} + ) + activities = [ + x.get_relationship_json(type(self)) + for x in self.resourceactivitymediaevents_set.all() + ] if len(activities) > 0: - relationship_list.append({'key': 'Activities', 'value': activities}) - placeresources = [x.get_relationship_json(type(self)) for x in self.placesresourcemediaevents_set.all()] + relationship_list.append({"key": "Activities", "value": activities}) + placeresources = [ + x.get_relationship_json(type(self)) + for x in self.placesresourcemediaevents_set.all() + ] if len(placeresources) > 0: - relationship_list.append({'key': 'Place-Resources', 'value': placeresources}) + relationship_list.append( + {"key": "Place-Resources", "value": placeresources} + ) return relationship_list def restrict_data(self, user): - if self.limitedaccess and user.accesslevel.accesslevel not in ['Administrator', 'Editor']: + if self.limitedaccess and user.accesslevel.accesslevel not in [ + "Administrator", + "Editor", + ]: return True else: return False def limited_data(self): if self.mediafile == None: - mediafile = 'None' + mediafile = "None" else: mediafile = "Please ask an administrator if you need access to this file." return [ - {'key':'name', 'value': self.medianame}, - {'key':'media type', 'value': str(self.mediatype)}, - {'key':'media description', 'value': self.mediadescription}, - {'key':'file', 'value': mediafile}, + {"key": "name", "value": self.medianame}, + {"key": "media type", "value": str(self.mediatype)}, + {"key": "media description", "value": self.mediadescription}, + {"key": "file", "value": mediafile}, ] def media(self): if not self.medialink == None or not self.mediafile == None: return { - 'file': str(self.mediafile), - 'type': str(self.mediatype), + "file": str(self.mediafile), + "type": str(self.mediatype), } else: return False def data(self): from TEKDB.settings import MEDIA_URL + if self.mediafile == None: - mediafile = 'None' + mediafile = "None" else: - mediafile = "%s" % (MEDIA_URL, str(self.mediafile), str(self.mediafile)) + mediafile = "%s" % ( + MEDIA_URL, + str(self.mediafile), + str(self.mediafile), + ) return [ - {'key':'name', 'value': self.medianame}, - {'key':'media type', 'value': str(self.mediatype)}, - {'key':'media description', 'value': self.mediadescription}, + {"key": "name", "value": self.medianame}, + {"key": "media type", "value": str(self.mediatype)}, + {"key": "media description", "value": self.mediadescription}, # {'key':'link', 'value': self.medialink}, - {'key':'file', 'value': mediafile}, + {"key": "file", "value": mediafile}, ] def get_response_format(self): - type = 'media' - category_name = 'Media' + type = "media" + category_name = "Media" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.mediadescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.mediadescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_record_dict(self, user, srid=3857): record_dict = super(Media, self).get_record_dict(user, srid) - record_dict['name'] = self.medianame + record_dict["name"] = self.medianame return record_dict __original_file = None @@ -2070,6 +3002,7 @@ def __init__(self, *args, **kwargs): def save(self, *args, **kwargs): import os + # Detect if mediafile field changed if self.mediafile != self.__original_file: if self.medialink and os.path.exists(self.medialink): @@ -2095,43 +3028,77 @@ def get_related_objects(self, object_id): place_res_events = self.placesresourcemediaevents_set.all() activity_events = self.resourceactivitymediaevents_set.all() return [ - {'title': 'Place Relationships', 'data': self.format_data(place_events, 'mediaid', ['media'])}, - {'title': 'Citation Relationships', 'data': self.format_data(citation_events, 'mediaid', ['media'])}, - {'title': 'Resource Relationships', 'data': self.format_data(resource_events, 'mediaid', ['media'])}, - {'title': 'Place-Resource Relationships', 'data': self.format_data(place_res_events, 'mediaid', ['media'])}, - {'title': 'Activity Relationships', 'data': self.format_data(activity_events, 'mediaid', ['media'])}, + { + "title": "Place Relationships", + "data": self.format_data(place_events, "mediaid", ["media"]), + }, + { + "title": "Citation Relationships", + "data": self.format_data(citation_events, "mediaid", ["media"]), + }, + { + "title": "Resource Relationships", + "data": self.format_data(resource_events, "mediaid", ["media"]), + }, + { + "title": "Place-Resource Relationships", + "data": self.format_data(place_res_events, "mediaid", ["media"]), + }, + { + "title": "Activity Relationships", + "data": self.format_data(activity_events, "mediaid", ["media"]), + }, ] + # Signal handler to delete the associated media file when a Media instance is deleted @receiver(post_delete, sender=Media) def delete_mediafile(sender, instance, **kwargs): if instance.mediafile and os.path.isfile(instance.mediafile.path): os.remove(instance.mediafile.path) + class MediaCitationEvents(SimpleRelationship): - mediaid = models.ForeignKey(Media, db_column='mediaid', primary_key=False, verbose_name='media', on_delete=models.CASCADE) - citationid = models.ForeignKey(Citations, db_column='citationid', verbose_name='citation', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='excerpt/description') - pages = models.CharField(db_column='pages', max_length=255, blank=True, null=True) + mediaid = models.ForeignKey( + Media, + db_column="mediaid", + primary_key=False, + verbose_name="media", + on_delete=models.CASCADE, + ) + citationid = models.ForeignKey( + Citations, + db_column="citationid", + verbose_name="citation", + on_delete=models.CASCADE, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="excerpt/description", + ) + pages = models.CharField(db_column="pages", max_length=255, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'mediacitationevents' - app_label = 'Relationships' - verbose_name = 'Medium - Source' - verbose_name_plural = 'Media - Sources' - unique_together = (('mediaid', 'citationid'),) + db_table = "mediacitationevents" + app_label = "Relationships" + verbose_name = "Medium - Source" + verbose_name_plural = "Media - Sources" + unique_together = (("mediaid", "citationid"),) def __unicode__(self): return unicode("%s %s" % (str(self.mediaid), str(self.citationid))) def __str__(self): - return "%s %s" % (str(self.mediaid), str(self.citationid)) or '' + return "%s %s" % (str(self.mediaid), str(self.citationid)) or "" @property def description_text(self): from django.utils.html import strip_tags from html import unescape + return unescape(strip_tags(self.relationshipdescription)) def keyword_search(keyword): @@ -2142,45 +3109,49 @@ def keyword_search(keyword): citation_loi = [citation.pk for citation in citation_qs] return MediaCitationEvents.objects.filter( - Q(citationid__in=citation_loi) | - Q(mediaid__in=media_loi) | - Q(relationshipdescription__icontains=keyword) + Q(citationid__in=citation_loi) + | Q(mediaid__in=media_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/mediacitationevents/%d/' % self.pk + return "/explore/mediacitationevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Media','value':[self.mediaid.get_query_json()]}) - relationship_list.append({'key':'Bibliographic Source','value':[self.citationid.get_query_json()]}) + relationship_list.append( + {"key": "Media", "value": [self.mediaid.get_query_json()]} + ) + relationship_list.append( + {"key": "Bibliographic Source", "value": [self.citationid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'media', 'value': str(self.mediaid)}, - {'key':'citation', 'value': str(self.citationid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} + {"key": "media", "value": str(self.mediaid)}, + {"key": "citation", "value": str(self.citationid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Mediacitationevents' - category_name = 'Media - Sources' + type = "Mediacitationevents" + category_name = "Media - Sources" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2189,73 +3160,122 @@ def get_relationship_model(self, req_model): else: return self.mediaid -#Unsure why this is not a 'SimpleRelationship' + +# Unsure why this is not a 'SimpleRelationship' class PlaceAltIndigenousName(DefaultModel, DefaultModeratedModel, ModeratedModel): - altindigenousnameid = models.AutoField(db_column='altindigenousnameid', primary_key=True) - placeid = models.ForeignKey(Places, db_column='placeid', blank=True, null=True, verbose_name='place', default=None, on_delete=models.SET_DEFAULT) - altindigenousname = models.CharField(db_column='altindigenousname', max_length=255, blank=True, null=True, verbose_name='alternate name') + altindigenousnameid = models.AutoField( + db_column="altindigenousnameid", primary_key=True + ) + placeid = models.ForeignKey( + Places, + db_column="placeid", + blank=True, + null=True, + verbose_name="place", + default=None, + on_delete=models.SET_DEFAULT, + ) + altindigenousname = models.CharField( + db_column="altindigenousname", + max_length=255, + blank=True, + null=True, + verbose_name="alternate name", + ) class Meta: managed = MANAGED - db_table = 'placealtindigenousname' - verbose_name = 'Place - Alternate Name' - verbose_name_plural = 'Places - Alternate Names' - app_label = 'Relationships' + db_table = "placealtindigenousname" + verbose_name = "Place - Alternate Name" + verbose_name_plural = "Places - Alternate Names" + app_label = "Relationships" def get_query_json(self): - return { - 'name': str(self), - 'link': False - } + return {"name": str(self), "link": False} def __unicode__(self): - return unicode('%s' % (self.altindigenousname)) + return unicode("%s" % (self.altindigenousname)) def __str__(self): - return self.altindigenousname or '' + return self.altindigenousname or "" def data(self): return [ - {'key':'place', 'value': str(self.placeid)}, - {'key':'alternate name', 'value':str(self.altindigenousname)}, + {"key": "place", "value": str(self.placeid)}, + {"key": "alternate name", "value": str(self.altindigenousname)}, ] + class PlaceGISSelections(models.Model): - placeid = models.ForeignKey(Places, db_column='placeid', blank=True, null=True, verbose_name='place', default=None, on_delete=models.SET_DEFAULT) - placelabel = models.CharField(db_column='placelabel', max_length=255, blank=True, null=True, verbose_name='label') - sourcefc = models.CharField(db_column='sourcefc', max_length=255, blank=True, null=True, verbose_name='source fc') + placeid = models.ForeignKey( + Places, + db_column="placeid", + blank=True, + null=True, + verbose_name="place", + default=None, + on_delete=models.SET_DEFAULT, + ) + placelabel = models.CharField( + db_column="placelabel", + max_length=255, + blank=True, + null=True, + verbose_name="label", + ) + sourcefc = models.CharField( + db_column="sourcefc", + max_length=255, + blank=True, + null=True, + verbose_name="source fc", + ) class Meta: managed = MANAGED - db_table = 'placegisselections' - app_label = 'Relationships' - verbose_name_plural = 'Place GIS Selections' + db_table = "placegisselections" + app_label = "Relationships" + verbose_name_plural = "Place GIS Selections" def __unicode__(self): - return unicode('%s' % (self.placelabel)) + return unicode("%s" % (self.placelabel)) def __str__(self): - return self.placelabel or '' + return self.placelabel or "" + class PlacesMediaEvents(SimpleRelationship): - placeid = models.ForeignKey(Places, db_column='placeid', primary_key=False, verbose_name='place', on_delete=models.CASCADE) - mediaid = models.ForeignKey(Media, db_column='mediaid', verbose_name='media', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='relationship description') - pages = models.CharField(db_column='pages', max_length=50, blank=True, null=True) + placeid = models.ForeignKey( + Places, + db_column="placeid", + primary_key=False, + verbose_name="place", + on_delete=models.CASCADE, + ) + mediaid = models.ForeignKey( + Media, db_column="mediaid", verbose_name="media", on_delete=models.CASCADE + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="relationship description", + ) + pages = models.CharField(db_column="pages", max_length=50, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'placesmediaevents' - verbose_name = 'Place - Medium' - app_label = 'Relationships' - verbose_name_plural = 'Places - Media' - unique_together = (('placeid', 'mediaid'),) + db_table = "placesmediaevents" + verbose_name = "Place - Medium" + app_label = "Relationships" + verbose_name_plural = "Places - Media" + unique_together = (("placeid", "mediaid"),) def __unicode__(self): return unicode("%s %s" % (str(self.placeid), str(self.mediaid))) def __str__(self): - return "%s %s" % (str(self.placeid), str(self.mediaid)) or '' + return "%s %s" % (str(self.placeid), str(self.mediaid)) or "" def keyword_search(keyword): place_qs = Places.keyword_search(keyword) @@ -2265,45 +3285,49 @@ def keyword_search(keyword): media_loi = [media.pk for media in media_qs] return PlacesMediaEvents.objects.filter( - Q(placeid__in=place_loi) | - Q(mediaid__in=media_loi) | - Q(relationshipdescription__icontains=keyword) + Q(placeid__in=place_loi) + | Q(mediaid__in=media_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/placesmediaevents/%s' % self.pk + return "/explore/placesmediaevents/%s" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Place', 'value':[self.placeid.get_query_json()]}) - relationship_list.append({'key':'Media', 'value':[self.mediaid.get_query_json()]}) + relationship_list.append( + {"key": "Place", "value": [self.placeid.get_query_json()]} + ) + relationship_list.append( + {"key": "Media", "value": [self.mediaid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'place', 'value': str(self.placeid)}, - {'key':'media', 'value': str(self.mediaid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} + {"key": "place", "value": str(self.placeid)}, + {"key": "media", "value": str(self.mediaid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Placesmediaevents' + type = "Placesmediaevents" category_name = "Place - Media" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2312,24 +3336,41 @@ def get_relationship_model(self, req_model): else: return self.mediaid + class PlacesResourceCitationEvents(SimpleRelationship): - placeresourceid = models.ForeignKey(PlacesResourceEvents, db_column='placeresourceid', primary_key=False, verbose_name='place resource', on_delete=models.CASCADE) - citationid = models.ForeignKey(Citations, db_column='citationid', verbose_name='citation', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='excerpt/description') - pages = models.CharField(db_column='pages', max_length=255, blank=True, null=True) + placeresourceid = models.ForeignKey( + PlacesResourceEvents, + db_column="placeresourceid", + primary_key=False, + verbose_name="place resource", + on_delete=models.CASCADE, + ) + citationid = models.ForeignKey( + Citations, + db_column="citationid", + verbose_name="citation", + on_delete=models.CASCADE, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="excerpt/description", + ) + pages = models.CharField(db_column="pages", max_length=255, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'placesresourcecitationevents' - unique_together = (('placeresourceid', 'citationid'),) - app_label = 'Relationships' - verbose_name_plural = 'Place-Resources - Sources' + db_table = "placesresourcecitationevents" + unique_together = (("placeresourceid", "citationid"),) + app_label = "Relationships" + verbose_name_plural = "Place-Resources - Sources" def __unicode__(self): return unicode("%s %s" % (str(self.placeresourceid), str(self.citationid))) def __str__(self): - return "%s %s" % (str(self.placeresourceid), str(self.citationid)) or '' + return "%s %s" % (str(self.placeresourceid), str(self.citationid)) or "" def keyword_search(keyword): placeresource_qs = PlacesResourceEvents.keyword_search(keyword) @@ -2339,46 +3380,50 @@ def keyword_search(keyword): citation_loi = [citation.pk for citation in citation_qs] return PlacesResourceCitationEvents.objects.filter( - Q(citationid__in=citation_loi) | - Q(placeresourceid__in=placeresource_loi) | - Q(relationshipdescription__icontains=keyword) + Q(citationid__in=citation_loi) + | Q(placeresourceid__in=placeresource_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/placesresourcecitationevents/%d/' % self.pk + return "/explore/placesresourcecitationevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Place-Resource', 'value':[self.placeresourceid.get_query_json()]}) - relationship_list.append({'key':'Bibliographic Source', 'value':[self.citationid.get_query_json()]}) + relationship_list.append( + {"key": "Place-Resource", "value": [self.placeresourceid.get_query_json()]} + ) + relationship_list.append( + {"key": "Bibliographic Source", "value": [self.citationid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'place', 'value': str(self.placeresourceid.placeid)}, - {'key':'resource', 'value': str(self.placeresourceid.resourceid)}, - {'key':'citation', 'value': str(self.citationid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} + {"key": "place", "value": str(self.placeresourceid.placeid)}, + {"key": "resource", "value": str(self.placeresourceid.resourceid)}, + {"key": "citation", "value": str(self.citationid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Placesresourcecitationevents' - category_name = 'Place/Resource - Sources' + type = "Placesresourcecitationevents" + category_name = "Place/Resource - Sources" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2387,16 +3432,30 @@ def get_relationship_model(self, req_model): else: return self.placeresourceid + class PlacesResourceMediaEvents(SimpleRelationship): - placeresourceid = models.ForeignKey(PlacesResourceEvents, db_column='placeresourceid', primary_key=False, verbose_name='place - resource', on_delete=models.CASCADE) - mediaid = models.ForeignKey(Media, db_column='mediaid', verbose_name='media', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='relationship description') - pages = models.CharField(db_column='pages', max_length=50, blank=True, null=True) + placeresourceid = models.ForeignKey( + PlacesResourceEvents, + db_column="placeresourceid", + primary_key=False, + verbose_name="place - resource", + on_delete=models.CASCADE, + ) + mediaid = models.ForeignKey( + Media, db_column="mediaid", verbose_name="media", on_delete=models.CASCADE + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="relationship description", + ) + pages = models.CharField(db_column="pages", max_length=50, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'placesresourcemediaevents' - unique_together = (('placeresourceid', 'mediaid'),) + db_table = "placesresourcemediaevents" + unique_together = (("placeresourceid", "mediaid"),) app_label = "Relationships" verbose_name_plural = "Place-Resources - Media" @@ -2404,7 +3463,7 @@ def __unicode__(self): return unicode("%s %s" % (str(self.placeresourceid), str(self.mediaid))) def __str__(self): - return "%s %s" % (str(self.placeresourceid), str(self.mediaid)) or '' + return "%s %s" % (str(self.placeresourceid), str(self.mediaid)) or "" def keyword_search(keyword): placeresource_qs = PlacesResourceEvents.keyword_search(keyword) @@ -2414,45 +3473,49 @@ def keyword_search(keyword): media_loi = [media.pk for media in media_qs] return PlacesResourceMediaEvents.objects.filter( - Q(placeresourceid__in=placeresource_loi) | - Q(mediaid__in=media_loi) | - Q(relationshipdescription__icontains=keyword) + Q(placeresourceid__in=placeresource_loi) + | Q(mediaid__in=media_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/placesresourcemediaevents/%d/' % self.pk + return "/explore/placesresourcemediaevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Place-Resource', 'value':[self.placeresourceid.get_query_json()]}) - relationship_list.append({'key':'Media', 'value':[self.mediaid.get_query_json()]}) + relationship_list.append( + {"key": "Place-Resource", "value": [self.placeresourceid.get_query_json()]} + ) + relationship_list.append( + {"key": "Media", "value": [self.mediaid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'place', 'value': str(self.placeresourceid.placeid)}, - {'key':'resource', 'value': str(self.placeresourceid.resourceid)}, - {'key':'media', 'value': str(self.mediaid)}, - {'key':'relationship description', 'value': self.relationshipdescription} + {"key": "place", "value": str(self.placeresourceid.placeid)}, + {"key": "resource", "value": str(self.placeresourceid.resourceid)}, + {"key": "media", "value": str(self.mediaid)}, + {"key": "relationship description", "value": self.relationshipdescription}, ] def get_response_format(self): - type = 'Placesresourcemediaevents' + type = "Placesresourcemediaevents" category_name = "Place/Resource - Media" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2461,73 +3524,95 @@ def get_relationship_model(self, req_model): else: return self.placeresourceid + class ResourceActivityCitationEvents(SimpleRelationship): - resourceactivityid = models.ForeignKey(ResourcesActivityEvents, db_column='resourceactivityid', primary_key=False, verbose_name='resource activity', on_delete=models.CASCADE) - citationid = models.ForeignKey(Citations, db_column='citationid', verbose_name='citation', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='excerpt/description') - pages = models.CharField(db_column='pages', max_length=255, blank=True, null=True) + resourceactivityid = models.ForeignKey( + ResourcesActivityEvents, + db_column="resourceactivityid", + primary_key=False, + verbose_name="resource activity", + on_delete=models.CASCADE, + ) + citationid = models.ForeignKey( + Citations, + db_column="citationid", + verbose_name="citation", + on_delete=models.CASCADE, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="excerpt/description", + ) + pages = models.CharField(db_column="pages", max_length=255, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'resourceactivitycitationevents' - unique_together = (('resourceactivityid', 'citationid'),) - app_label = 'Relationships' - verbose_name_plural = 'Activity - Sources' + db_table = "resourceactivitycitationevents" + unique_together = (("resourceactivityid", "citationid"),) + app_label = "Relationships" + verbose_name_plural = "Activity - Sources" def __unicode__(self): return unicode("%s %s" % (str(self.resourceactivityid), str(self.citationid))) def __str__(self): - return "%s %s" % (str(self.resourceactivityid), str(self.citationid)) or '' + return "%s %s" % (str(self.resourceactivityid), str(self.citationid)) or "" def keyword_search(keyword): resourceactivity_qs = ResourcesActivityEvents.keyword_search(keyword) - resourceactivity_loi = [resourceactivity.pk for resourceactivity in resourceactivity_qs] + resourceactivity_loi = [ + resourceactivity.pk for resourceactivity in resourceactivity_qs + ] citation_qs = Citations.keyword_search(keyword) citation_loi = [citation.pk for citation in citation_qs] return ResourceActivityCitationEvents.objects.filter( - Q(citationid__in=citation_loi) | - Q(resourceactivityid__in=resourceactivity_loi) | - Q(relationshipdescription__icontains=keyword) + Q(citationid__in=citation_loi) + | Q(resourceactivityid__in=resourceactivity_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/resourceactivitycitationevents/%d/' % self.pk + return "/explore/resourceactivitycitationevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Activity', 'value':[self.resourceactivityid.get_query_json()]}) - relationship_list.append({'key':'Bibliographic Source', 'value':[self.citationid.get_query_json()]}) + relationship_list.append( + {"key": "Activity", "value": [self.resourceactivityid.get_query_json()]} + ) + relationship_list.append( + {"key": "Bibliographic Source", "value": [self.citationid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'resource activity', 'value': str(self.resourceactivityid)}, - {'key':'citation', 'value': str(self.citationid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} - + {"key": "resource activity", "value": str(self.resourceactivityid)}, + {"key": "citation", "value": str(self.citationid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Resourceactivitycitationevents' - category_name = 'Activity - Source' + type = "Resourceactivitycitationevents" + category_name = "Activity - Source" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2536,75 +3621,95 @@ def get_relationship_model(self, req_model): else: return self.resourceactivityid + class ResourceActivityMediaEvents(SimpleRelationship): - resourceactivityid = models.ForeignKey(ResourcesActivityEvents, db_column='resourceactivityid', primary_key=False, verbose_name='resource activity', on_delete=models.CASCADE) - mediaid = models.ForeignKey(Media, db_column='mediaid', verbose_name='media', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='relationship description') - pages = models.CharField(db_column='pages', max_length=50, blank=True, null=True) + resourceactivityid = models.ForeignKey( + ResourcesActivityEvents, + db_column="resourceactivityid", + primary_key=False, + verbose_name="resource activity", + on_delete=models.CASCADE, + ) + mediaid = models.ForeignKey( + Media, db_column="mediaid", verbose_name="media", on_delete=models.CASCADE + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="relationship description", + ) + pages = models.CharField(db_column="pages", max_length=50, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'resourceactivitymediaevents' - unique_together = (('resourceactivityid', 'mediaid'),) - app_label = 'Relationships' - verbose_name_plural = 'Activity - Media' + db_table = "resourceactivitymediaevents" + unique_together = (("resourceactivityid", "mediaid"),) + app_label = "Relationships" + verbose_name_plural = "Activity - Media" def __unicode__(self): return unicode("%s %s" % (str(self.resourceactivityid), str(self.mediaid))) def __str__(self): - return "%s %s" % (str(self.resourceactivityid), str(self.mediaid)) or '' + return "%s %s" % (str(self.resourceactivityid), str(self.mediaid)) or "" def keyword_search(keyword): resourceactivity_qs = ResourcesActivityEvents.keyword_search(keyword) - resourceactivity_loi = [resourceactivity.pk for resourceactivity in resourceactivity_qs] + resourceactivity_loi = [ + resourceactivity.pk for resourceactivity in resourceactivity_qs + ] media_qs = Media.keyword_search(keyword) media_loi = [media.pk for media in media_qs] return ResourceActivityMediaEvents.objects.filter( - Q(resourceactivityid__in=resourceactivity_loi) | - Q(mediaid__in=media_loi) | - Q(relationshipdescription__icontains=keyword) + Q(resourceactivityid__in=resourceactivity_loi) + | Q(mediaid__in=media_loi) + | Q(relationshipdescription__icontains=keyword) ) def name(self): - return 'resource activity media' + return "resource activity media" def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/resourceactivitymediaevents/%d/' % self.pk + return "/explore/resourceactivitymediaevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Activity', 'value':[self.resourceactivityid.get_query_json()]}) - relationship_list.append({'key':'Media', 'value':[self.mediaid.get_query_json()]}) + relationship_list.append( + {"key": "Activity", "value": [self.resourceactivityid.get_query_json()]} + ) + relationship_list.append( + {"key": "Media", "value": [self.mediaid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'resource activity', 'value': str(self.resourceactivityid)}, - {'key':'media', 'value': str(self.mediaid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} + {"key": "resource activity", "value": str(self.resourceactivityid)}, + {"key": "media", "value": str(self.mediaid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Resourceactivitymediaevents' - category_name = 'Activity - Media' + type = "Resourceactivitymediaevents" + category_name = "Activity - Media" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2613,114 +3718,160 @@ def get_relationship_model(self, req_model): else: return self.resourceactivityid -#Unsure why this is not a 'SimpleRelationship' + +# Unsure why this is not a 'SimpleRelationship' class ResourceAltIndigenousName(DefaultModel, DefaultModeratedModel, ModeratedModel): - altindigenousnameid = models.AutoField(db_column='altindigenousnameid', primary_key=True) - resourceid = models.ForeignKey(Resources, db_column='resourceid', blank=True, null=True, verbose_name='resource', default=None, on_delete=models.SET_DEFAULT) - altindigenousname = models.CharField(db_column='altindigenousname', max_length=255, blank=True, null=True, verbose_name='alt name') + altindigenousnameid = models.AutoField( + db_column="altindigenousnameid", primary_key=True + ) + resourceid = models.ForeignKey( + Resources, + db_column="resourceid", + blank=True, + null=True, + verbose_name="resource", + default=None, + on_delete=models.SET_DEFAULT, + ) + altindigenousname = models.CharField( + db_column="altindigenousname", + max_length=255, + blank=True, + null=True, + verbose_name="alt name", + ) class Meta: managed = MANAGED - db_table = 'resourcealtindigenousname' - app_label = 'Relationships' - verbose_name = 'Resource Alternative Name' - verbose_name_plural = 'Resource Alternative Names' + db_table = "resourcealtindigenousname" + app_label = "Relationships" + verbose_name = "Resource Alternative Name" + verbose_name_plural = "Resource Alternative Names" def get_query_json(self): - return { - 'name': str(self), - 'link': False - } + return {"name": str(self), "link": False} def data(self): return [ - {'key':'resource', 'value': str(self.resourceid)}, - {'key':'alternate name', 'value':str(self.altindigenousname)}, + {"key": "resource", "value": str(self.resourceid)}, + {"key": "alternate name", "value": str(self.altindigenousname)}, ] def __unicode__(self): - return unicode('%s' % (self.altindigenousname)) + return unicode("%s" % (self.altindigenousname)) def __str__(self): - return self.altindigenousname or '' + return self.altindigenousname or "" + class ResourceResourceEvents(SimpleRelationship): - resourceid = models.ForeignKey(Resources, db_column='resourceid', primary_key=False, related_name="resource_a", on_delete=models.CASCADE) - altresourceid = models.ForeignKey(Resources, db_column='altresourceid', related_name="resource_b", on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='relationship description') + resourceid = models.ForeignKey( + Resources, + db_column="resourceid", + primary_key=False, + related_name="resource_a", + on_delete=models.CASCADE, + ) + altresourceid = models.ForeignKey( + Resources, + db_column="altresourceid", + related_name="resource_b", + on_delete=models.CASCADE, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="relationship description", + ) class Meta: managed = MANAGED - db_table = 'resourceresourceevents' - unique_together = (('resourceid', 'altresourceid'),) - app_label = 'Relationships' - verbose_name_plural = 'Resources - Resources' + db_table = "resourceresourceevents" + unique_together = (("resourceid", "altresourceid"),) + app_label = "Relationships" + verbose_name_plural = "Resources - Resources" def __unicode__(self): return unicode("%s %s" % (str(self.resourceid), str(self.altresourceid))) def __str__(self): - return "%s %s" % (str(self.resourceid), str(self.altresourceid)) or '' + return "%s %s" % (str(self.resourceid), str(self.altresourceid)) or "" def keyword_search(keyword): resource_qs = Resources.keyword_search(keyword) resource_loi = [resource.pk for resource in resource_qs] return ResourceResourceEvents.objects.filter( - Q(resourceid__in=resource_loi) | - Q(altresourceid__in=resource_loi) | - Q(relationshipdescription__icontains=keyword) + Q(resourceid__in=resource_loi) + | Q(altresourceid__in=resource_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/resourceresourceevents/%d/' % self.pk + return "/explore/resourceresourceevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Resource', 'value':[self.resourceid.get_query_json()]}) - relationship_list.append({'key':'Alternate Resource', 'value':[self.altresourceid.get_query_json()]}) + relationship_list.append( + {"key": "Resource", "value": [self.resourceid.get_query_json()]} + ) + relationship_list.append( + { + "key": "Alternate Resource", + "value": [self.altresourceid.get_query_json()], + } + ) return relationship_list def data(self): return [ - {'key':'resource a', 'value': str(self.resourceid)}, - {'key':'resource b', 'value': str(self.altresourceid)}, - {'key':'relationship description', 'value': self.relationshipdescription} + {"key": "resource a", "value": str(self.resourceid)}, + {"key": "resource b", "value": str(self.altresourceid)}, + {"key": "relationship description", "value": self.relationshipdescription}, ] def get_response_format(self): - type = 'Resourceresourceevents' + type = "Resourceresourceevents" category_name = "Resource - Resource" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } # Need to create two-sided pairs for these relationships to show up correctly in the admin - this could fuzz-up the querying, though def save(self, *args, **kwargs): super(ResourceResourceEvents, self).save(*args, **kwargs) - relatedResources = ResourceResourceEvents.objects.filter(resourceid=self.altresourceid, altresourceid=self.resourceid) + relatedResources = ResourceResourceEvents.objects.filter( + resourceid=self.altresourceid, altresourceid=self.resourceid + ) if len(relatedResources) == 1: - relatedResources[0].relationshipdescription=self.relationshipdescription + relatedResources[0].relationshipdescription = self.relationshipdescription super(ResourceResourceEvents, relatedResources[0]).save() else: - ResourceResourceEvents.objects.create(resourceid=self.altresourceid, altresourceid=self.resourceid, relationshipdescription=self.relationshipdescription) + ResourceResourceEvents.objects.create( + resourceid=self.altresourceid, + altresourceid=self.resourceid, + relationshipdescription=self.relationshipdescription, + ) def delete(self, *args, **kwargs): super(ResourceResourceEvents, self).delete(*args, **kwargs) try: - pair = ResourceResourceEvents.objects.get(resourceid=self.altresourceid, altresourceid=self.resourceid) + pair = ResourceResourceEvents.objects.get( + resourceid=self.altresourceid, altresourceid=self.resourceid + ) pair.delete() except Exception as e: pass @@ -2736,34 +3887,51 @@ def get_relationship_json(self, req_model_type): other_resource = self.get_relationship_model(self) rel_model_json = other_resource.get_query_json() return { - 'name': rel_model_json['name'], - 'link': rel_model_json['link'], - 'issimplerelationship': self.is_simple_relationship(), - 'data': { - 'description': self.relationshipdescription, - 'pages': None, + "name": rel_model_json["name"], + "link": rel_model_json["link"], + "issimplerelationship": self.is_simple_relationship(), + "data": { + "description": self.relationshipdescription, + "pages": None, }, } + class ResourcesCitationEvents(SimpleRelationship): - resourceid = models.ForeignKey(Resources, db_column='resourceid', primary_key=False, verbose_name='resource', on_delete=models.CASCADE) - citationid = models.ForeignKey(Citations, db_column='citationid', verbose_name='citation', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='excerpt/description') - pages = models.CharField(db_column='pages', max_length=255, blank=True, null=True) + resourceid = models.ForeignKey( + Resources, + db_column="resourceid", + primary_key=False, + verbose_name="resource", + on_delete=models.CASCADE, + ) + citationid = models.ForeignKey( + Citations, + db_column="citationid", + verbose_name="citation", + on_delete=models.CASCADE, + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="excerpt/description", + ) + pages = models.CharField(db_column="pages", max_length=255, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'resourcescitationevents' - verbose_name = 'Resource - Source' - verbose_name_plural = 'Resources - Sources' - unique_together = (('resourceid', 'citationid'),) - app_label = 'Relationships' + db_table = "resourcescitationevents" + verbose_name = "Resource - Source" + verbose_name_plural = "Resources - Sources" + unique_together = (("resourceid", "citationid"),) + app_label = "Relationships" def __unicode__(self): return unicode("%s %s" % (str(self.resourceid), str(self.citationid))) def __str__(self): - return "%s %s" % (str(self.resourceid), str(self.citationid)) or '' + return "%s %s" % (str(self.resourceid), str(self.citationid)) or "" def keyword_search(keyword): resource_qs = Resources.keyword_search(keyword) @@ -2773,45 +3941,49 @@ def keyword_search(keyword): citation_loi = [citation.pk for citation in citation_qs] return ResourcesCitationEvents.objects.filter( - Q(citationid__in=citation_loi) | - Q(resourceid__in=resource_loi) | - Q(relationshipdescription__icontains=keyword) + Q(citationid__in=citation_loi) + | Q(resourceid__in=resource_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/resourcescitationevents/%d/' % self.pk + return "/explore/resourcescitationevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Resource', 'value':[self.resourceid.get_query_json()]}) - relationship_list.append({'key':'Bibliographic Source', 'value':[self.citationid.get_query_json()]}) + relationship_list.append( + {"key": "Resource", "value": [self.resourceid.get_query_json()]} + ) + relationship_list.append( + {"key": "Bibliographic Source", "value": [self.citationid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'resource', 'value': str(self.resourceid)}, - {'key':'citation', 'value': str(self.citationid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} + {"key": "resource", "value": str(self.resourceid)}, + {"key": "citation", "value": str(self.citationid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Resourcescitationevents' + type = "Resourcescitationevents" category_name = "Resource - Source" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2820,25 +3992,39 @@ def get_relationship_model(self, req_model): else: return self.resourceid + class ResourcesMediaEvents(SimpleRelationship): - resourceid = models.ForeignKey(Resources, db_column='resourceid', primary_key=False, verbose_name='resource', on_delete=models.CASCADE) - mediaid = models.ForeignKey(Media, db_column='mediaid', verbose_name='media', on_delete=models.CASCADE) - relationshipdescription = HTMLField(db_column='relationshipdescription', blank=True, null=True, verbose_name='relationship description') - pages = models.CharField(db_column='pages', max_length=50, blank=True, null=True) + resourceid = models.ForeignKey( + Resources, + db_column="resourceid", + primary_key=False, + verbose_name="resource", + on_delete=models.CASCADE, + ) + mediaid = models.ForeignKey( + Media, db_column="mediaid", verbose_name="media", on_delete=models.CASCADE + ) + relationshipdescription = HTMLField( + db_column="relationshipdescription", + blank=True, + null=True, + verbose_name="relationship description", + ) + pages = models.CharField(db_column="pages", max_length=50, blank=True, null=True) class Meta: managed = MANAGED - db_table = 'resourcesmediaevents' - verbose_name = 'Resource - Medium' - verbose_name_plural = 'Resources - Media' - unique_together = (('resourceid', 'mediaid'),) - app_label = 'Relationships' + db_table = "resourcesmediaevents" + verbose_name = "Resource - Medium" + verbose_name_plural = "Resources - Media" + unique_together = (("resourceid", "mediaid"),) + app_label = "Relationships" def __unicode__(self): return unicode("%s %s" % (str(self.resourceid), str(self.mediaid))) def __str__(self): - return "%s %s" % (str(self.resourceid), str(self.mediaid)) or '' + return "%s %s" % (str(self.resourceid), str(self.mediaid)) or "" def keyword_search(keyword): resource_qs = Resources.keyword_search(keyword) @@ -2848,45 +4034,49 @@ def keyword_search(keyword): media_loi = [media.pk for media in media_qs] return ResourcesMediaEvents.objects.filter( - Q(mediaid__in=media_loi) | - Q(resourceid__in=resource_loi) | - Q(relationshipdescription__icontains=keyword) + Q(mediaid__in=media_loi) + | Q(resourceid__in=resource_loi) + | Q(relationshipdescription__icontains=keyword) ) def image(self): - return settings.RECORD_ICONS['activity'] + return settings.RECORD_ICONS["activity"] def subtitle(self): return self.relationshipdescription def link(self): - return '/explore/resourcesmediaevents/%d/' % self.pk + return "/explore/resourcesmediaevents/%d/" % self.pk def relationships(self): relationship_list = [] - relationship_list.append({'key':'Resource', 'value':[self.resourceid.get_query_json()]}) - relationship_list.append({'key':'Media', 'value':[self.mediaid.get_query_json()]}) + relationship_list.append( + {"key": "Resource", "value": [self.resourceid.get_query_json()]} + ) + relationship_list.append( + {"key": "Media", "value": [self.mediaid.get_query_json()]} + ) return relationship_list def data(self): return [ - {'key':'resource', 'value': str(self.resourceid)}, - {'key':'media', 'value': str(self.mediaid)}, - {'key':'relationship description', 'value': self.relationshipdescription}, - {'key':'pages', 'value': self.pages} + {"key": "resource", "value": str(self.resourceid)}, + {"key": "media", "value": str(self.mediaid)}, + {"key": "relationship description", "value": self.relationshipdescription}, + {"key": "pages", "value": self.pages}, ] def get_response_format(self): - type = 'Resourcesmediaevents' + type = "Resourcesmediaevents" category_name = "Resource - Media" return { - 'id': self.pk, - 'type': type, - 'category_name': category_name, - 'name': str(self), - 'image': self.image(), - 'description': self.relationshipdescription, - 'link': '/explore/%s/%d' % (type, self.pk) + "id": self.pk, + "type": type, + "category_name": category_name, + "name": str(self), + "image": self.image(), + "description": self.relationshipdescription, + "link": "/explore/%s/%d" % (type, self.pk), } def get_relationship_model(self, req_model): @@ -2895,74 +4085,101 @@ def get_relationship_model(self, req_model): else: return self.resourceid + from django.contrib.auth.models import Group + class UserAccess(DefaultModeratedModel, ModeratedModel): - group = models.OneToOneField(Group, db_column='group_id', on_delete=models.CASCADE) - accessid = models.AutoField(db_column='accessid', primary_key=True) - accesslevel = models.CharField(db_column='accesslevel', max_length=255, blank=True, null=True, verbose_name='access level') + group = models.OneToOneField(Group, db_column="group_id", on_delete=models.CASCADE) + accessid = models.AutoField(db_column="accessid", primary_key=True) + accesslevel = models.CharField( + db_column="accesslevel", + max_length=255, + blank=True, + null=True, + verbose_name="access level", + ) class Meta: managed = MANAGED - db_table = 'useraccess' - app_label = 'Accounts' - verbose_name = 'user access' - verbose_name_plural = 'user access' + db_table = "useraccess" + app_label = "Accounts" + verbose_name = "user access" + verbose_name_plural = "user access" def __unicode__(self): - return unicode('%s' % (self.accesslevel)) + return unicode("%s" % (self.accesslevel)) def __str__(self): - return self.accesslevel or '' + return self.accesslevel or "" + class Users(AbstractUser): - userid = models.AutoField(db_column='userid', primary_key=True) - username = models.CharField(db_column='username', max_length=20, verbose_name='username', unique=True) - password = models.CharField(_('password'), max_length=128, db_column='password') - first_name = models.CharField(db_column='firstname', max_length=255, verbose_name='first name') - last_name = models.CharField(db_column='lastname', max_length=255, verbose_name='last name') - affiliation = models.CharField(db_column='affiliation', max_length=255) - title = models.CharField(db_column='title', max_length=255) - accesslevel = models.ForeignKey(UserAccess, db_column='accesslevel', verbose_name='access level', null=True, blank=True, default=None, on_delete=models.SET_DEFAULT) + userid = models.AutoField(db_column="userid", primary_key=True) + username = models.CharField( + db_column="username", max_length=20, verbose_name="username", unique=True + ) + password = models.CharField(_("password"), max_length=128, db_column="password") + first_name = models.CharField( + db_column="firstname", max_length=255, verbose_name="first name" + ) + last_name = models.CharField( + db_column="lastname", max_length=255, verbose_name="last name" + ) + affiliation = models.CharField(db_column="affiliation", max_length=255) + title = models.CharField(db_column="title", max_length=255) + accesslevel = models.ForeignKey( + UserAccess, + db_column="accesslevel", + verbose_name="access level", + null=True, + blank=True, + default=None, + on_delete=models.SET_DEFAULT, + ) is_superuser = models.BooleanField( - _('superuser status'), + _("superuser status"), default=False, help_text=_( - 'Designates that this user has all permissions without ' - 'explicitly assigning them.' + "Designates that this user has all permissions without " + "explicitly assigning them." ), - db_column='is_superuser' + db_column="is_superuser", + ) + email = models.EmailField( + _("email address"), blank=True, null=True, db_column="email" ) - email = models.EmailField(_('email address'), blank=True, null=True, db_column='email') is_staff = models.BooleanField( - _('staff status'), + _("staff status"), default=False, - help_text=_('Designates whether the user can log into this admin site.'), - db_column='is_staff' + help_text=_("Designates whether the user can log into this admin site."), + db_column="is_staff", ) is_active = models.BooleanField( - _('active'), + _("active"), default=True, help_text=_( - 'Designates whether this user should be treated as active. ' - 'Unselect this instead of deleting accounts.' + "Designates whether this user should be treated as active. " + "Unselect this instead of deleting accounts." ), - db_column='is_active' + db_column="is_active", + ) + date_joined = models.DateTimeField( + _("date joined"), default=timezone.now, db_column="date_joined" ) - date_joined = models.DateTimeField(_('date joined'), default=timezone.now, db_column='date_joined') class Meta: managed = MANAGED - db_table = 'users' - app_label = 'Accounts' - verbose_name = 'User' - verbose_name_plural = 'Users' + db_table = "users" + app_label = "Accounts" + verbose_name = "User" + verbose_name_plural = "Users" def __unicode__(self): - return unicode('%s' % (self.username)) + return unicode("%s" % (self.username)) def __str__(self): - return self.username or '' + return self.username or "" def save(self, *args, **kwargs): if not self.userid: @@ -2976,8 +4193,8 @@ def save(self, *args, **kwargs): self.is_staff = True else: self.is_staff = False - if self.accesslevel and self.accesslevel.accesslevel == 'Administrator': + if self.accesslevel and self.accesslevel.accesslevel == "Administrator": self.is_superuser = True else: self.is_superuser = False - super(Users, self).save(*args, **kwargs) \ No newline at end of file + super(Users, self).save(*args, **kwargs) diff --git a/TEKDB/TEKDB/settings.py b/TEKDB/TEKDB/settings.py index eb17fe5f..eb72277f 100644 --- a/TEKDB/TEKDB/settings.py +++ b/TEKDB/TEKDB/settings.py @@ -14,8 +14,8 @@ from glob import glob try: - GDAL_LIBRARY_PATH=glob('/usr/lib/libgdal.so.*')[0] - GEOS_LIBRARY_PATH=glob('/usr/lib/libgeos_c.so.*')[0] + GDAL_LIBRARY_PATH = glob("/usr/lib/libgdal.so.*")[0] + GEOS_LIBRARY_PATH = glob("/usr/lib/libgeos_c.so.*")[0] except IndexError as e: pass @@ -35,7 +35,7 @@ # ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", default='*').split(" ") ALLOWED_HOSTS = [] -ALLOWED_HOSTS_ENV = os.environ.get('ALLOWED_HOSTS') +ALLOWED_HOSTS_ENV = os.environ.get("ALLOWED_HOSTS") if ALLOWED_HOSTS_ENV: ALLOWED_HOSTS.extend(ALLOWED_HOSTS_ENV.split(",")) @@ -45,108 +45,110 @@ # Application definition INSTALLED_APPS = [ - 'dal', - 'dal_select2', - 'django.contrib.contenttypes', - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'django.contrib.gis', - 'colorfield', + "dal", + "dal_select2", + "django.contrib.contenttypes", + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "django.contrib.gis", + "colorfield", # 'registration', - 'leaflet', - 'nested_admin', - 'coverage', - 'configuration', - 'explore', - 'login', - 'TEKDB', - 'tinymce', - 'Lookup', - 'Accounts', - 'Relationships', - 'reversion', - 'django.contrib.sites', + "leaflet", + "nested_admin", + "coverage", + "configuration", + "explore", + "login", + "TEKDB", + "tinymce", + "Lookup", + "Accounts", + "Relationships", + "reversion", + "django.contrib.sites", # 'moderation.apps.SimpleModerationConfig', ] MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", ] -ROOT_URLCONF = 'TEKDB.urls' +ROOT_URLCONF = "TEKDB.urls" TEMPLATES = [ { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [ - os.path.join(BASE_DIR, 'TEKDB/templates'), - os.path.join(BASE_DIR, 'login/templates'), - os.path.join(BASE_DIR, 'explore/templates'), + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [ + os.path.join(BASE_DIR, "TEKDB/templates"), + os.path.join(BASE_DIR, "login/templates"), + os.path.join(BASE_DIR, "explore/templates"), ], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.template.context_processors.media', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - 'explore.context_processors.explore_context', - 'TEKDB.context_processors.search_settings', + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.template.context_processors.media", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + "explore.context_processors.explore_context", + "TEKDB.context_processors.search_settings", # 'TEKDB.context_processors.add_map_default_context' ], }, }, ] -LOGIN_URL = '/' +LOGIN_URL = "/" -WSGI_APPLICATION = 'TEKDB.wsgi.application' +WSGI_APPLICATION = "TEKDB.wsgi.application" # Database # https://docs.djangoproject.com/en/1.10/ref/settings/#databases DATABASES = { - 'default': { - "ENGINE": os.environ.get("SQL_ENGINE", "django.contrib.gis.db.backends.postgis"), + "default": { + "ENGINE": os.environ.get( + "SQL_ENGINE", "django.contrib.gis.db.backends.postgis" + ), "NAME": os.environ.get("SQL_DATABASE", "tekdb"), "USER": os.environ.get("SQL_USER", "postgres"), "PASSWORD": os.environ.get("SQL_PASSWORD", None), - "HOST": os.environ.get("SQL_HOST", 'db'), + "HOST": os.environ.get("SQL_HOST", "db"), "PORT": os.environ.get("SQL_PORT", None), } } -DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' +DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" # Password validation # https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", }, ] -#Registration +# Registration ACCOUNT_ACTIVATION_DAYS = 14 @@ -156,27 +158,27 @@ # Internationalization # https://docs.djangoproject.com/en/1.10/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = "en-us" -TIME_ZONE = 'America/Los_Angeles' +TIME_ZONE = "America/Los_Angeles" USE_I18N = True USE_TZ = True STATICFILES_FINDERS = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + "django.contrib.staticfiles.finders.FileSystemFinder", + "django.contrib.staticfiles.finders.AppDirectoriesFinder", ] # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ -MEDIA_URL = '/media/' +MEDIA_URL = "/media/" MEDIA_ROOT = os.path.join(BASE_DIR, "media") -STATIC_URL = '/static/' +STATIC_URL = "/static/" STATIC_ROOT = os.path.join(BASE_DIR, "static") @@ -191,19 +193,19 @@ ### Search Settings SEARCH_CATEGORIES = [ - 'all', - 'places', - 'resources', - 'activities', - 'citations', - 'media', + "all", + "places", + "resources", + "activities", + "citations", + "media", ] -#Locality? People? +# Locality? People? MIN_SEARCH_RANK = 0.1 MIN_SEARCH_SIMILARITY = 0.1 -AUTH_USER_MODEL = 'Accounts.Users' +AUTH_USER_MODEL = "Accounts.Users" ########################################### ## TINYMCE ### @@ -228,93 +230,97 @@ TINYMCE_FILEBROWSER = False # Add Version to the admin site header -VERSION = '2.2.2' -ADMIN_SITE_HEADER = os.environ.get("ADMIN_SITE_HEADER", default='ITK DB Admin v{}'.format(VERSION)) +VERSION = "2.2.2" +ADMIN_SITE_HEADER = os.environ.get( + "ADMIN_SITE_HEADER", default="ITK DB Admin v{}".format(VERSION) +) -# X Frame Options +# X Frame Options # The Django Default is 'DENY' # SAMEORIGIN allows the page to be displayed in a frame on the same origin as the page itself -X_FRAME_OPTIONS = 'SAMEORIGIN' +X_FRAME_OPTIONS = "SAMEORIGIN" -TIME_ZONE = os.environ.get("TIME_ZONE", default='America/Los_Angeles') +TIME_ZONE = os.environ.get("TIME_ZONE", default="America/Los_Angeles") REGISTRATION_OPEN = os.environ.get("REGISTRATION_OPEN", default=False) DATABASE_GEOGRAPHY = { ###EPSG:4326### # 'default_lon': -124.325, # 'default_lat': 42.065, ###EPSG:3857### - 'default_lon': os.environ.get("DEFAULT_LON", default=-13839795.69), - 'default_lat': os.environ.get("DEFAULT_LAT", default=5171448.926), - 'default_zoom': os.environ.get("DEFAULT_ZOOM", default=8), - 'map_template': 'gis/admin/ol2osm.html', - 'map_extent': [ + "default_lon": os.environ.get("DEFAULT_LON", default=-13839795.69), + "default_lat": os.environ.get("DEFAULT_LAT", default=5171448.926), + "default_zoom": os.environ.get("DEFAULT_ZOOM", default=8), + "map_template": "gis/admin/ol2osm.html", + "map_extent": [ os.environ.get("MAP_EXTENT_WEST", default=-24000000), os.environ.get("MAP_EXTENT_SOUTH", default=1450000), os.environ.get("MAP_EXTENT_EAST", default=-6200000), - os.environ.get("MAP_EXTENT_NORTH", default=13000000) - ], #US Territories - 'min_zoom': 2, - 'max_zoom': 19, + os.environ.get("MAP_EXTENT_NORTH", default=13000000), + ], # US Territories + "min_zoom": 2, + "max_zoom": 19, } MODERATE_STAFF = False PROJ_CSS = { - 'primary_a': '#8f371c', #red - 'primary_b': '#f7f3eb', #off white - 'primary_c': '#0e1522', #very dark blue - 'primary_d': '#ced2da', #light gray - 'secondary_a': '#51723b', #fern green - 'secondary_b': '#839230', #old moss green - 'secondary_c': '#6ea32e', #green - 'secondary_d': '#b44ba3' #rose quartz pink + "primary_a": "#8f371c", # red + "primary_b": "#f7f3eb", # off white + "primary_c": "#0e1522", # very dark blue + "primary_d": "#ced2da", # light gray + "secondary_a": "#51723b", # fern green + "secondary_b": "#839230", # old moss green + "secondary_c": "#6ea32e", # green + "secondary_d": "#b44ba3", # rose quartz pink } -PROJ_LOGO_TEXT = 'ITK' -PROJ_COLOR_SELECT = 'light' -PROJ_IMAGE_SELECT = '/static/explore/img/homepage/5050508427_ec55eed5f4_o.jpg' +PROJ_LOGO_TEXT = "ITK" +PROJ_COLOR_SELECT = "light" +PROJ_IMAGE_SELECT = "/static/explore/img/homepage/5050508427_ec55eed5f4_o.jpg" PROJ_IMAGE_ATTR = 'Image courtesy of Monteregina and used under the CC BY-NC-SA 2.0 Licence. No changes were made.' PROJ_ICONS = { - 'logo': '/static/explore/img/logos/logo_weave.svg', - 'place_icon': 'explore/img/icons/i_place.svg', - 'resource_icon': 'explore/img/icons/i_resource.svg', - 'activity_icon': 'explore/img/icons/i_activity.svg', - 'source_icon': 'explore/img/icons/i_source.svg', - 'media_icon': 'explore/img/icons/i_media.svg', - 'map_pin_icon': 'explore/img/icons/explore_map_pin.svg', - 'map_pin_selected_icon': 'explore/img/icons/explore_map_pin_selected.svg', + "logo": "/static/explore/img/logos/logo_weave.svg", + "place_icon": "explore/img/icons/i_place.svg", + "resource_icon": "explore/img/icons/i_resource.svg", + "activity_icon": "explore/img/icons/i_activity.svg", + "source_icon": "explore/img/icons/i_source.svg", + "media_icon": "explore/img/icons/i_media.svg", + "map_pin_icon": "explore/img/icons/explore_map_pin.svg", + "map_pin_selected_icon": "explore/img/icons/explore_map_pin_selected.svg", } RECORD_ICONS = { - 'person': '/static/explore/img/icons/i_activity.png', - 'activity': '/static/{}'.format(PROJ_ICONS['activity_icon']), - 'citation': '/static/{}'.format(PROJ_ICONS['source_icon']), - 'place': '/static/{}'.format(PROJ_ICONS['place_icon']), - 'media': '/static/{}'.format(PROJ_ICONS['media_icon']), - 'event': '/static/{}'.format(PROJ_ICONS['activity_icon']), - 'resource': '/static/{}'.format(PROJ_ICONS['resource_icon']), - 'map_pin': '/static/{}'.format(PROJ_ICONS['map_pin_icon']), - 'map_pin_selected': '/static/{}'.format(PROJ_ICONS['map_pin_selected_icon']), + "person": "/static/explore/img/icons/i_activity.png", + "activity": "/static/{}".format(PROJ_ICONS["activity_icon"]), + "citation": "/static/{}".format(PROJ_ICONS["source_icon"]), + "place": "/static/{}".format(PROJ_ICONS["place_icon"]), + "media": "/static/{}".format(PROJ_ICONS["media_icon"]), + "event": "/static/{}".format(PROJ_ICONS["activity_icon"]), + "resource": "/static/{}".format(PROJ_ICONS["resource_icon"]), + "map_pin": "/static/{}".format(PROJ_ICONS["map_pin_icon"]), + "map_pin_selected": "/static/{}".format(PROJ_ICONS["map_pin_selected_icon"]), } -# Not sure if this is the best way to implement fonts. +# Not sure if this is the best way to implement fonts. # It gets tricky bc there will likely be multiple formats for each font. # For example: .ttf, .otf, .woff, .woff2, .svg -# We'll need to figure out how to handle this better. +# We'll need to figure out how to handle this better. # TODO: Plan to revisit this later. PROJ_FONTS = { - 'font_face_primary': '/static/explore/fonts/Open_Sans/static/OpenSans-Regular-export/OpenSans-Regular.css', - 'font_face_primary_bold': '/static/explore/fonts/Open_Sans/static/OpenSans-Bold-export/OpenSans-Bold.css', + "font_face_primary": "/static/explore/fonts/Open_Sans/static/OpenSans-Regular-export/OpenSans-Regular.css", + "font_face_primary_bold": "/static/explore/fonts/Open_Sans/static/OpenSans-Bold-export/OpenSans-Bold.css", } -HOME_FONT_COLOR = '#FFFFFF' -HOME_LEFT_BACKGROUND = '#000000' -HOME_RIGHT_BACKGROUND = '#000000' +HOME_FONT_COLOR = "#FFFFFF" +HOME_LEFT_BACKGROUND = "#000000" +HOME_RIGHT_BACKGROUND = "#000000" DEFAULT_MAXIMUM_RESULTS = 500 try: from TEKDB.local_settings import * except Exception as e: - print("ERROR: Unable to load local_settings.py. This is expected for docker deployment") + print( + "ERROR: Unable to load local_settings.py. This is expected for docker deployment" + ) diff --git a/TEKDB/TEKDB/tests/test_admin.py b/TEKDB/TEKDB/tests/test_admin.py index 0799b0c1..d2627206 100644 --- a/TEKDB/TEKDB/tests/test_admin.py +++ b/TEKDB/TEKDB/tests/test_admin.py @@ -12,35 +12,46 @@ User = get_user_model() -class MediaBulkUploadAdminTest(ITKTestCase): +class MediaBulkUploadAdminTest(ITKTestCase): def setUp(self): self.factory = RequestFactory() - self.user = User.objects.create_superuser(username='admin2', password='password', email='admin@example.com') + self.user = User.objects.create_superuser( + username="admin2", password="password", email="admin@example.com" + ) def test_media_bulk_upload_admin_add(self): - url = reverse('admin:TEKDB_mediabulkupload_add') - test_image = SimpleUploadedFile("./test_image.jpg", b"\x00\x00\x00\x00", content_type="image") + url = reverse("admin:TEKDB_mediabulkupload_add") + test_image = SimpleUploadedFile( + "./test_image.jpg", b"\x00\x00\x00\x00", content_type="image" + ) # TODO: Associate the images with 1+ Places, Resources, Citations, Activities, and PlacesResources - request = self.factory.post(url, { - # 'mediabulkname': 'Test Bulk Upload', - # 'mediabulkdate': '2024-12-12', - 'files': [test_image, test_image], - }) + request = self.factory.post( + url, + { + # 'mediabulkname': 'Test Bulk Upload', + # 'mediabulkdate': '2024-12-12', + "files": [test_image, test_image], + }, + ) request.user = self.user bulk_admin = MediaBulkUploadAdmin(model=MediaBulkUpload, admin_site=AdminSite()) bulk_form = MediaBulkUploadForm(request.POST) bulk_form.is_valid() - bulk_admin.save_model(obj=MediaBulkUpload(), request=request, form=bulk_form, change=None) + bulk_admin.save_model( + obj=MediaBulkUpload(), request=request, form=bulk_form, change=None + ) - self.assertTrue(Media.objects.filter(medianame='test_image').exists()) - self.assertTrue(Media.objects.filter(medianame='test_image').count() == 2) + self.assertTrue(Media.objects.filter(medianame="test_image").exists()) + self.assertTrue(Media.objects.filter(medianame="test_image").count() == 2) - for media in Media.objects.filter(medianame='test_image'): + for media in Media.objects.filter(medianame="test_image"): self.assertTrue(os.path.exists(media.mediafile.path)) - os.remove(media.mediafile.path) # Clean up the uploaded files after the test + os.remove( + media.mediafile.path + ) # Clean up the uploaded files after the test self.assertFalse(os.path.exists(media.mediafile.path)) media.delete() @@ -61,4 +72,4 @@ def test_media_bulk_upload_admin_add(self): # url = reverse('admin:TEKDB_mediabulkupload_delete', args=[media_bulk_upload.id]) # response = self.client.post(url, {'post': 'yes'}) # self.assertEqual(response.status_code, 302) - # self.assertFalse(MediaBulkUpload.objects.filter(id=media_bulk_upload.id).exists()) \ No newline at end of file + # self.assertFalse(MediaBulkUpload.objects.filter(id=media_bulk_upload.id).exists()) diff --git a/TEKDB/TEKDB/tests/test_models.py b/TEKDB/TEKDB/tests/test_models.py index 1a77830d..6bd40573 100644 --- a/TEKDB/TEKDB/tests/test_models.py +++ b/TEKDB/TEKDB/tests/test_models.py @@ -2,6 +2,7 @@ from TEKDB.models import * from django.utils import timezone from django.urls import reverse + # from .forms import * from django.conf import settings from django.db import connection @@ -17,6 +18,7 @@ # MODELS W/ keyword_search ### + def test_model_id_collision(model, insertion_object, test): """ Test that saving an object can recover from an ID collision @@ -27,10 +29,10 @@ def test_model_id_collision(model, insertion_object, test): PK_FIELD = model._meta.pk.name SEQUENCE_NAME = '"{}_{}_seq"'.format(DB_TABLE, PK_FIELD) ORIGINAL_COUNT = model.objects.all().count() - MAX_ID = model.objects.all().order_by('-pk')[0].pk + MAX_ID = model.objects.all().order_by("-pk")[0].pk cur = connection.cursor() - cur.execute('SELECT setval(%s, %s)', (SEQUENCE_NAME, MAX_ID - 1)) + cur.execute("SELECT setval(%s, %s)", (SEQUENCE_NAME, MAX_ID - 1)) new_obj = model.objects.create(**insertion_object) new_obj.save() test.assertTrue(new_obj.pk > MAX_ID) @@ -49,6 +51,7 @@ class ITKTestCase(TestCase): """ Base class for all ITK tests. """ + # fixtures = ['TEKDB/fixtures/all_dummy_data.json',] @classmethod @@ -57,8 +60,11 @@ def setUpClass(self): Set up the test case. """ super().setUpClass() - import_fixture_file(join(settings.BASE_DIR, 'TEKDB', 'fixtures', 'all_dummy_data.json')) - + import_fixture_file( + join(settings.BASE_DIR, "TEKDB", "fixtures", "all_dummy_data.json") + ) + + class ITKSearchTest(ITKTestCase): """ Base class for all ITK search tests. @@ -71,21 +77,22 @@ def setUpClass(self): """ super().setUpClass() cur = connection.cursor() - cur.execute('CREATE EXTENSION IF NOT EXISTS pg_trgm;') + cur.execute("CREATE EXTENSION IF NOT EXISTS pg_trgm;") + #################################################### # Search Tests #################################################### -class MiscSearchTest(ITKSearchTest): +class MiscSearchTest(ITKSearchTest): def test_empty_string_search(self): """ Test that an empty string search returns all objects """ - keyword = '' - categories = ['places','resources','activities','sources','media'] - + keyword = "" + categories = ["places", "resources", "activities", "sources", "media"] + from explore.views import get_model_by_type for category in categories: @@ -93,7 +100,11 @@ def test_empty_string_search(self): resultlist = [] for model in query_models: # Find all results matching keyword in this model - print("\n\ttest empty string search for {} equals count of {}.objects.count".format(model.__name__, model.__name__)) + print( + "\n\ttest empty string search for {} equals count of {}.objects.count".format( + model.__name__, model.__name__ + ) + ) model_results = model.keyword_search(keyword) for result in model_results: resultlist.append(result) @@ -105,14 +116,17 @@ def test_phrase_search(self): Test that a phrase search returns all objects that contain the phrase """ keyword = "salmon trout" - + from explore.views import getResults - - search_results = getResults(keyword, categories=['places','resources','activities','sources','media']) + + search_results = getResults( + keyword, + categories=["places", "resources", "activities", "sources", "media"], + ) # 24 is king salmon - self.assertTrue(24 in [x['id'] for x in search_results]) + self.assertTrue(24 in [x["id"] for x in search_results]) # 362 is cutthroat trout - self.assertTrue(362 in [x['id'] for x in search_results]) + self.assertTrue(362 in [x["id"] for x in search_results]) # LookupTribe @@ -121,9 +135,9 @@ def test_phrase_search(self): # Record Tests #################################################### + # Places class PlacesTest(ITKSearchTest): - def test_placess(self): # print("Testing Places Model") # print("Total places: {}".format(Places.objects.all().count())) @@ -141,17 +155,17 @@ def test_places_search(self): # * placealtindigenousname # * Source # * DigitizedBy - keyword = 'place' + keyword = "place" place_results = Places.keyword_search(keyword) # do we get 3 results? also checks that we do not return all results in Place category self.assertEqual(place_results.count(), 3) # checkout results belong to one of the search fields for result in place_results: - self.assertTrue(hasattr(result, 'similarity')) + self.assertTrue(hasattr(result, "similarity")) self.assertTrue( ( - result.similarity and - result.similarity > settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity > settings.MIN_SEARCH_SIMILARITY ) ) @@ -162,17 +176,17 @@ def test_places_search(self): # * planningunitid # * primaryhabitat # * tribeid - keyword = 'Northern' + keyword = "Northern" planning_unit_fk_search = Places.keyword_search(keyword) self.assertEqual(planning_unit_fk_search.count(), 10) self.assertTrue(25 in [x.pk for x in planning_unit_fk_search]) - keyword = 'Rocky Intertidal' + keyword = "Rocky Intertidal" habitat_fk_search = Places.keyword_search(keyword) self.assertEqual(habitat_fk_search.count(), 8) self.assertTrue(25 in [x.pk for x in habitat_fk_search]) - keyword = 'Tolowa' + keyword = "Tolowa" tribe_fk_search = Places.keyword_search(keyword) self.assertEqual(tribe_fk_search.count(), 13) self.assertTrue(25 in [x.pk for x in tribe_fk_search]) @@ -182,23 +196,22 @@ def test_places_search(self): ####################################### # Test Alternative Place Name # * PlacesResourceEvents - keyword = 'flurpie' + keyword = "flurpie" flurpie_results = Places.keyword_search(keyword) self.assertEqual(flurpie_results.count(), 3) - self.assertEqual(flurpie_results[0].indigenousplacename, 'Test') + self.assertEqual(flurpie_results[0].indigenousplacename, "Test") def test_place_id_collision(self): """ Test that saving an activity can recover from an ID collision """ - insertion_object = { - } + insertion_object = {} collision_result = test_model_id_collision(Places, insertion_object, self) self.assertTrue(collision_result) + # Resources class ResourcesTest(ITKSearchTest): - def test_resources(self): # print("Testing Resources Model") # print("Total resources: {}".format(Resources.objects.all().count())) @@ -214,17 +227,17 @@ def test_resources_search(self): # * indigenousname # * genus # * species - keyword = 'chiton' + keyword = "chiton" chiton_results = Resources.keyword_search(keyword) # do we get 16 results? self.assertEqual(chiton_results.count(), 16) # is weighting appropriate? Chiton > Chiton, Gumboot > Sea Cucumber > Skunk Cabbage for result in chiton_results: - self.assertTrue(hasattr(result,'similarity')) + self.assertTrue(hasattr(result, "similarity")) self.assertTrue( ( - result.similarity and - result.similarity >= settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity >= settings.MIN_SEARCH_SIMILARITY ) ) # Advanced search name, description ONLY (no genus/spceies): 2 results @@ -232,14 +245,14 @@ def test_resources_search(self): sea_cucumber_id = 305 gumboot_chiton_id = 188 chiton_id = 187 - fields = ['commonname', 'indigenousname'] + fields = ["commonname", "indigenousname"] fk_fields = [] advanced_results = Resources.keyword_search(keyword, fields, fk_fields) # sea cukes and skunk cabbage only have 'chiton' in their genus or species name. They should not be present. self.assertEqual(advanced_results.count(), 10) for resource in advanced_results: self.assertTrue(resource.pk not in [skunk_cabbage_id, sea_cucumber_id]) - fields = ['genus', 'species'] + fields = ["genus", "species"] advanced_results = Resources.keyword_search(keyword, fields, fk_fields) # 'chiton' only has chiton in it's commonname. It should not be present. self.assertEqual(advanced_results.count(), 7) @@ -253,7 +266,7 @@ def test_resources_search(self): # Test resourceclassificationgroup search # This keyword is good to test Resources model's only foreign key field: # * resourceclassificationgroup - keyword = 'anadromous' + keyword = "anadromous" anadromous_results = Resources.keyword_search(keyword) self.assertEqual(anadromous_results.count(), 16) self.assertTrue(347 in [x.pk for x in anadromous_results]) @@ -271,10 +284,10 @@ def test_resources_search(self): # * ResourcesMediaEvents # These 4 are the 'in-between' tables for the other 4 core models. Perhaps not searching these is intentional? - keyword = 'flurpie' + keyword = "flurpie" flurpie_results = Resources.keyword_search(keyword) self.assertEqual(flurpie_results.count(), 2) - self.assertEqual(flurpie_results[0].commonname, 'Test') + self.assertEqual(flurpie_results[0].commonname, "Test") def test_resource_id_collision(self): """ @@ -286,9 +299,9 @@ def test_resource_id_collision(self): collision_result = test_model_id_collision(Resources, insertion_object, self) self.assertTrue(collision_result) + # ResourcesActivityEvents ('Activities') class ResourcesActivityEventsTest(ITKSearchTest): - def test_activity(self): # print("Testing ResourcesActivityEvents Model") # print("Total activities: {}".format(ResourcesActivityEvents.objects.all().count())) @@ -300,16 +313,16 @@ def test_activities_search(self): ##################################### # fields: - keyword = 'men' + keyword = "men" activity_results = ResourcesActivityEvents.keyword_search(keyword) self.assertEqual(activity_results.count(), 2) for result in activity_results: - self.assertTrue(hasattr(result, 'similarity')) + self.assertTrue(hasattr(result, "similarity")) self.assertTrue( ( - result.similarity and - result.similarity > settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity > settings.MIN_SEARCH_SIMILARITY ) ) @@ -318,14 +331,16 @@ def test_activity_id_collision(self): Test that saving an activity can recover from an ID collision """ insertion_object = { - 'placeresourceid': PlacesResourceEvents.objects.all()[0], + "placeresourceid": PlacesResourceEvents.objects.all()[0], } - collision_result = test_model_id_collision(ResourcesActivityEvents, insertion_object, self) + collision_result = test_model_id_collision( + ResourcesActivityEvents, insertion_object, self + ) self.assertTrue(collision_result) + # Citations (Bibliographic 'Sources') class CitationsTest(ITKSearchTest): - def test_citations(self): # print("Testing Places Model") # print("Total places: {}".format(Places.objects.all().count())) @@ -351,16 +366,16 @@ def test_citations_search(self): # X intervieweeid (foreign key) (not ready for testing) # X interviewerid (foreign key) (not ready for testing) - keyword = 'traditional' + keyword = "traditional" cit_results = Citations.keyword_search(keyword) self.assertEqual(cit_results.count(), 1) for result in cit_results: - self.assertTrue(hasattr(result, 'similarity')) + self.assertTrue(hasattr(result, "similarity")) self.assertTrue( ( - result.similarity and - result.similarity > settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity > settings.MIN_SEARCH_SIMILARITY ) ) @@ -368,7 +383,7 @@ def test_citations_search(self): ### TEST FOREIGN KEY FIELD SEARCH ### ##################################### # Citation model's foreign key field(s): - keyword = 'book' + keyword = "book" reftype_results = Citations.keyword_search(keyword) self.assertEqual(reftype_results.count(), 1) self.assertTrue(11 in [x.pk for x in reftype_results]) @@ -379,7 +394,6 @@ def test_citations_search(self): # self.assertEqual(authortype_results.count(), 1) # self.assertTrue(11 in [x.pk for x in authortype_results]) - ####################################### ### TEST MODEL SET REFERENCE SEARCH ### ####################################### @@ -391,14 +405,14 @@ def test_citation_id_collision(self): Test that saving a citation can recover from an ID collision """ insertion_object = { - 'referencetype': LookupReferenceType.objects.all()[0], + "referencetype": LookupReferenceType.objects.all()[0], } collision_result = test_model_id_collision(Citations, insertion_object, self) self.assertTrue(collision_result) + # Media class MediaTest(ITKSearchTest): - def test_media(self): # print("Testing Media Model") # print("Total media: {}".format(Media.objects.all().count())) @@ -410,16 +424,16 @@ def test_media_search(self): ##################################### # fields: - keyword = 'sample' + keyword = "sample" media_results = Media.keyword_search(keyword) self.assertEqual(media_results.count(), 2) for result in media_results: - self.assertTrue(hasattr(result, 'similarity')) + self.assertTrue(hasattr(result, "similarity")) self.assertTrue( ( - result.similarity and - result.similarity > settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity > settings.MIN_SEARCH_SIMILARITY ) ) @@ -427,55 +441,62 @@ def test_media_id_collision(self): """ Test that saving a media can recover from an ID collision """ - insertion_object = { - } + insertion_object = {} collision_result = test_model_id_collision(Media, insertion_object, self) self.assertTrue(collision_result) + # MediaBulkUpload class MediaBulkUploadTest(ITKSearchTest): - def test_media_bulk_upload_id_collision(self): """ Test that saving a bulk upload record can recover from an ID collision """ - insertion_object = { - } + insertion_object = {} if MediaBulkUpload.objects.all().count() == 0: - MediaBulkUpload.objects.create(**{'pk':7}) + MediaBulkUpload.objects.create(**{"pk": 7}) self.assertTrue(MediaBulkUpload.objects.all().count() > 0) existing_bulk_record = MediaBulkUpload.objects.all()[0] self.assertTrue(existing_bulk_record.pk > 0) - collision_result = test_model_id_collision(MediaBulkUpload, insertion_object, self) + collision_result = test_model_id_collision( + MediaBulkUpload, insertion_object, self + ) self.assertTrue(collision_result) + #################################################### # Relationship Tests #################################################### # ResourceActivityMediaEvents ('Activity - Media') class ResourceActivityMediaEventsTest(ITKTestCase): - def test_activity_media_relationship_id_collision(self): """ Test that saving an activity-media relationship can recover from an ID collision """ - insertion_object = { - 'resourceactivityid': ResourcesActivityEvents.objects.all()[1], - 'mediaid': Media.objects.all()[1], + insertion_object = { + "resourceactivityid": ResourcesActivityEvents.objects.all()[1], + "mediaid": Media.objects.all()[1], } - if ResourceActivityMediaEvents.objects.all().count() == 0 or ResourceActivityMediaEvents.objects.all().order_by('-pk')[0].pk < 2: - ResourceActivityMediaEvents.objects.create(**{ - 'pk':2, - 'resourceactivityid': ResourcesActivityEvents.objects.all()[0], - 'mediaid': Media.objects.all()[0], - }) + if ( + ResourceActivityMediaEvents.objects.all().count() == 0 + or ResourceActivityMediaEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + ResourceActivityMediaEvents.objects.create( + **{ + "pk": 2, + "resourceactivityid": ResourcesActivityEvents.objects.all()[0], + "mediaid": Media.objects.all()[0], + } + ) self.assertTrue(ResourceActivityMediaEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(ResourceActivityMediaEvents, insertion_object, self) + collision_result = test_model_id_collision( + ResourceActivityMediaEvents, insertion_object, self + ) self.assertTrue(collision_result) + # ResourceActivityCitationEvents ('Activity - Sources') class ResourceActivityCitationEventsTest(ITKTestCase): - def test_activity_citation_relationship_id_collision(self): """ Test that saving an activity-source relationship can recover from an ID collision @@ -489,13 +510,15 @@ def test_activity_citation_relationship_id_collision(self): new_combo_2 = False for activity in activities: for citation in citations: - if ResourceActivityCitationEvents.objects.filter( - resourceactivityid=activity, - citationid=citation - ).count() == 0: - combo = { - 'resourceactivityid': activity, - 'citationid': citation, + if ( + ResourceActivityCitationEvents.objects.filter( + resourceactivityid=activity, citationid=citation + ).count() + == 0 + ): + combo = { + "resourceactivityid": activity, + "citationid": citation, } if not new_combo_1: new_combo_1 = combo @@ -508,59 +531,70 @@ def test_activity_citation_relationship_id_collision(self): self.assertTrue(new_combo_1 != False) self.assertTrue(new_combo_2 != False) self.assertTrue(new_combo_1 != new_combo_2) - + insertion_object = new_combo_2 - if ResourceActivityCitationEvents.objects.all().count() == 0 or ResourceActivityCitationEvents.objects.all().order_by('-pk')[0].pk < 2: - new_combo_1['pk'] = 2 + if ( + ResourceActivityCitationEvents.objects.all().count() == 0 + or ResourceActivityCitationEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + new_combo_1["pk"] = 2 ResourceActivityCitationEvents.objects.create(**new_combo_1) self.assertTrue(ResourceActivityCitationEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(ResourceActivityCitationEvents, insertion_object, self) + collision_result = test_model_id_collision( + ResourceActivityCitationEvents, insertion_object, self + ) self.assertTrue(collision_result) + # MediaCitationEvents ('Media - Sources') class MediaCitationEventsTest(ITKTestCase): - def test_media_citation_relationship_id_collision(self): """ Test that saving a media-citation relationship can recover from an ID collision """ - insertion_object = { - 'mediaid': Media.objects.all()[1], - 'citationid': Citations.objects.all()[1], + insertion_object = { + "mediaid": Media.objects.all()[1], + "citationid": Citations.objects.all()[1], } - if MediaCitationEvents.objects.all().count() == 0 or MediaCitationEvents.objects.all().order_by('-pk')[0].pk < 2: - MediaCitationEvents.objects.create(**{ - 'pk':2, - 'mediaid': Media.objects.all()[0], - 'citationid': Citations.objects.all()[0], - }) + if ( + MediaCitationEvents.objects.all().count() == 0 + or MediaCitationEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + MediaCitationEvents.objects.create( + **{ + "pk": 2, + "mediaid": Media.objects.all()[0], + "citationid": Citations.objects.all()[0], + } + ) self.assertTrue(MediaCitationEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(MediaCitationEvents, insertion_object, self) + collision_result = test_model_id_collision( + MediaCitationEvents, insertion_object, self + ) self.assertTrue(collision_result) -class MediaCitationEventsCascadeTest(ITKTestCase): +class MediaCitationEventsCascadeTest(ITKTestCase): def setUp(self): self.media = Media.objects.create( - medianame="Cascade Media", - mediadescription="Cascade Media Description" + medianame="Cascade Media", mediadescription="Cascade Media Description" ) self.citation = Citations.objects.create( referencetype=LookupReferenceType.objects.get(pk=1), - referencetext="Cascade Citation" + referencetext="Cascade Citation", ) self.event = MediaCitationEvents.objects.create( mediaid=self.media, citationid=self.citation, - relationshipdescription="Cascade Relationship" + relationshipdescription="Cascade Relationship", ) def test_cascade_delete_media(self): event_pks = list( - MediaCitationEvents.objects - .filter(mediaid=self.media) - .values_list('pk', flat=True) + MediaCitationEvents.objects.filter(mediaid=self.media).values_list( + "pk", flat=True + ) ) self.assertIn(self.event.pk, event_pks) total_before = MediaCitationEvents.objects.count() @@ -568,16 +602,16 @@ def test_cascade_delete_media(self): for pk in event_pks: self.assertFalse( MediaCitationEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) total_after = MediaCitationEvents.objects.count() self.assertEqual(total_before - total_after, len(event_pks)) def test_cascade_delete_citation(self): event_pks = list( - MediaCitationEvents.objects - .filter(citationid=self.citation) - .values_list('pk', flat=True) + MediaCitationEvents.objects.filter(citationid=self.citation).values_list( + "pk", flat=True + ) ) self.assertIn(self.event.pk, event_pks) total_before = MediaCitationEvents.objects.count() @@ -585,95 +619,124 @@ def test_cascade_delete_citation(self): for pk in event_pks: self.assertFalse( MediaCitationEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) total_after = MediaCitationEvents.objects.count() self.assertEqual(total_before - total_after, len(event_pks)) + # PlacesResourceMediaEvents ('Place-Resources - Media') class PlacesResourceMediaEventsTest(ITKTestCase): - def test_place_resource_media_relationship_id_collision(self): """ Test that saving a place-resource-media relationship can recover from an ID collision """ - insertion_object = { - 'placeresourceid': PlacesResourceEvents.objects.all()[1], - 'mediaid': Media.objects.all()[1], + insertion_object = { + "placeresourceid": PlacesResourceEvents.objects.all()[1], + "mediaid": Media.objects.all()[1], } - if PlacesResourceMediaEvents.objects.all().count() == 0 or PlacesResourceMediaEvents.objects.all().order_by('-pk')[0].pk < 2: - PlacesResourceMediaEvents.objects.create(**{ - 'pk':2, - 'placeresourceid': PlacesResourceEvents.objects.all()[0], - 'mediaid': Media.objects.all()[0], - }) + if ( + PlacesResourceMediaEvents.objects.all().count() == 0 + or PlacesResourceMediaEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + PlacesResourceMediaEvents.objects.create( + **{ + "pk": 2, + "placeresourceid": PlacesResourceEvents.objects.all()[0], + "mediaid": Media.objects.all()[0], + } + ) self.assertTrue(PlacesResourceMediaEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(PlacesResourceMediaEvents, insertion_object, self) + collision_result = test_model_id_collision( + PlacesResourceMediaEvents, insertion_object, self + ) self.assertTrue(collision_result) + # PlacesResourceCitationEvents ('Place-Resources - Sources') class PlacesResourceCitationEventsTest(ITKTestCase): - def test_place_resource_citation_relationship_id_collision(self): """ Test that saving a place-resource-citation relationship can recover from an ID collision """ - insertion_object = { - 'placeresourceid': PlacesResourceEvents.objects.all()[1], - 'citationid': Citations.objects.all()[1], + insertion_object = { + "placeresourceid": PlacesResourceEvents.objects.all()[1], + "citationid": Citations.objects.all()[1], } - if PlacesResourceCitationEvents.objects.all().count() == 0 or PlacesResourceCitationEvents.objects.all().order_by('-pk')[0].pk < 2: - PlacesResourceCitationEvents.objects.create(**{ - 'pk':2, - 'placeresourceid': PlacesResourceEvents.objects.all()[0], - 'citationid': Citations.objects.all()[0], - }) + if ( + PlacesResourceCitationEvents.objects.all().count() == 0 + or PlacesResourceCitationEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + PlacesResourceCitationEvents.objects.create( + **{ + "pk": 2, + "placeresourceid": PlacesResourceEvents.objects.all()[0], + "citationid": Citations.objects.all()[0], + } + ) self.assertTrue(PlacesResourceCitationEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(PlacesResourceCitationEvents, insertion_object, self) + collision_result = test_model_id_collision( + PlacesResourceCitationEvents, insertion_object, self + ) self.assertTrue(collision_result) + # PlaceAltIndigenousName ('Places - Alternative Name') class PlaceAltIndigenousNameTest(ITKTestCase): - def test_place_alt_indigenous_name_id_collision(self): """ Test that saving a place-alt-indigenous-name relationship can recover from an ID collision """ - insertion_object = { - 'placeid': Places.objects.all()[0], - 'altindigenousname': "Sample Alt Name 1", + insertion_object = { + "placeid": Places.objects.all()[0], + "altindigenousname": "Sample Alt Name 1", } - if PlaceAltIndigenousName.objects.all().count() == 0 or PlaceAltIndigenousName.objects.all().order_by('-pk')[0].pk < 2: - PlaceAltIndigenousName.objects.create(**{ - 'placeid': Places.objects.all()[0], - 'altindigenousnameid': 2, - 'altindigenousname': "Sample Alt Name 2", - }) + if ( + PlaceAltIndigenousName.objects.all().count() == 0 + or PlaceAltIndigenousName.objects.all().order_by("-pk")[0].pk < 2 + ): + PlaceAltIndigenousName.objects.create( + **{ + "placeid": Places.objects.all()[0], + "altindigenousnameid": 2, + "altindigenousname": "Sample Alt Name 2", + } + ) self.assertTrue(PlaceAltIndigenousName.objects.all().count() > 0) - collision_result = test_model_id_collision(PlaceAltIndigenousName, insertion_object, self) + collision_result = test_model_id_collision( + PlaceAltIndigenousName, insertion_object, self + ) self.assertTrue(collision_result) + # PlacesMediaEvents ('Places - Media') class PlacesMediaEventsTest(ITKTestCase): - def test_place_media_relationship_id_collision(self): """ Test that saving a place-media relationship can recover from an ID collision """ - insertion_object = { - 'placeid': Places.objects.all()[1], - 'mediaid': Media.objects.all()[1], + insertion_object = { + "placeid": Places.objects.all()[1], + "mediaid": Media.objects.all()[1], } - if PlacesMediaEvents.objects.all().count() == 0 or PlacesMediaEvents.objects.all().order_by('-pk')[0].pk < 2: - PlacesMediaEvents.objects.create(**{ - 'pk':2, - 'placeid': Places.objects.all()[0], - 'mediaid': Media.objects.all()[0], - }) + if ( + PlacesMediaEvents.objects.all().count() == 0 + or PlacesMediaEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + PlacesMediaEvents.objects.create( + **{ + "pk": 2, + "placeid": Places.objects.all()[0], + "mediaid": Media.objects.all()[0], + } + ) self.assertTrue(PlacesMediaEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(PlacesMediaEvents, insertion_object, self) + collision_result = test_model_id_collision( + PlacesMediaEvents, insertion_object, self + ) self.assertTrue(collision_result) + class PlacesMediaEventsCascadeTest(ITKTestCase): def setUp(self): # Create a Places instance @@ -683,23 +746,22 @@ def setUp(self): ) # Create a Media instance self.media = Media.objects.create( - medianame="Test Media", - mediadescription="Test Media Description" + medianame="Test Media", mediadescription="Test Media Description" ) # Create a PlacesMediaEvents instance self.places_media_event = PlacesMediaEvents.objects.create( placeid=self.place, mediaid=self.media, - relationshipdescription="Test Relationship" + relationshipdescription="Test Relationship", ) - def test_cascade_delete_place(self): + def test_cascade_delete_place(self): # grab the PKs of all events for our test place event_pks = list( - PlacesMediaEvents.objects - .filter(placeid=self.place) - .values_list('pk', flat=True) + PlacesMediaEvents.objects.filter(placeid=self.place).values_list( + "pk", flat=True + ) ) self.assertIn(self.places_media_event.pk, event_pks) @@ -714,7 +776,7 @@ def test_cascade_delete_place(self): for pk in event_pks: self.assertFalse( PlacesMediaEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) # and total should have dropped by exactly len(event_pks) @@ -723,47 +785,55 @@ def test_cascade_delete_place(self): def test_cascade_delete_media(self): media_pks = list( - PlacesMediaEvents.objects - .filter(mediaid=self.media) - .values_list('pk', flat=True) + PlacesMediaEvents.objects.filter(mediaid=self.media).values_list( + "pk", flat=True + ) ) self.assertIn(self.places_media_event.pk, media_pks) total_before = PlacesMediaEvents.objects.count() - + # Delete the Media instance self.media.delete() for pk in media_pks: self.assertFalse( PlacesMediaEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) total_after = PlacesMediaEvents.objects.count() self.assertEqual(total_before - total_after, len(media_pks)) + # PlacesResourceEvents ('Places - Resources') class PlacesResourceEventsTest(ITKTestCase): - def test_place_resource_relationship_id_collision(self): """ Test that saving a place-resource relationship can recover from an ID collision """ - insertion_object = { - 'placeid': Places.objects.all()[1], - 'resourceid': Resources.objects.all()[1], + insertion_object = { + "placeid": Places.objects.all()[1], + "resourceid": Resources.objects.all()[1], } - if PlacesResourceEvents.objects.all().count() == 0 or PlacesResourceEvents.objects.all().order_by('-pk')[0].pk < 2: - PlacesResourceEvents.objects.create(**{ - 'pk':2, - 'placeid': Places.objects.all()[0], - 'resourceid': Resources.objects.all()[0], - }) + if ( + PlacesResourceEvents.objects.all().count() == 0 + or PlacesResourceEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + PlacesResourceEvents.objects.create( + **{ + "pk": 2, + "placeid": Places.objects.all()[0], + "resourceid": Resources.objects.all()[0], + } + ) self.assertTrue(PlacesResourceEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(PlacesResourceEvents, insertion_object, self) + collision_result = test_model_id_collision( + PlacesResourceEvents, insertion_object, self + ) self.assertTrue(collision_result) + class PlacesResourceEventsCascadeTest(ITKTestCase): # fixtures = ['/usr/local/apps/TEKDB/TEKDB/TEKDB/fixtures/all_dummy_data.json',] @@ -773,20 +843,19 @@ def setUp(self): englishplacename="Cascade Place English", ) self.resource = Resources.objects.create( - commonname="Cascade Resource", - indigenousname="Cascade Indigenous Resource" + commonname="Cascade Resource", indigenousname="Cascade Indigenous Resource" ) self.event = PlacesResourceEvents.objects.create( placeid=self.place, resourceid=self.resource, - relationshipdescription="Cascade Relationship" + relationshipdescription="Cascade Relationship", ) def test_cascade_delete_place(self): event_pks = list( - PlacesResourceEvents.objects - .filter(placeid=self.place) - .values_list('pk', flat=True) + PlacesResourceEvents.objects.filter(placeid=self.place).values_list( + "pk", flat=True + ) ) self.assertIn(self.event.pk, event_pks) total_before = PlacesResourceEvents.objects.count() @@ -794,16 +863,16 @@ def test_cascade_delete_place(self): for pk in event_pks: self.assertFalse( PlacesResourceEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) total_after = PlacesResourceEvents.objects.count() self.assertEqual(total_before - total_after, len(event_pks)) def test_cascade_delete_resource(self): event_pks = list( - PlacesResourceEvents.objects - .filter(resourceid=self.resource) - .values_list('pk', flat=True) + PlacesResourceEvents.objects.filter(resourceid=self.resource).values_list( + "pk", flat=True + ) ) self.assertIn(self.event.pk, event_pks) total_before = PlacesResourceEvents.objects.count() @@ -811,34 +880,41 @@ def test_cascade_delete_resource(self): for pk in event_pks: self.assertFalse( PlacesResourceEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) total_after = PlacesResourceEvents.objects.count() self.assertEqual(total_before - total_after, len(event_pks)) + # PlacesCitationEvents ('Places - Sources') class PlacesCitationEventsTest(ITKTestCase): - def test_place_citation_relationship_id_collision(self): """ Test that saving a place-citation relationship can recover from an ID collision """ - insertion_object = { - 'placeid': Places.objects.all()[1], - 'citationid': Citations.objects.all()[1], + insertion_object = { + "placeid": Places.objects.all()[1], + "citationid": Citations.objects.all()[1], } - if PlacesCitationEvents.objects.all().count() == 0 or PlacesCitationEvents.objects.all().order_by('-pk')[0].pk < 2: - PlacesCitationEvents.objects.create(**{ - 'pk':2, - 'placeid': Places.objects.all()[0], - 'citationid': Citations.objects.all()[0], - }) + if ( + PlacesCitationEvents.objects.all().count() == 0 + or PlacesCitationEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + PlacesCitationEvents.objects.create( + **{ + "pk": 2, + "placeid": Places.objects.all()[0], + "citationid": Citations.objects.all()[0], + } + ) self.assertTrue(PlacesCitationEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(PlacesCitationEvents, insertion_object, self) + collision_result = test_model_id_collision( + PlacesCitationEvents, insertion_object, self + ) self.assertTrue(collision_result) -class PlacesCitationEventsCascadeTest(ITKTestCase): +class PlacesCitationEventsCascadeTest(ITKTestCase): def setUp(self): self.place = Places.objects.create( indigenousplacename="Cascade Place", @@ -846,19 +922,19 @@ def setUp(self): ) self.citation = Citations.objects.create( referencetext="Cascade Citation", - referencetype=LookupReferenceType.objects.create(documenttype="Book") + referencetype=LookupReferenceType.objects.create(documenttype="Book"), ) self.event = PlacesCitationEvents.objects.create( placeid=self.place, citationid=self.citation, - relationshipdescription="Cascade Relationship" + relationshipdescription="Cascade Relationship", ) def test_cascade_delete_place(self): event_pks = list( - PlacesCitationEvents.objects - .filter(placeid=self.place) - .values_list('pk', flat=True) + PlacesCitationEvents.objects.filter(placeid=self.place).values_list( + "pk", flat=True + ) ) self.assertIn(self.event.pk, event_pks) total_before = PlacesCitationEvents.objects.count() @@ -866,16 +942,16 @@ def test_cascade_delete_place(self): for pk in event_pks: self.assertFalse( PlacesCitationEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) total_after = PlacesCitationEvents.objects.count() self.assertEqual(total_before - total_after, len(event_pks)) def test_cascade_delete_citation(self): event_pks = list( - PlacesCitationEvents.objects - .filter(citationid=self.citation) - .values_list('pk', flat=True) + PlacesCitationEvents.objects.filter(citationid=self.citation).values_list( + "pk", flat=True + ) ) self.assertIn(self.event.pk, event_pks) total_before = PlacesCitationEvents.objects.count() @@ -883,116 +959,147 @@ def test_cascade_delete_citation(self): for pk in event_pks: self.assertFalse( PlacesCitationEvents.objects.filter(pk=pk).exists(), - f"event {pk} should have been cascade‐deleted" + f"event {pk} should have been cascade‐deleted", ) total_after = PlacesCitationEvents.objects.count() self.assertEqual(total_before - total_after, len(event_pks)) + # ResourceAltIndigenousName ('Resource Alternative Names') class ResourceAltIndigenousNameTest(ITKTestCase): - def test_resource_alt_indigenous_name_id_collision(self): """ Test that saving a resource-alt-indigenous-name relationship can recover from an ID collision """ - insertion_object = { - 'resourceid': Resources.objects.all()[0], - 'altindigenousname': "Sample Alt Name 1", + insertion_object = { + "resourceid": Resources.objects.all()[0], + "altindigenousname": "Sample Alt Name 1", } - if ResourceAltIndigenousName.objects.all().count() == 0 or ResourceAltIndigenousName.objects.all().order_by('-pk')[0].pk < 2: - ResourceAltIndigenousName.objects.create(**{ - 'resourceid': Resources.objects.all()[0], - 'altindigenousnameid': 2, - 'altindigenousname': "Sample Alt Name 2", - }) + if ( + ResourceAltIndigenousName.objects.all().count() == 0 + or ResourceAltIndigenousName.objects.all().order_by("-pk")[0].pk < 2 + ): + ResourceAltIndigenousName.objects.create( + **{ + "resourceid": Resources.objects.all()[0], + "altindigenousnameid": 2, + "altindigenousname": "Sample Alt Name 2", + } + ) self.assertTrue(ResourceAltIndigenousName.objects.all().count() > 0) - collision_result = test_model_id_collision(ResourceAltIndigenousName, insertion_object, self) + collision_result = test_model_id_collision( + ResourceAltIndigenousName, insertion_object, self + ) self.assertTrue(collision_result) + # ResourcesMediaEvents ('Resources - Media') class ResourcesMediaEventsTest(ITKTestCase): - def test_resource_media_relationship_id_collision(self): """ Test that saving a resource-media relationship can recover from an ID collision """ - insertion_object = { - 'resourceid': Resources.objects.all()[1], - 'mediaid': Media.objects.all()[1], + insertion_object = { + "resourceid": Resources.objects.all()[1], + "mediaid": Media.objects.all()[1], } - if ResourcesMediaEvents.objects.all().count() == 0 or ResourcesMediaEvents.objects.all().order_by('-pk')[0].pk < 2: - ResourcesMediaEvents.objects.create(**{ - 'pk':2, - 'resourceid': Resources.objects.all()[0], - 'mediaid': Media.objects.all()[0], - }) + if ( + ResourcesMediaEvents.objects.all().count() == 0 + or ResourcesMediaEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + ResourcesMediaEvents.objects.create( + **{ + "pk": 2, + "resourceid": Resources.objects.all()[0], + "mediaid": Media.objects.all()[0], + } + ) self.assertTrue(ResourcesMediaEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(ResourcesMediaEvents, insertion_object, self) + collision_result = test_model_id_collision( + ResourcesMediaEvents, insertion_object, self + ) self.assertTrue(collision_result) + # ResourceResourceEvents ('Resources - Resources') class ResourceResourceEventsTest(ITKTestCase): - def test_resource_resource_relationship_id_collision(self): """ Test that saving a resource-resource relationship can recover from an ID collision """ - insertion_object = { - 'resourceid': Resources.objects.all()[1], - 'altresourceid': Resources.objects.all()[0], + insertion_object = { + "resourceid": Resources.objects.all()[1], + "altresourceid": Resources.objects.all()[0], } - if ResourceResourceEvents.objects.all().count() == 0 or ResourceResourceEvents.objects.all().order_by('-pk')[0].pk < 2: - ResourceResourceEvents.objects.create(**{ - 'pk':2, - 'resourceid': Resources.objects.all()[2], - 'altresourceid': Resources.objects.all()[0], - }) + if ( + ResourceResourceEvents.objects.all().count() == 0 + or ResourceResourceEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + ResourceResourceEvents.objects.create( + **{ + "pk": 2, + "resourceid": Resources.objects.all()[2], + "altresourceid": Resources.objects.all()[0], + } + ) self.assertTrue(ResourceResourceEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(ResourceResourceEvents, insertion_object, self) + collision_result = test_model_id_collision( + ResourceResourceEvents, insertion_object, self + ) self.assertTrue(collision_result) + # ResourcesCitationEvents ('Resources - Sources') class ResourcesCitationEventsTest(ITKTestCase): - def test_resource_citation_relationship_id_collision(self): """ Test that saving a resource-citation relationship can recover from an ID collision """ - insertion_object = { - 'resourceid': Resources.objects.all()[1], - 'citationid': Citations.objects.all()[1], + insertion_object = { + "resourceid": Resources.objects.all()[1], + "citationid": Citations.objects.all()[1], } - if ResourcesCitationEvents.objects.all().count() == 0 or ResourcesCitationEvents.objects.all().order_by('-pk')[0].pk < 2: - ResourcesCitationEvents.objects.create(**{ - 'pk':2, - 'resourceid': Resources.objects.all()[0], - 'citationid': Citations.objects.all()[0], - }) + if ( + ResourcesCitationEvents.objects.all().count() == 0 + or ResourcesCitationEvents.objects.all().order_by("-pk")[0].pk < 2 + ): + ResourcesCitationEvents.objects.create( + **{ + "pk": 2, + "resourceid": Resources.objects.all()[0], + "citationid": Citations.objects.all()[0], + } + ) self.assertTrue(ResourcesCitationEvents.objects.all().count() > 0) - collision_result = test_model_id_collision(ResourcesCitationEvents, insertion_object, self) + collision_result = test_model_id_collision( + ResourcesCitationEvents, insertion_object, self + ) self.assertTrue(collision_result) -# LocalityPlaceResourceEvent +# LocalityPlaceResourceEvent #################################################### # Lookup Tests #################################################### + # LookupActivity class LookupActivityTest(ITKTestCase): - def test_lookup_activity_id_collision(self): """ Test that saving a lookup activity can recover from an ID collision """ insertion_object = { - 'activity': 'Testing', + "activity": "Testing", } - collision_result = test_model_id_collision(LookupActivity, insertion_object, self) + collision_result = test_model_id_collision( + LookupActivity, insertion_object, self + ) self.assertTrue(collision_result) + # LookupAuthorType class LookupAuthorTypeTest(ITKTestCase): def test_lookup_author_type_id_collision(self): @@ -1000,11 +1107,14 @@ def test_lookup_author_type_id_collision(self): Test that saving a lookup author type can recover from an ID collision """ insertion_object = { - 'authortype': 'Testing', + "authortype": "Testing", } - collision_result = test_model_id_collision(LookupAuthorType, insertion_object, self) + collision_result = test_model_id_collision( + LookupAuthorType, insertion_object, self + ) self.assertTrue(collision_result) + # LookupCustomaryUse class LookupCustomaryUseTest(ITKTestCase): def test_lookup_customary_use_id_collision(self): @@ -1012,11 +1122,14 @@ def test_lookup_customary_use_id_collision(self): Test that saving a lookup customary use can recover from an ID collision """ insertion_object = { - 'usedfor': 'Testing', + "usedfor": "Testing", } - collision_result = test_model_id_collision(LookupCustomaryUse, insertion_object, self) + collision_result = test_model_id_collision( + LookupCustomaryUse, insertion_object, self + ) self.assertTrue(collision_result) + # LookupHabitat class LookupHabitatTest(ITKTestCase): def test_lookup_habitat_id_collision(self): @@ -1024,11 +1137,14 @@ def test_lookup_habitat_id_collision(self): Test that saving a lookup habitat can recover from an ID collision """ insertion_object = { - 'habitat': 'Testing', + "habitat": "Testing", } - collision_result = test_model_id_collision(LookupHabitat, insertion_object, self) + collision_result = test_model_id_collision( + LookupHabitat, insertion_object, self + ) self.assertTrue(collision_result) + # LookupMediaType class LookupMediaTypeTest(ITKTestCase): def test_lookup_media_type_search(self): @@ -1039,17 +1155,17 @@ def test_lookup_media_type_search(self): # char fields: # * mediatype # * mediacategory - keyword = 'Aud' + keyword = "Aud" search_results = LookupMediaType.keyword_search(keyword) # do we get 1 result? also checks that we do not return all results in Place category self.assertEqual(search_results.count(), 1) # checkout results belong to one of the search fields for result in search_results: - if hasattr(result, 'similarity'): + if hasattr(result, "similarity"): self.assertTrue( ( - result.similarity and - result.similarity > settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity > settings.MIN_SEARCH_SIMILARITY ) ) @@ -1058,11 +1174,14 @@ def test_lookup_media_type_id_collision(self): Test that saving a lookup media type can recover from an ID collision """ insertion_object = { - 'mediatype': 'Testing', + "mediatype": "Testing", } - collision_result = test_model_id_collision(LookupMediaType, insertion_object, self) + collision_result = test_model_id_collision( + LookupMediaType, insertion_object, self + ) self.assertTrue(collision_result) + # LookupParticipants class LookupParticipantsTest(ITKTestCase): def test_lookup_participants_id_collision(self): @@ -1070,11 +1189,14 @@ def test_lookup_participants_id_collision(self): Test that saving a lookup participants can recover from an ID collision """ insertion_object = { - 'participants': 'Testing', + "participants": "Testing", } - collision_result = test_model_id_collision(LookupParticipants, insertion_object, self) + collision_result = test_model_id_collision( + LookupParticipants, insertion_object, self + ) self.assertTrue(collision_result) + # LookupPartUsed class LookupPartUsedTest(ITKTestCase): def test_lookup_part_used_id_collision(self): @@ -1082,11 +1204,14 @@ def test_lookup_part_used_id_collision(self): Test that saving a lookup part used can recover from an ID collision """ insertion_object = { - 'partused': 'Testing', + "partused": "Testing", } - collision_result = test_model_id_collision(LookupPartUsed, insertion_object, self) + collision_result = test_model_id_collision( + LookupPartUsed, insertion_object, self + ) self.assertTrue(collision_result) + # People class PeopleTest(ITKSearchTest): def test_people_search(self): @@ -1099,17 +1224,17 @@ def test_people_search(self): # * lastname # * village # * relationshiptootherpeople - keyword = 'Mana' + keyword = "Mana" search_results = People.keyword_search(keyword) # do we get 1 result? also checks that we do not return all results in Place category self.assertEqual(search_results.count(), 1) # checkout results belong to one of the search fields for result in search_results: - if hasattr(result, 'similarity'): + if hasattr(result, "similarity"): self.assertTrue( ( - result.similarity and - result.similarity > settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity > settings.MIN_SEARCH_SIMILARITY ) ) @@ -1118,25 +1243,28 @@ def test_people_id_collision(self): Test that saving a people can recover from an ID collision """ insertion_object = { - 'firstname': 'Testing', - 'lastname': 'Person', + "firstname": "Testing", + "lastname": "Person", } collision_result = test_model_id_collision(People, insertion_object, self) self.assertTrue(collision_result) + # LookupPlanningUnit class LookupPlanningUnitTest(ITKTestCase): - def test_planning_unit_id_collision(self): """ Test that saving a planning unit can recover from an ID collision """ insertion_object = { - 'planningunitname': 'Testing', + "planningunitname": "Testing", } - collision_result = test_model_id_collision(LookupPlanningUnit, insertion_object, self) + collision_result = test_model_id_collision( + LookupPlanningUnit, insertion_object, self + ) self.assertTrue(collision_result) + # LookupReferenceType class LookupReferenceTypeTest(ITKTestCase): def test_lokup_reference_type_id_collision(self): @@ -1144,11 +1272,14 @@ def test_lokup_reference_type_id_collision(self): Test that saving a reference type lookup can recover from an ID collision """ insertion_object = { - 'documenttype': 'Testing', + "documenttype": "Testing", } - collision_result = test_model_id_collision(LookupReferenceType, insertion_object, self) + collision_result = test_model_id_collision( + LookupReferenceType, insertion_object, self + ) self.assertTrue(collision_result) + # LookupResourceGroup class LookupResourceGroupTest(ITKTestCase): def test_lookup_resource_group_id_collision(self): @@ -1156,11 +1287,14 @@ def test_lookup_resource_group_id_collision(self): Test that saving a resource group lookup can recover from an ID collision """ insertion_object = { - 'resourceclassificationgroup': 'Testing', + "resourceclassificationgroup": "Testing", } - collision_result = test_model_id_collision(LookupResourceGroup, insertion_object, self) + collision_result = test_model_id_collision( + LookupResourceGroup, insertion_object, self + ) self.assertTrue(collision_result) + # LookupSeason class LookupSeasonTest(ITKTestCase): def test_lookup_season_id_collision(self): @@ -1168,11 +1302,12 @@ def test_lookup_season_id_collision(self): Test that saving a season lookup can recover from an ID collision """ insertion_object = { - 'season': 'Testing', + "season": "Testing", } collision_result = test_model_id_collision(LookupSeason, insertion_object, self) self.assertTrue(collision_result) + # LookupTechniques class LookupTechniquesTest(ITKTestCase): def test_lookup_technique_id_collision(self): @@ -1180,11 +1315,14 @@ def test_lookup_technique_id_collision(self): Test that saving a technique lookup can recover from an ID collision """ insertion_object = { - 'techniques': 'Testing', + "techniques": "Testing", } - collision_result = test_model_id_collision(LookupTechniques, insertion_object, self) + collision_result = test_model_id_collision( + LookupTechniques, insertion_object, self + ) self.assertTrue(collision_result) + # LookupTiming class LookupTimingTest(ITKTestCase): def test_lookup_timing_id_collision(self): @@ -1192,11 +1330,12 @@ def test_lookup_timing_id_collision(self): Test that saving a timing lookup can recover from an ID collision """ insertion_object = { - 'timing': 'Testing', + "timing": "Testing", } collision_result = test_model_id_collision(LookupTiming, insertion_object, self) self.assertTrue(collision_result) + # LookupTribe class LookupTribeTest(ITKTestCase): def test_people_search(self): @@ -1208,17 +1347,17 @@ def test_people_search(self): # * tribeunit # * tribe # * federaltribe - keyword = 'Rancheria' + keyword = "Rancheria" search_results = LookupTribe.keyword_search(keyword) # do we get 1 result? also checks that we do not return all results in Place category self.assertEqual(search_results.count(), 1) # checkout results belong to one of the search fields for result in search_results: - if hasattr(result, 'similarity'): + if hasattr(result, "similarity"): self.assertTrue( ( - result.similarity and - result.similarity > settings.MIN_SEARCH_SIMILARITY + result.similarity + and result.similarity > settings.MIN_SEARCH_SIMILARITY ) ) @@ -1227,21 +1366,27 @@ def test_lookup_tribe_id_collision(self): Test that saving a tribe lookup can recover from an ID collision """ insertion_object = { - 'tribeunit': 'Subunit', - 'tribe' : 'Tribe', - 'federaltribe': 'Government' + "tribeunit": "Subunit", + "tribe": "Tribe", + "federaltribe": "Government", } - if LookupTribe.objects.all().count() == 0 or LookupTribe.objects.all().order_by('-pk')[0].pk < 2: - LookupTribe.objects.create(**{ - 'pk':2, - 'tribeunit': 'Subunit1', - 'tribe' : 'Tribe1', - 'federaltribe': 'Government1' - }) + if ( + LookupTribe.objects.all().count() == 0 + or LookupTribe.objects.all().order_by("-pk")[0].pk < 2 + ): + LookupTribe.objects.create( + **{ + "pk": 2, + "tribeunit": "Subunit1", + "tribe": "Tribe1", + "federaltribe": "Government1", + } + ) self.assertTrue(LookupTribe.objects.all().count() > 0) collision_result = test_model_id_collision(LookupTribe, insertion_object, self) self.assertTrue(collision_result) + # LookupUserInfo class LookupUserInfoTest(ITKTestCase): def test_lookup_user_inf_id_collision(self): @@ -1249,19 +1394,26 @@ def test_lookup_user_inf_id_collision(self): Test that saving a user info lookup can recover from an ID collision """ insertion_object = { - 'username': 'Name', - 'usertitle' : 'Title', - 'useraffiliation': 'Affiliation' + "username": "Name", + "usertitle": "Title", + "useraffiliation": "Affiliation", } - if LookupUserInfo.objects.all().count() == 0 or LookupUserInfo.objects.all().order_by('-pk')[0].pk < 2: - LookupUserInfo.objects.create(**{ - 'pk':2, - 'username': 'Name1', - 'usertitle' : 'Title1', - 'useraffiliation': 'Affiliation1' - }) + if ( + LookupUserInfo.objects.all().count() == 0 + or LookupUserInfo.objects.all().order_by("-pk")[0].pk < 2 + ): + LookupUserInfo.objects.create( + **{ + "pk": 2, + "username": "Name1", + "usertitle": "Title1", + "useraffiliation": "Affiliation1", + } + ) self.assertTrue(LookupUserInfo.objects.all().count() > 0) - collision_result = test_model_id_collision(LookupUserInfo, insertion_object, self) + collision_result = test_model_id_collision( + LookupUserInfo, insertion_object, self + ) self.assertTrue(collision_result) @@ -1273,7 +1425,3 @@ def test_lookup_user_inf_id_collision(self): #################################################### # Locality - - - - diff --git a/TEKDB/TEKDB/tests/test_views.py b/TEKDB/TEKDB/tests/test_views.py index 5a03c4e1..86d998b0 100644 --- a/TEKDB/TEKDB/tests/test_views.py +++ b/TEKDB/TEKDB/tests/test_views.py @@ -8,12 +8,14 @@ from django.test import TestCase, TransactionTestCase from django.test.client import RequestFactory from django.urls import reverse + # from django.utils import timezone import hashlib import json from os import listdir, remove, sep from os.path import isfile, isdir, join, split, getsize import shutil + # from TEKDB.forms import * from TEKDB.models import * from TEKDB.views import ExportDatabase, ImportDatabase @@ -25,6 +27,7 @@ # coverage run manage.py test TEKDB -v 2 ######################################################################### + # Courtesy of DelftStack: https://www.delftstack.com/howto/python/python-checksum/#use-the-os-module-to-generate-and-check-the-checksum-of-an-md5-file-in-python def get_checksum(filename, hash_function): hash_function = hash_function.lower() @@ -39,30 +42,29 @@ def get_checksum(filename, hash_function): return readable_hash + def create_export_request(self): return self.factory.get( - reverse('export_database'), - headers={ - "Authorization": f"Basic {self.credentials}" - }, + reverse("export_database"), + headers={"Authorization": f"Basic {self.credentials}"}, ) + def create_get_related_request(self, model, id): return self.factory.get( - f'tekdb/{model}/{id}/get_related', - headers={ - "Authorization": f"Basic {self.credentials}" - }, + f"tekdb/{model}/{id}/get_related", + headers={"Authorization": f"Basic {self.credentials}"}, ) + def get_export_file_from_response(response, tempdir=False, datestamp=False): if not tempdir: tempdir = tempfile.gettempdir() if not datestamp: - datestamp = datetime.now().strftime('%Y%m%d') + datestamp = datetime.now().strftime("%Y%m%d") zipname = join(tempdir, "{}_backup.zip".format(datestamp)) - fileresponse = bytes('test', 'utf-8') - stream = b''.join(response.streaming_content) + fileresponse = bytes("test", "utf-8") + stream = b"".join(response.streaming_content) with open(zipname, "wb") as f: f.write(stream) @@ -71,74 +73,95 @@ def get_export_file_from_response(response, tempdir=False, datestamp=False): return zipname + def get_content_type_map(import_cts): ct_map = {} model_map = {} for ct in import_cts: - ct_map[ct['pk']] = { - 'import': { - 'model': ct['fields']['model'], - 'app_label': ct['fields']['app_label'] + ct_map[ct["pk"]] = { + "import": { + "model": ct["fields"]["model"], + "app_label": ct["fields"]["app_label"], } } - model_map["{}__{}".format(ct['fields']['app_label'],ct['fields']['model'])] = ct['pk'] + model_map["{}__{}".format(ct["fields"]["app_label"], ct["fields"]["model"])] = ( + ct["pk"] + ) for ct in ContentType.objects.all(): key = "{}__{}".format(ct.app_label, ct.model) if key in model_map.keys(): - ct_map[model_map[key]]['existing_pk'] = ct.pk - + ct_map[model_map[key]]["existing_pk"] = ct.pk + return ct_map + def get_perm_map(import_perms): from django.contrib.auth.models import Permission + perm_map = {} for perm in import_perms: - new_perm = Permission.objects.get(content_type_id=perm['fields']['content_type'], codename=perm['fields']['codename']) - perm_map[perm['pk']] = { - 'import': { - 'codename': perm['fields']['codename'], - 'content_type': perm['fields']['content_type'], - 'name': perm['fields']['name'] + new_perm = Permission.objects.get( + content_type_id=perm["fields"]["content_type"], + codename=perm["fields"]["codename"], + ) + perm_map[perm["pk"]] = { + "import": { + "codename": perm["fields"]["codename"], + "content_type": perm["fields"]["content_type"], + "name": perm["fields"]["name"], }, - 'existing_pk': new_perm.pk + "existing_pk": new_perm.pk, } - + return perm_map + def update_json_content_types(json_dict): import_cts = [] import_perms = [] len_json_dict = len(json_dict) for record in json_dict: - if record['model'] == 'contenttypes.contenttype': + if record["model"] == "contenttypes.contenttype": import_cts.append(record) - if record['model'] == 'auth.permission': + if record["model"] == "auth.permission": import_perms.append(record) for record in import_cts: json_dict.remove(record) for record in import_perms: json_dict.remove(record) - + ct_map = get_content_type_map(import_cts) - for (index, record) in enumerate(import_perms): - if 'fields' in import_perms[index].keys() and 'content_type' in import_perms[index]['fields'].keys(): - import_perms[index]['fields']['content_type'] = ct_map[record['fields']['content_type']]['existing_pk'] + for index, record in enumerate(import_perms): + if ( + "fields" in import_perms[index].keys() + and "content_type" in import_perms[index]["fields"].keys() + ): + import_perms[index]["fields"]["content_type"] = ct_map[ + record["fields"]["content_type"] + ]["existing_pk"] perm_map = get_perm_map(import_perms) - for (index, record) in enumerate(json_dict): - if 'fields' in json_dict[index].keys(): - if 'content_type' in json_dict[index]['fields'].keys(): - json_dict[index]['fields']['content_type'] = ct_map[record['fields']['content_type']]['existing_pk'] - if 'permissions' in json_dict[index]['fields'].keys(): - for (perm_index, perm) in enumerate(json_dict[index]['fields']['permissions']): + for index, record in enumerate(json_dict): + if "fields" in json_dict[index].keys(): + if "content_type" in json_dict[index]["fields"].keys(): + json_dict[index]["fields"]["content_type"] = ct_map[ + record["fields"]["content_type"] + ]["existing_pk"] + if "permissions" in json_dict[index]["fields"].keys(): + for perm_index, perm in enumerate( + json_dict[index]["fields"]["permissions"] + ): if perm in perm_map.keys(): - json_dict[index]['fields']['permissions'][perm_index] = perm_map[perm]['existing_pk'] + json_dict[index]["fields"]["permissions"][perm_index] = ( + perm_map[perm]["existing_pk"] + ) return json_dict + def import_fixture_file(filepath): # Even test databases seem to pre-populate themselves with permissions and content types # * This is a problem when importing fixtures that have been exported from a database that has @@ -146,27 +169,32 @@ def import_fixture_file(filepath): # functions attempt to fix this. from django.core.management import call_command from tempfile import NamedTemporaryFile + with open(filepath) as json_in: json_dict = json.load(json_in) json_dict = update_json_content_types(json_dict) - tempfile = NamedTemporaryFile(suffix='.json', delete=False) - with open(tempfile.name, 'w') as json_out: + tempfile = NamedTemporaryFile(suffix=".json", delete=False) + with open(tempfile.name, "w") as json_out: json.dump(json_dict, json_out) - call_command('loaddata', tempfile.name) + call_command("loaddata", tempfile.name) remove(tempfile.name) class RelatedTest(TestCase): # fixtures = ['TEKDB/fixtures/all_dummy_data.json',] def setUp(self): - import_fixture_file(join(settings.BASE_DIR, 'TEKDB', 'fixtures', 'all_dummy_data.json')) + import_fixture_file( + join(settings.BASE_DIR, "TEKDB", "fixtures", "all_dummy_data.json") + ) self.factory = RequestFactory() self.credentials = b64encode(b"admin:admin").decode("ascii") # add a resource to the db - new_resource_record = Resources.objects.create(commonname="Dummy Record 1",) + new_resource_record = Resources.objects.create( + commonname="Dummy Record 1", + ) new_resource_record.save() self.first_resource = new_resource_record @@ -176,22 +204,36 @@ def setUp(self): self.first_place = new_place_record # add a place-resource event to the db - new_place_resource_event = PlacesResourceEvents.objects.create(placeid=new_place_record, resourceid=new_resource_record, relationshipdescription="A Dummy Place-Resource Event") + new_place_resource_event = PlacesResourceEvents.objects.create( + placeid=new_place_record, + resourceid=new_resource_record, + relationshipdescription="A Dummy Place-Resource Event", + ) new_place_resource_event.save() self.first_place_resource_event = new_place_resource_event # add a resource-activity event to the db - new_resources_activity_event = ResourcesActivityEvents.objects.create(placeresourceid=new_place_resource_event, relationshipdescription="A Dummy Resources Activity Event") + new_resources_activity_event = ResourcesActivityEvents.objects.create( + placeresourceid=new_place_resource_event, + relationshipdescription="A Dummy Resources Activity Event", + ) new_resources_activity_event.save() self.first_resources_activity_event = new_resources_activity_event # add a lookup reference type to the db - new_reference_type = LookupReferenceType.objects.create(documenttype="A Dummy Reference Type") + new_reference_type = LookupReferenceType.objects.create( + documenttype="A Dummy Reference Type" + ) new_reference_type.save() self.first_reference_type = new_reference_type # add a new citation to the db - new_citation = Citations.objects.create(referencetype=new_reference_type, authorprimary="Doe, John", year=2020, title="A Dummy Citation") + new_citation = Citations.objects.create( + referencetype=new_reference_type, + authorprimary="Doe, John", + year=2020, + title="A Dummy Citation", + ) new_citation.save() self.first_citation = new_citation @@ -199,20 +241,21 @@ def setUp(self): new_media = Media.objects.create(mediadescription="A Dummy Media") new_media.save() self.first_media = new_media + def test_get_related_wrong_permissions(self): from TEKDB.views import get_related - related_request = create_get_related_request(self, 'resources', 1) + related_request = create_get_related_request(self, "resources", 1) related_request.user = AnonymousUser() - response = get_related(related_request, 'resources', 1) + response = get_related(related_request, "resources", 1) self.assertEqual(response.status_code, 401) - + def test_get_related_records(self): from TEKDB.views import get_related - - related_request = create_get_related_request(self, 'record', 1) - related_request.user = Users.objects.get(username='admin') - response = get_related(related_request, 'record', 1) + + related_request = create_get_related_request(self, "record", 1) + related_request.user = Users.objects.get(username="admin") + response = get_related(related_request, "record", 1) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertTrue(isinstance(data, list)) @@ -221,10 +264,12 @@ def test_get_related_records(self): def test_get_related_places(self): from TEKDB.views import get_related - - related_request = create_get_related_request(self, 'places', self.first_place.placeid) - related_request.user = Users.objects.get(username='admin') - response = get_related(related_request, 'places', self.first_place.placeid) + + related_request = create_get_related_request( + self, "places", self.first_place.placeid + ) + related_request.user = Users.objects.get(username="admin") + response = get_related(related_request, "places", self.first_place.placeid) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertTrue(isinstance(data, list)) @@ -235,13 +280,17 @@ def test_get_related_places(self): # * Media Relationships # * Citation Relationships self.assertTrue(len(data) == 4) - + def test_get_related_resources(self): from TEKDB.views import get_related - - related_request = create_get_related_request(self, 'resources', self.first_resource.resourceid) - related_request.user = Users.objects.get(username='admin') - response = get_related(related_request, 'resources', self.first_resource.resourceid) + + related_request = create_get_related_request( + self, "resources", self.first_resource.resourceid + ) + related_request.user = Users.objects.get(username="admin") + response = get_related( + related_request, "resources", self.first_resource.resourceid + ) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertTrue(isinstance(data, list)) @@ -253,13 +302,21 @@ def test_get_related_resources(self): # * Resource Relationships # * Alternate Names self.assertTrue(len(data) == 5) - + def test_get_related_resource_activity_events(self): from TEKDB.views import get_related - - related_request = create_get_related_request(self, 'resourcesactivityevents', self.first_resources_activity_event.resourceactivityid) - related_request.user = Users.objects.get(username='admin') - response = get_related(related_request, 'resourcesactivityevents', self.first_resources_activity_event.resourceactivityid) + + related_request = create_get_related_request( + self, + "resourcesactivityevents", + self.first_resources_activity_event.resourceactivityid, + ) + related_request.user = Users.objects.get(username="admin") + response = get_related( + related_request, + "resourcesactivityevents", + self.first_resources_activity_event.resourceactivityid, + ) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertTrue(isinstance(data, list)) @@ -268,13 +325,17 @@ def test_get_related_resource_activity_events(self): # * Citation Relationships # * Media Relationships self.assertTrue(len(data) == 2) - + def test_get_related_citations(self): from TEKDB.views import get_related - - related_request = create_get_related_request(self, 'citations', self.first_citation.citationid) - related_request.user = Users.objects.get(username='admin') - response = get_related(related_request, 'citations', self.first_citation.citationid) + + related_request = create_get_related_request( + self, "citations", self.first_citation.citationid + ) + related_request.user = Users.objects.get(username="admin") + response = get_related( + related_request, "citations", self.first_citation.citationid + ) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertTrue(isinstance(data, list)) @@ -289,10 +350,12 @@ def test_get_related_citations(self): def test_get_related_media(self): from TEKDB.views import get_related - - related_request = create_get_related_request(self, 'media', self.first_media.mediaid) - related_request.user = Users.objects.get(username='admin') - response = get_related(related_request, 'media', self.first_media.mediaid) + + related_request = create_get_related_request( + self, "media", self.first_media.mediaid + ) + related_request.user = Users.objects.get(username="admin") + response = get_related(related_request, "media", self.first_media.mediaid) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertTrue(isinstance(data, list)) @@ -304,11 +367,15 @@ def test_get_related_media(self): # * Place-Resource Relationships # * Activity Relationships self.assertTrue(len(data) == 5) + + class ExportTest(TestCase): # fixtures = ['TEKDB/fixtures/all_dummy_data.json',] def setUp(self): - import_fixture_file(join(settings.BASE_DIR, 'TEKDB', 'fixtures', 'all_dummy_data.json')) + import_fixture_file( + join(settings.BASE_DIR, "TEKDB", "fixtures", "all_dummy_data.json") + ) self.factory = RequestFactory() self.credentials = b64encode(b"admin:admin").decode("ascii") @@ -326,16 +393,16 @@ def test_export(self): anon_response = ExportDatabase(export_request) self.assertEqual(anon_response.status_code, 302) - export_request.user = Users.objects.get(username='readonly') + export_request.user = Users.objects.get(username="readonly") bad_response = ExportDatabase(export_request) self.assertEqual(bad_response.status_code, 302) - export_request.user = Users.objects.get(username='admin') + export_request.user = Users.objects.get(username="admin") response = ExportDatabase(export_request, test=True) self.assertEqual(response.status_code, 200) with tempfile.TemporaryDirectory() as tempdir: - datestamp = datetime.now().strftime('%Y%m%d') + datestamp = datetime.now().strftime("%Y%m%d") zipname = get_export_file_from_response(response, tempdir, datestamp) # test for dump files @@ -354,12 +421,14 @@ def test_export(self): zip.close() for mediafile in listdir(settings.MEDIA_ROOT): source_file_location = join(settings.MEDIA_ROOT, mediafile) - source_file_relative_name = join('media', mediafile) + source_file_relative_name = join("media", mediafile) temp_file_location = join(tempdir, source_file_relative_name) # if a directory exists in media, then the folder name won't be the whole match if not isdir(source_file_relative_name): self.assertTrue(source_file_relative_name in zip.namelist()) - self.assertTrue(isfile(temp_file_location) or isdir(temp_file_location)) + self.assertTrue( + isfile(temp_file_location) or isdir(temp_file_location) + ) source_checksum = get_checksum(source_file_location, "md5") temp_checksum = get_checksum(temp_file_location, "md5") self.assertEqual(source_checksum, temp_checksum) @@ -376,12 +445,15 @@ def test_export(self): break self.assertTrue(new_record_found) + class ImportTest(TransactionTestCase): # fixtures = ['TEKDB/fixtures/all_dummy_data.json',] @classmethod def setUp(cls): - import_fixture_file(join(settings.BASE_DIR, 'TEKDB', 'fixtures', 'all_dummy_data.json')) + import_fixture_file( + join(settings.BASE_DIR, "TEKDB", "fixtures", "all_dummy_data.json") + ) cls.factory = RequestFactory() @@ -393,45 +465,48 @@ def setUp(cls): new_record.save() # Resources.moderated_object.fget(new_record).approve() - cls.zipname = join(settings.BASE_DIR, 'TEKDB', 'tests', 'test_files', 'exported_db.zip') + cls.zipname = join( + settings.BASE_DIR, "TEKDB", "tests", "test_files", "exported_db.zip" + ) cls.tempmediadir = tempfile.TemporaryDirectory() cls.import_request = cls.factory.post( - reverse('import_database'), + reverse("import_database"), { - 'MEDIA_DIR': cls.tempmediadir.name, - 'content_type':'application/zip', - 'content_disposition':"attachment; filename=uploaded.dump" - }, - headers = { - "Authorization": f"Basic {cls.credentials}" + "MEDIA_DIR": cls.tempmediadir.name, + "content_type": "application/zip", + "content_disposition": "attachment; filename=uploaded.dump", }, + headers={"Authorization": f"Basic {cls.credentials}"}, ) - with open(cls.zipname, 'rb') as z: + with open(cls.zipname, "rb") as z: import_file = InMemoryUploadedFile( z, - 'import_file', - 'exported_db.zip', - 'application/zip', + "import_file", + "exported_db.zip", + "application/zip", getsize(cls.zipname), - None + None, ) - cls.import_request.FILES['import_file'] = import_file + cls.import_request.FILES["import_file"] = import_file - cls.import_request.user = Users.objects.get(username='admin') + cls.import_request.user = Users.objects.get(username="admin") response = ImportDatabase(cls.import_request) def test_import(self): self.assertEqual(Resources.objects.all().count(), self.old_resources_count) - self.assertEqual(Resources.objects.filter(commonname=self.dummy_1_name).count(), 0) + self.assertEqual( + Resources.objects.filter(commonname=self.dummy_1_name).count(), 0 + ) # Test for media files in the temp dir zip = zipfile.ZipFile(self.zipname, "r") for filename in zip.namelist(): - if 'media' in filename and filename.index('media') == 0: + if "media" in filename and filename.index("media") == 0: # NOTE: zipfiles always use "/" as a separator. media_name = sep.join(filename.split("/")[1:]) self.assertTrue(media_name in listdir(self.tempmediadir.name)) shutil.rmtree(self.tempmediadir.name) + ### 2025-05-09: No one has any idea what a 'placeMap' is. # class PlaceMapTest(TestCase): # # fixtures = ['TEKDB/fixtures/all_dummy_data.json',] diff --git a/TEKDB/TEKDB/urls.py b/TEKDB/TEKDB/urls.py index 18eb1881..b6e7b8ce 100644 --- a/TEKDB/TEKDB/urls.py +++ b/TEKDB/TEKDB/urls.py @@ -13,13 +13,13 @@ 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ -#from django.conf.urls import url -#from django.contrib import admin +# from django.conf.urls import url +# from django.contrib import admin -#urlpatterns = [ +# urlpatterns = [ # url(r'^admin/', admin.site.urls), -# url (r'^$', views.index, name='index'), -#] +# url (r'^$', views.index, name='index'), +# ] from django.conf.urls.static import static from django.conf import settings @@ -35,25 +35,49 @@ urlpatterns = [ # url(r'^login/', include('login.urls')), - path('login/', login_views.login, name='login'), - path('login_async/', login_views.login_async, name='login_async'), - path('logout/', auth_views.LogoutView.as_view(next_page='/'), name='logout'), - path('tinymce/', include('tinymce.urls')), - path('accounts/', include('django_registration.backends.one_step.urls')), - re_path(r'^admin/', admin.site.urls), - path('nested_admin/', include('nested_admin.urls')), - re_path(r'^tekdb/(?P\w+)/(?P\w+)/get_related$', views.get_related), - path('citation_autocomplete/', views.CitationAutocompleteView.as_view(), name='select2_fk_citation',), - path('export_database/', views.ExportDatabase, name='export_database'), - path('import_database/', views.ImportDatabase, name='import_database'), - path('medium_autocomplete/', views.MediaAutocompleteView.as_view(), name='select2_fk_media',), - path('place_autocomplete/', views.PlaceAutocompleteView.as_view(), name='select2_fk_place',), - path('place_resource_autocomplete/', views.PlaceResourceAutocompleteView.as_view(), name='select2_fk_placeresource',), - path('resource_autocomplete/', views.ResourceAutocompleteView.as_view(), name='select2_fk_resource',), - path('resource_activity_autocomplete/', views.ResourceActivityAutocompleteView.as_view(), name='select2_fk_resourceactivity',), - path('', include('explore.urls')), + path("login/", login_views.login, name="login"), + path("login_async/", login_views.login_async, name="login_async"), + path("logout/", auth_views.LogoutView.as_view(next_page="/"), name="logout"), + path("tinymce/", include("tinymce.urls")), + path("accounts/", include("django_registration.backends.one_step.urls")), + re_path(r"^admin/", admin.site.urls), + path("nested_admin/", include("nested_admin.urls")), + re_path(r"^tekdb/(?P\w+)/(?P\w+)/get_related$", views.get_related), + path( + "citation_autocomplete/", + views.CitationAutocompleteView.as_view(), + name="select2_fk_citation", + ), + path("export_database/", views.ExportDatabase, name="export_database"), + path("import_database/", views.ImportDatabase, name="import_database"), + path( + "medium_autocomplete/", + views.MediaAutocompleteView.as_view(), + name="select2_fk_media", + ), + path( + "place_autocomplete/", + views.PlaceAutocompleteView.as_view(), + name="select2_fk_place", + ), + path( + "place_resource_autocomplete/", + views.PlaceResourceAutocompleteView.as_view(), + name="select2_fk_placeresource", + ), + path( + "resource_autocomplete/", + views.ResourceAutocompleteView.as_view(), + name="select2_fk_resource", + ), + path( + "resource_activity_autocomplete/", + views.ResourceActivityAutocompleteView.as_view(), + name="select2_fk_resourceactivity", + ), + path("", include("explore.urls")), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) -#if settings.DEBUG: +# if settings.DEBUG: # urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) diff --git a/TEKDB/TEKDB/views.py b/TEKDB/TEKDB/views.py index 260251d7..f8e66a6a 100644 --- a/TEKDB/TEKDB/views.py +++ b/TEKDB/TEKDB/views.py @@ -18,20 +18,26 @@ import zipfile from configuration.models import Configuration + def get_related(request, model_name, id): from django.apps import apps import json - if not (request.user.is_authenticated and request.user.has_perm('TEKDB.change_%s' % model_name.lower())): - return HttpResponse('Unauthorized', status=401) + + if not ( + request.user.is_authenticated + and request.user.has_perm("TEKDB.change_%s" % model_name.lower()) + ): + return HttpResponse("Unauthorized", status=401) data = json.dumps([]) try: - model = apps.get_model('TEKDB', model_name) + model = apps.get_model("TEKDB", model_name) instance = model.objects.get(pk=id) - if hasattr(instance, 'get_related_objects'): + if hasattr(instance, "get_related_objects"): data = json.dumps(instance.get_related_objects(id)) except: pass - return HttpResponse(data, content_type='application/json') + return HttpResponse(data, content_type="application/json") + # from https://www.geeksforgeeks.org/working-zip-files-python/ def get_all_file_paths(directory, cwd=False): @@ -50,13 +56,17 @@ def get_all_file_paths(directory, cwd=False): # returning all file paths return file_paths + # Only Admins! @user_passes_test(lambda u: u.is_superuser) def ExportDatabase(request, test=False): from django.conf import settings - datestamp = datetime.now().strftime('%Y%m%d') - tmp_zip = tempfile.NamedTemporaryFile(delete=False, prefix="{}_backup_".format(datestamp), suffix='.zip') - os.chdir(os.path.join(settings.MEDIA_ROOT, '..')) + + datestamp = datetime.now().strftime("%Y%m%d") + tmp_zip = tempfile.NamedTemporaryFile( + delete=False, prefix="{}_backup_".format(datestamp), suffix=".zip" + ) + os.chdir(os.path.join(settings.MEDIA_ROOT, "..")) relative_media_directory = settings.MEDIA_ROOT.split(os.path.sep)[-1] media_paths = get_all_file_paths(relative_media_directory, cwd=os.getcwd()) try: @@ -64,17 +74,17 @@ def ExportDatabase(request, test=False): # create filename dumpfile = "{}_backup.json".format(datestamp) dumpfile_location = os.path.join(tmp_dir, dumpfile) - with open(dumpfile_location, 'w') as of: - management.call_command('dumpdata', '--indent=2', stdout=of) + with open(dumpfile_location, "w") as of: + management.call_command("dumpdata", "--indent=2", stdout=of) # zip up: # * Data Dump file # * Media files - with zipfile.ZipFile(tmp_zip.name, 'w') as zip: + with zipfile.ZipFile(tmp_zip.name, "w") as zip: zip.write(dumpfile_location, dumpfile) for media_file in media_paths: zip.write(media_file) - response = FileResponse(open(tmp_zip.name, 'rb')) + response = FileResponse(open(tmp_zip.name, "rb")) return response finally: try: @@ -85,66 +95,81 @@ def ExportDatabase(request, test=False): return HttpResponse() + def getDBTruncateCommand(): f = io.StringIO() with contextlib.redirect_stdout(f): - management.call_command('sqlflush') + management.call_command("sqlflush") full_output = f.getvalue() - cmd_list = full_output.split('\n') - return [x for x in cmd_list if not x == ''] + cmd_list = full_output.split("\n") + return [x for x in cmd_list if not x == ""] # Only Admins! @user_passes_test(lambda u: u.is_superuser) def ImportDatabase(request): from django.conf import settings + status_code = 500 - status_message = 'An unknown error occurred.' - if not request.method == 'POST': + status_message = "An unknown error occurred." + if not request.method == "POST": status_code = 405 - status_message = 'Request method not allowed. Must be a post.' + status_message = "Request method not allowed. Must be a post." else: - if 'MEDIA_DIR' in request.POST.keys() and os.path.exists(request.POST['MEDIA_DIR']): + if "MEDIA_DIR" in request.POST.keys() and os.path.exists( + request.POST["MEDIA_DIR"] + ): # used for testing so current media is not overwritten - media_dir = request.POST['MEDIA_DIR'] + media_dir = request.POST["MEDIA_DIR"] else: media_dir = settings.MEDIA_ROOT # Unzip file - if 'import_file' in request.FILES.keys(): + if "import_file" in request.FILES.keys(): with tempfile.TemporaryDirectory() as tempdir: try: - tmp_zip_file = tempfile.NamedTemporaryFile(mode='wb+',delete=True, suffix='.zip') - for chunk in request.FILES['import_file'].chunks(): + tmp_zip_file = tempfile.NamedTemporaryFile( + mode="wb+", delete=True, suffix=".zip" + ) + for chunk in request.FILES["import_file"].chunks(): tmp_zip_file.write(chunk) tmp_zip_file.seek(0) except Exception as e: status_code = 500 - status_message = 'Unable to read the provided file. Be sure it is a zipped file containing a .json representing the database and a "media" directory containing any static files. {}'.format(e) - return JsonResponse({ - 'status_code': status_code, - 'status_message': status_message - }) + status_message = 'Unable to read the provided file. Be sure it is a zipped file containing a .json representing the database and a "media" directory containing any static files. {}'.format( + e + ) + return JsonResponse( + {"status_code": status_code, "status_message": status_message} + ) if zipfile.is_zipfile(tmp_zip_file): zip = zipfile.ZipFile(tmp_zip_file, "r") - non_media = [x for x in zip.namelist() if 'media' not in x and '.json' in x] + non_media = [ + x for x in zip.namelist() if "media" not in x and ".json" in x + ] # Validate Zip Contents if not len(non_media) == 1 or len(zip.namelist()) < 2: status_code = 500 status_message = "Received malformed import file. Must be a zipfile contailing one JSON file and a directory named 'media'" - return JsonResponse({ - 'status_code': status_code, - 'status_message': status_message - }) + return JsonResponse( + { + "status_code": status_code, + "status_message": status_message, + } + ) fixture_name = non_media[0] try: zip.extractall(tempdir) except Exception as e: status_code = 500 - status_message = 'Unable to unzip the provided file. Be sure it is a zipped file containing a .json representing the database and a "media" directory containing any static files. {}'.format(e) - return JsonResponse({ - 'status_code': status_code, - 'status_message': status_message - }) + status_message = 'Unable to unzip the provided file. Be sure it is a zipped file containing a .json representing the database and a "media" directory containing any static files. {}'.format( + e + ) + return JsonResponse( + { + "status_code": status_code, + "status_message": status_message, + } + ) try: # Emptying DB tables truncate_tables_cmds = getDBTruncateCommand() @@ -153,60 +178,80 @@ def ImportDatabase(request): cursor.execute(sql_command) except Exception as e: status_code = 500 - status_message = 'Error while attempting to remove old database data. New data has NOT been imported. Significant data loss possible. Please check your import file and try again. {}'.format(e) - return JsonResponse({ - 'status_code': status_code, - 'status_message': status_message - }) + status_message = "Error while attempting to remove old database data. New data has NOT been imported. Significant data loss possible. Please check your import file and try again. {}".format( + e + ) + return JsonResponse( + { + "status_code": status_code, + "status_message": status_message, + } + ) try: # Loading in DB Fixture fixture_file_path = os.path.join(tempdir, fixture_name) with open(fixture_file_path) as source_fixture: source_encoding = source_fixture.encoding - if not source_encoding.lower() == 'utf-8': - with open(fixture_file_path, 'rb') as source_fixture: - with open(os.path.join(tempdir, 'UTF8_fixture.json'), 'w+b') as target_fixture: + if not source_encoding.lower() == "utf-8": + with open(fixture_file_path, "rb") as source_fixture: + with open( + os.path.join(tempdir, "UTF8_fixture.json"), "w+b" + ) as target_fixture: contents = source_fixture.read() - target_fixture.write(contents.decode(source_encoding).encode('utf-8')) + target_fixture.write( + contents.decode(source_encoding).encode("utf-8") + ) reencoded = True fixture_file_path = target_fixture.name - management.call_command('loaddata', fixture_file_path) + management.call_command("loaddata", fixture_file_path) except Exception as e: status_code = 500 - status_message = 'Error while loading in data from provided zipfile. Your old data has been removed. Please coordinate with IT to restore your database, and share this error message with them:\n {}'.format(e) - return JsonResponse({ - 'status_code': status_code, - 'status_message': status_message - }) + status_message = "Error while loading in data from provided zipfile. Your old data has been removed. Please coordinate with IT to restore your database, and share this error message with them:\n {}".format( + e + ) + return JsonResponse( + { + "status_code": status_code, + "status_message": status_message, + } + ) try: # Copy media into MEDIA dir - shutil.copytree(os.path.join(tempdir, 'media'), media_dir, dirs_exist_ok=True) + shutil.copytree( + os.path.join(tempdir, "media"), + media_dir, + dirs_exist_ok=True, + ) except Exception as e: status_code = 500 - status_message = 'Error while restoring your media files. Please work with IT to restore these, providing them your zipfile and this error message:\n {}'.format(e) - return JsonResponse({ - 'status_code': status_code, - 'status_message': status_message - }) + status_message = "Error while restoring your media files. Please work with IT to restore these, providing them your zipfile and this error message:\n {}".format( + e + ) + return JsonResponse( + { + "status_code": status_code, + "status_message": status_message, + } + ) status_code = 200 - status_message = 'Database import completed successfully.' + status_message = "Database import completed successfully." else: status_code = 400 - status_message = 'Uploaded file is not recognized as a zipfile. Be sure you have a valid backup file and try again.' + status_message = "Uploaded file is not recognized as a zipfile. Be sure you have a valid backup file and try again." else: status_code = 400 - status_message = 'Request must have an attached zipfile to restore the database from' + status_message = ( + "Request must have an attached zipfile to restore the database from" + ) + + return JsonResponse({"status_code": status_code, "status_message": status_message}) - return JsonResponse({ - 'status_code': status_code, - 'status_message': status_message - }) # Only Authenticated Users! -@permission_required('TEKDB.change_list') +@permission_required("TEKDB.change_list") def getPlacesGeoJSON(request): from .models import Places import json @@ -215,10 +260,7 @@ def getPlacesGeoJSON(request): places = Places.objects.exclude(geometry__isnull=True) # GeoJSON to store all places - geojson = { - 'type': 'FeatureCollection', - 'features': [] - } + geojson = {"type": "FeatureCollection", "features": []} # Check for max results configuration try: @@ -226,6 +268,7 @@ def getPlacesGeoJSON(request): max_results = config.max_results_returned except Exception as e: from TEKDB.settings import DEFAULT_MAXIMUM_RESULTS + max_results = DEFAULT_MAXIMUM_RESULTS pass @@ -237,26 +280,31 @@ def getPlacesGeoJSON(request): for result in resultlist: result_geometry = json.loads(result.geometry.geojson) - result_indigenousplacename = result.indigenousplacename if result.indigenousplacename else '' - result_englishplacename = result.englishplacename if result.englishplacename else '' - result_placeid = result.placeid if result.placeid else '' + result_indigenousplacename = ( + result.indigenousplacename if result.indigenousplacename else "" + ) + result_englishplacename = ( + result.englishplacename if result.englishplacename else "" + ) + result_placeid = result.placeid if result.placeid else "" result_feature = { "type": "Feature", "geometry": result_geometry, "properties": { "indigenousplacename": result_indigenousplacename, "englishplacename": result_englishplacename, - "placeid": result_placeid - } + "placeid": result_placeid, + }, } - geojson['features'].append(result_feature) + geojson["features"].append(result_feature) return geojson - + class CitationAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): from django.db.models.functions import Lower + if not self.request.user.is_authenticated: return Citations.objects.none() qs = Citations.objects.all() @@ -264,27 +312,37 @@ def get_queryset(self): if self.q: qs = Citations.keyword_search(self.q) - return qs.order_by(Lower('referencetype__documenttype'), Lower('title'), Lower('intervieweeid__firstname'), Lower('intervieweeid__lastname'), 'year') + return qs.order_by( + Lower("referencetype__documenttype"), + Lower("title"), + Lower("intervieweeid__firstname"), + Lower("intervieweeid__lastname"), + "year", + ) + class MediaAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): from django.db.models.functions import Lower + if not self.request.user.is_authenticated: return Media.objects.none() qs = Media.objects.all() if self.q: qs = qs.filter( - Q(medianame__icontains=self.q) | - Q(mediatype__mediatype__icontains=self.q) | - Q(mediatype__mediacategory__icontains=self.q) + Q(medianame__icontains=self.q) + | Q(mediatype__mediatype__icontains=self.q) + | Q(mediatype__mediacategory__icontains=self.q) ) - return qs.order_by(Lower('medianame'), Lower('mediatype__mediatype')) + return qs.order_by(Lower("medianame"), Lower("mediatype__mediatype")) + class PlaceAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): from django.db.models.functions import Lower + if not self.request.user.is_authenticated: return Places.objects.none() qs = Places.objects.all() @@ -292,30 +350,36 @@ def get_queryset(self): if self.q: qs = Places.keyword_search(self.q) - return qs.order_by(Lower('indigenousplacename'), Lower('englishplacename')) + return qs.order_by(Lower("indigenousplacename"), Lower("englishplacename")) + class PlaceResourceAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): from django.db.models.functions import Lower + if not self.request.user.is_authenticated: return PlacesResourceEvents.objects.none() qs = PlacesResourceEvents.objects.all() if self.q: qs = qs.filter( - Q(placeid__indigenousplacename__icontains=self.q) | - Q(placeid__englishplacename__icontains=self.q) | - Q(resourceid__commonname__icontains=self.q) | - Q(resourceid__indigenousname__icontains=self.q) | - Q(resourceid__genus__icontains=self.q) | - Q(resourceid__species__icontains=self.q) + Q(placeid__indigenousplacename__icontains=self.q) + | Q(placeid__englishplacename__icontains=self.q) + | Q(resourceid__commonname__icontains=self.q) + | Q(resourceid__indigenousname__icontains=self.q) + | Q(resourceid__genus__icontains=self.q) + | Q(resourceid__species__icontains=self.q) ) - return qs.order_by(Lower('resourceid__commonname'), Lower('placeid__indigenousplacename')) + return qs.order_by( + Lower("resourceid__commonname"), Lower("placeid__indigenousplacename") + ) + class ResourceAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): from django.db.models.functions import Lower + if not self.request.user.is_authenticated: return Resources.objects.none() qs = Resources.objects.all() @@ -325,22 +389,28 @@ def get_queryset(self): return qs + class ResourceActivityAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): from django.db.models.functions import Lower + if not self.request.user.is_authenticated: return ResourcesActivityEvents.objects.none() qs = ResourcesActivityEvents.objects.all() if self.q: qs = qs.filter( - Q(placeresourceid__placeid__indigenousplacename__icontains=self.q) | - Q(placeresourceid__placeid__englishplacename__icontains=self.q) | - Q(placeresourceid__resourceid__commonname__icontains=self.q) | - Q(placeresourceid__resourceid__indigenousname__icontains=self.q) | - Q(placeresourceid__resourceid__genus__icontains=self.q) | - Q(placeresourceid__resourceid__species__icontains=self.q) | - Q(activityshortdescription__activity__icontains=self.q) + Q(placeresourceid__placeid__indigenousplacename__icontains=self.q) + | Q(placeresourceid__placeid__englishplacename__icontains=self.q) + | Q(placeresourceid__resourceid__commonname__icontains=self.q) + | Q(placeresourceid__resourceid__indigenousname__icontains=self.q) + | Q(placeresourceid__resourceid__genus__icontains=self.q) + | Q(placeresourceid__resourceid__species__icontains=self.q) + | Q(activityshortdescription__activity__icontains=self.q) ) - return qs.order_by(Lower('activityshortdescription__activity'), Lower('placeresourceid__placeid__indigenousplacename'), Lower('placeresourceid__resourceid__commonname')) + return qs.order_by( + Lower("activityshortdescription__activity"), + Lower("placeresourceid__placeid__indigenousplacename"), + Lower("placeresourceid__resourceid__commonname"), + ) diff --git a/TEKDB/TEKDB/widgets.py b/TEKDB/TEKDB/widgets.py index dd715ec3..d6666c59 100644 --- a/TEKDB/TEKDB/widgets.py +++ b/TEKDB/TEKDB/widgets.py @@ -7,30 +7,31 @@ from django.forms.widgets import Widget from django.utils import translation -logger = logging.getLogger('django.contrib.gis') +logger = logging.getLogger("django.contrib.gis") from django.contrib.gis.forms.widgets import OpenLayersWidget, BaseGeometryWidget + # class OpenLayersWidget(BaseGeometryWidget): # class OpenLayers6Widget(OpenLayersWidget): class OpenLayers6Widget(BaseGeometryWidget): - template_name = 'gis/openlayers_widget_itkdb.html' + template_name = "gis/openlayers_widget_itkdb.html" map_srid = 3857 class Media: css = { - 'all': ( - 'assets/openlayers6/ol.css', - 'gis/css/ol3.css', + "all": ( + "assets/openlayers6/ol.css", + "gis/css/ol3.css", ) } js = ( - 'assets/openlayers6/ol.js', - 'gis/js/OL6MapWidget.js', + "assets/openlayers6/ol.js", + "gis/js/OL6MapWidget.js", ) def serialize(self, value): - return value.json if value else '' + return value.json if value else "" def deserialize(self, value): geom = super().deserialize(value) @@ -41,43 +42,50 @@ def deserialize(self, value): def get_context(self, name, value, attrs): from TEKDB.context_processors import add_map_default_context - request_context = add_map_default_context({}) # passing empty dict to represent unneccesary request value + + request_context = add_map_default_context( + {} + ) # passing empty dict to represent unneccesary request value widget_context = super().get_context(name, value, attrs) widget_context.update(request_context) return widget_context + class OpenLayers6PolygonWidget(OpenLayers6Widget): class Media: css = { - 'all': ( - 'assets/openlayers6/ol.css', - 'gis/css/ol3.css', - 'gis/css/OpenLayers6PolygonWidget.css', + "all": ( + "assets/openlayers6/ol.css", + "gis/css/ol3.css", + "gis/css/OpenLayers6PolygonWidget.css", ) } js = ( - 'assets/openlayers6/ol.js', - 'gis/js/OL6MapPolygonWidget.js', + "assets/openlayers6/ol.js", + "gis/js/OL6MapPolygonWidget.js", ) from django.forms.widgets import ClearableFileInput from django.utils.safestring import mark_safe + class ThumbnailFileInput(ClearableFileInput): - template_name = 'widgets/thumbnail_file_input.html' + template_name = "widgets/thumbnail_file_input.html" allow_multiple_selected = True # Enable multiple file uploads def format_value(self, value): - if value and hasattr(value, 'url'): + if value and hasattr(value, "url"): return mark_safe(f'') return super().format_value(value) def __init__(self, attrs=None): if attrs is None: attrs = {} - attrs.update({ - 'multiple': 'multiple' # Allow multiple file selection - }) - super().__init__(attrs) \ No newline at end of file + attrs.update( + { + "multiple": "multiple" # Allow multiple file selection + } + ) + super().__init__(attrs) diff --git a/TEKDB/configuration/admin.py b/TEKDB/configuration/admin.py index 40ddf215..18c15d3a 100644 --- a/TEKDB/configuration/admin.py +++ b/TEKDB/configuration/admin.py @@ -11,48 +11,63 @@ class Meta: model = Configuration widgets = { # 'geometry': OpenLayers6Widget(), - 'geometry': OpenLayers6PolygonWidget(), + "geometry": OpenLayers6PolygonWidget(), } - fields = '__all__' + fields = "__all__" + @admin.register(Configuration) class ConfigurationAdmin(VersionAdmin): - list_display = ('preferred_initialism_or_pk','max_results_returned') + list_display = ("preferred_initialism_or_pk", "max_results_returned") fieldsets = ( - ('Site Header', { - 'fields':( - 'preferredInitialism', - ('logo', 'logo_override'), - 'preferredInitialismPlacement', - ) - }), - ('Home Page', { - 'fields': ( - ('homepage_font_color','homepage_left_background','homepage_right_background'), - ('homepage_image','homepage_image_attribution',) - ) - }), - ('Search Results', { - 'fields': ( - 'max_results_returned', - 'min_search_rank', - 'min_search_similarity', - ) - }), - ('Map Defaults', { - 'fields': ( - 'geometry', - ) - }), + ( + "Site Header", + { + "fields": ( + "preferredInitialism", + ("logo", "logo_override"), + "preferredInitialismPlacement", + ) + }, + ), + ( + "Home Page", + { + "fields": ( + ( + "homepage_font_color", + "homepage_left_background", + "homepage_right_background", + ), + ( + "homepage_image", + "homepage_image_attribution", + ), + ) + }, + ), + ( + "Search Results", + { + "fields": ( + "max_results_returned", + "min_search_rank", + "min_search_similarity", + ) + }, + ), + ("Map Defaults", {"fields": ("geometry",)}), ) form = ConfigurationForm - + # Limit to only ONE configuration record, as laid out here: https://stackoverflow.com/a/25088487/706797 by radtek def has_add_permission(self, request): - return False if self.model.objects.count() > 0 else super().has_add_permission(request) + return ( + False + if self.model.objects.count() > 0 + else super().has_add_permission(request) + ) def preferred_initialism_or_pk(self, obj): return obj.pk if not obj.preferredInitialism else obj.preferredInitialism - - diff --git a/TEKDB/configuration/apps.py b/TEKDB/configuration/apps.py index eab8aa0d..2205ffbd 100644 --- a/TEKDB/configuration/apps.py +++ b/TEKDB/configuration/apps.py @@ -2,5 +2,5 @@ class ConfigurationConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' - name = 'configuration' + default_auto_field = "django.db.models.BigAutoField" + name = "configuration" diff --git a/TEKDB/configuration/migrations/0001_initial.py b/TEKDB/configuration/migrations/0001_initial.py index fe023637..d8bbe2c1 100644 --- a/TEKDB/configuration/migrations/0001_initial.py +++ b/TEKDB/configuration/migrations/0001_initial.py @@ -5,20 +5,51 @@ class Migration(migrations.Migration): - initial = True - dependencies = [ - ] + dependencies = [] operations = [ migrations.CreateModel( - name='Configuration', + name="Configuration", fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('preferredInitialism', models.CharField(default='ITK', max_length=15, verbose_name='What to call this data: ITK? TEK?')), - ('geometry', django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, help_text="Indicate the region in which most of your 'place' records are likely exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", null=True, srid=3857, verbose_name='Area of Interest')), - ('homepageImage', models.ImageField(blank=True, default=None, help_text='If you have a preferred image for the landing page, put it here. If blank, users will see a default image.', upload_to='')), + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "preferredInitialism", + models.CharField( + default="ITK", + max_length=15, + verbose_name="What to call this data: ITK? TEK?", + ), + ), + ( + "geometry", + django.contrib.gis.db.models.fields.GeometryField( + blank=True, + default=None, + help_text="Indicate the region in which most of your 'place' records are likely exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", + null=True, + srid=3857, + verbose_name="Area of Interest", + ), + ), + ( + "homepageImage", + models.ImageField( + blank=True, + default=None, + help_text="If you have a preferred image for the landing page, put it here. If blank, users will see a default image.", + upload_to="", + ), + ), ], ), ] diff --git a/TEKDB/configuration/migrations/0002_auto_20220503_1757.py b/TEKDB/configuration/migrations/0002_auto_20220503_1757.py index 65aaecb6..ead2af7e 100644 --- a/TEKDB/configuration/migrations/0002_auto_20220503_1757.py +++ b/TEKDB/configuration/migrations/0002_auto_20220503_1757.py @@ -4,20 +4,30 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0001_initial'), + ("configuration", "0001_initial"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='homepageImage', - field=models.ImageField(blank=True, default=None, help_text='If you have a preferred image for the landing page, put it here. If blank, users will see a default image.', upload_to='', verbose_name='Homepage Image'), + model_name="configuration", + name="homepageImage", + field=models.ImageField( + blank=True, + default=None, + help_text="If you have a preferred image for the landing page, put it here. If blank, users will see a default image.", + upload_to="", + verbose_name="Homepage Image", + ), ), migrations.AlterField( - model_name='configuration', - name='preferredInitialism', - field=models.CharField(default='ITK', help_text="Suggestions: 'ITK', 'TEK', etc...", max_length=15, verbose_name='Preferred sharthand for traditional knowledge'), + model_name="configuration", + name="preferredInitialism", + field=models.CharField( + default="ITK", + help_text="Suggestions: 'ITK', 'TEK', etc...", + max_length=15, + verbose_name="Preferred sharthand for traditional knowledge", + ), ), ] diff --git a/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py b/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py index 94e3f0bd..9df97e70 100644 --- a/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py +++ b/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py @@ -5,15 +5,21 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0002_auto_20220503_1757'), + ("configuration", "0002_auto_20220503_1757"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='geometry', - field=django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, help_text="Indicate the region in which most of your 'place' records are likely to exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", null=True, srid=3857, verbose_name='Area of Interest'), + model_name="configuration", + name="geometry", + field=django.contrib.gis.db.models.fields.GeometryField( + blank=True, + default=None, + help_text="Indicate the region in which most of your 'place' records are likely to exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", + null=True, + srid=3857, + verbose_name="Area of Interest", + ), ), ] diff --git a/TEKDB/configuration/migrations/0004_auto_20220506_1506.py b/TEKDB/configuration/migrations/0004_auto_20220506_1506.py index ac0e4b9c..a8c44788 100644 --- a/TEKDB/configuration/migrations/0004_auto_20220506_1506.py +++ b/TEKDB/configuration/migrations/0004_auto_20220506_1506.py @@ -6,45 +6,87 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0003_alter_configuration_geometry'), + ("configuration", "0003_alter_configuration_geometry"), ] operations = [ migrations.RenameField( - model_name='configuration', - old_name='homepageImage', - new_name='homepage_image', + model_name="configuration", + old_name="homepageImage", + new_name="homepage_image", ), migrations.AddField( - model_name='configuration', - name='homepage_font_color', - field=colorfield.fields.ColorField(default='#FFFFFF', help_text='Text color on homepage. Recommended: White (#FFFFFF).', image_field=None, max_length=18, samples=None, verbose_name='Homepage Text Color'), + model_name="configuration", + name="homepage_font_color", + field=colorfield.fields.ColorField( + default="#FFFFFF", + help_text="Text color on homepage. Recommended: White (#FFFFFF).", + image_field=None, + max_length=18, + samples=None, + verbose_name="Homepage Text Color", + ), ), migrations.AddField( - model_name='configuration', - name='homepage_image_attribution', - field=ckeditor.fields.RichTextField(blank=True, default=None, help_text='If using a custom image that requires attribution for use, please provide that here.', null=True, verbose_name='Homepage Image attribution'), + model_name="configuration", + name="homepage_image_attribution", + field=ckeditor.fields.RichTextField( + blank=True, + default=None, + help_text="If using a custom image that requires attribution for use, please provide that here.", + null=True, + verbose_name="Homepage Image attribution", + ), ), migrations.AddField( - model_name='configuration', - name='homepage_left_background', - field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind Text on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=None, verbose_name='Left Homepage Background Color'), + model_name="configuration", + name="homepage_left_background", + field=colorfield.fields.ColorField( + default="#000000", + help_text="Background color behind Text on homepage. Recommended: Black (#000000).", + image_field=None, + max_length=18, + samples=None, + verbose_name="Left Homepage Background Color", + ), ), migrations.AddField( - model_name='configuration', - name='homepage_right_background', - field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind image on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=None, verbose_name='Right Homepage Background Color'), + model_name="configuration", + name="homepage_right_background", + field=colorfield.fields.ColorField( + default="#000000", + help_text="Background color behind image on homepage. Recommended: Black (#000000).", + image_field=None, + max_length=18, + samples=None, + verbose_name="Right Homepage Background Color", + ), ), migrations.AddField( - model_name='configuration', - name='logo', - field=models.CharField(choices=[('/static/explore/img/logos/logo_weave.svg', 'Weave'), ('/static/explore/img/logos/logo_drop.svg', 'Droplet'), ('Other', 'Custom')], default=('/static/explore/img/logos/logo_weave.svg', 'Weave'), help_text='Choose your logo for the site header. You can choose between:
  • \'Weave\'
  • \'Droplet\'
  • Or choose \'Custom\' and add your own using the Override field below.
', max_length=255), + model_name="configuration", + name="logo", + field=models.CharField( + choices=[ + ("/static/explore/img/logos/logo_weave.svg", "Weave"), + ("/static/explore/img/logos/logo_drop.svg", "Droplet"), + ("Other", "Custom"), + ], + default=("/static/explore/img/logos/logo_weave.svg", "Weave"), + help_text='Choose your logo for the site header. You can choose between:
  • \'Weave\'
  • \'Droplet\'
  • Or choose \'Custom\' and add your own using the Override field below.
', + max_length=255, + ), ), migrations.AddField( - model_name='configuration', - name='logo_override', - field=models.ImageField(blank=True, default=None, help_text='Use this to add your own logo to the site header', null=True, upload_to='', verbose_name='Header Logo Override Image'), + model_name="configuration", + name="logo_override", + field=models.ImageField( + blank=True, + default=None, + help_text="Use this to add your own logo to the site header", + null=True, + upload_to="", + verbose_name="Header Logo Override Image", + ), ), ] diff --git a/TEKDB/configuration/migrations/0005_auto_20220510_0939.py b/TEKDB/configuration/migrations/0005_auto_20220510_0939.py index f9888511..86dbb447 100644 --- a/TEKDB/configuration/migrations/0005_auto_20220510_0939.py +++ b/TEKDB/configuration/migrations/0005_auto_20220510_0939.py @@ -5,30 +5,87 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0004_auto_20220506_1506'), + ("configuration", "0004_auto_20220506_1506"), ] operations = [ migrations.AddField( - model_name='configuration', - name='max_results_returned', - field=models.IntegerField(default=500, help_text='500 is recommended. Allowing more may result in poor website performance or strain on the server.', verbose_name='Maximum no. of search results'), + model_name="configuration", + name="max_results_returned", + field=models.IntegerField( + default=500, + help_text="500 is recommended. Allowing more may result in poor website performance or strain on the server.", + verbose_name="Maximum no. of search results", + ), ), migrations.AlterField( - model_name='configuration', - name='homepage_font_color', - field=colorfield.fields.ColorField(default='#FFFFFF', help_text='Text color on homepage. Recommended: White (#FFFFFF).', image_field=None, max_length=18, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Homepage Text Color'), + model_name="configuration", + name="homepage_font_color", + field=colorfield.fields.ColorField( + default="#FFFFFF", + help_text="Text color on homepage. Recommended: White (#FFFFFF).", + image_field=None, + max_length=18, + samples=[ + ("#8f371c", "primary_a"), + ("#f7f3eb", "primary_b"), + ("#0e1522", "primary_c"), + ("#ced2da", "primary_d"), + ("#51723b", "secondary_a"), + ("#839230", "secondary_b"), + ("#6ea32e", "secondary_c"), + ("#b44ba3", "secondary_d"), + ("#FFFFFF", "white"), + ("#000000", "black"), + ], + verbose_name="Homepage Text Color", + ), ), migrations.AlterField( - model_name='configuration', - name='homepage_left_background', - field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind Text on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Left Homepage Background Color'), + model_name="configuration", + name="homepage_left_background", + field=colorfield.fields.ColorField( + default="#000000", + help_text="Background color behind Text on homepage. Recommended: Black (#000000).", + image_field=None, + max_length=18, + samples=[ + ("#8f371c", "primary_a"), + ("#f7f3eb", "primary_b"), + ("#0e1522", "primary_c"), + ("#ced2da", "primary_d"), + ("#51723b", "secondary_a"), + ("#839230", "secondary_b"), + ("#6ea32e", "secondary_c"), + ("#b44ba3", "secondary_d"), + ("#FFFFFF", "white"), + ("#000000", "black"), + ], + verbose_name="Left Homepage Background Color", + ), ), migrations.AlterField( - model_name='configuration', - name='homepage_right_background', - field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind image on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Right Homepage Background Color'), + model_name="configuration", + name="homepage_right_background", + field=colorfield.fields.ColorField( + default="#000000", + help_text="Background color behind image on homepage. Recommended: Black (#000000).", + image_field=None, + max_length=18, + samples=[ + ("#8f371c", "primary_a"), + ("#f7f3eb", "primary_b"), + ("#0e1522", "primary_c"), + ("#ced2da", "primary_d"), + ("#51723b", "secondary_a"), + ("#839230", "secondary_b"), + ("#6ea32e", "secondary_c"), + ("#b44ba3", "secondary_d"), + ("#FFFFFF", "white"), + ("#000000", "black"), + ], + verbose_name="Right Homepage Background Color", + ), ), ] diff --git a/TEKDB/configuration/migrations/0006_alter_configuration_logo.py b/TEKDB/configuration/migrations/0006_alter_configuration_logo.py index 5c470219..55c3ad8d 100644 --- a/TEKDB/configuration/migrations/0006_alter_configuration_logo.py +++ b/TEKDB/configuration/migrations/0006_alter_configuration_logo.py @@ -4,15 +4,23 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0005_auto_20220510_0939'), + ("configuration", "0005_auto_20220510_0939"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='logo', - field=models.CharField(choices=[('/static/explore/img/logos/logo_weave.svg', 'Weave'), ('/static/explore/img/logos/logo_drop.svg', 'Droplet'), ('Other', 'Custom')], default=('/static/explore/img/logos/logo_weave.svg', 'Weave'), help_text='Choose your logo for the site header. You can choose between:
  • \'Weave\'
  • \'Droplet\'
  • Or choose \'Custom\' and add your own using the Header Logo Override Image field.
', max_length=255), + model_name="configuration", + name="logo", + field=models.CharField( + choices=[ + ("/static/explore/img/logos/logo_weave.svg", "Weave"), + ("/static/explore/img/logos/logo_drop.svg", "Droplet"), + ("Other", "Custom"), + ], + default=("/static/explore/img/logos/logo_weave.svg", "Weave"), + help_text='Choose your logo for the site header. You can choose between:
  • \'Weave\'
  • \'Droplet\'
  • Or choose \'Custom\' and add your own using the Header Logo Override Image field.
', + max_length=255, + ), ), ] diff --git a/TEKDB/configuration/migrations/0007_auto_20240913_1539.py b/TEKDB/configuration/migrations/0007_auto_20240913_1539.py index 29db6e30..4cf00e0d 100644 --- a/TEKDB/configuration/migrations/0007_auto_20240913_1539.py +++ b/TEKDB/configuration/migrations/0007_auto_20240913_1539.py @@ -5,25 +5,78 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0006_alter_configuration_logo'), + ("configuration", "0006_alter_configuration_logo"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='homepage_font_color', - field=colorfield.fields.ColorField(default='#FFFFFF', help_text='Text color on homepage. Recommended: White (#FFFFFF).', image_field=None, max_length=25, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Homepage Text Color'), + model_name="configuration", + name="homepage_font_color", + field=colorfield.fields.ColorField( + default="#FFFFFF", + help_text="Text color on homepage. Recommended: White (#FFFFFF).", + image_field=None, + max_length=25, + samples=[ + ("#8f371c", "primary_a"), + ("#f7f3eb", "primary_b"), + ("#0e1522", "primary_c"), + ("#ced2da", "primary_d"), + ("#51723b", "secondary_a"), + ("#839230", "secondary_b"), + ("#6ea32e", "secondary_c"), + ("#b44ba3", "secondary_d"), + ("#FFFFFF", "white"), + ("#000000", "black"), + ], + verbose_name="Homepage Text Color", + ), ), migrations.AlterField( - model_name='configuration', - name='homepage_left_background', - field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind Text on homepage. Recommended: Black (#000000).', image_field=None, max_length=25, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Left Homepage Background Color'), + model_name="configuration", + name="homepage_left_background", + field=colorfield.fields.ColorField( + default="#000000", + help_text="Background color behind Text on homepage. Recommended: Black (#000000).", + image_field=None, + max_length=25, + samples=[ + ("#8f371c", "primary_a"), + ("#f7f3eb", "primary_b"), + ("#0e1522", "primary_c"), + ("#ced2da", "primary_d"), + ("#51723b", "secondary_a"), + ("#839230", "secondary_b"), + ("#6ea32e", "secondary_c"), + ("#b44ba3", "secondary_d"), + ("#FFFFFF", "white"), + ("#000000", "black"), + ], + verbose_name="Left Homepage Background Color", + ), ), migrations.AlterField( - model_name='configuration', - name='homepage_right_background', - field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind image on homepage. Recommended: Black (#000000).', image_field=None, max_length=25, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Right Homepage Background Color'), + model_name="configuration", + name="homepage_right_background", + field=colorfield.fields.ColorField( + default="#000000", + help_text="Background color behind image on homepage. Recommended: Black (#000000).", + image_field=None, + max_length=25, + samples=[ + ("#8f371c", "primary_a"), + ("#f7f3eb", "primary_b"), + ("#0e1522", "primary_c"), + ("#ced2da", "primary_d"), + ("#51723b", "secondary_a"), + ("#839230", "secondary_b"), + ("#6ea32e", "secondary_c"), + ("#b44ba3", "secondary_d"), + ("#FFFFFF", "white"), + ("#000000", "black"), + ], + verbose_name="Right Homepage Background Color", + ), ), ] diff --git a/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py b/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py index b69da1fd..2fe590bf 100644 --- a/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py +++ b/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py @@ -4,15 +4,20 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0007_auto_20240913_1539'), + ("configuration", "0007_auto_20240913_1539"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='preferredInitialism', - field=models.CharField(blank=True, default='ITK', help_text="Suggestions: 'ITK', 'TEK', etc...", max_length=15, verbose_name='Preferred sharthand for traditional knowledge'), + model_name="configuration", + name="preferredInitialism", + field=models.CharField( + blank=True, + default="ITK", + help_text="Suggestions: 'ITK', 'TEK', etc...", + max_length=15, + verbose_name="Preferred sharthand for traditional knowledge", + ), ), ] diff --git a/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py b/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py index 8a06149c..40123ed7 100644 --- a/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py +++ b/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py @@ -4,15 +4,23 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0008_alter_configuration_preferredinitialism'), + ("configuration", "0008_alter_configuration_preferredinitialism"), ] operations = [ migrations.AddField( - model_name='configuration', - name='preferredInitialismPlacement', - field=models.CharField(choices=[('default', 'Default'), ('before', 'Before'), ('after', 'After')], default=('default', 'Default'), help_text='Choose where you would like the preferred initialism to appear in the site header.', max_length=255), + model_name="configuration", + name="preferredInitialismPlacement", + field=models.CharField( + choices=[ + ("default", "Default"), + ("before", "Before"), + ("after", "After"), + ], + default=("default", "Default"), + help_text="Choose where you would like the preferred initialism to appear in the site header.", + max_length=255, + ), ), ] diff --git a/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py b/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py index f3b087c8..be0b3b9b 100644 --- a/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py +++ b/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py @@ -4,15 +4,23 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0009_configuration_preferredinitialismplacement'), + ("configuration", "0009_configuration_preferredinitialismplacement"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='preferredInitialismPlacement', - field=models.CharField(choices=[('default', 'Default'), ('before', 'Before'), ('after', 'After')], default=('default', 'Default'), help_text='Select the position of the preferred initialism in relative to the logo.', max_length=255), + model_name="configuration", + name="preferredInitialismPlacement", + field=models.CharField( + choices=[ + ("default", "Default"), + ("before", "Before"), + ("after", "After"), + ], + default=("default", "Default"), + help_text="Select the position of the preferred initialism in relative to the logo.", + max_length=255, + ), ), ] diff --git a/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py b/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py index 337e8259..79805c71 100644 --- a/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py +++ b/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py @@ -4,15 +4,23 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0010_alter_configuration_preferredinitialismplacement'), + ("configuration", "0010_alter_configuration_preferredinitialismplacement"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='preferredInitialismPlacement', - field=models.CharField(choices=[('default', 'Align Center'), ('before', 'Align Left'), ('after', 'Align Right')], default=('default', 'Align Center'), help_text='Select the position of the preferred initialism in relative to the logo.', max_length=255), + model_name="configuration", + name="preferredInitialismPlacement", + field=models.CharField( + choices=[ + ("default", "Align Center"), + ("before", "Align Left"), + ("after", "Align Right"), + ], + default=("default", "Align Center"), + help_text="Select the position of the preferred initialism in relative to the logo.", + max_length=255, + ), ), ] diff --git a/TEKDB/configuration/migrations/0012_auto_20241025_1313.py b/TEKDB/configuration/migrations/0012_auto_20241025_1313.py index bde23a52..ecb02202 100644 --- a/TEKDB/configuration/migrations/0012_auto_20241025_1313.py +++ b/TEKDB/configuration/migrations/0012_auto_20241025_1313.py @@ -4,20 +4,31 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0011_alter_configuration_preferredinitialismplacement'), + ("configuration", "0011_alter_configuration_preferredinitialismplacement"), ] operations = [ migrations.AddField( - model_name='configuration', - name='min_search_rank', - field=models.FloatField(blank=True, default=None, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', null=True, verbose_name='Minimum Search Rank'), + model_name="configuration", + name="min_search_rank", + field=models.FloatField( + blank=True, + default=None, + help_text="Weight 0-1 representing the minimum search rank threshold for search results.", + null=True, + verbose_name="Minimum Search Rank", + ), ), migrations.AddField( - model_name='configuration', - name='min_search_similarity', - field=models.FloatField(blank=True, default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', null=True, verbose_name='Minimum Search Similarity'), + model_name="configuration", + name="min_search_similarity", + field=models.FloatField( + blank=True, + default=None, + help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", + null=True, + verbose_name="Minimum Search Similarity", + ), ), ] diff --git a/TEKDB/configuration/migrations/0013_auto_20241025_1406.py b/TEKDB/configuration/migrations/0013_auto_20241025_1406.py index bfa865c6..2e7bc616 100644 --- a/TEKDB/configuration/migrations/0013_auto_20241025_1406.py +++ b/TEKDB/configuration/migrations/0013_auto_20241025_1406.py @@ -4,20 +4,45 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0012_auto_20241025_1313'), + ("configuration", "0012_auto_20241025_1313"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='min_search_rank', - field=models.FloatField(blank=True, choices=[(0.01, 'All Results'), (0.1, 'Most Results'), (0.5, 'Top Results'), (0.9, 'Only Best Results')], default=None, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', max_length=255, null=True, verbose_name='Minimum Search Rank'), + model_name="configuration", + name="min_search_rank", + field=models.FloatField( + blank=True, + choices=[ + (0.01, "All Results"), + (0.1, "Most Results"), + (0.5, "Top Results"), + (0.9, "Only Best Results"), + ], + default=None, + help_text="Weight 0-1 representing the minimum search rank threshold for search results.", + max_length=255, + null=True, + verbose_name="Minimum Search Rank", + ), ), migrations.AlterField( - model_name='configuration', - name='min_search_similarity', - field=models.FloatField(blank=True, choices=[(0.1, 'Loose'), (0.4, 'Moderate'), (0.6, 'Pretty Strict'), (0.9, 'Strict')], default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), + model_name="configuration", + name="min_search_similarity", + field=models.FloatField( + blank=True, + choices=[ + (0.1, "Loose"), + (0.4, "Moderate"), + (0.6, "Pretty Strict"), + (0.9, "Strict"), + ], + default=None, + help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", + max_length=255, + null=True, + verbose_name="Minimum Search Similarity", + ), ), ] diff --git a/TEKDB/configuration/migrations/0014_auto_20241025_1603.py b/TEKDB/configuration/migrations/0014_auto_20241025_1603.py index dc3632ec..b78b8103 100644 --- a/TEKDB/configuration/migrations/0014_auto_20241025_1603.py +++ b/TEKDB/configuration/migrations/0014_auto_20241025_1603.py @@ -4,20 +4,46 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0013_auto_20241025_1406'), + ("configuration", "0013_auto_20241025_1406"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='min_search_rank', - field=models.FloatField(blank=True, choices=[(0.01, 'Lowest'), (0.1, 'Default'), (0.6, 'Moderate'), (0.9, 'Highest')], default=None, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', max_length=255, null=True, verbose_name='Minimum Search Rank'), + model_name="configuration", + name="min_search_rank", + field=models.FloatField( + blank=True, + choices=[ + (0.01, "Lowest"), + (0.1, "Default"), + (0.6, "Moderate"), + (0.9, "Highest"), + ], + default=None, + help_text="Weight 0-1 representing the minimum search rank threshold for search results.", + max_length=255, + null=True, + verbose_name="Minimum Search Rank", + ), ), migrations.AlterField( - model_name='configuration', - name='min_search_similarity', - field=models.FloatField(blank=True, choices=[(0.1, 'Permissive'), (0.2, 'Default'), (0.3, 'Similar'), (0.4, 'Has Match'), (0.9, 'Exact Match')], default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), + model_name="configuration", + name="min_search_similarity", + field=models.FloatField( + blank=True, + choices=[ + (0.1, "Permissive"), + (0.2, "Default"), + (0.3, "Similar"), + (0.4, "Has Match"), + (0.9, "Exact Match"), + ], + default=None, + help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", + max_length=255, + null=True, + verbose_name="Minimum Search Similarity", + ), ), ] diff --git a/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py b/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py index e72ad8c6..808e97c2 100644 --- a/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py +++ b/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py @@ -4,15 +4,28 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0014_auto_20241025_1603'), + ("configuration", "0014_auto_20241025_1603"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='min_search_similarity', - field=models.FloatField(blank=True, choices=[(0.01, 'Permissive'), (0.1, 'Default'), (0.3, 'Similar'), (0.4, 'Has Match'), (0.9, 'Exact Match')], default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), + model_name="configuration", + name="min_search_similarity", + field=models.FloatField( + blank=True, + choices=[ + (0.01, "Permissive"), + (0.1, "Default"), + (0.3, "Similar"), + (0.4, "Has Match"), + (0.9, "Exact Match"), + ], + default=None, + help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", + max_length=255, + null=True, + verbose_name="Minimum Search Similarity", + ), ), ] diff --git a/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py b/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py index 5bb77459..febdc5c0 100644 --- a/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py +++ b/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py @@ -4,20 +4,46 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0015_alter_configuration_min_search_similarity'), + ("configuration", "0015_alter_configuration_min_search_similarity"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='min_search_rank', - field=models.FloatField(blank=True, choices=[(0.01, 'Lowest'), (0.1, 'Default'), (0.6, 'Moderate'), (0.9, 'Highest')], default=None, help_text='The lowest acceptable ranking score assigned to search results.', max_length=255, null=True, verbose_name='Minimum Search Rank'), + model_name="configuration", + name="min_search_rank", + field=models.FloatField( + blank=True, + choices=[ + (0.01, "Lowest"), + (0.1, "Default"), + (0.6, "Moderate"), + (0.9, "Highest"), + ], + default=None, + help_text="The lowest acceptable ranking score assigned to search results.", + max_length=255, + null=True, + verbose_name="Minimum Search Rank", + ), ), migrations.AlterField( - model_name='configuration', - name='min_search_similarity', - field=models.FloatField(blank=True, choices=[(0.01, 'Permissive'), (0.1, 'Default'), (0.3, 'Similar'), (0.4, 'Has Match'), (0.9, 'Exact Match')], default=None, help_text='The lowest threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), + model_name="configuration", + name="min_search_similarity", + field=models.FloatField( + blank=True, + choices=[ + (0.01, "Permissive"), + (0.1, "Default"), + (0.3, "Similar"), + (0.4, "Has Match"), + (0.9, "Exact Match"), + ], + default=None, + help_text="The lowest threshold for similar search results to be included in results.", + max_length=255, + null=True, + verbose_name="Minimum Search Similarity", + ), ), ] diff --git a/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py b/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py index 2873e5c9..32329873 100644 --- a/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py +++ b/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py @@ -5,15 +5,20 @@ class Migration(migrations.Migration): - dependencies = [ - ('configuration', '0016_alter_configuration_min_search_rank_and_more'), + ("configuration", "0016_alter_configuration_min_search_rank_and_more"), ] operations = [ migrations.AlterField( - model_name='configuration', - name='homepage_image_attribution', - field=tinymce.models.HTMLField(blank=True, default=None, help_text='If using a custom image that requires attribution for use, please provide that here.', null=True, verbose_name='Homepage Image attribution'), + model_name="configuration", + name="homepage_image_attribution", + field=tinymce.models.HTMLField( + blank=True, + default=None, + help_text="If using a custom image that requires attribution for use, please provide that here.", + null=True, + verbose_name="Homepage Image attribution", + ), ), ] diff --git a/TEKDB/configuration/models.py b/TEKDB/configuration/models.py index bb777243..f18d92a7 100644 --- a/TEKDB/configuration/models.py +++ b/TEKDB/configuration/models.py @@ -7,107 +7,110 @@ from django.conf import settings from TEKDB.widgets import OpenLayers6Widget + # Create your models here. class Configuration(models.Model): - preferredInitialism = models.CharField( - max_length=15, - default='ITK', + max_length=15, + default="ITK", blank=True, verbose_name="Preferred sharthand for traditional knowledge", - help_text="Suggestions: 'ITK', 'TEK', etc..." + help_text="Suggestions: 'ITK', 'TEK', etc...", ) preferredInitialismPlacementChoices = [ - ('default', 'Align Center'), - ('before', 'Align Left'), - ('after', 'Align Right'), + ("default", "Align Center"), + ("before", "Align Left"), + ("after", "Align Right"), ] preferredInitialismPlacement = models.CharField( default=preferredInitialismPlacementChoices[0], choices=preferredInitialismPlacementChoices, max_length=255, - help_text="Select the position of the preferred initialism in relative to the logo." + help_text="Select the position of the preferred initialism in relative to the logo.", ) LOGO_CHOICES = [ - ('/static/explore/img/logos/logo_weave.svg', 'Weave'), - ('/static/explore/img/logos/logo_drop.svg', 'Droplet'), - ('Other', 'Custom'), + ("/static/explore/img/logos/logo_weave.svg", "Weave"), + ("/static/explore/img/logos/logo_drop.svg", "Droplet"), + ("Other", "Custom"), ] - logo_help_text = "Choose your logo for the site header. You can choose between:
    " + logo_help_text = ( + "Choose your logo for the site header. You can choose between:
      " + ) for logo_choice in LOGO_CHOICES[:-1]: - logo_help_text += "
    • '{}'
    • ".format(logo_choice[1], logo_choice[0]) + logo_help_text += '
    • \'{}\'
    • '.format( + logo_choice[1], logo_choice[0] + ) logo_help_text += "
    • Or choose 'Custom' and add your own using the Header Logo Override Image field.
    " - + logo = models.CharField( default=LOGO_CHOICES[0], choices=LOGO_CHOICES, max_length=255, - help_text=logo_help_text + help_text=logo_help_text, ) logo_override = models.ImageField( blank=True, null=True, default=None, - verbose_name='Header Logo Override Image', - help_text="Use this to add your own logo to the site header" + verbose_name="Header Logo Override Image", + help_text="Use this to add your own logo to the site header", ) objects = models.Manager() - # TODO: + # TODO: # * How to limit drawing options to polygon only? # * How to initialize drawing interaction to be 'polygon'? geometry = GeometryField( srid=3857, - null=True, blank=True, + null=True, + blank=True, verbose_name="Area of Interest", default=None, - help_text="Indicate the region in which most of your 'place' records are likely to exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time." + help_text="Indicate the region in which most of your 'place' records are likely to exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", ) homepage_image = models.ImageField( - blank=True, - default=None, + blank=True, + default=None, verbose_name="Homepage Image", - help_text="If you have a preferred image for the landing page, put it here. If blank, users will see a default image." + help_text="If you have a preferred image for the landing page, put it here. If blank, users will see a default image.", ) homepage_image_attribution = HTMLField( blank=True, null=True, default=None, - verbose_name='Homepage Image attribution', - help_text="If using a custom image that requires attribution for use, please provide that here." - ) #TinyMCE HTML Field + verbose_name="Homepage Image attribution", + help_text="If using a custom image that requires attribution for use, please provide that here.", + ) # TinyMCE HTML Field COLOR_PALETTE = [] for key in settings.PROJ_CSS.keys(): - COLOR_PALETTE.append( - (settings.PROJ_CSS[key], key) - ) + COLOR_PALETTE.append((settings.PROJ_CSS[key], key)) - COLOR_PALETTE.append(("#FFFFFF", 'white')) - COLOR_PALETTE.append(("#000000", 'black')) + COLOR_PALETTE.append(("#FFFFFF", "white")) + COLOR_PALETTE.append(("#000000", "black")) homepage_font_color = ColorField( - default='#FFFFFF', + default="#FFFFFF", help_text="Text color on homepage. Recommended: White (#FFFFFF).", verbose_name="Homepage Text Color", samples=COLOR_PALETTE, ) homepage_left_background = ColorField( - default='#000000', + default="#000000", help_text="Background color behind Text on homepage. Recommended: Black (#000000).", verbose_name="Left Homepage Background Color", samples=COLOR_PALETTE, ) homepage_right_background = ColorField( - default='#000000', + default="#000000", help_text="Background color behind image on homepage. Recommended: Black (#000000).", verbose_name="Right Homepage Background Color", samples=COLOR_PALETTE, @@ -115,51 +118,50 @@ class Configuration(models.Model): max_results_returned = models.IntegerField( default=500, - verbose_name='Maximum no. of search results', - help_text='500 is recommended. Allowing more may result in poor website performance or strain on the server.' + verbose_name="Maximum no. of search results", + help_text="500 is recommended. Allowing more may result in poor website performance or strain on the server.", ) # * Making search settings customizable by admin SEARCH_RANK_CHOICES = [ - (0.01, 'Lowest'), - (0.1, 'Default'), - (0.6, 'Moderate'), - (0.9, 'Highest'), + (0.01, "Lowest"), + (0.1, "Default"), + (0.6, "Moderate"), + (0.9, "Highest"), ] min_search_rank = models.FloatField( default=None, choices=SEARCH_RANK_CHOICES, max_length=255, - verbose_name='Minimum Search Rank', - help_text='The lowest acceptable ranking score assigned to search results.', + verbose_name="Minimum Search Rank", + help_text="The lowest acceptable ranking score assigned to search results.", null=True, blank=True, ) SEARCH_SIMILARITY_CHOICES = [ - (0.01, 'Permissive'), - (0.1, 'Default'), - (0.3, 'Similar'), - (0.4, 'Has Match'), - (0.9, 'Exact Match'), + (0.01, "Permissive"), + (0.1, "Default"), + (0.3, "Similar"), + (0.4, "Has Match"), + (0.9, "Exact Match"), ] min_search_similarity = models.FloatField( default=None, choices=SEARCH_SIMILARITY_CHOICES, max_length=255, - verbose_name='Minimum Search Similarity', - help_text='The lowest threshold for similar search results to be included in results.', + verbose_name="Minimum Search Similarity", + help_text="The lowest threshold for similar search results to be included in results.", null=True, blank=True, ) - # TODO: Allow users to: # * Override default theme colors (x8) - # Look into Django-Colorfield: https://stackoverflow.com/a/57080102/706797 + # Look into Django-Colorfield: https://stackoverflow.com/a/57080102/706797 # Offer a 'page preview' of the homepage. # place_icon': 'explore/img/icons/i_place.svg', @@ -179,8 +181,9 @@ class Configuration(models.Model): # media_name_override def __unicode__(self): - return unicode("Site Configuration: '{}' ({})".format(self.preferredInitialism, self.pk)) + return unicode( + "Site Configuration: '{}' ({})".format(self.preferredInitialism, self.pk) + ) def __str__(self): return "Site Configuration: '{}' ({})".format(self.preferredInitialism, self.pk) - diff --git a/TEKDB/explore/apps.py b/TEKDB/explore/apps.py index c8f7ea1e..06f699cf 100644 --- a/TEKDB/explore/apps.py +++ b/TEKDB/explore/apps.py @@ -2,4 +2,4 @@ class ExploreConfig(AppConfig): - name = 'explore' + name = "explore" diff --git a/TEKDB/explore/context_processors.py b/TEKDB/explore/context_processors.py index 7745fd37..34fe0a27 100644 --- a/TEKDB/explore/context_processors.py +++ b/TEKDB/explore/context_processors.py @@ -5,12 +5,13 @@ def explore_context(request): try: from TEKDB import settings except Exception as e: - print('Could not import settings from TEKDB') + print("Could not import settings from TEKDB") print(e) settings = False try: from configuration.models import Configuration + configs = Configuration.objects.all()[0] except Exception as e: configs = False @@ -19,8 +20,8 @@ def explore_context(request): # PROJ_LOGO_TEXT # ###################################### - project_logo_text = 'ITK' - project_text_placement = 'default' + project_logo_text = "ITK" + project_text_placement = "default" if settings: try: @@ -28,7 +29,7 @@ def explore_context(request): project_logo_text = settings.PROJ_LOGO_TEXT except Exception as e: pass - + if configs: try: project_logo_text = configs.preferredInitialism @@ -41,17 +42,17 @@ def explore_context(request): ###################################### proj_css = { - 'primary_a': '#8f371c', - 'primary_b': '#f7f3eb', - 'primary_c': '#0e1522', - 'primary_d': '#ced2da', - 'secondary_a': '#51723b', - 'secondary_b': '#839230', - 'secondary_c': '#6ea32e', - 'secondary_d': '#b44ba3', - 'font_face_primary': '/static/explore/fonts/Open_Sans/static/OpenSans-Regular-export/OpenSans-Regular.css', - 'font_face_primary_bold': '/static/explore/fonts/Open_Sans/static/OpenSans-Bold-export/OpenSans-Bold.css', - 'font_face_primary_extrabold': '/static/explore/fonts/Open_Sans/static/OpenSans-ExtraBold-export/OpenSans-ExtraBold.css', + "primary_a": "#8f371c", + "primary_b": "#f7f3eb", + "primary_c": "#0e1522", + "primary_d": "#ced2da", + "secondary_a": "#51723b", + "secondary_b": "#839230", + "secondary_c": "#6ea32e", + "secondary_d": "#b44ba3", + "font_face_primary": "/static/explore/fonts/Open_Sans/static/OpenSans-Regular-export/OpenSans-Regular.css", + "font_face_primary_bold": "/static/explore/fonts/Open_Sans/static/OpenSans-Bold-export/OpenSans-Bold.css", + "font_face_primary_extrabold": "/static/explore/fonts/Open_Sans/static/OpenSans-ExtraBold-export/OpenSans-ExtraBold.css", } if settings: @@ -71,20 +72,19 @@ def explore_context(request): except Exception as e: pass - ###################################### # PROJ_ICONS # ###################################### proj_icons = { - 'logo': '/static/explore/img/logos/logo_weave.svg', - 'place_icon': 'explore/img/icons/i_place.svg', - 'resource_icon': 'explore/img/icons/i_resource.svg', - 'activity_icon': 'explore/img/icons/i_activity.svg', - 'source_icon': 'explore/img/icons/i_source.svg', - 'media_icon': 'explore/img/icons/i_media.svg', + "logo": "/static/explore/img/logos/logo_weave.svg", + "place_icon": "explore/img/icons/i_place.svg", + "resource_icon": "explore/img/icons/i_resource.svg", + "activity_icon": "explore/img/icons/i_activity.svg", + "source_icon": "explore/img/icons/i_source.svg", + "media_icon": "explore/img/icons/i_media.svg", } - + if settings: for key in proj_icons.keys(): try: @@ -92,17 +92,25 @@ def explore_context(request): proj_icons[key] = settings.PROJ_ICONS[key] except Exception as e: pass - + if configs: for key in proj_icons.keys(): try: if hasattr(configs, key) and getattr(configs, key): icon_value = getattr(configs, key) - if icon_value == 'Other': - if hasattr(configs, '{}_override'.format(key)) and getattr(configs, '{}_override'.format(key)): - abs_project_icon_override_filename = getattr(configs, '{}_override'.format(key)).file.name - rel_filename = abs_project_icon_override_filename.split(settings.MEDIA_ROOT)[-1] - icon_override_select = "{}{}".format(settings.MEDIA_URL, rel_filename) + if icon_value == "Other": + if hasattr(configs, "{}_override".format(key)) and getattr( + configs, "{}_override".format(key) + ): + abs_project_icon_override_filename = getattr( + configs, "{}_override".format(key) + ).file.name + rel_filename = abs_project_icon_override_filename.split( + settings.MEDIA_ROOT + )[-1] + icon_override_select = "{}{}".format( + settings.MEDIA_URL, rel_filename + ) proj_icons[key] = icon_override_select else: proj_icons[key] = getattr(configs, key) @@ -113,7 +121,7 @@ def explore_context(request): # HOME IMAGE/Attribution # ###################################### - project_image_select = '/static/explore/img/homepage/5050508427_ec55eed5f4_o.jpg' + project_image_select = "/static/explore/img/homepage/5050508427_ec55eed5f4_o.jpg" home_image_attribution = 'Image courtesy of Monteregina and used under the CC BY-NC-SA 2.0 Licence. No changes were made.' if settings: @@ -131,8 +139,12 @@ def explore_context(request): if configs: try: - if hasattr(configs, 'homepage_image') and getattr(configs, 'homepage_image'): - abs_project_image_filename = getattr(configs, 'homepage_image').file.name + if hasattr(configs, "homepage_image") and getattr( + configs, "homepage_image" + ): + abs_project_image_filename = getattr( + configs, "homepage_image" + ).file.name rel_filename = abs_project_image_filename.split(settings.MEDIA_ROOT)[-1] project_image_select = "{}{}".format(settings.MEDIA_URL, rel_filename) home_image_attribution = False @@ -140,8 +152,10 @@ def explore_context(request): pass try: - if hasattr(configs, 'homepage_image_attribution') and getattr(configs, 'homepage_image_attribution'): - home_image_attribution = getattr(configs, 'homepage_image_attribution') + if hasattr(configs, "homepage_image_attribution") and getattr( + configs, "homepage_image_attribution" + ): + home_image_attribution = getattr(configs, "homepage_image_attribution") except Exception as e: pass @@ -149,9 +163,9 @@ def explore_context(request): # HOME_COLORS # ###################################### - home_font_color = '#FFFFFF' - homepage_left_background = '#000000' - homepage_right_background = '#000000' + home_font_color = "#FFFFFF" + homepage_left_background = "#000000" + homepage_right_background = "#000000" if settings: try: @@ -166,36 +180,44 @@ def explore_context(request): homepage_right_background = settings.HOME_RIGHT_BACKGROUND except Exception as e: pass - + if configs: try: - if hasattr(configs, 'homepage_font_color') and getattr(configs, 'homepage_font_color'): - home_font_color = getattr(configs, 'homepage_font_color') + if hasattr(configs, "homepage_font_color") and getattr( + configs, "homepage_font_color" + ): + home_font_color = getattr(configs, "homepage_font_color") except Exception as e: pass try: - if hasattr(configs, 'homepage_left_background') and getattr(configs, 'homepage_left_background'): - homepage_left_background = getattr(configs, 'homepage_left_background') + if hasattr(configs, "homepage_left_background") and getattr( + configs, "homepage_left_background" + ): + homepage_left_background = getattr(configs, "homepage_left_background") except Exception as e: pass try: - if hasattr(configs, 'homepage_right_background') and getattr(configs, 'homepage_right_background'): - homepage_right_background = getattr(configs, 'homepage_right_background') + if hasattr(configs, "homepage_right_background") and getattr( + configs, "homepage_right_background" + ): + homepage_right_background = getattr( + configs, "homepage_right_background" + ) except Exception as e: pass from TEKDB.settings import RECORD_ICONS return { - 'proj_logo_text': project_logo_text, - 'proj_text_placement': project_text_placement, - 'proj_css': proj_css, - 'proj_icons': proj_icons, - 'proj_image_select': project_image_select, - 'home_image_attribution': home_image_attribution, - 'home_font_color': home_font_color, - 'homepage_left_background': homepage_left_background, - 'homepage_right_background': homepage_right_background, - 'map_pin': RECORD_ICONS['map_pin'], - 'map_pin_selected': RECORD_ICONS['map_pin_selected'] - } \ No newline at end of file + "proj_logo_text": project_logo_text, + "proj_text_placement": project_text_placement, + "proj_css": proj_css, + "proj_icons": proj_icons, + "proj_image_select": project_image_select, + "home_image_attribution": home_image_attribution, + "home_font_color": home_font_color, + "homepage_left_background": homepage_left_background, + "homepage_right_background": homepage_right_background, + "map_pin": RECORD_ICONS["map_pin"], + "map_pin_selected": RECORD_ICONS["map_pin_selected"], + } diff --git a/TEKDB/explore/migrations/0001_initial.py b/TEKDB/explore/migrations/0001_initial.py index a7887f20..5cbc58d1 100644 --- a/TEKDB/explore/migrations/0001_initial.py +++ b/TEKDB/explore/migrations/0001_initial.py @@ -7,23 +7,44 @@ class Migration(migrations.Migration): - initial = True - dependencies = [ - ] + dependencies = [] operations = [ migrations.CreateModel( - name='PageContent', + name="PageContent", fields=[ - ('page', models.CharField(choices=[('Welcome', 'Welcome'), ('About', 'About'), ('Help', 'Help')], max_length=255, primary_key=True, serialize=False)), - ('content', ckeditor.fields.RichTextField(blank=True, null=True)), - ('is_html', models.BooleanField(default=False, help_text='Select this if you want to use raw HTML instead. For this option, use the "HTML content" window below.')), - ('html_content', models.TextField(blank=True, help_text='raw html if html == True', null=True)), + ( + "page", + models.CharField( + choices=[ + ("Welcome", "Welcome"), + ("About", "About"), + ("Help", "Help"), + ], + max_length=255, + primary_key=True, + serialize=False, + ), + ), + ("content", ckeditor.fields.RichTextField(blank=True, null=True)), + ( + "is_html", + models.BooleanField( + default=False, + help_text='Select this if you want to use raw HTML instead. For this option, use the "HTML content" window below.', + ), + ), + ( + "html_content", + models.TextField( + blank=True, help_text="raw html if html == True", null=True + ), + ), ], options={ - 'verbose_name_plural': 'Page Contents', + "verbose_name_plural": "Page Contents", }, ), ] diff --git a/TEKDB/explore/migrations/0002_alter_pagecontent_content.py b/TEKDB/explore/migrations/0002_alter_pagecontent_content.py index 891bd448..1555b837 100644 --- a/TEKDB/explore/migrations/0002_alter_pagecontent_content.py +++ b/TEKDB/explore/migrations/0002_alter_pagecontent_content.py @@ -5,15 +5,14 @@ class Migration(migrations.Migration): - dependencies = [ - ('explore', '0001_initial'), + ("explore", "0001_initial"), ] operations = [ migrations.AlterField( - model_name='pagecontent', - name='content', + model_name="pagecontent", + name="content", field=tinymce.models.HTMLField(blank=True, null=True), ), ] diff --git a/TEKDB/explore/models.py b/TEKDB/explore/models.py index 9da112a7..0356ffce 100644 --- a/TEKDB/explore/models.py +++ b/TEKDB/explore/models.py @@ -2,19 +2,27 @@ from tinymce.models import HTMLField PAGE_CONTENT_CHOICES = ( - ('Welcome', 'Welcome'), - ('About', 'About'), - ('Help', 'Help'), + ("Welcome", "Welcome"), + ("About", "About"), + ("Help", "Help"), ) + class PageContent(models.Model): - page = models.CharField(max_length=255, choices=PAGE_CONTENT_CHOICES, primary_key=True) - content = HTMLField(blank=True, null=True) # use TinyMCE HTMLField - is_html = models.BooleanField(default=False, help_text='Select this if you want to use raw HTML instead. For this option, use the "HTML content" window below.') - html_content = models.TextField(blank=True, null=True, help_text='raw html if html == True') + page = models.CharField( + max_length=255, choices=PAGE_CONTENT_CHOICES, primary_key=True + ) + content = HTMLField(blank=True, null=True) # use TinyMCE HTMLField + is_html = models.BooleanField( + default=False, + help_text='Select this if you want to use raw HTML instead. For this option, use the "HTML content" window below.', + ) + html_content = models.TextField( + blank=True, null=True, help_text="raw html if html == True" + ) class Meta: - verbose_name_plural = 'Page Contents' + verbose_name_plural = "Page Contents" def __unicode__(self): return unicode("%s" % (self.page)) diff --git a/TEKDB/explore/templatetags/explore_tags.py b/TEKDB/explore/templatetags/explore_tags.py index 3b692bf1..60807c89 100644 --- a/TEKDB/explore/templatetags/explore_tags.py +++ b/TEKDB/explore/templatetags/explore_tags.py @@ -2,15 +2,17 @@ register = template.Library() -@register.filter(name='mult') + +@register.filter(name="mult") def mult(value, arg): """Multiplies the value by the arg""" - return int(value)*int(arg) + return int(value) * int(arg) + -@register.filter(name='subtract') +@register.filter(name="subtract") def mult(value, arg): """Subtracts the arg from the value""" - return int(value)-int(arg) + return int(value) - int(arg) # register.filter('mult', mult) diff --git a/TEKDB/explore/tests/test_views.py b/TEKDB/explore/tests/test_views.py index 0ed4e237..7520e18e 100644 --- a/TEKDB/explore/tests/test_views.py +++ b/TEKDB/explore/tests/test_views.py @@ -13,11 +13,14 @@ # coverage run manage.py test explore -v 2 ######################################################################### + class SearchTest(TestCase): # fixtures = ['TEKDB/fixtures/all_dummy_data.json',] def setUp(self): - import_fixture_file(join(settings.BASE_DIR, 'TEKDB', 'fixtures', 'all_dummy_data.json')) + import_fixture_file( + join(settings.BASE_DIR, "TEKDB", "fixtures", "all_dummy_data.json") + ) self.factory = RequestFactory() self.credentials = b64encode(b"admin:admin").decode("ascii") @@ -26,16 +29,15 @@ def test_multi_word_search(self): # Test that the query string submitted matches the query string returned to the client/user from explore.views import search from TEKDB.models import Users + query_string = "A multi word search" request = self.factory.get( - reverse('search'), - headers = { - "Authorization": f"Basic {self.credentials}" - }, - data = { - 'query': query_string, - } + reverse("search"), + headers={"Authorization": f"Basic {self.credentials}"}, + data={ + "query": query_string, + }, ) - request.user = Users.objects.get(username='admin') + request.user = Users.objects.get(username="admin") # Assert that the search query string matches the query string submitted - self.assertEqual(query_string, request.GET['query']) + self.assertEqual(query_string, request.GET["query"]) diff --git a/TEKDB/explore/urls.py b/TEKDB/explore/urls.py index d7f5b283..d66626f3 100644 --- a/TEKDB/explore/urls.py +++ b/TEKDB/explore/urls.py @@ -3,25 +3,27 @@ from . import views explore_patterns = [ - path('', views.explore), - re_path(r'^(?P\w+)/$', views.get_by_model_type), - re_path(r'^(?P\w+)/(?P\w+)/$', views.get_by_model_id), - re_path(r'^(?P\w+)/(?P\w+)/download$', views.download_media_file), + path("", views.explore), + re_path(r"^(?P\w+)/$", views.get_by_model_type), + re_path(r"^(?P\w+)/(?P\w+)/$", views.get_by_model_id), + re_path(r"^(?P\w+)/(?P\w+)/download$", views.download_media_file), ] export_patterns = [ - path('', views.download), - re_path(r'^(?P\w+)/(?P\w+)/(?P\w+)/$', views.export_by_model_id), + path("", views.download), + re_path( + r"^(?P\w+)/(?P\w+)/(?P\w+)/$", views.export_by_model_id + ), ] urlpatterns = [ - re_path(r'^about/', views.about), - re_path(r'^help/', views.help), - re_path(r'^search/', views.search, name='search'), - path('explore', views.explore), - path('explore/', include(explore_patterns)), - path('export', views.download), - path('export/', include(export_patterns)), - path('', views.home), + re_path(r"^about/", views.about), + re_path(r"^help/", views.help), + re_path(r"^search/", views.search, name="search"), + path("explore", views.explore), + path("explore/", include(explore_patterns)), + path("export", views.download), + path("export/", include(export_patterns)), + path("", views.home), ] - #url(r'^logout$', views.logout, name='logout'), +# url(r'^logout$', views.logout, name='logout'), diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index a5251073..053b0367 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -4,6 +4,7 @@ from .models import * from configuration.models import Configuration + # Create your views here. def home(request): try: @@ -16,14 +17,15 @@ def home(request): page_content = "

    Welcome

    Set Welcome Page Content In Admin

    " context = { - 'page':'home', - 'pageTitle':'Welcome', - 'pageContent':page_content, - 'user': request.user, + "page": "home", + "pageTitle": "Welcome", + "pageContent": page_content, + "user": request.user, } return render(request, "welcome.html", context) + def about(request): try: page_content_obj = PageContent.objects.get(page="About") @@ -34,13 +36,14 @@ def about(request): except Exception as e: page_content = "

    About

    Set About Page Content In Admin

    " context = { - 'page':'about', - 'pageTitle':'About', - 'pageContent':page_content, - 'user': request.user, + "page": "about", + "pageTitle": "About", + "pageContent": page_content, + "user": request.user, } return render(request, "tek_index.html", context) + def help(request): try: page_content_obj = PageContent.objects.get(page="Help") @@ -51,34 +54,37 @@ def help(request): except Exception as e: page_content = "

    Help

    Set Help Page Content In Admin

    " context = { - 'page':'help', - 'pageTitle':'Help', - 'pageContent':page_content, - 'user': request.user, + "page": "help", + "pageTitle": "Help", + "pageContent": page_content, + "user": request.user, } return render(request, "tek_index.html", context) + @login_required def explore(request): context = { - 'page':'explore', - 'pageTitle':'Search', - 'pageContent':"

    In in mi vitae nibh posuere condimentum vitae eget quam. Etiam et urna id odio fringilla aliquet id hendrerit nisl. Ut sed ex vel felis rhoncus eleifend. Ut auctor facilisis vehicula. Ut sed dui nec ipsum pellentesque tempus.

    ", - 'user': request.user, + "page": "explore", + "pageTitle": "Search", + "pageContent": "

    In in mi vitae nibh posuere condimentum vitae eget quam. Etiam et urna id odio fringilla aliquet id hendrerit nisl. Ut sed ex vel felis rhoncus eleifend. Ut auctor facilisis vehicula. Ut sed dui nec ipsum pellentesque tempus.

    ", + "user": request.user, } return render(request, "explore.html", context) + def get_model_by_type(model_type): from TEKDB import models as tekmodels + searchable_models = { - 'resources': [tekmodels.Resources], - 'places': [tekmodels.Places], - 'locality': [tekmodels.Locality], - 'sources': [tekmodels.Citations], - 'citations': [tekmodels.Citations], - 'media': [tekmodels.Media], - 'activities': [tekmodels.ResourcesActivityEvents], - 'relationships': [ + "resources": [tekmodels.Resources], + "places": [tekmodels.Places], + "locality": [tekmodels.Locality], + "sources": [tekmodels.Citations], + "citations": [tekmodels.Citations], + "media": [tekmodels.Media], + "activities": [tekmodels.ResourcesActivityEvents], + "relationships": [ tekmodels.LocalityPlaceResourceEvent, tekmodels.MediaCitationEvents, tekmodels.PlacesCitationEvents, @@ -93,54 +99,64 @@ def get_model_by_type(model_type): tekmodels.ResourcesCitationEvents, tekmodels.ResourcesMediaEvents, ], - 'localityplaceresourceevents': [tekmodels.LocalityPlaceResourceEvent], - 'mediacitationevents': [tekmodels.MediaCitationEvents], - 'placescitationevents': [tekmodels.PlacesCitationEvents], - 'placesmediaevents': [tekmodels.PlacesMediaEvents], - 'placesresourcecitationevents': [tekmodels.PlacesResourceCitationEvents], - 'placesresourceevents': [tekmodels.PlacesResourceEvents], - 'placesresourcemediaevents': [tekmodels.PlacesResourceMediaEvents], - 'resourceactivitycitationevents': [tekmodels.ResourceActivityCitationEvents], - 'resourceactivitymediaevents': [tekmodels.ResourceActivityMediaEvents], - 'resourceresourceevents': [tekmodels.ResourceResourceEvents], - 'resourcesactivityevents': [tekmodels.ResourcesActivityEvents], - 'resourcescitationevents': [tekmodels.ResourcesCitationEvents], - 'resourcesmediaevents': [tekmodels.ResourcesMediaEvents], - 'people': [tekmodels.People], + "localityplaceresourceevents": [tekmodels.LocalityPlaceResourceEvent], + "mediacitationevents": [tekmodels.MediaCitationEvents], + "placescitationevents": [tekmodels.PlacesCitationEvents], + "placesmediaevents": [tekmodels.PlacesMediaEvents], + "placesresourcecitationevents": [tekmodels.PlacesResourceCitationEvents], + "placesresourceevents": [tekmodels.PlacesResourceEvents], + "placesresourcemediaevents": [tekmodels.PlacesResourceMediaEvents], + "resourceactivitycitationevents": [tekmodels.ResourceActivityCitationEvents], + "resourceactivitymediaevents": [tekmodels.ResourceActivityMediaEvents], + "resourceresourceevents": [tekmodels.ResourceResourceEvents], + "resourcesactivityevents": [tekmodels.ResourcesActivityEvents], + "resourcescitationevents": [tekmodels.ResourcesCitationEvents], + "resourcesmediaevents": [tekmodels.ResourcesMediaEvents], + "people": [tekmodels.People], } if model_type.lower() in searchable_models.keys(): return searchable_models[model_type.lower()] - elif model_type.lower() == 'all': - return sum([searchable_models[key] for key in ['resources','places', 'sources', 'media', 'activities']],[]) + elif model_type.lower() == "all": + return sum( + [ + searchable_models[key] + for key in ["resources", "places", "sources", "media", "activities"] + ], + [], + ) else: return [] + @login_required def get_by_model_type(request, model_type): context = { - 'query': '', - 'category': model_type, - 'page':'Results', - 'pageTitle':'Results', - 'pageContent':"

    Your search results:

    ", - 'user': request.user + "query": "", + "category": model_type, + "page": "Results", + "pageTitle": "Results", + "pageContent": "

    Your search results:

    ", + "user": request.user, } return render(request, "results.html", context) + def get_project_geography(): from TEKDB.settings import DATABASE_GEOGRAPHY - #RDH 2022-04-11: TODO: have users define their study area, save it to the DB, and format that like settings.DATABASE_GEOGRAPHY + # RDH 2022-04-11: TODO: have users define their study area, save it to the DB, and format that like settings.DATABASE_GEOGRAPHY # --FOOTHOLD-- return DATABASE_GEOGRAPHY + @login_required def get_by_model_id(request, model_type, id): from TEKDB.settings import RECORD_ICONS + state = "?%s" % request.GET.urlencode() - back_link = '%s%s' % ('/search/', state) + back_link = "%s%s" % ("/search/", state) models = get_model_by_type(model_type) if len(models) == 1: try: @@ -149,54 +165,59 @@ def get_by_model_id(request, model_type, id): record_dict = obj.get_record_dict(request.user, 3857) except Exception as e: obj = None - record_dict = {'name': "Error retrieving %s record with ID %s" % (model_type, id)} + record_dict = { + "name": "Error retrieving %s record with ID %s" % (model_type, id) + } else: obj = None - record_dict = {'name': 'Incorrect number of models returned for %s' % model_type} + record_dict = { + "name": "Incorrect number of models returned for %s" % model_type + } if state == "?": - state = '' + state = "" model_name = model_type - if model_type.lower() == 'places': - model_name = 'Place' - if model_type.lower() == 'resources': - model_name = 'Resource' - if model_type.lower() == 'resourcesactivityevents': - model_name = 'Activity' - if model_type.lower() == 'media': - model_name = 'Media' - if model_type.lower() == 'placesresourceevents': - model_name = 'Place-Resource Event' - if model_type.lower() == 'citations': - model_name = 'Bibliographic Source' + if model_type.lower() == "places": + model_name = "Place" + if model_type.lower() == "resources": + model_name = "Resource" + if model_type.lower() == "resourcesactivityevents": + model_name = "Activity" + if model_type.lower() == "media": + model_name = "Media" + if model_type.lower() == "placesresourceevents": + model_name = "Place-Resource Event" + if model_type.lower() == "citations": + model_name = "Bibliographic Source" context = { - 'page':'Record', - 'pageTitle':'Record', - 'pageContent':"

    Your record:

    ", - 'record': record_dict, - 'user': request.user, - 'model': model_type, - 'model_name': model_name, - 'id': id, - 'back_link': back_link, - 'state': state, + "page": "Record", + "pageTitle": "Record", + "pageContent": "

    Your record:

    ", + "record": record_dict, + "user": request.user, + "model": model_type, + "model_name": model_name, + "id": id, + "back_link": back_link, + "state": state, } - if 'map' in record_dict.keys() and not record_dict['map'] == None: + if "map" in record_dict.keys() and not record_dict["map"] == None: DATABASE_GEOGRAPHY = get_project_geography() - context['default_lon'] = DATABASE_GEOGRAPHY['default_lon'] - context['default_lat'] = DATABASE_GEOGRAPHY['default_lat'] - context['default_zoom'] = DATABASE_GEOGRAPHY['default_zoom'] - context['min_zoom'] = DATABASE_GEOGRAPHY['min_zoom'] - context['max_zoom'] = DATABASE_GEOGRAPHY['max_zoom'] - context['map_extent'] = DATABASE_GEOGRAPHY['map_extent'] + context["default_lon"] = DATABASE_GEOGRAPHY["default_lon"] + context["default_lat"] = DATABASE_GEOGRAPHY["default_lat"] + context["default_zoom"] = DATABASE_GEOGRAPHY["default_zoom"] + context["min_zoom"] = DATABASE_GEOGRAPHY["min_zoom"] + context["max_zoom"] = DATABASE_GEOGRAPHY["max_zoom"] + context["map_extent"] = DATABASE_GEOGRAPHY["map_extent"] - request.META.pop('QUERY_STRING') + request.META.pop("QUERY_STRING") return render(request, "record.html", context) + @login_required def download_media_file(request, model_type, id): models = get_model_by_type(model_type) @@ -215,20 +236,37 @@ def download_media_file(request, model_type, id): from django.utils.encoding import smart_str from TEKDB.settings import MEDIA_ROOT - file_path = os.path.join(MEDIA_ROOT, media['file']) + file_path = os.path.join(MEDIA_ROOT, media["file"]) if os.path.exists(file_path): - with open(file_path, 'rb') as fh: - response = HttpResponse(fh.read(), content_type='application/force-download') - response['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(file_path) + with open(file_path, "rb") as fh: + response = HttpResponse( + fh.read(), content_type="application/force-download" + ) + response["Content-Disposition"] = ( + "attachment; filename=%s" % os.path.basename(file_path) + ) return response else: return Http404 else: return Http404 + def get_sorted_keys(keys): sorted_keys = [] - for key in ['name', 'image', 'subtitle', 'data', 'relationships', 'map', 'link', 'enteredbyname', 'enteredbydate', 'modifiedbyname', 'modifiedbydate']: + for key in [ + "name", + "image", + "subtitle", + "data", + "relationships", + "map", + "link", + "enteredbyname", + "enteredbydate", + "modifiedbyname", + "modifiedbydate", + ]: if key in keys: key_idx = keys.index(key) keys.pop(key_idx) @@ -236,64 +274,80 @@ def get_sorted_keys(keys): sorted_keys = sorted_keys + keys return sorted_keys + def export_record_csv(record_dict, filename): import csv - csv_response = HttpResponse(content_type='text/csv') - csv_response['Content-Disposition'] = 'attachment; filename="%s.csv"' % filename + + csv_response = HttpResponse(content_type="text/csv") + csv_response["Content-Disposition"] = 'attachment; filename="%s.csv"' % filename writer = csv.writer(csv_response) for key in get_sorted_keys(list(record_dict.keys())): field = record_dict[key] if type(field) == list and len(field) > 0 and type(field[0]) == dict: for item in field: - if 'key' in item.keys() and 'value' in item.keys() and len(item.keys()) == 2: - if type(item['value']) == list and len(item['value']) > 0: - for sub_item in item['value']: - if type(sub_item) == dict and 'name' in sub_item.keys(): - writer.writerow(['%s - %s' %(key, item['key']), sub_item['name']]) + if ( + "key" in item.keys() + and "value" in item.keys() + and len(item.keys()) == 2 + ): + if type(item["value"]) == list and len(item["value"]) > 0: + for sub_item in item["value"]: + if type(sub_item) == dict and "name" in sub_item.keys(): + writer.writerow( + ["%s - %s" % (key, item["key"]), sub_item["name"]] + ) else: - writer.writerow(['%s - %s' %(key, item['key']), str(sub_item)]) + writer.writerow( + ["%s - %s" % (key, item["key"]), str(sub_item)] + ) else: - writer.writerow(['%s - %s' % (key, item['key']), item['value']]) + writer.writerow(["%s - %s" % (key, item["key"]), item["value"]]) else: for list_key in item.keys(): - writer.writerow(['%s - %s' %(key, list_key), item[list_key]]) + writer.writerow(["%s - %s" % (key, list_key), item[list_key]]) else: writer.writerow([key, str(field)]) return csv_response + def export_record_xls(record_dict, filename): import xlsxwriter, io from xlsxwriter.workbook import Workbook + output = io.BytesIO() - workbook = Workbook(output, {'in_membory': True}) + workbook = Workbook(output, {"in_membory": True}) worksheet = workbook.add_worksheet() - bold = workbook.add_format({'bold': True}) + bold = workbook.add_format({"bold": True}) row = 0 for key in get_sorted_keys(list(record_dict.keys())): field = record_dict[key] if type(field) == list and len(field) > 0 and type(field[0]) == dict: for item in field: - if 'key' in item.keys() and 'value' in item.keys() and len(item.keys()) == 2: - if type(item['value']) == list and len(item['value']) > 0: - for sub_item in item['value']: - if type(sub_item) == dict and 'name' in sub_item.keys(): - worksheet.write(row, 0, '%s - %s' %(key, item['key'])) - worksheet.write(row, 1, sub_item['name']) + if ( + "key" in item.keys() + and "value" in item.keys() + and len(item.keys()) == 2 + ): + if type(item["value"]) == list and len(item["value"]) > 0: + for sub_item in item["value"]: + if type(sub_item) == dict and "name" in sub_item.keys(): + worksheet.write(row, 0, "%s - %s" % (key, item["key"])) + worksheet.write(row, 1, sub_item["name"]) row += 1 else: - worksheet.write(row, 0, '%s - %s' %(key, item['key'])) + worksheet.write(row, 0, "%s - %s" % (key, item["key"])) worksheet.write(row, 1, str(sub_item)) row += 1 else: - worksheet.write(row, 0, '%s - %s' %(key, item['key'])) + worksheet.write(row, 0, "%s - %s" % (key, item["key"])) try: - worksheet.write(row, 1, str(item['value'])) + worksheet.write(row, 1, str(item["value"])) except Exception: pass row += 1 else: for list_key in item.keys(): - worksheet.write(row, 0, '%s - %s' %(key, list_key)) + worksheet.write(row, 0, "%s - %s" % (key, list_key)) worksheet.write(row, 1, item[list_key]) row += 1 else: @@ -302,10 +356,14 @@ def export_record_xls(record_dict, filename): row += 1 workbook.close() output.seek(0) - xls_response = HttpResponse(output.read(), content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') - xls_response['Content-Disposition'] = "attachment; filename=\"%s.xlsx\"" % filename + xls_response = HttpResponse( + output.read(), + content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ) + xls_response["Content-Disposition"] = 'attachment; filename="%s.xlsx"' % filename return xls_response + @login_required def export_by_model_id(request, model_type, id, format): models = get_model_by_type(model_type) @@ -315,21 +373,25 @@ def export_by_model_id(request, model_type, id, format): obj = model.objects.get(pk=id) record_dict = obj.get_record_dict(request.user, 4326) except Exception as e: - record_dict = {'error': 'unknown error', 'code': '%s' % e} + record_dict = {"error": "unknown error", "code": "%s" % e} else: obj = None if len(models) == 0: - error = 'No records returned for model: %s, id: %s' % (model_type, str(id)) + error = "No records returned for model: %s, id: %s" % (model_type, str(id)) elif len(models) > 0: - error = 'More than 1 records returned for model: %s, id: %s' % (model_type, str(id)) - record_dict = {'error': error} - - filename = "%s_%s_%s" % (model_type, str(id), record_dict['name']) - if format == 'xls': + error = "More than 1 records returned for model: %s, id: %s" % ( + model_type, + str(id), + ) + record_dict = {"error": error} + + filename = "%s_%s_%s" % (model_type, str(id), record_dict["name"]) + if format == "xls": return export_record_xls(record_dict, filename) - else: #CSV as default + else: # CSV as default return export_record_csv(record_dict, filename) + @login_required def search(request): import json @@ -337,12 +399,12 @@ def search(request): from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import render - all_categories = ['places','resources','activities','sources','media'] - if request.method == 'POST': - query_string=request.POST['query'] - if 'category' in request.POST.keys(): + all_categories = ["places", "resources", "activities", "sources", "media"] + if request.method == "POST": + query_string = request.POST["query"] + if "category" in request.POST.keys(): try: - categories = request.POST['category'].split(',') + categories = request.POST["category"].split(",") except Exception as e: categories = all_categories pass @@ -350,48 +412,48 @@ def search(request): else: keys = request.POST.keys() categories = [] - if 'places' in keys and request.POST['places'] : - categories.append('places') - if 'resources' in keys and request.POST['resources']: - categories.append('resources') - if 'activities' in keys and request.POST['activities']: - categories.append('activities') - if 'citations' in keys and request.POST['citations']: - categories.append('sources') - if 'sources' in keys and request.POST['sources']: - categories.append('sources') - if 'media' in keys and request.POST['media']: - categories.append('media') + if "places" in keys and request.POST["places"]: + categories.append("places") + if "resources" in keys and request.POST["resources"]: + categories.append("resources") + if "activities" in keys and request.POST["activities"]: + categories.append("activities") + if "citations" in keys and request.POST["citations"]: + categories.append("sources") + if "sources" in keys and request.POST["sources"]: + categories.append("sources") + if "media" in keys and request.POST["media"]: + categories.append("media") else: - if 'query' in request.GET.keys(): - query_string = request.GET.get('query') - elif 'filter' in request.GET.urlencode(): - query_string = request.GET.get('filter') - if query_string == '' or query_string == True: + if "query" in request.GET.keys(): + query_string = request.GET.get("query") + elif "filter" in request.GET.urlencode(): + query_string = request.GET.get("filter") + if query_string == "" or query_string == True: query_string = None else: query_string = None - if 'category' in request.GET.keys(): - categories = [request.GET.get('category')] + if "category" in request.GET.keys(): + categories = [request.GET.get("category")] else: keys = request.GET.keys() categories = [] - if 'places' in keys and request.GET['places'] : - categories.append('places') - if 'resources' in keys and request.GET['resources']: - categories.append('resources') - if 'activities' in keys and request.GET['activities']: - categories.append('activities') - if 'citations' in keys and request.GET['citations']: - categories.append('sources') - if 'sources' in keys and request.GET['sources']: - categories.append('sources') - if 'media' in keys and request.GET['media']: - categories.append('media') + if "places" in keys and request.GET["places"]: + categories.append("places") + if "resources" in keys and request.GET["resources"]: + categories.append("resources") + if "activities" in keys and request.GET["activities"]: + categories.append("activities") + if "citations" in keys and request.GET["citations"]: + categories.append("sources") + if "sources" in keys and request.GET["sources"]: + categories.append("sources") + if "media" in keys and request.GET["media"]: + categories.append("media") if categories == []: - categories = ['all'] + categories = ["all"] # Zero tolerance for mispelled or 'all' categories. if it's not perfect, fail to 'all' for category in categories: @@ -399,40 +461,46 @@ def search(request): categories = all_categories break - category_checkboxes = '' + category_checkboxes = "" for category in all_categories: if category in categories: - checked = ' checked=true' + checked = " checked=true" else: - checked = '' - category_checkboxes += '
    %s
    ' % (category, category, category, checked, category, category.capitalize()) + checked = "" + category_checkboxes += ( + '
    %s
    ' + % (category, category, category, checked, category, category.capitalize()) + ) - if query_string in [None, '', '*']: + if query_string in [None, "", "*"]: query_string_visible = False else: query_string_visible = query_string - if query_string not in [None, '', '*']: + if query_string not in [None, "", "*"]: query_value = ' value="%s"' % query_string else: - query_value = '' - keyword_search_input = '\ - ' % query_value + query_value = "" + keyword_search_input = ( + '\ + ' + % query_value + ) resultlist = getResults(query_string, categories) - items_per_page = request.GET.get('items_per_page') + items_per_page = request.GET.get("items_per_page") if not items_per_page: items_per_page = 25 if int(items_per_page) < 0: items_per_page = len(resultlist) - page = request.GET.get('page') + page = request.GET.get("page") if page == None: page = 1 - view = request.GET.get('view') + view = request.GET.get("view") if view == None: - view = 'list' + view = "list" DATABASE_GEOGRAPHY = get_project_geography() @@ -441,6 +509,7 @@ def search(request): max_results = config.max_results_returned except Exception as e: from TEKDB.settings import DEFAULT_MAXIMUM_RESULTS + max_results = DEFAULT_MAXIMUM_RESULTS pass @@ -449,40 +518,42 @@ def search(request): resultlist = resultlist[:max_results] context = { - 'items_per_page': items_per_page, - 'results_qs': resultlist, - 'results': json.dumps(resultlist), - 'too_many_results': too_many_results, - 'query': query_string, - 'keyword': query_string_visible, - 'keyword_search_input': keyword_search_input, - 'categories': json.dumps(categories), - 'category_checkboxes': category_checkboxes, - 'page':'Results', - 'pageTitle':'Results', - 'pageContent':"

    Your search results:

    ", - 'user': request.user, - 'view': view, - 'state': { - 'page' : int(page), - 'items_per_page' : int(items_per_page), + "items_per_page": items_per_page, + "results_qs": resultlist, + "results": json.dumps(resultlist), + "too_many_results": too_many_results, + "query": query_string, + "keyword": query_string_visible, + "keyword_search_input": keyword_search_input, + "categories": json.dumps(categories), + "category_checkboxes": category_checkboxes, + "page": "Results", + "pageTitle": "Results", + "pageContent": "

    Your search results:

    ", + "user": request.user, + "view": view, + "state": { + "page": int(page), + "items_per_page": int(items_per_page), }, - 'default_lon': DATABASE_GEOGRAPHY['default_lon'], - 'default_lat': DATABASE_GEOGRAPHY['default_lat'], - 'default_zoom': DATABASE_GEOGRAPHY['default_zoom'], - 'min_zoom': DATABASE_GEOGRAPHY['min_zoom'], - 'max_zoom': DATABASE_GEOGRAPHY['max_zoom'], - 'map_extent': DATABASE_GEOGRAPHY['map_extent'], + "default_lon": DATABASE_GEOGRAPHY["default_lon"], + "default_lat": DATABASE_GEOGRAPHY["default_lat"], + "default_zoom": DATABASE_GEOGRAPHY["default_zoom"], + "min_zoom": DATABASE_GEOGRAPHY["min_zoom"], + "max_zoom": DATABASE_GEOGRAPHY["max_zoom"], + "map_extent": DATABASE_GEOGRAPHY["map_extent"], } - request.META.pop('QUERY_STRING') + request.META.pop("QUERY_STRING") return render(request, "results.html", context) + def getResults(keyword_string, categories): import TEKDB + if keyword_string == None: - keyword_string = '' + keyword_string = "" resultlist = [] @@ -494,45 +565,50 @@ def getResults(keyword_string, categories): for result in model_results: # Create JSON object to be resturned result_json = result.get_response_format() - if keyword_string != '': - result_json['rank'] = result.rank - result_json['similarity'] = result.similarity + if keyword_string != "": + result_json["rank"] = result.rank + result_json["similarity"] = result.similarity else: - result_json['rank'] = 0 - result_json['similarity'] = 0 + result_json["rank"] = 0 + result_json["similarity"] = 0 resultlist.append(result_json) # Sort results from all models by rank, then similarity (descending) - return sorted(resultlist, key=lambda res: (res['rank'], res['similarity']), reverse=True) + return sorted( + resultlist, key=lambda res: (res["rank"], res["similarity"]), reverse=True + ) + def get_category_list(request): categories = [] - for category in ['places','resources','activities','sources','media']: - if request.GET.get(category) == 'true': + for category in ["places", "resources", "activities", "sources", "media"]: + if request.GET.get(category) == "true": categories.append(category) return categories + @login_required def download(request): categories = get_category_list(request) - results = getResults(request.GET.get('query'), categories) - format_type = request.GET.get('format') - filename = 'TEK_RESULTS' - fieldnames = ['id','name','description','type'] + results = getResults(request.GET.get("query"), categories) + format_type = request.GET.get("format") + filename = "TEK_RESULTS" + fieldnames = ["id", "name", "description", "type"] rows = [] for row in results: row_dict = {} for field in fieldnames: - row_dict[field] = row[field] if row[field] else ' ' + row_dict[field] = row[field] if row[field] else " " rows.append(row_dict) - if format_type == 'xlsx': + if format_type == "xlsx": import xlsxwriter, io from xlsxwriter.workbook import Workbook + output = io.BytesIO() - workbook = Workbook(output, {'in_membory': True}) + workbook = Workbook(output, {"in_membory": True}) worksheet = workbook.add_worksheet() - bold = workbook.add_format({'bold': True}) + bold = workbook.add_format({"bold": True}) rows.insert(0, fieldnames) row = 0 col = 0 @@ -547,15 +623,19 @@ def download(request): col = 0 workbook.close() output.seek(0) - xls_response = HttpResponse(output.read(), content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') - xls_response['Content-Disposition'] = "attachment; filename=%s.xlsx" % filename + xls_response = HttpResponse( + output.read(), + content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ) + xls_response["Content-Disposition"] = "attachment; filename=%s.xlsx" % filename return xls_response else: # if format_type == 'csv': import csv - csv_response = HttpResponse(content_type='text/csv') - csv_response['Content-Disposition'] = 'attachment; filename="%s.csv"' % filename + + csv_response = HttpResponse(content_type="text/csv") + csv_response["Content-Disposition"] = 'attachment; filename="%s.csv"' % filename writer = csv.DictWriter(csv_response, fieldnames=fieldnames) writer.writeheader() for row in rows: diff --git a/TEKDB/login/urls.py b/TEKDB/login/urls.py index 064610b9..34538d68 100644 --- a/TEKDB/login/urls.py +++ b/TEKDB/login/urls.py @@ -3,8 +3,8 @@ from . import views urlpatterns = [ - path('create', views.create, name='create'), - path('forgot', views.forgot, name='forgot'), - path('', views.index, name='index'), + path("create", views.create, name="create"), + path("forgot", views.forgot, name="forgot"), + path("", views.index, name="index"), ] - #url(r'^logout$', views.logout, name='logout'), +# url(r'^logout$', views.logout, name='logout'), diff --git a/TEKDB/login/views.py b/TEKDB/login/views.py index f7fc13e0..68785c6d 100644 --- a/TEKDB/login/views.py +++ b/TEKDB/login/views.py @@ -6,48 +6,53 @@ from django.contrib.auth import login as auth_login from django.contrib.auth import logout + def index(request): context = { "pageTitle": "Login", } return render(request, "index.html", context) - #return HttpResponse("

    Server error: Already Logged In") + # return HttpResponse("

    Server error: Already Logged In") + def forgot(request): context = { "pageTitle": "Forgot Login", } return render(request, "forgot.html", context) - #return HttpResponse("

    Forgot Password") + # return HttpResponse("

    Forgot Password") + def login(request): - username = request.POST['username'] - password = request.POST['password'] + username = request.POST["username"] + password = request.POST["password"] user = authenticate(request, username=username, password=password) if user is not None: auth_login(request, user) from explore.views import explore + return explore(request) else: context = { "errorcode": 403, "error": "User name or password incorrect.", - 'page':'error', - 'pageTitle':'Error', - 'pageContent':"

    There was an error with your request. Please see below for details.

    ", - 'user': request.user + "page": "error", + "pageTitle": "Error", + "pageContent": "

    There was an error with your request. Please see below for details.

    ", + "user": request.user, } return render(request, "error.html", context) + def login_logic(request, context={}): - username = request.POST['username'] - password = request.POST['password'] + username = request.POST["username"] + password = request.POST["password"] user = authenticate(username=username, password=password) if user is not None: auth_login(request, user) context = { - 'success': True, - 'username': user.username, + "success": True, + "username": user.username, } return context else: @@ -56,9 +61,10 @@ def login_logic(request, context={}): } return context + def login_async(request): - login_user = login_logic(request) # run default logic + login_user = login_logic(request) # run default logic context = { - 'success': login_user['success'], + "success": login_user["success"], } - return JsonResponse(context) \ No newline at end of file + return JsonResponse(context) diff --git a/TEKDB/pyproject.toml b/TEKDB/pyproject.toml new file mode 100644 index 00000000..e5afa54e --- /dev/null +++ b/TEKDB/pyproject.toml @@ -0,0 +1,2 @@ +[tool.ruff.format] +quote-style = "double" \ No newline at end of file diff --git a/docs/Data/models_new_fk.py b/docs/Data/models_new_fk.py index 8601661d..2f4dabb6 100644 --- a/docs/Data/models_new_fk.py +++ b/docs/Data/models_new_fk.py @@ -13,625 +13,1227 @@ class Citations(models.Model): - citationid = models.ForeignKey('Placescitationevents', db_column='CitationID', primary_key=True) # Field name made lowercase. - referencetype = models.CharField(db_column='ReferenceType', max_length=255, blank=True, null=True) # Field name made lowercase. - referencetext = models.CharField(db_column='ReferenceText', max_length=50, blank=True, null=True) # Field name made lowercase. - authortype = models.CharField(db_column='AuthorType', max_length=255, blank=True, null=True) # Field name made lowercase. - authorprimary = models.CharField(db_column='AuthorPrimary', max_length=255, blank=True, null=True) # Field name made lowercase. - authorsecondary = models.CharField(db_column='AuthorSecondary', max_length=255, blank=True, null=True) # Field name made lowercase. - intervieweeid = models.IntegerField(db_column='IntervieweeID', blank=True, null=True) # Field name made lowercase. - interviewerid = models.IntegerField(db_column='InterviewerID', blank=True, null=True) # Field name made lowercase. - placeofinterview = models.CharField(db_column='PlaceofInterview', max_length=255, blank=True, null=True) # Field name made lowercase. - year = models.IntegerField(db_column='Year', blank=True, null=True) # Field name made lowercase. - title = models.TextField(db_column='Title', blank=True, null=True) # Field name made lowercase. - seriestitle = models.CharField(db_column='SeriesTitle', max_length=255, blank=True, null=True) # Field name made lowercase. - seriesvolume = models.CharField(db_column='SeriesVolume', max_length=50, blank=True, null=True) # Field name made lowercase. - serieseditor = models.CharField(db_column='SeriesEditor', max_length=255, blank=True, null=True) # Field name made lowercase. - publisher = models.CharField(db_column='Publisher', max_length=100, blank=True, null=True) # Field name made lowercase. - publishercity = models.CharField(db_column='PublisherCity', max_length=255, blank=True, null=True) # Field name made lowercase. - preparedfor = models.CharField(db_column='PreparedFor', max_length=100, blank=True, null=True) # Field name made lowercase. - comments = models.TextField(db_column='Comments', blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. - - class Meta: - managed = False - db_table = 'citations' + citationid = models.ForeignKey( + "Placescitationevents", db_column="CitationID", primary_key=True + ) # Field name made lowercase. + referencetype = models.CharField( + db_column="ReferenceType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + referencetext = models.CharField( + db_column="ReferenceText", max_length=50, blank=True, null=True + ) # Field name made lowercase. + authortype = models.CharField( + db_column="AuthorType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + authorprimary = models.CharField( + db_column="AuthorPrimary", max_length=255, blank=True, null=True + ) # Field name made lowercase. + authorsecondary = models.CharField( + db_column="AuthorSecondary", max_length=255, blank=True, null=True + ) # Field name made lowercase. + intervieweeid = models.IntegerField( + db_column="IntervieweeID", blank=True, null=True + ) # Field name made lowercase. + interviewerid = models.IntegerField( + db_column="InterviewerID", blank=True, null=True + ) # Field name made lowercase. + placeofinterview = models.CharField( + db_column="PlaceofInterview", max_length=255, blank=True, null=True + ) # Field name made lowercase. + year = models.IntegerField( + db_column="Year", blank=True, null=True + ) # Field name made lowercase. + title = models.TextField( + db_column="Title", blank=True, null=True + ) # Field name made lowercase. + seriestitle = models.CharField( + db_column="SeriesTitle", max_length=255, blank=True, null=True + ) # Field name made lowercase. + seriesvolume = models.CharField( + db_column="SeriesVolume", max_length=50, blank=True, null=True + ) # Field name made lowercase. + serieseditor = models.CharField( + db_column="SeriesEditor", max_length=255, blank=True, null=True + ) # Field name made lowercase. + publisher = models.CharField( + db_column="Publisher", max_length=100, blank=True, null=True + ) # Field name made lowercase. + publishercity = models.CharField( + db_column="PublisherCity", max_length=255, blank=True, null=True + ) # Field name made lowercase. + preparedfor = models.CharField( + db_column="PreparedFor", max_length=100, blank=True, null=True + ) # Field name made lowercase. + comments = models.TextField( + db_column="Comments", blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. + + class Meta: + managed = False + db_table = "citations" class Currentversion(models.Model): - id = models.IntegerField(db_column='ID', primary_key=True) # Field name made lowercase. - backendversion = models.IntegerField(db_column='BackendVersion', blank=True, null=True) # Field name made lowercase. - frontendversion = models.IntegerField(db_column='FrontendVersion', blank=True, null=True) # Field name made lowercase. + id = models.IntegerField( + db_column="ID", primary_key=True + ) # Field name made lowercase. + backendversion = models.IntegerField( + db_column="BackendVersion", blank=True, null=True + ) # Field name made lowercase. + frontendversion = models.IntegerField( + db_column="FrontendVersion", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'currentversion' + db_table = "currentversion" class Locality(models.Model): - localityid = models.IntegerField(db_column='LocalityID', primary_key=True) # Field name made lowercase. - placeid = models.ForeignKey('Places', db_column='PlaceID', blank=True, null=True) # Field name made lowercase. - englishname = models.CharField(db_column='EnglishName', max_length=255, blank=True, null=True) # Field name made lowercase. - indigenousname = models.CharField(db_column='IndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. - localitytype = models.CharField(db_column='LocalityType', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + localityid = models.IntegerField( + db_column="LocalityID", primary_key=True + ) # Field name made lowercase. + placeid = models.ForeignKey( + "Places", db_column="PlaceID", blank=True, null=True + ) # Field name made lowercase. + englishname = models.CharField( + db_column="EnglishName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + indigenousname = models.CharField( + db_column="IndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + localitytype = models.CharField( + db_column="LocalityType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'locality' + db_table = "locality" class Localitygisselections(models.Model): - localityid = models.IntegerField(db_column='LocalityID', blank=True, null=True) # Field name made lowercase. - localitylabel = models.CharField(db_column='LocalityLabel', max_length=255, blank=True, null=True) # Field name made lowercase. - sourcefc = models.CharField(db_column='SourceFC', max_length=255, blank=True, null=True) # Field name made lowercase. + localityid = models.IntegerField( + db_column="LocalityID", blank=True, null=True + ) # Field name made lowercase. + localitylabel = models.CharField( + db_column="LocalityLabel", max_length=255, blank=True, null=True + ) # Field name made lowercase. + sourcefc = models.CharField( + db_column="SourceFC", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'localitygisselections' + db_table = "localitygisselections" class Localityplaceresourceevent(models.Model): - placeresourceid = models.ForeignKey('Placesresourceevents', db_column='PlaceResourceID') # Field name made lowercase. - localityid = models.ForeignKey(Locality, db_column='LocalityID') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeresourceid = models.ForeignKey( + "Placesresourceevents", db_column="PlaceResourceID" + ) # Field name made lowercase. + localityid = models.ForeignKey( + Locality, db_column="LocalityID" + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'localityplaceresourceevent' - unique_together = (('placeresourceid', 'localityid'),) + db_table = "localityplaceresourceevent" + unique_together = (("placeresourceid", "localityid"),) class Lookupactivity(models.Model): - activity = models.CharField(db_column='Activity', primary_key=True, max_length=255) # Field name made lowercase. + activity = models.CharField( + db_column="Activity", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupactivity' + db_table = "lookupactivity" class Lookupauthortype(models.Model): - authortype = models.CharField(db_column='AuthorType', unique=True, max_length=50) # Field name made lowercase. + authortype = models.CharField( + db_column="AuthorType", unique=True, max_length=50 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupauthortype' + db_table = "lookupauthortype" class Lookupcustomaryuse(models.Model): - usedfor = models.CharField(db_column='UsedFor', primary_key=True, max_length=255) # Field name made lowercase. + usedfor = models.CharField( + db_column="UsedFor", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupcustomaryuse' + db_table = "lookupcustomaryuse" class Lookuphabitat(models.Model): - habitat = models.CharField(db_column='Habitat', primary_key=True, max_length=100) # Field name made lowercase. + habitat = models.CharField( + db_column="Habitat", primary_key=True, max_length=100 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookuphabitat' + db_table = "lookuphabitat" class Lookuplocalitytype(models.Model): - localitytype = models.CharField(db_column='LocalityType', primary_key=True, max_length=255) # Field name made lowercase. + localitytype = models.CharField( + db_column="LocalityType", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookuplocalitytype' + db_table = "lookuplocalitytype" class Lookupmediatype(models.Model): - mediatype = models.CharField(db_column='MediaType', primary_key=True, max_length=255) # Field name made lowercase. - mediacategory = models.CharField(db_column='MediaCategory', max_length=255, blank=True, null=True) # Field name made lowercase. + mediatype = models.CharField( + db_column="MediaType", primary_key=True, max_length=255 + ) # Field name made lowercase. + mediacategory = models.CharField( + db_column="MediaCategory", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupmediatype' + db_table = "lookupmediatype" class Lookupparticipants(models.Model): - participants = models.CharField(db_column='Participants', primary_key=True, max_length=255) # Field name made lowercase. + participants = models.CharField( + db_column="Participants", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupparticipants' + db_table = "lookupparticipants" class Lookuppartused(models.Model): - partused = models.CharField(db_column='PartUsed', primary_key=True, max_length=255) # Field name made lowercase. + partused = models.CharField( + db_column="PartUsed", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookuppartused' + db_table = "lookuppartused" class Lookupplanningunit(models.Model): - planningunitid = models.IntegerField(db_column='PlanningUnitID', primary_key=True) # Field name made lowercase. - planningunitname = models.CharField(db_column='PlanningUnitName', max_length=100, blank=True, null=True) # Field name made lowercase. + planningunitid = models.IntegerField( + db_column="PlanningUnitID", primary_key=True + ) # Field name made lowercase. + planningunitname = models.CharField( + db_column="PlanningUnitName", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupplanningunit' + db_table = "lookupplanningunit" class Lookupreferencetype(models.Model): - documenttype = models.CharField(db_column='DocumentType', primary_key=True, max_length=25) # Field name made lowercase. + documenttype = models.CharField( + db_column="DocumentType", primary_key=True, max_length=25 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupreferencetype' + db_table = "lookupreferencetype" class Lookupresourcegroup(models.Model): - resourceclassificationgroup = models.CharField(db_column='ResourceClassificationGroup', primary_key=True, max_length=255) # Field name made lowercase. + resourceclassificationgroup = models.CharField( + db_column="ResourceClassificationGroup", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupresourcegroup' + db_table = "lookupresourcegroup" class Lookupseason(models.Model): - season = models.CharField(db_column='Season', primary_key=True, max_length=255) # Field name made lowercase. + season = models.CharField( + db_column="Season", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupseason' + db_table = "lookupseason" class Lookuptechniques(models.Model): - techniques = models.CharField(db_column='Techniques', primary_key=True, max_length=255) # Field name made lowercase. + techniques = models.CharField( + db_column="Techniques", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookuptechniques' + db_table = "lookuptechniques" class Lookuptiming(models.Model): - timing = models.CharField(db_column='Timing', primary_key=True, max_length=255) # Field name made lowercase. + timing = models.CharField( + db_column="Timing", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookuptiming' + db_table = "lookuptiming" class Lookuptribe(models.Model): - id = models.IntegerField(db_column='ID', primary_key=True) # Field name made lowercase. - tribeunit = models.CharField(db_column='TribeUnit', max_length=50, blank=True, null=True) # Field name made lowercase. - tribe = models.CharField(db_column='Tribe', max_length=100, blank=True, null=True) # Field name made lowercase. - federaltribe = models.CharField(db_column='FederalTribe', max_length=100, blank=True, null=True) # Field name made lowercase. + id = models.IntegerField( + db_column="ID", primary_key=True + ) # Field name made lowercase. + tribeunit = models.CharField( + db_column="TribeUnit", max_length=50, blank=True, null=True + ) # Field name made lowercase. + tribe = models.CharField( + db_column="Tribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + federaltribe = models.CharField( + db_column="FederalTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookuptribe' + db_table = "lookuptribe" class Lookupuserinfo(models.Model): - username = models.CharField(db_column='UserName', max_length=100, blank=True, null=True) # Field name made lowercase. - usingcustomusername = models.IntegerField(db_column='UsingCustomUsername') # Field name made lowercase. - usertitle = models.CharField(db_column='UserTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - useraffiliation = models.CharField(db_column='UserAffiliation', max_length=100, blank=True, null=True) # Field name made lowercase. + username = models.CharField( + db_column="UserName", max_length=100, blank=True, null=True + ) # Field name made lowercase. + usingcustomusername = models.IntegerField( + db_column="UsingCustomUsername" + ) # Field name made lowercase. + usertitle = models.CharField( + db_column="UserTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + useraffiliation = models.CharField( + db_column="UserAffiliation", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'lookupuserinfo' + db_table = "lookupuserinfo" class Media(models.Model): - mediaid = models.IntegerField(db_column='MediaID', primary_key=True) # Field name made lowercase. - mediatype = models.CharField(db_column='MediaType', max_length=255, blank=True, null=True) # Field name made lowercase. - medianame = models.CharField(db_column='MediaName', max_length=255, blank=True, null=True) # Field name made lowercase. - mediadescription = models.TextField(db_column='MediaDescription', blank=True, null=True) # Field name made lowercase. - medialink = models.CharField(db_column='MediaLink', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + mediaid = models.IntegerField( + db_column="MediaID", primary_key=True + ) # Field name made lowercase. + mediatype = models.CharField( + db_column="MediaType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + medianame = models.CharField( + db_column="MediaName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + mediadescription = models.TextField( + db_column="MediaDescription", blank=True, null=True + ) # Field name made lowercase. + medialink = models.CharField( + db_column="MediaLink", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'media' + db_table = "media" class Mediacitationevents(models.Model): - mediaid = models.ForeignKey(Media, db_column='MediaID') # Field name made lowercase. - citationid = models.ForeignKey(Citations, db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + mediaid = models.ForeignKey( + Media, db_column="MediaID" + ) # Field name made lowercase. + citationid = models.ForeignKey( + Citations, db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'mediacitationevents' - unique_together = (('mediaid', 'citationid'),) + db_table = "mediacitationevents" + unique_together = (("mediaid", "citationid"),) class People(models.Model): - personid = models.IntegerField(db_column='PersonID', primary_key=True) # Field name made lowercase. - firstname = models.CharField(db_column='FirstName', max_length=255, blank=True, null=True) # Field name made lowercase. - lastname = models.CharField(db_column='LastName', max_length=255, blank=True, null=True) # Field name made lowercase. - yearborn = models.IntegerField(db_column='YearBorn', blank=True, null=True) # Field name made lowercase. - village = models.CharField(db_column='Village', max_length=255, blank=True, null=True) # Field name made lowercase. - relationshiptootherpeople = models.TextField(db_column='RelationshipToOtherPeople', blank=True, null=True) # Field name made lowercase. + personid = models.IntegerField( + db_column="PersonID", primary_key=True + ) # Field name made lowercase. + firstname = models.CharField( + db_column="FirstName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + lastname = models.CharField( + db_column="LastName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + yearborn = models.IntegerField( + db_column="YearBorn", blank=True, null=True + ) # Field name made lowercase. + village = models.CharField( + db_column="Village", max_length=255, blank=True, null=True + ) # Field name made lowercase. + relationshiptootherpeople = models.TextField( + db_column="RelationshipToOtherPeople", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'people' + db_table = "people" class Placealtindigenousname(models.Model): - altindigenousnameid = models.IntegerField(db_column='AltIndigenousNameID', primary_key=True) # Field name made lowercase. - placeid = models.IntegerField(db_column='PlaceID', blank=True, null=True) # Field name made lowercase. - altindigenousname = models.CharField(db_column='AltIndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. + altindigenousnameid = models.IntegerField( + db_column="AltIndigenousNameID", primary_key=True + ) # Field name made lowercase. + placeid = models.IntegerField( + db_column="PlaceID", blank=True, null=True + ) # Field name made lowercase. + altindigenousname = models.CharField( + db_column="AltIndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'placealtindigenousname' + db_table = "placealtindigenousname" class Placegisselections(models.Model): - placeid = models.IntegerField(db_column='PlaceID', blank=True, null=True) # Field name made lowercase. - placelabel = models.CharField(db_column='PlaceLabel', max_length=255, blank=True, null=True) # Field name made lowercase. - sourcefc = models.CharField(db_column='SourceFC', max_length=255, blank=True, null=True) # Field name made lowercase. + placeid = models.IntegerField( + db_column="PlaceID", blank=True, null=True + ) # Field name made lowercase. + placelabel = models.CharField( + db_column="PlaceLabel", max_length=255, blank=True, null=True + ) # Field name made lowercase. + sourcefc = models.CharField( + db_column="SourceFC", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'placegisselections' + db_table = "placegisselections" class Places(models.Model): - placeid = models.IntegerField(db_column='PlaceID', primary_key=True) # Field name made lowercase. - indigenousplacename = models.CharField(db_column='IndigenousPlaceName', max_length=255, blank=True, null=True) # Field name made lowercase. - indigenousplacenamemeaning = models.CharField(db_column='IndigenousPlaceNameMeaning', max_length=255, blank=True, null=True) # Field name made lowercase. - englishplacename = models.CharField(db_column='EnglishPlaceName', max_length=255, blank=True, null=True) # Field name made lowercase. - planningunitid = models.IntegerField(db_column='PlanningUnitID', blank=True, null=True) # Field name made lowercase. - primaryhabitat = models.CharField(db_column='PrimaryHabitat', max_length=100, blank=True, null=True) # Field name made lowercase. - tribeid = models.IntegerField(db_column='TribeID', blank=True, null=True) # Field name made lowercase. - islocked = models.IntegerField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeid = models.IntegerField( + db_column="PlaceID", primary_key=True + ) # Field name made lowercase. + indigenousplacename = models.CharField( + db_column="IndigenousPlaceName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + indigenousplacenamemeaning = models.CharField( + db_column="IndigenousPlaceNameMeaning", max_length=255, blank=True, null=True + ) # Field name made lowercase. + englishplacename = models.CharField( + db_column="EnglishPlaceName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + planningunitid = models.IntegerField( + db_column="PlanningUnitID", blank=True, null=True + ) # Field name made lowercase. + primaryhabitat = models.CharField( + db_column="PrimaryHabitat", max_length=100, blank=True, null=True + ) # Field name made lowercase. + tribeid = models.IntegerField( + db_column="TribeID", blank=True, null=True + ) # Field name made lowercase. + islocked = models.IntegerField(db_column="IsLocked") # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'places' + db_table = "places" class Placescitationevents(models.Model): - placeid = models.ForeignKey(Places, db_column='PlaceID') # Field name made lowercase. - citationid = models.IntegerField(db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeid = models.ForeignKey( + Places, db_column="PlaceID" + ) # Field name made lowercase. + citationid = models.IntegerField( + db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'placescitationevents' - unique_together = (('placeid', 'citationid'),) + db_table = "placescitationevents" + unique_together = (("placeid", "citationid"),) class Placesmediaevents(models.Model): - placeid = models.ForeignKey(Places, db_column='PlaceID') # Field name made lowercase. - mediaid = models.ForeignKey(Media, db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeid = models.ForeignKey( + Places, db_column="PlaceID" + ) # Field name made lowercase. + mediaid = models.ForeignKey( + Media, db_column="MediaID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'placesmediaevents' - unique_together = (('placeid', 'mediaid'),) + db_table = "placesmediaevents" + unique_together = (("placeid", "mediaid"),) class Placesresourcecitationevents(models.Model): - placeresourceid = models.ForeignKey('Placesresourceevents', db_column='PlaceResourceID') # Field name made lowercase. - citationid = models.IntegerField(db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeresourceid = models.ForeignKey( + "Placesresourceevents", db_column="PlaceResourceID" + ) # Field name made lowercase. + citationid = models.IntegerField( + db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'placesresourcecitationevents' - unique_together = (('placeresourceid', 'citationid'),) + db_table = "placesresourcecitationevents" + unique_together = (("placeresourceid", "citationid"),) class Placesresourceevents(models.Model): - placeresourceid = models.IntegerField(db_column='PlaceResourceID', primary_key=True) # Field name made lowercase. - placeid = models.ForeignKey(Places, db_column='PlaceID', blank=True, null=True) # Field name made lowercase. - resourceid = models.IntegerField(db_column='ResourceID', blank=True, null=True) # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - partused = models.CharField(db_column='PartUsed', max_length=255, blank=True, null=True) # Field name made lowercase. - customaryuse = models.CharField(db_column='CustomaryUse', max_length=255, blank=True, null=True) # Field name made lowercase. - barterresource = models.IntegerField(db_column='BarterResource') # Field name made lowercase. - season = models.CharField(db_column='Season', max_length=255, blank=True, null=True) # Field name made lowercase. - timing = models.CharField(db_column='Timing', max_length=255, blank=True, null=True) # Field name made lowercase. - january = models.IntegerField(db_column='January') # Field name made lowercase. - february = models.IntegerField(db_column='February') # Field name made lowercase. - march = models.IntegerField(db_column='March') # Field name made lowercase. - april = models.IntegerField(db_column='April') # Field name made lowercase. - may = models.IntegerField(db_column='May') # Field name made lowercase. - june = models.IntegerField(db_column='June') # Field name made lowercase. - july = models.IntegerField(db_column='July') # Field name made lowercase. - august = models.IntegerField(db_column='August') # Field name made lowercase. - september = models.IntegerField(db_column='September') # Field name made lowercase. - october = models.IntegerField(db_column='October') # Field name made lowercase. - november = models.IntegerField(db_column='November') # Field name made lowercase. - december = models.IntegerField(db_column='December') # Field name made lowercase. - year = models.SmallIntegerField(db_column='Year', blank=True, null=True) # Field name made lowercase. - islocked = models.IntegerField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. - - class Meta: - managed = False - db_table = 'placesresourceevents' + placeresourceid = models.IntegerField( + db_column="PlaceResourceID", primary_key=True + ) # Field name made lowercase. + placeid = models.ForeignKey( + Places, db_column="PlaceID", blank=True, null=True + ) # Field name made lowercase. + resourceid = models.IntegerField( + db_column="ResourceID", blank=True, null=True + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + partused = models.CharField( + db_column="PartUsed", max_length=255, blank=True, null=True + ) # Field name made lowercase. + customaryuse = models.CharField( + db_column="CustomaryUse", max_length=255, blank=True, null=True + ) # Field name made lowercase. + barterresource = models.IntegerField( + db_column="BarterResource" + ) # Field name made lowercase. + season = models.CharField( + db_column="Season", max_length=255, blank=True, null=True + ) # Field name made lowercase. + timing = models.CharField( + db_column="Timing", max_length=255, blank=True, null=True + ) # Field name made lowercase. + january = models.IntegerField(db_column="January") # Field name made lowercase. + february = models.IntegerField(db_column="February") # Field name made lowercase. + march = models.IntegerField(db_column="March") # Field name made lowercase. + april = models.IntegerField(db_column="April") # Field name made lowercase. + may = models.IntegerField(db_column="May") # Field name made lowercase. + june = models.IntegerField(db_column="June") # Field name made lowercase. + july = models.IntegerField(db_column="July") # Field name made lowercase. + august = models.IntegerField(db_column="August") # Field name made lowercase. + september = models.IntegerField(db_column="September") # Field name made lowercase. + october = models.IntegerField(db_column="October") # Field name made lowercase. + november = models.IntegerField(db_column="November") # Field name made lowercase. + december = models.IntegerField(db_column="December") # Field name made lowercase. + year = models.SmallIntegerField( + db_column="Year", blank=True, null=True + ) # Field name made lowercase. + islocked = models.IntegerField(db_column="IsLocked") # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. + + class Meta: + managed = False + db_table = "placesresourceevents" class Placesresourcemediaevents(models.Model): - placeresourceid = models.ForeignKey(Placesresourceevents, db_column='PlaceResourceID') # Field name made lowercase. - mediaid = models.IntegerField(db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeresourceid = models.ForeignKey( + Placesresourceevents, db_column="PlaceResourceID" + ) # Field name made lowercase. + mediaid = models.IntegerField(db_column="MediaID") # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'placesresourcemediaevents' - unique_together = (('placeresourceid', 'mediaid'),) + db_table = "placesresourcemediaevents" + unique_together = (("placeresourceid", "mediaid"),) class Resourceactivitycitationevents(models.Model): - resourceactivityid = models.ForeignKey('Resourcesactivityevents', db_column='ResourceActivityID') # Field name made lowercase. - citationid = models.IntegerField(db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceactivityid = models.ForeignKey( + "Resourcesactivityevents", db_column="ResourceActivityID" + ) # Field name made lowercase. + citationid = models.IntegerField( + db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'resourceactivitycitationevents' - unique_together = (('resourceactivityid', 'citationid'),) + db_table = "resourceactivitycitationevents" + unique_together = (("resourceactivityid", "citationid"),) class Resourceactivitymediaevents(models.Model): - resourceactivityid = models.ForeignKey('Resourcesactivityevents', db_column='ResourceActivityID') # Field name made lowercase. - mediaid = models.IntegerField(db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceactivityid = models.ForeignKey( + "Resourcesactivityevents", db_column="ResourceActivityID" + ) # Field name made lowercase. + mediaid = models.IntegerField(db_column="MediaID") # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'resourceactivitymediaevents' - unique_together = (('resourceactivityid', 'mediaid'),) + db_table = "resourceactivitymediaevents" + unique_together = (("resourceactivityid", "mediaid"),) class Resourcealtindigenousname(models.Model): - altindigenousnameid = models.IntegerField(db_column='AltIndigenousNameID', primary_key=True) # Field name made lowercase. - resourceid = models.IntegerField(db_column='ResourceID', blank=True, null=True) # Field name made lowercase. - altindigenousname = models.CharField(db_column='AltIndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. + altindigenousnameid = models.IntegerField( + db_column="AltIndigenousNameID", primary_key=True + ) # Field name made lowercase. + resourceid = models.IntegerField( + db_column="ResourceID", blank=True, null=True + ) # Field name made lowercase. + altindigenousname = models.CharField( + db_column="AltIndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'resourcealtindigenousname' + db_table = "resourcealtindigenousname" class Resourceresourceevents(models.Model): - resourceid = models.IntegerField(db_column='ResourceID') # Field name made lowercase. - altresourceid = models.IntegerField(db_column='AltResourceID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.IntegerField( + db_column="ResourceID" + ) # Field name made lowercase. + altresourceid = models.IntegerField( + db_column="AltResourceID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'resourceresourceevents' - unique_together = (('resourceid', 'altresourceid'),) + db_table = "resourceresourceevents" + unique_together = (("resourceid", "altresourceid"),) class Resources(models.Model): - resourceid = models.IntegerField(db_column='ResourceID', primary_key=True) # Field name made lowercase. - commonname = models.CharField(db_column='CommonName', max_length=255, blank=True, null=True) # Field name made lowercase. - indigenousname = models.CharField(db_column='IndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. - genus = models.CharField(db_column='Genus', max_length=255, blank=True, null=True) # Field name made lowercase. - species = models.CharField(db_column='Species', max_length=255, blank=True, null=True) # Field name made lowercase. - specific = models.IntegerField(db_column='Specific') # Field name made lowercase. - resourceclassificationgroup = models.CharField(db_column='ResourceClassificationGroup', max_length=255, blank=True, null=True) # Field name made lowercase. - islocked = models.IntegerField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.IntegerField( + db_column="ResourceID", primary_key=True + ) # Field name made lowercase. + commonname = models.CharField( + db_column="CommonName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + indigenousname = models.CharField( + db_column="IndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + genus = models.CharField( + db_column="Genus", max_length=255, blank=True, null=True + ) # Field name made lowercase. + species = models.CharField( + db_column="Species", max_length=255, blank=True, null=True + ) # Field name made lowercase. + specific = models.IntegerField(db_column="Specific") # Field name made lowercase. + resourceclassificationgroup = models.CharField( + db_column="ResourceClassificationGroup", max_length=255, blank=True, null=True + ) # Field name made lowercase. + islocked = models.IntegerField(db_column="IsLocked") # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'resources' + db_table = "resources" class Resourcesactivityevents(models.Model): - resourceactivityid = models.IntegerField(db_column='ResourceActivityID', primary_key=True) # Field name made lowercase. - placeresourceid = models.ForeignKey(Placesresourceevents, db_column='PlaceResourceID', blank=True, null=True) # Field name made lowercase. - relationshipdescription = models.TextField(db_column='RelationshipDescription', blank=True, null=True) # Field name made lowercase. - partused = models.CharField(db_column='PartUsed', max_length=255, blank=True, null=True) # Field name made lowercase. - activityshortdescription = models.CharField(db_column='ActivityShortDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - activitylongdescription = models.TextField(db_column='ActivityLongDescription', blank=True, null=True) # Field name made lowercase. - participants = models.CharField(db_column='Participants', max_length=50, blank=True, null=True) # Field name made lowercase. - technique = models.CharField(db_column='Technique', max_length=255, blank=True, null=True) # Field name made lowercase. - gear = models.CharField(db_column='Gear', max_length=255, blank=True, null=True) # Field name made lowercase. - customaryuse = models.CharField(db_column='CustomaryUse', max_length=255, blank=True, null=True) # Field name made lowercase. - timing = models.CharField(db_column='Timing', max_length=255, blank=True, null=True) # Field name made lowercase. - timingdescription = models.CharField(db_column='TimingDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - islocked = models.IntegerField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. - - class Meta: - managed = False - db_table = 'resourcesactivityevents' + resourceactivityid = models.IntegerField( + db_column="ResourceActivityID", primary_key=True + ) # Field name made lowercase. + placeresourceid = models.ForeignKey( + Placesresourceevents, db_column="PlaceResourceID", blank=True, null=True + ) # Field name made lowercase. + relationshipdescription = models.TextField( + db_column="RelationshipDescription", blank=True, null=True + ) # Field name made lowercase. + partused = models.CharField( + db_column="PartUsed", max_length=255, blank=True, null=True + ) # Field name made lowercase. + activityshortdescription = models.CharField( + db_column="ActivityShortDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + activitylongdescription = models.TextField( + db_column="ActivityLongDescription", blank=True, null=True + ) # Field name made lowercase. + participants = models.CharField( + db_column="Participants", max_length=50, blank=True, null=True + ) # Field name made lowercase. + technique = models.CharField( + db_column="Technique", max_length=255, blank=True, null=True + ) # Field name made lowercase. + gear = models.CharField( + db_column="Gear", max_length=255, blank=True, null=True + ) # Field name made lowercase. + customaryuse = models.CharField( + db_column="CustomaryUse", max_length=255, blank=True, null=True + ) # Field name made lowercase. + timing = models.CharField( + db_column="Timing", max_length=255, blank=True, null=True + ) # Field name made lowercase. + timingdescription = models.CharField( + db_column="TimingDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + islocked = models.IntegerField(db_column="IsLocked") # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. + + class Meta: + managed = False + db_table = "resourcesactivityevents" class Resourcescitationevents(models.Model): - resourceid = models.ForeignKey(Resources, db_column='ResourceID') # Field name made lowercase. - citationid = models.ForeignKey(Citations, db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.ForeignKey( + Resources, db_column="ResourceID" + ) # Field name made lowercase. + citationid = models.ForeignKey( + Citations, db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'resourcescitationevents' - unique_together = (('resourceid', 'citationid'),) + db_table = "resourcescitationevents" + unique_together = (("resourceid", "citationid"),) class Resourcesmediaevents(models.Model): - resourceid = models.ForeignKey(Resources, db_column='ResourceID') # Field name made lowercase. - mediaid = models.ForeignKey(Media, db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.ForeignKey( + Resources, db_column="ResourceID" + ) # Field name made lowercase. + mediaid = models.ForeignKey( + Media, db_column="MediaID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'resourcesmediaevents' - unique_together = (('resourceid', 'mediaid'),) + db_table = "resourcesmediaevents" + unique_together = (("resourceid", "mediaid"),) class Useraccess(models.Model): - accessid = models.IntegerField(db_column='AccessID', primary_key=True) # Field name made lowercase. - accesslevel = models.CharField(db_column='AccessLevel', max_length=255, blank=True, null=True) # Field name made lowercase. + accessid = models.IntegerField( + db_column="AccessID", primary_key=True + ) # Field name made lowercase. + accesslevel = models.CharField( + db_column="AccessLevel", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'useraccess' + db_table = "useraccess" class Users(models.Model): - userid = models.IntegerField(db_column='UserID', primary_key=True) # Field name made lowercase. - username = models.CharField(db_column='UserName', max_length=20, blank=True, null=True) # Field name made lowercase. - password = models.CharField(db_column='Password', max_length=20, blank=True, null=True) # Field name made lowercase. - firstname = models.CharField(db_column='FirstName', max_length=255, blank=True, null=True) # Field name made lowercase. - lastname = models.CharField(db_column='LastName', max_length=255, blank=True, null=True) # Field name made lowercase. - affiliation = models.CharField(db_column='Affiliation', max_length=255, blank=True, null=True) # Field name made lowercase. - title = models.CharField(db_column='Title', max_length=255, blank=True, null=True) # Field name made lowercase. - accesslevel = models.IntegerField(db_column='AccessLevel', blank=True, null=True) # Field name made lowercase. + userid = models.IntegerField( + db_column="UserID", primary_key=True + ) # Field name made lowercase. + username = models.CharField( + db_column="UserName", max_length=20, blank=True, null=True + ) # Field name made lowercase. + password = models.CharField( + db_column="Password", max_length=20, blank=True, null=True + ) # Field name made lowercase. + firstname = models.CharField( + db_column="FirstName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + lastname = models.CharField( + db_column="LastName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + affiliation = models.CharField( + db_column="Affiliation", max_length=255, blank=True, null=True + ) # Field name made lowercase. + title = models.CharField( + db_column="Title", max_length=255, blank=True, null=True + ) # Field name made lowercase. + accesslevel = models.IntegerField( + db_column="AccessLevel", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'users' + db_table = "users" diff --git a/docs/Data/models_old.py b/docs/Data/models_old.py index 4ff044cd..b1f4bd41 100644 --- a/docs/Data/models_old.py +++ b/docs/Data/models_old.py @@ -11,625 +11,1260 @@ class Citations(models.Model): - citationid = models.AutoField(db_column='CitationID', primary_key=True) # Field name made lowercase. - referencetype = models.CharField(db_column='ReferenceType', max_length=255, blank=True, null=True) # Field name made lowercase. - referencetext = models.CharField(db_column='ReferenceText', max_length=50, blank=True, null=True) # Field name made lowercase. - authortype = models.CharField(db_column='AuthorType', max_length=255, blank=True, null=True) # Field name made lowercase. - authorprimary = models.CharField(db_column='AuthorPrimary', max_length=255, blank=True, null=True) # Field name made lowercase. - authorsecondary = models.CharField(db_column='AuthorSecondary', max_length=255, blank=True, null=True) # Field name made lowercase. - intervieweeid = models.IntegerField(db_column='IntervieweeID', blank=True, null=True) # Field name made lowercase. - interviewerid = models.IntegerField(db_column='InterviewerID', blank=True, null=True) # Field name made lowercase. - placeofinterview = models.CharField(db_column='PlaceofInterview', max_length=255, blank=True, null=True) # Field name made lowercase. - year = models.IntegerField(db_column='Year', blank=True, null=True) # Field name made lowercase. - title = models.TextField(db_column='Title', blank=True, null=True) # Field name made lowercase. - seriestitle = models.CharField(db_column='SeriesTitle', max_length=255, blank=True, null=True) # Field name made lowercase. - seriesvolume = models.CharField(db_column='SeriesVolume', max_length=50, blank=True, null=True) # Field name made lowercase. - serieseditor = models.CharField(db_column='SeriesEditor', max_length=255, blank=True, null=True) # Field name made lowercase. - publisher = models.CharField(db_column='Publisher', max_length=100, blank=True, null=True) # Field name made lowercase. - publishercity = models.CharField(db_column='PublisherCity', max_length=255, blank=True, null=True) # Field name made lowercase. - preparedfor = models.CharField(db_column='PreparedFor', max_length=100, blank=True, null=True) # Field name made lowercase. - comments = models.TextField(db_column='Comments', blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. - - class Meta: - managed = False - db_table = 'Citations' + citationid = models.AutoField( + db_column="CitationID", primary_key=True + ) # Field name made lowercase. + referencetype = models.CharField( + db_column="ReferenceType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + referencetext = models.CharField( + db_column="ReferenceText", max_length=50, blank=True, null=True + ) # Field name made lowercase. + authortype = models.CharField( + db_column="AuthorType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + authorprimary = models.CharField( + db_column="AuthorPrimary", max_length=255, blank=True, null=True + ) # Field name made lowercase. + authorsecondary = models.CharField( + db_column="AuthorSecondary", max_length=255, blank=True, null=True + ) # Field name made lowercase. + intervieweeid = models.IntegerField( + db_column="IntervieweeID", blank=True, null=True + ) # Field name made lowercase. + interviewerid = models.IntegerField( + db_column="InterviewerID", blank=True, null=True + ) # Field name made lowercase. + placeofinterview = models.CharField( + db_column="PlaceofInterview", max_length=255, blank=True, null=True + ) # Field name made lowercase. + year = models.IntegerField( + db_column="Year", blank=True, null=True + ) # Field name made lowercase. + title = models.TextField( + db_column="Title", blank=True, null=True + ) # Field name made lowercase. + seriestitle = models.CharField( + db_column="SeriesTitle", max_length=255, blank=True, null=True + ) # Field name made lowercase. + seriesvolume = models.CharField( + db_column="SeriesVolume", max_length=50, blank=True, null=True + ) # Field name made lowercase. + serieseditor = models.CharField( + db_column="SeriesEditor", max_length=255, blank=True, null=True + ) # Field name made lowercase. + publisher = models.CharField( + db_column="Publisher", max_length=100, blank=True, null=True + ) # Field name made lowercase. + publishercity = models.CharField( + db_column="PublisherCity", max_length=255, blank=True, null=True + ) # Field name made lowercase. + preparedfor = models.CharField( + db_column="PreparedFor", max_length=100, blank=True, null=True + ) # Field name made lowercase. + comments = models.TextField( + db_column="Comments", blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. + + class Meta: + managed = False + db_table = "Citations" class Currentversion(models.Model): - id = models.AutoField(db_column='ID', primary_key=True) # Field name made lowercase. - backendversion = models.IntegerField(db_column='BackendVersion', blank=True, null=True) # Field name made lowercase. - frontendversion = models.IntegerField(db_column='FrontendVersion', blank=True, null=True) # Field name made lowercase. + id = models.AutoField( + db_column="ID", primary_key=True + ) # Field name made lowercase. + backendversion = models.IntegerField( + db_column="BackendVersion", blank=True, null=True + ) # Field name made lowercase. + frontendversion = models.IntegerField( + db_column="FrontendVersion", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'CurrentVersion' + db_table = "CurrentVersion" class Locality(models.Model): - localityid = models.AutoField(db_column='LocalityID', primary_key=True) # Field name made lowercase. - placeid = models.ForeignKey('Places', models.DO_NOTHING, db_column='PlaceID', blank=True, null=True) # Field name made lowercase. - englishname = models.CharField(db_column='EnglishName', max_length=255, blank=True, null=True) # Field name made lowercase. - indigenousname = models.CharField(db_column='IndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. - localitytype = models.CharField(db_column='LocalityType', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + localityid = models.AutoField( + db_column="LocalityID", primary_key=True + ) # Field name made lowercase. + placeid = models.ForeignKey( + "Places", models.DO_NOTHING, db_column="PlaceID", blank=True, null=True + ) # Field name made lowercase. + englishname = models.CharField( + db_column="EnglishName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + indigenousname = models.CharField( + db_column="IndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + localitytype = models.CharField( + db_column="LocalityType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Locality' + db_table = "Locality" class Localitygisselections(models.Model): - localityid = models.IntegerField(db_column='LocalityID', blank=True, null=True) # Field name made lowercase. - localitylabel = models.CharField(db_column='LocalityLabel', max_length=255, blank=True, null=True) # Field name made lowercase. - sourcefc = models.CharField(db_column='SourceFC', max_length=255, blank=True, null=True) # Field name made lowercase. + localityid = models.IntegerField( + db_column="LocalityID", blank=True, null=True + ) # Field name made lowercase. + localitylabel = models.CharField( + db_column="LocalityLabel", max_length=255, blank=True, null=True + ) # Field name made lowercase. + sourcefc = models.CharField( + db_column="SourceFC", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LocalityGISSelections' + db_table = "LocalityGISSelections" class Localityplaceresourceevent(models.Model): - placeresourceid = models.ForeignKey('Placesresourceevents', models.DO_NOTHING, db_column='PlaceResourceID', primary_key=True) # Field name made lowercase. - localityid = models.ForeignKey(Locality, models.DO_NOTHING, db_column='LocalityID') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeresourceid = models.ForeignKey( + "Placesresourceevents", + models.DO_NOTHING, + db_column="PlaceResourceID", + primary_key=True, + ) # Field name made lowercase. + localityid = models.ForeignKey( + Locality, models.DO_NOTHING, db_column="LocalityID" + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LocalityPlaceResourceEvent' - unique_together = (('placeresourceid', 'localityid'),) + db_table = "LocalityPlaceResourceEvent" + unique_together = (("placeresourceid", "localityid"),) class Lookupactivity(models.Model): - activity = models.CharField(db_column='Activity', primary_key=True, max_length=255) # Field name made lowercase. + activity = models.CharField( + db_column="Activity", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupActivity' + db_table = "LookupActivity" class Lookupauthortype(models.Model): - authortype = models.CharField(db_column='AuthorType', primary_key=True, max_length=50) # Field name made lowercase. + authortype = models.CharField( + db_column="AuthorType", primary_key=True, max_length=50 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupAuthorType' + db_table = "LookupAuthorType" class Lookupcustomaryuse(models.Model): - usedfor = models.CharField(db_column='UsedFor', primary_key=True, max_length=255) # Field name made lowercase. + usedfor = models.CharField( + db_column="UsedFor", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupCustomaryUse' + db_table = "LookupCustomaryUse" class Lookuphabitat(models.Model): - habitat = models.CharField(db_column='Habitat', primary_key=True, max_length=100) # Field name made lowercase. + habitat = models.CharField( + db_column="Habitat", primary_key=True, max_length=100 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupHabitat' + db_table = "LookupHabitat" class Lookuplocalitytype(models.Model): - localitytype = models.CharField(db_column='LocalityType', primary_key=True, max_length=255) # Field name made lowercase. + localitytype = models.CharField( + db_column="LocalityType", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupLocalityType' + db_table = "LookupLocalityType" class Lookupmediatype(models.Model): - mediatype = models.CharField(db_column='MediaType', primary_key=True, max_length=255) # Field name made lowercase. - mediacategory = models.CharField(db_column='MediaCategory', max_length=255, blank=True, null=True) # Field name made lowercase. + mediatype = models.CharField( + db_column="MediaType", primary_key=True, max_length=255 + ) # Field name made lowercase. + mediacategory = models.CharField( + db_column="MediaCategory", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupMediaType' + db_table = "LookupMediaType" class Lookuppartused(models.Model): - partused = models.CharField(db_column='PartUsed', primary_key=True, max_length=255) # Field name made lowercase. + partused = models.CharField( + db_column="PartUsed", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupPartUsed' + db_table = "LookupPartUsed" class Lookupparticipants(models.Model): - participants = models.CharField(db_column='Participants', primary_key=True, max_length=255) # Field name made lowercase. + participants = models.CharField( + db_column="Participants", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupParticipants' + db_table = "LookupParticipants" class Lookupplanningunit(models.Model): - planningunitid = models.IntegerField(db_column='PlanningUnitID', primary_key=True) # Field name made lowercase. - planningunitname = models.CharField(db_column='PlanningUnitName', max_length=100, blank=True, null=True) # Field name made lowercase. + planningunitid = models.IntegerField( + db_column="PlanningUnitID", primary_key=True + ) # Field name made lowercase. + planningunitname = models.CharField( + db_column="PlanningUnitName", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupPlanningUnit' + db_table = "LookupPlanningUnit" class Lookupreferencetype(models.Model): - documenttype = models.CharField(db_column='DocumentType', primary_key=True, max_length=25) # Field name made lowercase. + documenttype = models.CharField( + db_column="DocumentType", primary_key=True, max_length=25 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupReferenceType' + db_table = "LookupReferenceType" class Lookupresourcegroup(models.Model): - resourceclassificationgroup = models.CharField(db_column='ResourceClassificationGroup', primary_key=True, max_length=255) # Field name made lowercase. + resourceclassificationgroup = models.CharField( + db_column="ResourceClassificationGroup", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupResourceGroup' + db_table = "LookupResourceGroup" class Lookupseason(models.Model): - season = models.CharField(db_column='Season', primary_key=True, max_length=255) # Field name made lowercase. + season = models.CharField( + db_column="Season", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupSeason' + db_table = "LookupSeason" class Lookuptechniques(models.Model): - techniques = models.CharField(db_column='Techniques', primary_key=True, max_length=255) # Field name made lowercase. + techniques = models.CharField( + db_column="Techniques", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupTechniques' + db_table = "LookupTechniques" class Lookuptiming(models.Model): - timing = models.CharField(db_column='Timing', primary_key=True, max_length=255) # Field name made lowercase. + timing = models.CharField( + db_column="Timing", primary_key=True, max_length=255 + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupTiming' + db_table = "LookupTiming" class Lookuptribe(models.Model): - id = models.AutoField(db_column='ID', primary_key=True) # Field name made lowercase. - tribeunit = models.CharField(db_column='TribeUnit', max_length=50, blank=True, null=True) # Field name made lowercase. - tribe = models.CharField(db_column='Tribe', max_length=100, blank=True, null=True) # Field name made lowercase. - federaltribe = models.CharField(db_column='FederalTribe', max_length=100, blank=True, null=True) # Field name made lowercase. + id = models.AutoField( + db_column="ID", primary_key=True + ) # Field name made lowercase. + tribeunit = models.CharField( + db_column="TribeUnit", max_length=50, blank=True, null=True + ) # Field name made lowercase. + tribe = models.CharField( + db_column="Tribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + federaltribe = models.CharField( + db_column="FederalTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupTribe' + db_table = "LookupTribe" class Lookupuserinfo(models.Model): - username = models.CharField(db_column='UserName', max_length=100, blank=True, null=True) # Field name made lowercase. - usingcustomusername = models.NullBooleanField(db_column='UsingCustomUsername') # Field name made lowercase. - usertitle = models.CharField(db_column='UserTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - useraffiliation = models.CharField(db_column='UserAffiliation', max_length=100, blank=True, null=True) # Field name made lowercase. + username = models.CharField( + db_column="UserName", max_length=100, blank=True, null=True + ) # Field name made lowercase. + usingcustomusername = models.NullBooleanField( + db_column="UsingCustomUsername" + ) # Field name made lowercase. + usertitle = models.CharField( + db_column="UserTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + useraffiliation = models.CharField( + db_column="UserAffiliation", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LookupUserInfo' + db_table = "LookupUserInfo" class Media(models.Model): - mediaid = models.AutoField(db_column='MediaID', primary_key=True) # Field name made lowercase. - mediatype = models.CharField(db_column='MediaType', max_length=255, blank=True, null=True) # Field name made lowercase. - medianame = models.CharField(db_column='MediaName', max_length=255, blank=True, null=True) # Field name made lowercase. - mediadescription = models.TextField(db_column='MediaDescription', blank=True, null=True) # Field name made lowercase. - medialink = models.CharField(db_column='MediaLink', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + mediaid = models.AutoField( + db_column="MediaID", primary_key=True + ) # Field name made lowercase. + mediatype = models.CharField( + db_column="MediaType", max_length=255, blank=True, null=True + ) # Field name made lowercase. + medianame = models.CharField( + db_column="MediaName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + mediadescription = models.TextField( + db_column="MediaDescription", blank=True, null=True + ) # Field name made lowercase. + medialink = models.CharField( + db_column="MediaLink", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Media' + db_table = "Media" class Mediacitationevents(models.Model): - mediaid = models.ForeignKey(Media, models.DO_NOTHING, db_column='MediaID', primary_key=True) # Field name made lowercase. - citationid = models.ForeignKey(Citations, models.DO_NOTHING, db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + mediaid = models.ForeignKey( + Media, models.DO_NOTHING, db_column="MediaID", primary_key=True + ) # Field name made lowercase. + citationid = models.ForeignKey( + Citations, models.DO_NOTHING, db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'MediaCitationEvents' - unique_together = (('mediaid', 'citationid'),) + db_table = "MediaCitationEvents" + unique_together = (("mediaid", "citationid"),) class People(models.Model): - personid = models.AutoField(db_column='PersonID', primary_key=True) # Field name made lowercase. - firstname = models.CharField(db_column='FirstName', max_length=255, blank=True, null=True) # Field name made lowercase. - lastname = models.CharField(db_column='LastName', max_length=255, blank=True, null=True) # Field name made lowercase. - yearborn = models.IntegerField(db_column='YearBorn', blank=True, null=True) # Field name made lowercase. - village = models.CharField(db_column='Village', max_length=255, blank=True, null=True) # Field name made lowercase. - relationshiptootherpeople = models.TextField(db_column='RelationshipToOtherPeople', blank=True, null=True) # Field name made lowercase. + personid = models.AutoField( + db_column="PersonID", primary_key=True + ) # Field name made lowercase. + firstname = models.CharField( + db_column="FirstName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + lastname = models.CharField( + db_column="LastName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + yearborn = models.IntegerField( + db_column="YearBorn", blank=True, null=True + ) # Field name made lowercase. + village = models.CharField( + db_column="Village", max_length=255, blank=True, null=True + ) # Field name made lowercase. + relationshiptootherpeople = models.TextField( + db_column="RelationshipToOtherPeople", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'People' + db_table = "People" class Placealtindigenousname(models.Model): - altindigenousnameid = models.AutoField(db_column='AltIndigenousNameID', primary_key=True) # Field name made lowercase. - placeid = models.IntegerField(db_column='PlaceID', blank=True, null=True) # Field name made lowercase. - altindigenousname = models.CharField(db_column='AltIndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. + altindigenousnameid = models.AutoField( + db_column="AltIndigenousNameID", primary_key=True + ) # Field name made lowercase. + placeid = models.IntegerField( + db_column="PlaceID", blank=True, null=True + ) # Field name made lowercase. + altindigenousname = models.CharField( + db_column="AltIndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'PlaceAltIndigenousName' + db_table = "PlaceAltIndigenousName" class Placegisselections(models.Model): - placeid = models.IntegerField(db_column='PlaceID', blank=True, null=True) # Field name made lowercase. - placelabel = models.CharField(db_column='PlaceLabel', max_length=255, blank=True, null=True) # Field name made lowercase. - sourcefc = models.CharField(db_column='SourceFC', max_length=255, blank=True, null=True) # Field name made lowercase. + placeid = models.IntegerField( + db_column="PlaceID", blank=True, null=True + ) # Field name made lowercase. + placelabel = models.CharField( + db_column="PlaceLabel", max_length=255, blank=True, null=True + ) # Field name made lowercase. + sourcefc = models.CharField( + db_column="SourceFC", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'PlaceGISSelections' + db_table = "PlaceGISSelections" class Places(models.Model): - placeid = models.AutoField(db_column='PlaceID', primary_key=True) # Field name made lowercase. - indigenousplacename = models.CharField(db_column='IndigenousPlaceName', max_length=255, blank=True, null=True) # Field name made lowercase. - indigenousplacenamemeaning = models.CharField(db_column='IndigenousPlaceNameMeaning', max_length=255, blank=True, null=True) # Field name made lowercase. - englishplacename = models.CharField(db_column='EnglishPlaceName', max_length=255, blank=True, null=True) # Field name made lowercase. - planningunitid = models.IntegerField(db_column='PlanningUnitID', blank=True, null=True) # Field name made lowercase. - primaryhabitat = models.CharField(db_column='PrimaryHabitat', max_length=100, blank=True, null=True) # Field name made lowercase. - tribeid = models.IntegerField(db_column='TribeID', blank=True, null=True) # Field name made lowercase. - islocked = models.NullBooleanField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeid = models.AutoField( + db_column="PlaceID", primary_key=True + ) # Field name made lowercase. + indigenousplacename = models.CharField( + db_column="IndigenousPlaceName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + indigenousplacenamemeaning = models.CharField( + db_column="IndigenousPlaceNameMeaning", max_length=255, blank=True, null=True + ) # Field name made lowercase. + englishplacename = models.CharField( + db_column="EnglishPlaceName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + planningunitid = models.IntegerField( + db_column="PlanningUnitID", blank=True, null=True + ) # Field name made lowercase. + primaryhabitat = models.CharField( + db_column="PrimaryHabitat", max_length=100, blank=True, null=True + ) # Field name made lowercase. + tribeid = models.IntegerField( + db_column="TribeID", blank=True, null=True + ) # Field name made lowercase. + islocked = models.NullBooleanField( + db_column="IsLocked" + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Places' + db_table = "Places" class Placescitationevents(models.Model): - placeid = models.ForeignKey(Places, models.DO_NOTHING, db_column='PlaceID', primary_key=True) # Field name made lowercase. - citationid = models.IntegerField(db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeid = models.ForeignKey( + Places, models.DO_NOTHING, db_column="PlaceID", primary_key=True + ) # Field name made lowercase. + citationid = models.IntegerField( + db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'PlacesCitationEvents' - unique_together = (('placeid', 'citationid'),) + db_table = "PlacesCitationEvents" + unique_together = (("placeid", "citationid"),) class Placesmediaevents(models.Model): - placeid = models.ForeignKey(Places, models.DO_NOTHING, db_column='PlaceID', primary_key=True) # Field name made lowercase. - mediaid = models.ForeignKey(Media, models.DO_NOTHING, db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeid = models.ForeignKey( + Places, models.DO_NOTHING, db_column="PlaceID", primary_key=True + ) # Field name made lowercase. + mediaid = models.ForeignKey( + Media, models.DO_NOTHING, db_column="MediaID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'PlacesMediaEvents' - unique_together = (('placeid', 'mediaid'),) + db_table = "PlacesMediaEvents" + unique_together = (("placeid", "mediaid"),) class Placesresourcecitationevents(models.Model): - placeresourceid = models.ForeignKey('Placesresourceevents', models.DO_NOTHING, db_column='PlaceResourceID', primary_key=True) # Field name made lowercase. - citationid = models.IntegerField(db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeresourceid = models.ForeignKey( + "Placesresourceevents", + models.DO_NOTHING, + db_column="PlaceResourceID", + primary_key=True, + ) # Field name made lowercase. + citationid = models.IntegerField( + db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'PlacesResourceCitationEvents' - unique_together = (('placeresourceid', 'citationid'),) + db_table = "PlacesResourceCitationEvents" + unique_together = (("placeresourceid", "citationid"),) class Placesresourceevents(models.Model): - placeresourceid = models.AutoField(db_column='PlaceResourceID', primary_key=True) # Field name made lowercase. - placeid = models.ForeignKey(Places, models.DO_NOTHING, db_column='PlaceID') # Field name made lowercase. - resourceid = models.IntegerField(db_column='ResourceID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - partused = models.CharField(db_column='PartUsed', max_length=255, blank=True, null=True) # Field name made lowercase. - customaryuse = models.CharField(db_column='CustomaryUse', max_length=255, blank=True, null=True) # Field name made lowercase. - barterresource = models.NullBooleanField(db_column='BarterResource') # Field name made lowercase. - season = models.CharField(db_column='Season', max_length=255, blank=True, null=True) # Field name made lowercase. - timing = models.CharField(db_column='Timing', max_length=255, blank=True, null=True) # Field name made lowercase. - january = models.NullBooleanField(db_column='January') # Field name made lowercase. - february = models.NullBooleanField(db_column='February') # Field name made lowercase. - march = models.NullBooleanField(db_column='March') # Field name made lowercase. - april = models.NullBooleanField(db_column='April') # Field name made lowercase. - may = models.NullBooleanField(db_column='May') # Field name made lowercase. - june = models.NullBooleanField(db_column='June') # Field name made lowercase. - july = models.NullBooleanField(db_column='July') # Field name made lowercase. - august = models.NullBooleanField(db_column='August') # Field name made lowercase. - september = models.NullBooleanField(db_column='September') # Field name made lowercase. - october = models.NullBooleanField(db_column='October') # Field name made lowercase. - november = models.NullBooleanField(db_column='November') # Field name made lowercase. - december = models.NullBooleanField(db_column='December') # Field name made lowercase. - year = models.IntegerField(db_column='Year', blank=True, null=True) # Field name made lowercase. - islocked = models.NullBooleanField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. - - class Meta: - managed = False - db_table = 'PlacesResourceEvents' + placeresourceid = models.AutoField( + db_column="PlaceResourceID", primary_key=True + ) # Field name made lowercase. + placeid = models.ForeignKey( + Places, models.DO_NOTHING, db_column="PlaceID" + ) # Field name made lowercase. + resourceid = models.IntegerField( + db_column="ResourceID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + partused = models.CharField( + db_column="PartUsed", max_length=255, blank=True, null=True + ) # Field name made lowercase. + customaryuse = models.CharField( + db_column="CustomaryUse", max_length=255, blank=True, null=True + ) # Field name made lowercase. + barterresource = models.NullBooleanField( + db_column="BarterResource" + ) # Field name made lowercase. + season = models.CharField( + db_column="Season", max_length=255, blank=True, null=True + ) # Field name made lowercase. + timing = models.CharField( + db_column="Timing", max_length=255, blank=True, null=True + ) # Field name made lowercase. + january = models.NullBooleanField(db_column="January") # Field name made lowercase. + february = models.NullBooleanField( + db_column="February" + ) # Field name made lowercase. + march = models.NullBooleanField(db_column="March") # Field name made lowercase. + april = models.NullBooleanField(db_column="April") # Field name made lowercase. + may = models.NullBooleanField(db_column="May") # Field name made lowercase. + june = models.NullBooleanField(db_column="June") # Field name made lowercase. + july = models.NullBooleanField(db_column="July") # Field name made lowercase. + august = models.NullBooleanField(db_column="August") # Field name made lowercase. + september = models.NullBooleanField( + db_column="September" + ) # Field name made lowercase. + october = models.NullBooleanField(db_column="October") # Field name made lowercase. + november = models.NullBooleanField( + db_column="November" + ) # Field name made lowercase. + december = models.NullBooleanField( + db_column="December" + ) # Field name made lowercase. + year = models.IntegerField( + db_column="Year", blank=True, null=True + ) # Field name made lowercase. + islocked = models.NullBooleanField( + db_column="IsLocked" + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. + + class Meta: + managed = False + db_table = "PlacesResourceEvents" class Placesresourcemediaevents(models.Model): - placeresourceid = models.ForeignKey(Placesresourceevents, models.DO_NOTHING, db_column='PlaceResourceID', primary_key=True) # Field name made lowercase. - mediaid = models.IntegerField(db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + placeresourceid = models.ForeignKey( + Placesresourceevents, + models.DO_NOTHING, + db_column="PlaceResourceID", + primary_key=True, + ) # Field name made lowercase. + mediaid = models.IntegerField(db_column="MediaID") # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'PlacesResourceMediaEvents' - unique_together = (('placeresourceid', 'mediaid'),) + db_table = "PlacesResourceMediaEvents" + unique_together = (("placeresourceid", "mediaid"),) class Resourceactivitycitationevents(models.Model): - resourceactivityid = models.ForeignKey('Resourcesactivityevents', models.DO_NOTHING, db_column='ResourceActivityID', primary_key=True) # Field name made lowercase. - citationid = models.IntegerField(db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceactivityid = models.ForeignKey( + "Resourcesactivityevents", + models.DO_NOTHING, + db_column="ResourceActivityID", + primary_key=True, + ) # Field name made lowercase. + citationid = models.IntegerField( + db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ResourceActivityCitationEvents' - unique_together = (('resourceactivityid', 'citationid'),) + db_table = "ResourceActivityCitationEvents" + unique_together = (("resourceactivityid", "citationid"),) class Resourceactivitymediaevents(models.Model): - resourceactivityid = models.ForeignKey('Resourcesactivityevents', models.DO_NOTHING, db_column='ResourceActivityID', primary_key=True) # Field name made lowercase. - mediaid = models.IntegerField(db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceactivityid = models.ForeignKey( + "Resourcesactivityevents", + models.DO_NOTHING, + db_column="ResourceActivityID", + primary_key=True, + ) # Field name made lowercase. + mediaid = models.IntegerField(db_column="MediaID") # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ResourceActivityMediaEvents' - unique_together = (('resourceactivityid', 'mediaid'),) + db_table = "ResourceActivityMediaEvents" + unique_together = (("resourceactivityid", "mediaid"),) class Resourcealtindigenousname(models.Model): - altindigenousnameid = models.AutoField(db_column='AltIndigenousNameID', primary_key=True) # Field name made lowercase. - resourceid = models.IntegerField(db_column='ResourceID', blank=True, null=True) # Field name made lowercase. - altindigenousname = models.CharField(db_column='AltIndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. + altindigenousnameid = models.AutoField( + db_column="AltIndigenousNameID", primary_key=True + ) # Field name made lowercase. + resourceid = models.IntegerField( + db_column="ResourceID", blank=True, null=True + ) # Field name made lowercase. + altindigenousname = models.CharField( + db_column="AltIndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ResourceAltIndigenousName' + db_table = "ResourceAltIndigenousName" class Resourceresourceevents(models.Model): - resourceid = models.IntegerField(db_column='ResourceID', primary_key=True) # Field name made lowercase. - altresourceid = models.IntegerField(db_column='AltResourceID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.IntegerField( + db_column="ResourceID", primary_key=True + ) # Field name made lowercase. + altresourceid = models.IntegerField( + db_column="AltResourceID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ResourceResourceEvents' - unique_together = (('resourceid', 'altresourceid'),) + db_table = "ResourceResourceEvents" + unique_together = (("resourceid", "altresourceid"),) class Resources(models.Model): - resourceid = models.AutoField(db_column='ResourceID', primary_key=True) # Field name made lowercase. - commonname = models.CharField(db_column='CommonName', max_length=255, blank=True, null=True) # Field name made lowercase. - indigenousname = models.CharField(db_column='IndigenousName', max_length=255, blank=True, null=True) # Field name made lowercase. - genus = models.CharField(db_column='Genus', max_length=255, blank=True, null=True) # Field name made lowercase. - species = models.CharField(db_column='Species', max_length=255, blank=True, null=True) # Field name made lowercase. - specific = models.NullBooleanField(db_column='Specific') # Field name made lowercase. - resourceclassificationgroup = models.CharField(db_column='ResourceClassificationGroup', max_length=255, blank=True, null=True) # Field name made lowercase. - islocked = models.NullBooleanField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.AutoField( + db_column="ResourceID", primary_key=True + ) # Field name made lowercase. + commonname = models.CharField( + db_column="CommonName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + indigenousname = models.CharField( + db_column="IndigenousName", max_length=255, blank=True, null=True + ) # Field name made lowercase. + genus = models.CharField( + db_column="Genus", max_length=255, blank=True, null=True + ) # Field name made lowercase. + species = models.CharField( + db_column="Species", max_length=255, blank=True, null=True + ) # Field name made lowercase. + specific = models.NullBooleanField( + db_column="Specific" + ) # Field name made lowercase. + resourceclassificationgroup = models.CharField( + db_column="ResourceClassificationGroup", max_length=255, blank=True, null=True + ) # Field name made lowercase. + islocked = models.NullBooleanField( + db_column="IsLocked" + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Resources' + db_table = "Resources" class Resourcesactivityevents(models.Model): - resourceactivityid = models.AutoField(db_column='ResourceActivityID', primary_key=True) # Field name made lowercase. - placeresourceid = models.ForeignKey(Placesresourceevents, models.DO_NOTHING, db_column='PlaceResourceID') # Field name made lowercase. - relationshipdescription = models.TextField(db_column='RelationshipDescription', blank=True, null=True) # Field name made lowercase. - partused = models.CharField(db_column='PartUsed', max_length=255, blank=True, null=True) # Field name made lowercase. - activityshortdescription = models.CharField(db_column='ActivityShortDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - activitylongdescription = models.TextField(db_column='ActivityLongDescription', blank=True, null=True) # Field name made lowercase. - participants = models.CharField(db_column='Participants', max_length=50, blank=True, null=True) # Field name made lowercase. - technique = models.CharField(db_column='Technique', max_length=255, blank=True, null=True) # Field name made lowercase. - gear = models.CharField(db_column='Gear', max_length=255, blank=True, null=True) # Field name made lowercase. - customaryuse = models.CharField(db_column='CustomaryUse', max_length=255, blank=True, null=True) # Field name made lowercase. - timing = models.CharField(db_column='Timing', max_length=255, blank=True, null=True) # Field name made lowercase. - timingdescription = models.CharField(db_column='TimingDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - islocked = models.NullBooleanField(db_column='IsLocked') # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. - - class Meta: - managed = False - db_table = 'ResourcesActivityEvents' + resourceactivityid = models.AutoField( + db_column="ResourceActivityID", primary_key=True + ) # Field name made lowercase. + placeresourceid = models.ForeignKey( + Placesresourceevents, models.DO_NOTHING, db_column="PlaceResourceID" + ) # Field name made lowercase. + relationshipdescription = models.TextField( + db_column="RelationshipDescription", blank=True, null=True + ) # Field name made lowercase. + partused = models.CharField( + db_column="PartUsed", max_length=255, blank=True, null=True + ) # Field name made lowercase. + activityshortdescription = models.CharField( + db_column="ActivityShortDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + activitylongdescription = models.TextField( + db_column="ActivityLongDescription", blank=True, null=True + ) # Field name made lowercase. + participants = models.CharField( + db_column="Participants", max_length=50, blank=True, null=True + ) # Field name made lowercase. + technique = models.CharField( + db_column="Technique", max_length=255, blank=True, null=True + ) # Field name made lowercase. + gear = models.CharField( + db_column="Gear", max_length=255, blank=True, null=True + ) # Field name made lowercase. + customaryuse = models.CharField( + db_column="CustomaryUse", max_length=255, blank=True, null=True + ) # Field name made lowercase. + timing = models.CharField( + db_column="Timing", max_length=255, blank=True, null=True + ) # Field name made lowercase. + timingdescription = models.CharField( + db_column="TimingDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + islocked = models.NullBooleanField( + db_column="IsLocked" + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. + + class Meta: + managed = False + db_table = "ResourcesActivityEvents" class Resourcescitationevents(models.Model): - resourceid = models.ForeignKey(Resources, models.DO_NOTHING, db_column='ResourceID', primary_key=True) # Field name made lowercase. - citationid = models.ForeignKey(Citations, models.DO_NOTHING, db_column='CitationID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=255, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.ForeignKey( + Resources, models.DO_NOTHING, db_column="ResourceID", primary_key=True + ) # Field name made lowercase. + citationid = models.ForeignKey( + Citations, models.DO_NOTHING, db_column="CitationID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=255, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ResourcesCitationEvents' - unique_together = (('resourceid', 'citationid'),) + db_table = "ResourcesCitationEvents" + unique_together = (("resourceid", "citationid"),) class Resourcesmediaevents(models.Model): - resourceid = models.ForeignKey(Resources, models.DO_NOTHING, db_column='ResourceID', primary_key=True) # Field name made lowercase. - mediaid = models.ForeignKey(Media, models.DO_NOTHING, db_column='MediaID') # Field name made lowercase. - relationshipdescription = models.CharField(db_column='RelationshipDescription', max_length=255, blank=True, null=True) # Field name made lowercase. - pages = models.CharField(db_column='Pages', max_length=50, blank=True, null=True) # Field name made lowercase. - enteredbyname = models.CharField(db_column='EnteredByName', max_length=25, blank=True, null=True) # Field name made lowercase. - enteredbytribe = models.CharField(db_column='EnteredByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbytitle = models.CharField(db_column='EnteredByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - enteredbydate = models.DateTimeField(db_column='EnteredByDate', blank=True, null=True) # Field name made lowercase. - modifiedbyname = models.CharField(db_column='ModifiedByName', max_length=25, blank=True, null=True) # Field name made lowercase. - modifiedbytitle = models.CharField(db_column='ModifiedByTitle', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbytribe = models.CharField(db_column='ModifiedByTribe', max_length=100, blank=True, null=True) # Field name made lowercase. - modifiedbydate = models.DateTimeField(db_column='ModifiedByDate', blank=True, null=True) # Field name made lowercase. + resourceid = models.ForeignKey( + Resources, models.DO_NOTHING, db_column="ResourceID", primary_key=True + ) # Field name made lowercase. + mediaid = models.ForeignKey( + Media, models.DO_NOTHING, db_column="MediaID" + ) # Field name made lowercase. + relationshipdescription = models.CharField( + db_column="RelationshipDescription", max_length=255, blank=True, null=True + ) # Field name made lowercase. + pages = models.CharField( + db_column="Pages", max_length=50, blank=True, null=True + ) # Field name made lowercase. + enteredbyname = models.CharField( + db_column="EnteredByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + enteredbytribe = models.CharField( + db_column="EnteredByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbytitle = models.CharField( + db_column="EnteredByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + enteredbydate = models.DateTimeField( + db_column="EnteredByDate", blank=True, null=True + ) # Field name made lowercase. + modifiedbyname = models.CharField( + db_column="ModifiedByName", max_length=25, blank=True, null=True + ) # Field name made lowercase. + modifiedbytitle = models.CharField( + db_column="ModifiedByTitle", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbytribe = models.CharField( + db_column="ModifiedByTribe", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modifiedbydate = models.DateTimeField( + db_column="ModifiedByDate", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ResourcesMediaEvents' - unique_together = (('resourceid', 'mediaid'),) + db_table = "ResourcesMediaEvents" + unique_together = (("resourceid", "mediaid"),) class Useraccess(models.Model): - accessid = models.AutoField(db_column='AccessID', primary_key=True) # Field name made lowercase. - accesslevel = models.CharField(db_column='AccessLevel', max_length=255, blank=True, null=True) # Field name made lowercase. + accessid = models.AutoField( + db_column="AccessID", primary_key=True + ) # Field name made lowercase. + accesslevel = models.CharField( + db_column="AccessLevel", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'UserAccess' + db_table = "UserAccess" class Users(models.Model): - userid = models.AutoField(db_column='UserID', primary_key=True) # Field name made lowercase. - username = models.CharField(db_column='UserName', max_length=20) # Field name made lowercase. - password = models.CharField(db_column='Password', max_length=20) # Field name made lowercase. - firstname = models.CharField(db_column='FirstName', max_length=255) # Field name made lowercase. - lastname = models.CharField(db_column='LastName', max_length=255) # Field name made lowercase. - affiliation = models.CharField(db_column='Affiliation', max_length=255) # Field name made lowercase. - title = models.CharField(db_column='Title', max_length=255) # Field name made lowercase. - accesslevel = models.IntegerField(db_column='AccessLevel') # Field name made lowercase. + userid = models.AutoField( + db_column="UserID", primary_key=True + ) # Field name made lowercase. + username = models.CharField( + db_column="UserName", max_length=20 + ) # Field name made lowercase. + password = models.CharField( + db_column="Password", max_length=20 + ) # Field name made lowercase. + firstname = models.CharField( + db_column="FirstName", max_length=255 + ) # Field name made lowercase. + lastname = models.CharField( + db_column="LastName", max_length=255 + ) # Field name made lowercase. + affiliation = models.CharField( + db_column="Affiliation", max_length=255 + ) # Field name made lowercase. + title = models.CharField( + db_column="Title", max_length=255 + ) # Field name made lowercase. + accesslevel = models.IntegerField( + db_column="AccessLevel" + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Users' + db_table = "Users" From acb8ba26bd4fb445fa42392ca2c47ec164a6536c Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 15:15:18 -0700 Subject: [PATCH 02/27] apply ruff check --fix --- TEKDB/Accounts/admin.py | 1 - TEKDB/Accounts/models.py | 1 - TEKDB/Accounts/views.py | 1 - TEKDB/Lookup/admin.py | 1 - TEKDB/Lookup/models.py | 1 - TEKDB/Lookup/views.py | 1 - TEKDB/Relationships/admin.py | 1 - TEKDB/Relationships/models.py | 1 - TEKDB/Relationships/tests.py | 1 - TEKDB/Relationships/views.py | 1 - TEKDB/TEKDB/admin.py | 4 +-- TEKDB/TEKDB/context_processors.py | 10 +++--- TEKDB/TEKDB/forms.py | 1 - TEKDB/TEKDB/management/commands/export_db.py | 6 ++-- TEKDB/TEKDB/management/commands/import_shp.py | 8 ++--- TEKDB/TEKDB/management/commands/import_sql.py | 11 +++--- .../0006_trigram_unaccent_extensions.py | 2 +- TEKDB/TEKDB/models.py | 6 ++-- TEKDB/TEKDB/settings.py | 4 +-- TEKDB/TEKDB/tests/test_admin.py | 2 +- TEKDB/TEKDB/tests/test_models.py | 2 -- TEKDB/TEKDB/tests/test_views.py | 1 - TEKDB/TEKDB/urls.py | 2 -- TEKDB/TEKDB/views.py | 10 ++---- TEKDB/TEKDB/widgets.py | 7 +--- TEKDB/configuration/admin.py | 2 +- TEKDB/configuration/models.py | 3 -- TEKDB/configuration/tests.py | 1 - TEKDB/explore/context_processors.py | 36 +++++++++---------- TEKDB/explore/tests/test_views.py | 2 -- TEKDB/explore/views.py | 23 +++++------- TEKDB/login/admin.py | 1 - TEKDB/login/models.py | 1 - TEKDB/login/views.py | 2 -- 34 files changed, 55 insertions(+), 102 deletions(-) diff --git a/TEKDB/Accounts/admin.py b/TEKDB/Accounts/admin.py index 8c38f3f3..b97a94f6 100644 --- a/TEKDB/Accounts/admin.py +++ b/TEKDB/Accounts/admin.py @@ -1,3 +1,2 @@ -from django.contrib import admin # Register your models here. diff --git a/TEKDB/Accounts/models.py b/TEKDB/Accounts/models.py index 71a83623..35e0d648 100644 --- a/TEKDB/Accounts/models.py +++ b/TEKDB/Accounts/models.py @@ -1,3 +1,2 @@ -from django.db import models # Create your models here. diff --git a/TEKDB/Accounts/views.py b/TEKDB/Accounts/views.py index 91ea44a2..b8e4ee02 100644 --- a/TEKDB/Accounts/views.py +++ b/TEKDB/Accounts/views.py @@ -1,3 +1,2 @@ -from django.shortcuts import render # Create your views here. diff --git a/TEKDB/Lookup/admin.py b/TEKDB/Lookup/admin.py index 8c38f3f3..b97a94f6 100644 --- a/TEKDB/Lookup/admin.py +++ b/TEKDB/Lookup/admin.py @@ -1,3 +1,2 @@ -from django.contrib import admin # Register your models here. diff --git a/TEKDB/Lookup/models.py b/TEKDB/Lookup/models.py index 71a83623..35e0d648 100644 --- a/TEKDB/Lookup/models.py +++ b/TEKDB/Lookup/models.py @@ -1,3 +1,2 @@ -from django.db import models # Create your models here. diff --git a/TEKDB/Lookup/views.py b/TEKDB/Lookup/views.py index 91ea44a2..b8e4ee02 100644 --- a/TEKDB/Lookup/views.py +++ b/TEKDB/Lookup/views.py @@ -1,3 +1,2 @@ -from django.shortcuts import render # Create your views here. diff --git a/TEKDB/Relationships/admin.py b/TEKDB/Relationships/admin.py index 8c38f3f3..b97a94f6 100644 --- a/TEKDB/Relationships/admin.py +++ b/TEKDB/Relationships/admin.py @@ -1,3 +1,2 @@ -from django.contrib import admin # Register your models here. diff --git a/TEKDB/Relationships/models.py b/TEKDB/Relationships/models.py index 71a83623..35e0d648 100644 --- a/TEKDB/Relationships/models.py +++ b/TEKDB/Relationships/models.py @@ -1,3 +1,2 @@ -from django.db import models # Create your models here. diff --git a/TEKDB/Relationships/tests.py b/TEKDB/Relationships/tests.py index 7ce503c2..49290204 100644 --- a/TEKDB/Relationships/tests.py +++ b/TEKDB/Relationships/tests.py @@ -1,3 +1,2 @@ -from django.test import TestCase # Create your tests here. diff --git a/TEKDB/Relationships/views.py b/TEKDB/Relationships/views.py index 91ea44a2..b8e4ee02 100644 --- a/TEKDB/Relationships/views.py +++ b/TEKDB/Relationships/views.py @@ -1,3 +1,2 @@ -from django.shortcuts import render # Create your views here. diff --git a/TEKDB/TEKDB/admin.py b/TEKDB/TEKDB/admin.py index 69ffd9de..05e7c533 100644 --- a/TEKDB/TEKDB/admin.py +++ b/TEKDB/TEKDB/admin.py @@ -2,9 +2,9 @@ from django.db.models.functions import Lower from django.contrib import admin from django.contrib.auth.admin import UserAdmin -from django.contrib.gis.admin import GeoModelAdmin, OSMGeoAdmin +from django.contrib.gis.admin import OSMGeoAdmin from django.utils.html import format_html -from django.utils.translation import gettext, gettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from dal import autocomplete from mimetypes import guess_type from django.templatetags.static import static diff --git a/TEKDB/TEKDB/context_processors.py b/TEKDB/TEKDB/context_processors.py index 5dfc2b3f..99de598a 100644 --- a/TEKDB/TEKDB/context_processors.py +++ b/TEKDB/TEKDB/context_processors.py @@ -1,7 +1,7 @@ def search_settings(request=None): try: from django.conf import settings - except Exception as e: + except Exception: try: from TEKDB import settings except Exception as e: @@ -13,7 +13,7 @@ def search_settings(request=None): from configuration.models import Configuration configs = Configuration.objects.all()[0] - except Exception as e: + except Exception: configs = False search_config = { @@ -27,7 +27,7 @@ def search_settings(request=None): "MIN_SEARCH_RANK": settings.MIN_SEARCH_RANK, "MIN_SEARCH_SIMILARITY": settings.MIN_SEARCH_SIMILARITY, } - except Exception as e: + except Exception: print("No MIN_SEARCH_RANK or MIN_SEARCH_SIMILARITY in settings") pass @@ -41,7 +41,7 @@ def search_settings(request=None): if configs.min_search_similarity else search_config["MIN_SEARCH_SIMILARITY"], } - except Exception as e: + except Exception: print("No min_search_rank or min_search_similarity in Configuration") pass @@ -77,7 +77,7 @@ def add_map_default_context(request): MAP_DEFAULTS["map_extent"] = [x for x in config.geometry.extent] break - except Exception as e: + except Exception: pass return MAP_DEFAULTS diff --git a/TEKDB/TEKDB/forms.py b/TEKDB/TEKDB/forms.py index 2a02c5f9..9808785c 100644 --- a/TEKDB/TEKDB/forms.py +++ b/TEKDB/TEKDB/forms.py @@ -2,7 +2,6 @@ from django.contrib.admin.widgets import FilteredSelectMultiple from .models import ( MediaBulkUpload, - Media, Places, Resources, Citations, diff --git a/TEKDB/TEKDB/management/commands/export_db.py b/TEKDB/TEKDB/management/commands/export_db.py index 504a2601..a78fbb18 100644 --- a/TEKDB/TEKDB/management/commands/export_db.py +++ b/TEKDB/TEKDB/management/commands/export_db.py @@ -1,10 +1,8 @@ from django.core import management -from django.core.management.base import BaseCommand, CommandError +from django.core.management.base import BaseCommand from django.conf import settings from datetime import datetime -import io -import os, sys -import shutil +import os from TEKDB.models import * import tempfile import zipfile diff --git a/TEKDB/TEKDB/management/commands/import_shp.py b/TEKDB/TEKDB/management/commands/import_shp.py index a03c96af..e56c1d77 100644 --- a/TEKDB/TEKDB/management/commands/import_shp.py +++ b/TEKDB/TEKDB/management/commands/import_shp.py @@ -1,5 +1,5 @@ -from django.core.management.base import BaseCommand, CommandError -import os, sys +from django.core.management.base import BaseCommand +import os # from TEKDB.models import * # from TEKDB.settings import * @@ -12,7 +12,6 @@ def add_arguments(self, parser): def handle(self, *args, **options): from django.contrib.gis.gdal import DataSource - import pytz from pytz import timezone from datetime import datetime @@ -36,7 +35,7 @@ def handle(self, *args, **options): print("SRID: %s" % layer.srs.srid) fields = layer.fields - if not "PlaceID" in fields: + if "PlaceID" not in fields: print( "This is not a valid shapefile - no PlaceID field found. Available given: %s" % str(fields) @@ -46,7 +45,6 @@ def handle(self, *args, **options): from TEKDB.models import ( Places, Locality, - LookupPlanningUnit, LookupHabitat, LookupLocalityType, ) diff --git a/TEKDB/TEKDB/management/commands/import_sql.py b/TEKDB/TEKDB/management/commands/import_sql.py index 0e7ff68e..7c01d746 100644 --- a/TEKDB/TEKDB/management/commands/import_sql.py +++ b/TEKDB/TEKDB/management/commands/import_sql.py @@ -1,6 +1,6 @@ -from django.core.management.base import BaseCommand, CommandError +from django.core.management.base import BaseCommand from TEKDB.models import * -import os, sys +import os from TEKDB.settings import * from django.utils import timezone from django.contrib.auth.models import Group, Permission @@ -86,7 +86,6 @@ def get_model_list(self): ] def create_sql_dict(self, infile): - import string import re import shlex @@ -237,7 +236,7 @@ def create_sql_dict(self, infile): ipdb.set_trace() pk_value = values[pk_index] - if not pk_value in lookup_values[model].keys(): + if pk_value not in lookup_values[model].keys(): lookup_values[model][pk_value] = str(record_id) lookup_indices[model] = record_id + 1 @@ -295,7 +294,7 @@ def create_sql_dict(self, infile): # get model of lookup fk lookup_model = lookup_dependencies[model][lookup] # Check to be sure lookup_value exists and has an associated ID - if not char_pk_value in lookup_values[lookup_model].keys(): + if char_pk_value not in lookup_values[lookup_model].keys(): lookup_record_id = lookup_indices[lookup_model] lookup_values[lookup_model][char_pk_value] = str( lookup_record_id @@ -367,7 +366,7 @@ def delete_old_migrations(self, MANAGE_DIR): try: os.remove(str(migration_file)) print("%s deleted" % migration_file.name) - except OSError as e: + except OSError: pass def rebuild_db(self, dbname, manage_py): diff --git a/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py b/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py index 32a20a25..96f0bc99 100644 --- a/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py +++ b/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py @@ -1,5 +1,5 @@ from django.contrib.postgres.operations import TrigramExtension, UnaccentExtension -from django.db import migrations, models +from django.db import migrations class Migration(migrations.Migration): diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index e8b3d135..5f81d2ec 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -685,7 +685,7 @@ def get_response_format(self): category_name = "Place" try: feature = self.geometry.json - except AttributeError as e: + except AttributeError: feature = None return { "id": self.pk, @@ -2214,7 +2214,7 @@ def __str__(self): if str(self.referencetype) == "Interview": try: interviewee = People.objects.get(pk=self.intervieweeid.pk) - except Exception as e: + except Exception: interviewee = "Unknown Interviewee" # return '[%s] %s (%d) - %d' % (str(self.referencetype), interviewee, self.year, self.pk) return ( @@ -3873,7 +3873,7 @@ def delete(self, *args, **kwargs): resourceid=self.altresourceid, altresourceid=self.resourceid ) pair.delete() - except Exception as e: + except Exception: pass # This simple relationship is tricky due to both fields being FKs to the same model diff --git a/TEKDB/TEKDB/settings.py b/TEKDB/TEKDB/settings.py index eb72277f..5d32ec0e 100644 --- a/TEKDB/TEKDB/settings.py +++ b/TEKDB/TEKDB/settings.py @@ -16,7 +16,7 @@ try: GDAL_LIBRARY_PATH = glob("/usr/lib/libgdal.so.*")[0] GEOS_LIBRARY_PATH = glob("/usr/lib/libgeos_c.so.*")[0] -except IndexError as e: +except IndexError: pass @@ -320,7 +320,7 @@ try: from TEKDB.local_settings import * -except Exception as e: +except Exception: print( "ERROR: Unable to load local_settings.py. This is expected for docker deployment" ) diff --git a/TEKDB/TEKDB/tests/test_admin.py b/TEKDB/TEKDB/tests/test_admin.py index d2627206..a5de7147 100644 --- a/TEKDB/TEKDB/tests/test_admin.py +++ b/TEKDB/TEKDB/tests/test_admin.py @@ -1,5 +1,5 @@ # from django.conf import settings -from django.test import TestCase, RequestFactory +from django.test import RequestFactory from django.core.files.uploadedfile import SimpleUploadedFile from django.contrib.auth import get_user_model from django.contrib.admin.sites import AdminSite diff --git a/TEKDB/TEKDB/tests/test_models.py b/TEKDB/TEKDB/tests/test_models.py index 6bd40573..936efb50 100644 --- a/TEKDB/TEKDB/tests/test_models.py +++ b/TEKDB/TEKDB/tests/test_models.py @@ -1,7 +1,5 @@ from django.test import TestCase from TEKDB.models import * -from django.utils import timezone -from django.urls import reverse # from .forms import * from django.conf import settings diff --git a/TEKDB/TEKDB/tests/test_views.py b/TEKDB/TEKDB/tests/test_views.py index 86d998b0..c04dc313 100644 --- a/TEKDB/TEKDB/tests/test_views.py +++ b/TEKDB/TEKDB/tests/test_views.py @@ -4,7 +4,6 @@ from django.contrib.auth.models import AnonymousUser from django.contrib.contenttypes.models import ContentType from django.core.files.uploadedfile import InMemoryUploadedFile -from django.db import connection from django.test import TestCase, TransactionTestCase from django.test.client import RequestFactory from django.urls import reverse diff --git a/TEKDB/TEKDB/urls.py b/TEKDB/TEKDB/urls.py index b6e7b8ce..d28612d1 100644 --- a/TEKDB/TEKDB/urls.py +++ b/TEKDB/TEKDB/urls.py @@ -28,10 +28,8 @@ from django.contrib import admin from django.contrib.auth import views as auth_views from login import views as login_views -from dal import autocomplete from . import views -from . import models urlpatterns = [ # url(r'^login/', include('login.urls')), diff --git a/TEKDB/TEKDB/views.py b/TEKDB/TEKDB/views.py index f8e66a6a..cf2d9119 100644 --- a/TEKDB/TEKDB/views.py +++ b/TEKDB/TEKDB/views.py @@ -4,12 +4,9 @@ from django.conf import settings from django.contrib.auth.decorators import user_passes_test, permission_required from django.core import management -from django.core.management.commands import loaddata, dumpdata from django.db import connection from django.db.models import Q -from django.db.utils import OperationalError -from django.http import HttpResponse, Http404, FileResponse, JsonResponse -from django.shortcuts import render, redirect +from django.http import HttpResponse, FileResponse, JsonResponse import io import os import shutil @@ -60,7 +57,6 @@ def get_all_file_paths(directory, cwd=False): # Only Admins! @user_passes_test(lambda u: u.is_superuser) def ExportDatabase(request, test=False): - from django.conf import settings datestamp = datetime.now().strftime("%Y%m%d") tmp_zip = tempfile.NamedTemporaryFile( @@ -108,7 +104,6 @@ def getDBTruncateCommand(): # Only Admins! @user_passes_test(lambda u: u.is_superuser) def ImportDatabase(request): - from django.conf import settings status_code = 500 status_message = "An unknown error occurred." @@ -266,7 +261,7 @@ def getPlacesGeoJSON(request): try: config = Configuration.objects.all()[0] max_results = config.max_results_returned - except Exception as e: + except Exception: from TEKDB.settings import DEFAULT_MAXIMUM_RESULTS max_results = DEFAULT_MAXIMUM_RESULTS @@ -378,7 +373,6 @@ def get_queryset(self): class ResourceAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): - from django.db.models.functions import Lower if not self.request.user.is_authenticated: return Resources.objects.none() diff --git a/TEKDB/TEKDB/widgets.py b/TEKDB/TEKDB/widgets.py index d6666c59..62a5a162 100644 --- a/TEKDB/TEKDB/widgets.py +++ b/TEKDB/TEKDB/widgets.py @@ -1,15 +1,10 @@ import logging -from django.conf import settings -from django.contrib.gis import gdal from django.contrib.gis.geometry import json_regex -from django.contrib.gis.geos import GEOSException, GEOSGeometry -from django.forms.widgets import Widget -from django.utils import translation logger = logging.getLogger("django.contrib.gis") -from django.contrib.gis.forms.widgets import OpenLayersWidget, BaseGeometryWidget +from django.contrib.gis.forms.widgets import BaseGeometryWidget # class OpenLayersWidget(BaseGeometryWidget): diff --git a/TEKDB/configuration/admin.py b/TEKDB/configuration/admin.py index 18c15d3a..6b876787 100644 --- a/TEKDB/configuration/admin.py +++ b/TEKDB/configuration/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin from django.forms import ModelForm -from TEKDB.widgets import OpenLayers6Widget, OpenLayers6PolygonWidget +from TEKDB.widgets import OpenLayers6PolygonWidget from reversion.admin import VersionAdmin from configuration.models import Configuration diff --git a/TEKDB/configuration/models.py b/TEKDB/configuration/models.py index f18d92a7..64839054 100644 --- a/TEKDB/configuration/models.py +++ b/TEKDB/configuration/models.py @@ -1,11 +1,8 @@ from django.db import models from django.contrib.gis.db.models import GeometryField -from django.db.models.signals import post_save -from django.dispatch import receiver from tinymce.models import HTMLField from colorfield.fields import ColorField from django.conf import settings -from TEKDB.widgets import OpenLayers6Widget # Create your models here. diff --git a/TEKDB/configuration/tests.py b/TEKDB/configuration/tests.py index 7ce503c2..49290204 100644 --- a/TEKDB/configuration/tests.py +++ b/TEKDB/configuration/tests.py @@ -1,3 +1,2 @@ -from django.test import TestCase # Create your tests here. diff --git a/TEKDB/explore/context_processors.py b/TEKDB/explore/context_processors.py index 34fe0a27..af175970 100644 --- a/TEKDB/explore/context_processors.py +++ b/TEKDB/explore/context_processors.py @@ -1,7 +1,7 @@ def explore_context(request): try: from django.conf import settings - except Exception as e: + except Exception: try: from TEKDB import settings except Exception as e: @@ -13,7 +13,7 @@ def explore_context(request): from configuration.models import Configuration configs = Configuration.objects.all()[0] - except Exception as e: + except Exception: configs = False ###################################### @@ -27,14 +27,14 @@ def explore_context(request): try: if len(settings.PROJ_LOGO_TEXT) > 0: project_logo_text = settings.PROJ_LOGO_TEXT - except Exception as e: + except Exception: pass if configs: try: project_logo_text = configs.preferredInitialism project_text_placement = configs.preferredInitialismPlacement - except Exception as e: + except Exception: pass ###################################### @@ -60,7 +60,7 @@ def explore_context(request): try: if key in settings.PROJ_CSS.keys(): proj_css[key] = settings.PROJ_CSS[key] - except Exception as e: + except Exception: pass if configs: @@ -69,7 +69,7 @@ def explore_context(request): try: if hasattr(configs, key) and getattr(configs, key): proj_css[key] = getattr(configs, key) - except Exception as e: + except Exception: pass ###################################### @@ -90,7 +90,7 @@ def explore_context(request): try: if key in settings.PROJ_ICONS.keys(): proj_icons[key] = settings.PROJ_ICONS[key] - except Exception as e: + except Exception: pass if configs: @@ -114,7 +114,7 @@ def explore_context(request): proj_icons[key] = icon_override_select else: proj_icons[key] = getattr(configs, key) - except Exception as e: + except Exception: pass ###################################### @@ -128,13 +128,13 @@ def explore_context(request): try: if settings.PROJ_IMAGE_SELECT and len(settings.PROJ_IMAGE_SELECT) > 0: project_image_select = settings.PROJ_IMAGE_SELECT - except ImportError as e: + except ImportError: pass try: if settings.PROJ_IMAGE_ATTR and len(settings.PROJ_IMAGE_ATTR) > 0: home_image_attribution = settings.PROJ_IMAGE_ATTR - except ImportError as e: + except ImportError: pass if configs: @@ -148,7 +148,7 @@ def explore_context(request): rel_filename = abs_project_image_filename.split(settings.MEDIA_ROOT)[-1] project_image_select = "{}{}".format(settings.MEDIA_URL, rel_filename) home_image_attribution = False - except Exception as e: + except Exception: pass try: @@ -156,7 +156,7 @@ def explore_context(request): configs, "homepage_image_attribution" ): home_image_attribution = getattr(configs, "homepage_image_attribution") - except Exception as e: + except Exception: pass ###################################### @@ -170,15 +170,15 @@ def explore_context(request): if settings: try: home_font_color = settings.HOME_FONT_COLOR - except Exception as e: + except Exception: pass try: homepage_left_background = settings.HOME_LEFT_BACKGROUND - except Exception as e: + except Exception: pass try: homepage_right_background = settings.HOME_RIGHT_BACKGROUND - except Exception as e: + except Exception: pass if configs: @@ -187,14 +187,14 @@ def explore_context(request): configs, "homepage_font_color" ): home_font_color = getattr(configs, "homepage_font_color") - except Exception as e: + except Exception: pass try: if hasattr(configs, "homepage_left_background") and getattr( configs, "homepage_left_background" ): homepage_left_background = getattr(configs, "homepage_left_background") - except Exception as e: + except Exception: pass try: if hasattr(configs, "homepage_right_background") and getattr( @@ -203,7 +203,7 @@ def explore_context(request): homepage_right_background = getattr( configs, "homepage_right_background" ) - except Exception as e: + except Exception: pass from TEKDB.settings import RECORD_ICONS diff --git a/TEKDB/explore/tests/test_views.py b/TEKDB/explore/tests/test_views.py index 7520e18e..1962e0b4 100644 --- a/TEKDB/explore/tests/test_views.py +++ b/TEKDB/explore/tests/test_views.py @@ -1,7 +1,6 @@ from base64 import b64encode from django.conf import settings -from django.db import connection from django.test import TestCase from django.test.client import RequestFactory from django.urls import reverse @@ -27,7 +26,6 @@ def setUp(self): def test_multi_word_search(self): # Test that the query string submitted matches the query string returned to the client/user - from explore.views import search from TEKDB.models import Users query_string = "A multi word search" diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 053b0367..6e0e01e8 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -13,7 +13,7 @@ def home(request): page_content = page_content_obj.html_content else: page_content = page_content_obj.content - except Exception as e: + except Exception: page_content = "

    Welcome

    Set Welcome Page Content In Admin

    " context = { @@ -33,7 +33,7 @@ def about(request): page_content = page_content_obj.html_content else: page_content = page_content_obj.content - except Exception as e: + except Exception: page_content = "

    About

    Set About Page Content In Admin

    " context = { "page": "about", @@ -51,7 +51,7 @@ def help(request): page_content = page_content_obj.html_content else: page_content = page_content_obj.content - except Exception as e: + except Exception: page_content = "

    Help

    Set Help Page Content In Admin

    " context = { "page": "help", @@ -153,7 +153,6 @@ def get_project_geography(): @login_required def get_by_model_id(request, model_type, id): - from TEKDB.settings import RECORD_ICONS state = "?%s" % request.GET.urlencode() back_link = "%s%s" % ("/search/", state) @@ -163,7 +162,7 @@ def get_by_model_id(request, model_type, id): model = models[0] obj = model.objects.get(pk=int(id)) record_dict = obj.get_record_dict(request.user, 3857) - except Exception as e: + except Exception: obj = None record_dict = { "name": "Error retrieving %s record with ID %s" % (model_type, id) @@ -225,7 +224,7 @@ def download_media_file(request, model_type, id): try: model = models[0] obj = model.objects.get(pk=id) - except Exception as e: + except Exception: obj = None else: obj = None @@ -233,7 +232,6 @@ def download_media_file(request, model_type, id): media = obj.media() if media: import os - from django.utils.encoding import smart_str from TEKDB.settings import MEDIA_ROOT file_path = os.path.join(MEDIA_ROOT, media["file"]) @@ -311,7 +309,7 @@ def export_record_csv(record_dict, filename): def export_record_xls(record_dict, filename): - import xlsxwriter, io + import io from xlsxwriter.workbook import Workbook output = io.BytesIO() @@ -395,8 +393,6 @@ def export_by_model_id(request, model_type, id, format): @login_required def search(request): import json - import TEKDB - from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import render all_categories = ["places", "resources", "activities", "sources", "media"] @@ -405,7 +401,7 @@ def search(request): if "category" in request.POST.keys(): try: categories = request.POST["category"].split(",") - except Exception as e: + except Exception: categories = all_categories pass @@ -507,7 +503,7 @@ def search(request): try: config = Configuration.objects.all()[0] max_results = config.max_results_returned - except Exception as e: + except Exception: from TEKDB.settings import DEFAULT_MAXIMUM_RESULTS max_results = DEFAULT_MAXIMUM_RESULTS @@ -550,7 +546,6 @@ def search(request): def getResults(keyword_string, categories): - import TEKDB if keyword_string == None: keyword_string = "" @@ -602,7 +597,7 @@ def download(request): rows.append(row_dict) if format_type == "xlsx": - import xlsxwriter, io + import io from xlsxwriter.workbook import Workbook output = io.BytesIO() diff --git a/TEKDB/login/admin.py b/TEKDB/login/admin.py index 8c38f3f3..b97a94f6 100644 --- a/TEKDB/login/admin.py +++ b/TEKDB/login/admin.py @@ -1,3 +1,2 @@ -from django.contrib import admin # Register your models here. diff --git a/TEKDB/login/models.py b/TEKDB/login/models.py index 71a83623..35e0d648 100644 --- a/TEKDB/login/models.py +++ b/TEKDB/login/models.py @@ -1,3 +1,2 @@ -from django.db import models # Create your models here. diff --git a/TEKDB/login/views.py b/TEKDB/login/views.py index 68785c6d..3f92ad70 100644 --- a/TEKDB/login/views.py +++ b/TEKDB/login/views.py @@ -1,10 +1,8 @@ # Create your views here. -from django.http import HttpResponse from django.http.response import JsonResponse from django.shortcuts import render from django.contrib.auth import authenticate from django.contrib.auth import login as auth_login -from django.contrib.auth import logout def index(request): From a8a894e6c56737a998e90a6b93e07b6a7ba5a32d Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 15:40:18 -0700 Subject: [PATCH 03/27] resolve E711 errors add rule to safe fixes --- TEKDB/TEKDB/admin.py | 8 ++++---- TEKDB/TEKDB/models.py | 40 ++++++++++++++++++++-------------------- TEKDB/explore/views.py | 8 ++++---- TEKDB/pyproject.toml | 5 ++++- 4 files changed, 32 insertions(+), 29 deletions(-) diff --git a/TEKDB/TEKDB/admin.py b/TEKDB/TEKDB/admin.py index 05e7c533..dbd13029 100644 --- a/TEKDB/TEKDB/admin.py +++ b/TEKDB/TEKDB/admin.py @@ -372,7 +372,7 @@ class RecordAdminProxy(VersionAdmin): def save_model(self, request, obj, form, change): instance = form.save(commit=False) if hasattr(instance, "enteredbyname"): - if instance.enteredbyname == None: + if instance.enteredbyname is None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation instance.enteredbytitle = request.user.title @@ -386,7 +386,7 @@ def save_formset(self, request, form, formset, change): instances = formset.save(commit=False) for instance in instances: if hasattr(instance, "enteredbyname"): - if instance.enteredbyname == None: + if instance.enteredbyname is None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation instance.enteredbytitle = request.user.title @@ -411,7 +411,7 @@ class NestedRecordAdminProxy(nested_admin.NestedModelAdmin): def save_model(self, request, obj, form, change): instance = form.save(commit=False) if hasattr(instance, "enteredbyname"): - if instance.enteredbyname == None: + if instance.enteredbyname is None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation instance.enteredbytitle = request.user.title @@ -425,7 +425,7 @@ def save_formset(self, request, form, formset, change): instances = formset.save(commit=False) for instance in instances: if hasattr(instance, "enteredbyname"): - if instance.enteredbyname == None: + if instance.enteredbyname is None: instance.enteredbyname = request.user.username instance.enteredbytribe = request.user.affiliation instance.enteredbytitle = request.user.title diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index 5f81d2ec..4e35d490 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -1246,20 +1246,20 @@ def data(self): } ) if ( - not self.relationshipdescription == None + self.relationshipdescription is not None and len(self.relationshipdescription) > 0 ): data_list.append({"key": "excerpt", "value": self.relationshipdescription}) if self.partused: data_list.append({"key": "part used", "value": str(self.partused)}) data_list.append({"key": "used for barter", "value": barter}) - if not self.season == None: + if self.season is not None: data_list.append({"key": "season", "value": str(self.season)}) - if not self.timing == None: + if self.timing is not None: data_list.append({"key": "timing", "value": str(self.timing)}) if not months == "None": data_list.append({"key": "months", "value": months}) - if not self.year == None: + if self.year is not None: data_list.append({"key": "year", "value": str(self.year)}) return data_list @@ -1461,7 +1461,7 @@ def __unicode__(self): ) def __str__(self): - if not self.activityshortdescription == None: + if self.activityshortdescription is not None: activity_name = self.activityshortdescription else: activity_name = "Unspecified Activity" @@ -1615,34 +1615,34 @@ def data(self): } ) if ( - not self.relationshipdescription == None + self.relationshipdescription is not None and len(self.relationshipdescription) > 0 ): data_list.append({"key": "excerpt", "value": self.relationshipdescription}) - if not self.partused == None: + if self.partused is not None: data_list.append({"key": "part used", "value": str(self.partused)}) - if not self.activityshortdescription == None: + if self.activityshortdescription is not None: data_list.append( {"key": "activity type", "value": str(self.activityshortdescription)} ) if ( - not self.activitylongdescription == None + self.activitylongdescription is not None and not self.activitylongdescription == "" ): data_list.append( {"key": "full description", "value": self.activitylongdescription} ) - if not self.participants == None: + if self.participants is not None: data_list.append({"key": "participants", "value": str(self.participants)}) - if not self.technique == None: + if self.technique is not None: data_list.append({"key": "technique", "value": str(self.technique)}) - if not self.gear == None: + if self.gear is not None: data_list.append({"key": "gear", "value": self.gear}) - if not self.customaryuse == None: + if self.customaryuse is not None: data_list.append({"key": "customary use", "value": str(self.customaryuse)}) - if not self.timing == None: + if self.timing is not None: data_list.append({"key": "timing", "value": str(self.timing)}) - if not self.timingdescription == None: + if self.timingdescription is not None: data_list.append( {"key": "timing description", "value": self.timingdescription} ) @@ -2041,9 +2041,9 @@ def relationships(self): relationship_list = [] if self.referencetype.documenttype == "Interview": people = [] - if not self.intervieweeid == None: + if self.intervieweeid is not None: people.append(self.intervieweeid.get_query_json()) - if not self.interviewerid == None: + if self.interviewerid is not None: people.append(self.interviewerid.get_query_json()) if len(people) > 0: relationship_list.append({"key": "People", "value": people}) @@ -2935,7 +2935,7 @@ def restrict_data(self, user): return False def limited_data(self): - if self.mediafile == None: + if self.mediafile is None: mediafile = "None" else: mediafile = "Please ask an administrator if you need access to this file." @@ -2948,7 +2948,7 @@ def limited_data(self): ] def media(self): - if not self.medialink == None or not self.mediafile == None: + if self.medialink is not None or self.mediafile is not None: return { "file": str(self.mediafile), "type": str(self.mediatype), @@ -2959,7 +2959,7 @@ def media(self): def data(self): from TEKDB.settings import MEDIA_URL - if self.mediafile == None: + if self.mediafile is None: mediafile = "None" else: mediafile = "%s" % ( diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 6e0e01e8..4eea34e3 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -203,7 +203,7 @@ def get_by_model_id(request, model_type, id): "state": state, } - if "map" in record_dict.keys() and not record_dict["map"] == None: + if "map" in record_dict.keys() and record_dict["map"] is not None: DATABASE_GEOGRAPHY = get_project_geography() context["default_lon"] = DATABASE_GEOGRAPHY["default_lon"] context["default_lat"] = DATABASE_GEOGRAPHY["default_lat"] @@ -491,11 +491,11 @@ def search(request): items_per_page = len(resultlist) page = request.GET.get("page") - if page == None: + if page is None: page = 1 view = request.GET.get("view") - if view == None: + if view is None: view = "list" DATABASE_GEOGRAPHY = get_project_geography() @@ -547,7 +547,7 @@ def search(request): def getResults(keyword_string, categories): - if keyword_string == None: + if keyword_string is None: keyword_string = "" resultlist = [] diff --git a/TEKDB/pyproject.toml b/TEKDB/pyproject.toml index e5afa54e..26261a0e 100644 --- a/TEKDB/pyproject.toml +++ b/TEKDB/pyproject.toml @@ -1,2 +1,5 @@ [tool.ruff.format] -quote-style = "double" \ No newline at end of file +quote-style = "double" + +[tool.ruff.lint] +extend-safe-fixes = ["E711"] \ No newline at end of file From e062b0951b51273bb68377a7ced4053a6bc94c0f Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:11:57 -0700 Subject: [PATCH 04/27] resolve F403 errors --- TEKDB/TEKDB/admin.py | 47 +++++++++++++++++-- TEKDB/TEKDB/management/commands/export_db.py | 1 - TEKDB/TEKDB/management/commands/import_sql.py | 4 +- TEKDB/TEKDB/settings.py | 2 +- TEKDB/TEKDB/tests/test_models.py | 38 ++++++++++++++- TEKDB/TEKDB/tests/test_views.py | 11 ++++- TEKDB/TEKDB/views.py | 12 +++-- TEKDB/explore/admin.py | 2 +- TEKDB/explore/views.py | 2 +- 9 files changed, 103 insertions(+), 16 deletions(-) diff --git a/TEKDB/TEKDB/admin.py b/TEKDB/TEKDB/admin.py index dbd13029..497cbc54 100644 --- a/TEKDB/TEKDB/admin.py +++ b/TEKDB/TEKDB/admin.py @@ -15,15 +15,54 @@ from reversion.admin import VersionAdmin from .forms import MediaBulkUploadForm -from .models import * +from .models import ( + ResourcesActivityEvents, + Media, + Citations, + Places, + LookupMediaType, + LookupParticipants, + LookupTechniques, + People, + LookupReferenceType, + LookupPlanningUnit, + LookupHabitat, + LookupTribe, + PlacesResourceEvents, + MediaCitationEvents, + PlacesCitationEvents, + PlacesMediaEvents, + PlacesResourceCitationEvents, + PlacesResourceMediaEvents, + ResourceActivityMediaEvents, + ResourceActivityCitationEvents, + ResourceResourceEvents, + ResourcesCitationEvents, + ResourcesMediaEvents, + PlaceAltIndigenousName, + ResourceAltIndigenousName, + LocalityPlaceResourceEvent, + LocalityGISSelections, + MediaBulkUpload, + LookupPartUsed, + LookupSeason, + LookupTiming, + LookupActivity, + LookupResourceGroup, + Resources, + LookupCustomaryUse, + LookupAuthorType, + UserAccess, + LookupUserInfo, + Users, +) from TEKDB.settings import ADMIN_SITE_HEADER - -admin.site.site_header = ADMIN_SITE_HEADER - from TEKDB.settings import BASE_DIR from TEKDB.widgets import OpenLayers6Widget +admin.site.site_header = ADMIN_SITE_HEADER + ############# ### FORMS ### diff --git a/TEKDB/TEKDB/management/commands/export_db.py b/TEKDB/TEKDB/management/commands/export_db.py index a78fbb18..f5babdad 100644 --- a/TEKDB/TEKDB/management/commands/export_db.py +++ b/TEKDB/TEKDB/management/commands/export_db.py @@ -3,7 +3,6 @@ from django.conf import settings from datetime import datetime import os -from TEKDB.models import * import tempfile import zipfile diff --git a/TEKDB/TEKDB/management/commands/import_sql.py b/TEKDB/TEKDB/management/commands/import_sql.py index 7c01d746..cc816eef 100644 --- a/TEKDB/TEKDB/management/commands/import_sql.py +++ b/TEKDB/TEKDB/management/commands/import_sql.py @@ -1,7 +1,7 @@ from django.core.management.base import BaseCommand -from TEKDB.models import * import os -from TEKDB.settings import * +from TEKDB.models import * # noqa: F403 +from TEKDB.settings import * # noqa: F403 from django.utils import timezone from django.contrib.auth.models import Group, Permission from django.contrib.contenttypes.models import ContentType diff --git a/TEKDB/TEKDB/settings.py b/TEKDB/TEKDB/settings.py index 5d32ec0e..588a1fb9 100644 --- a/TEKDB/TEKDB/settings.py +++ b/TEKDB/TEKDB/settings.py @@ -319,7 +319,7 @@ DEFAULT_MAXIMUM_RESULTS = 500 try: - from TEKDB.local_settings import * + from TEKDB.local_settings import * # noqa: F403 except Exception: print( "ERROR: Unable to load local_settings.py. This is expected for docker deployment" diff --git a/TEKDB/TEKDB/tests/test_models.py b/TEKDB/TEKDB/tests/test_models.py index 936efb50..7702c6c8 100644 --- a/TEKDB/TEKDB/tests/test_models.py +++ b/TEKDB/TEKDB/tests/test_models.py @@ -1,5 +1,41 @@ from django.test import TestCase -from TEKDB.models import * +from TEKDB.models import ( + Places, + Resources, + ResourcesActivityEvents, + Citations, + Media, + MediaBulkUpload, + ResourceActivityMediaEvents, + ResourceActivityCitationEvents, + MediaCitationEvents, + PlacesResourceMediaEvents, + PlacesResourceCitationEvents, + PlaceAltIndigenousName, + PlacesMediaEvents, + PlacesResourceEvents, + ResourcesCitationEvents, + PlacesCitationEvents, + ResourceAltIndigenousName, + ResourcesMediaEvents, + ResourceResourceEvents, + LookupActivity, + LookupAuthorType, + LookupCustomaryUse, + LookupHabitat, + LookupPlanningUnit, + LookupReferenceType, + LookupMediaType, + LookupParticipants, + LookupPartUsed, + People, + LookupResourceGroup, + LookupSeason, + LookupTechniques, + LookupTiming, + LookupTribe, + LookupUserInfo, +) # from .forms import * from django.conf import settings diff --git a/TEKDB/TEKDB/tests/test_views.py b/TEKDB/TEKDB/tests/test_views.py index c04dc313..aefabc9c 100644 --- a/TEKDB/TEKDB/tests/test_views.py +++ b/TEKDB/TEKDB/tests/test_views.py @@ -16,7 +16,16 @@ import shutil # from TEKDB.forms import * -from TEKDB.models import * +from TEKDB.models import ( + Citations, + LookupReferenceType, + Media, + Places, + PlacesResourceEvents, + Resources, + ResourcesActivityEvents, + Users, +) from TEKDB.views import ExportDatabase, ImportDatabase import tempfile import zipfile diff --git a/TEKDB/TEKDB/views.py b/TEKDB/TEKDB/views.py index cf2d9119..55ab4f6b 100644 --- a/TEKDB/TEKDB/views.py +++ b/TEKDB/TEKDB/views.py @@ -10,7 +10,14 @@ import io import os import shutil -from TEKDB.models import * +from TEKDB.models import ( + Citations, + Media, + Places, + PlacesResourceEvents, + Resources, + ResourcesActivityEvents, +) import tempfile import zipfile from configuration.models import Configuration @@ -57,7 +64,6 @@ def get_all_file_paths(directory, cwd=False): # Only Admins! @user_passes_test(lambda u: u.is_superuser) def ExportDatabase(request, test=False): - datestamp = datetime.now().strftime("%Y%m%d") tmp_zip = tempfile.NamedTemporaryFile( delete=False, prefix="{}_backup_".format(datestamp), suffix=".zip" @@ -104,7 +110,6 @@ def getDBTruncateCommand(): # Only Admins! @user_passes_test(lambda u: u.is_superuser) def ImportDatabase(request): - status_code = 500 status_message = "An unknown error occurred." if not request.method == "POST": @@ -373,7 +378,6 @@ def get_queryset(self): class ResourceAutocompleteView(autocomplete.Select2QuerySetView): def get_queryset(self): - if not self.request.user.is_authenticated: return Resources.objects.none() qs = Resources.objects.all() diff --git a/TEKDB/explore/admin.py b/TEKDB/explore/admin.py index dc0fa4e1..55ac4ed8 100644 --- a/TEKDB/explore/admin.py +++ b/TEKDB/explore/admin.py @@ -1,4 +1,4 @@ from django.contrib import admin -from .models import * +from TEKDB.models import PageContent admin.site.register(PageContent) diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 4eea34e3..41b49108 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -1,7 +1,7 @@ from django.contrib.auth.decorators import login_required from django.http import HttpResponse, Http404 from django.shortcuts import render -from .models import * +from .models import PageContent from configuration.models import Configuration From e445f8c4fafd46b08abf2820d56cf3ad62f10e27 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:30:15 -0700 Subject: [PATCH 05/27] resolve F841 errors --- TEKDB/TEKDB/management/commands/import_shp.py | 3 --- TEKDB/TEKDB/tests/test_models.py | 5 ++++- TEKDB/TEKDB/tests/test_views.py | 5 +---- TEKDB/TEKDB/views.py | 1 - TEKDB/explore/views.py | 4 +--- 5 files changed, 6 insertions(+), 12 deletions(-) diff --git a/TEKDB/TEKDB/management/commands/import_shp.py b/TEKDB/TEKDB/management/commands/import_shp.py index e56c1d77..559df427 100644 --- a/TEKDB/TEKDB/management/commands/import_shp.py +++ b/TEKDB/TEKDB/management/commands/import_shp.py @@ -17,9 +17,6 @@ def handle(self, *args, **options): FILE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) MANAGE_DIR = os.path.join(FILE_DIR, "..", "..") - import_output = os.path.join(MANAGE_DIR, "scripts", "import_shp_output.txt") - import_error = os.path.join(MANAGE_DIR, "scripts", "import_shp_output.txt") - manage_py = os.path.join(MANAGE_DIR, "manage.py") infile = os.path.normpath(os.path.join(MANAGE_DIR, options["infile"][0])) if not os.path.exists(infile): print("File not found: %s" % infile) diff --git a/TEKDB/TEKDB/tests/test_models.py b/TEKDB/TEKDB/tests/test_models.py index 7702c6c8..c8803da6 100644 --- a/TEKDB/TEKDB/tests/test_models.py +++ b/TEKDB/TEKDB/tests/test_models.py @@ -285,7 +285,10 @@ def test_resources_search(self): # sea cukes and skunk cabbage only have 'chiton' in their genus or species name. They should not be present. self.assertEqual(advanced_results.count(), 10) for resource in advanced_results: - self.assertTrue(resource.pk not in [skunk_cabbage_id, sea_cucumber_id]) + self.assertTrue( + resource.pk + not in [gumboot_chiton_id, skunk_cabbage_id, sea_cucumber_id] + ) fields = ["genus", "species"] advanced_results = Resources.keyword_search(keyword, fields, fk_fields) # 'chiton' only has chiton in it's commonname. It should not be present. diff --git a/TEKDB/TEKDB/tests/test_views.py b/TEKDB/TEKDB/tests/test_views.py index aefabc9c..b7300637 100644 --- a/TEKDB/TEKDB/tests/test_views.py +++ b/TEKDB/TEKDB/tests/test_views.py @@ -26,7 +26,7 @@ ResourcesActivityEvents, Users, ) -from TEKDB.views import ExportDatabase, ImportDatabase +from TEKDB.views import ExportDatabase import tempfile import zipfile @@ -71,7 +71,6 @@ def get_export_file_from_response(response, tempdir=False, datestamp=False): if not datestamp: datestamp = datetime.now().strftime("%Y%m%d") zipname = join(tempdir, "{}_backup.zip".format(datestamp)) - fileresponse = bytes("test", "utf-8") stream = b"".join(response.streaming_content) with open(zipname, "wb") as f: f.write(stream) @@ -128,7 +127,6 @@ def get_perm_map(import_perms): def update_json_content_types(json_dict): import_cts = [] import_perms = [] - len_json_dict = len(json_dict) for record in json_dict: if record["model"] == "contenttypes.contenttype": import_cts.append(record) @@ -498,7 +496,6 @@ def setUp(cls): cls.import_request.FILES["import_file"] = import_file cls.import_request.user = Users.objects.get(username="admin") - response = ImportDatabase(cls.import_request) def test_import(self): self.assertEqual(Resources.objects.all().count(), self.old_resources_count) diff --git a/TEKDB/TEKDB/views.py b/TEKDB/TEKDB/views.py index 55ab4f6b..74600f4e 100644 --- a/TEKDB/TEKDB/views.py +++ b/TEKDB/TEKDB/views.py @@ -202,7 +202,6 @@ def ImportDatabase(request): target_fixture.write( contents.decode(source_encoding).encode("utf-8") ) - reencoded = True fixture_file_path = target_fixture.name management.call_command("loaddata", fixture_file_path) diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 41b49108..63edfe61 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -153,7 +153,6 @@ def get_project_geography(): @login_required def get_by_model_id(request, model_type, id): - state = "?%s" % request.GET.urlencode() back_link = "%s%s" % ("/search/", state) models = get_model_by_type(model_type) @@ -315,7 +314,7 @@ def export_record_xls(record_dict, filename): output = io.BytesIO() workbook = Workbook(output, {"in_membory": True}) worksheet = workbook.add_worksheet() - bold = workbook.add_format({"bold": True}) + workbook.add_format({"bold": True}) row = 0 for key in get_sorted_keys(list(record_dict.keys())): field = record_dict[key] @@ -546,7 +545,6 @@ def search(request): def getResults(keyword_string, categories): - if keyword_string is None: keyword_string = "" From 81ef1a314cf4ff427ec164456668ddcab8255d6c Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:34:00 -0700 Subject: [PATCH 06/27] another ruff format round --- TEKDB/Accounts/admin.py | 1 - TEKDB/Accounts/models.py | 1 - TEKDB/Accounts/views.py | 1 - TEKDB/Lookup/admin.py | 1 - TEKDB/Lookup/models.py | 1 - TEKDB/Lookup/views.py | 1 - TEKDB/Relationships/admin.py | 1 - TEKDB/Relationships/models.py | 1 - TEKDB/Relationships/tests.py | 1 - TEKDB/Relationships/views.py | 1 - TEKDB/configuration/tests.py | 1 - TEKDB/login/admin.py | 1 - TEKDB/login/models.py | 1 - 13 files changed, 13 deletions(-) diff --git a/TEKDB/Accounts/admin.py b/TEKDB/Accounts/admin.py index b97a94f6..846f6b40 100644 --- a/TEKDB/Accounts/admin.py +++ b/TEKDB/Accounts/admin.py @@ -1,2 +1 @@ - # Register your models here. diff --git a/TEKDB/Accounts/models.py b/TEKDB/Accounts/models.py index 35e0d648..6b202199 100644 --- a/TEKDB/Accounts/models.py +++ b/TEKDB/Accounts/models.py @@ -1,2 +1 @@ - # Create your models here. diff --git a/TEKDB/Accounts/views.py b/TEKDB/Accounts/views.py index b8e4ee02..60f00ef0 100644 --- a/TEKDB/Accounts/views.py +++ b/TEKDB/Accounts/views.py @@ -1,2 +1 @@ - # Create your views here. diff --git a/TEKDB/Lookup/admin.py b/TEKDB/Lookup/admin.py index b97a94f6..846f6b40 100644 --- a/TEKDB/Lookup/admin.py +++ b/TEKDB/Lookup/admin.py @@ -1,2 +1 @@ - # Register your models here. diff --git a/TEKDB/Lookup/models.py b/TEKDB/Lookup/models.py index 35e0d648..6b202199 100644 --- a/TEKDB/Lookup/models.py +++ b/TEKDB/Lookup/models.py @@ -1,2 +1 @@ - # Create your models here. diff --git a/TEKDB/Lookup/views.py b/TEKDB/Lookup/views.py index b8e4ee02..60f00ef0 100644 --- a/TEKDB/Lookup/views.py +++ b/TEKDB/Lookup/views.py @@ -1,2 +1 @@ - # Create your views here. diff --git a/TEKDB/Relationships/admin.py b/TEKDB/Relationships/admin.py index b97a94f6..846f6b40 100644 --- a/TEKDB/Relationships/admin.py +++ b/TEKDB/Relationships/admin.py @@ -1,2 +1 @@ - # Register your models here. diff --git a/TEKDB/Relationships/models.py b/TEKDB/Relationships/models.py index 35e0d648..6b202199 100644 --- a/TEKDB/Relationships/models.py +++ b/TEKDB/Relationships/models.py @@ -1,2 +1 @@ - # Create your models here. diff --git a/TEKDB/Relationships/tests.py b/TEKDB/Relationships/tests.py index 49290204..a39b155a 100644 --- a/TEKDB/Relationships/tests.py +++ b/TEKDB/Relationships/tests.py @@ -1,2 +1 @@ - # Create your tests here. diff --git a/TEKDB/Relationships/views.py b/TEKDB/Relationships/views.py index b8e4ee02..60f00ef0 100644 --- a/TEKDB/Relationships/views.py +++ b/TEKDB/Relationships/views.py @@ -1,2 +1 @@ - # Create your views here. diff --git a/TEKDB/configuration/tests.py b/TEKDB/configuration/tests.py index 49290204..a39b155a 100644 --- a/TEKDB/configuration/tests.py +++ b/TEKDB/configuration/tests.py @@ -1,2 +1 @@ - # Create your tests here. diff --git a/TEKDB/login/admin.py b/TEKDB/login/admin.py index b97a94f6..846f6b40 100644 --- a/TEKDB/login/admin.py +++ b/TEKDB/login/admin.py @@ -1,2 +1 @@ - # Register your models here. diff --git a/TEKDB/login/models.py b/TEKDB/login/models.py index 35e0d648..6b202199 100644 --- a/TEKDB/login/models.py +++ b/TEKDB/login/models.py @@ -1,2 +1 @@ - # Create your models here. From 9a590829fca622f28b714b63fd39edab8333e233 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:34:54 -0700 Subject: [PATCH 07/27] add noqa: E722 for offenders --- TEKDB/TEKDB/management/commands/import_shp.py | 2 +- TEKDB/TEKDB/models.py | 2 +- TEKDB/TEKDB/views.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/TEKDB/TEKDB/management/commands/import_shp.py b/TEKDB/TEKDB/management/commands/import_shp.py index 559df427..bb304b38 100644 --- a/TEKDB/TEKDB/management/commands/import_shp.py +++ b/TEKDB/TEKDB/management/commands/import_shp.py @@ -145,7 +145,7 @@ def handle(self, *args, **options): record.DigitizedDate = record_date record.save() - except: + except: # noqa: E722 print("Error editing %s record with ID: %s" % (model, str(pk))) except Exception: diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index 4e35d490..ad99127f 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -185,7 +185,7 @@ def format_data(self, data_set, fk_field_id, ignore_columns=[]): for ignore_column in ignore_columns: try: columns.pop(columns.index(ignore_column)) - except: + except: # noqa: E722 pass for item in data_set: row = [item.pk] diff --git a/TEKDB/TEKDB/views.py b/TEKDB/TEKDB/views.py index 74600f4e..111453db 100644 --- a/TEKDB/TEKDB/views.py +++ b/TEKDB/TEKDB/views.py @@ -38,7 +38,7 @@ def get_related(request, model_name, id): instance = model.objects.get(pk=id) if hasattr(instance, "get_related_objects"): data = json.dumps(instance.get_related_objects(id)) - except: + except: # noqa: E722 pass return HttpResponse(data, content_type="application/json") From 6861d650e4f0ec8c168984a265f27f37d1a4f171 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:41:34 -0700 Subject: [PATCH 08/27] resolve E402 errors --- TEKDB/TEKDB/models.py | 5 +---- TEKDB/TEKDB/widgets.py | 9 +++------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index ad99127f..42005665 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -11,7 +11,7 @@ from django.db.models.functions import Greatest from django.db.models.signals import post_delete from django.dispatch import receiver -from django.contrib.auth.models import AbstractUser +from django.contrib.auth.models import AbstractUser, Group from django.contrib.postgres.search import ( SearchQuery, SearchRank, @@ -4086,9 +4086,6 @@ def get_relationship_model(self, req_model): return self.resourceid -from django.contrib.auth.models import Group - - class UserAccess(DefaultModeratedModel, ModeratedModel): group = models.OneToOneField(Group, db_column="group_id", on_delete=models.CASCADE) accessid = models.AutoField(db_column="accessid", primary_key=True) diff --git a/TEKDB/TEKDB/widgets.py b/TEKDB/TEKDB/widgets.py index 62a5a162..200fb1f0 100644 --- a/TEKDB/TEKDB/widgets.py +++ b/TEKDB/TEKDB/widgets.py @@ -1,11 +1,12 @@ import logging from django.contrib.gis.geometry import json_regex +from django.contrib.gis.forms.widgets import BaseGeometryWidget +from django.forms.widgets import ClearableFileInput +from django.utils.safestring import mark_safe logger = logging.getLogger("django.contrib.gis") -from django.contrib.gis.forms.widgets import BaseGeometryWidget - # class OpenLayersWidget(BaseGeometryWidget): # class OpenLayers6Widget(OpenLayersWidget): @@ -62,10 +63,6 @@ class Media: ) -from django.forms.widgets import ClearableFileInput -from django.utils.safestring import mark_safe - - class ThumbnailFileInput(ClearableFileInput): template_name = "widgets/thumbnail_file_input.html" allow_multiple_selected = True # Enable multiple file uploads From 876f1bbbc124273421226f79054e4f7e87dd32b9 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:53:19 -0700 Subject: [PATCH 09/27] resolve or noqa F821 errors --- TEKDB/TEKDB/models.py | 88 ++++++++++++++++----------------- TEKDB/TEKDB/tests/test_views.py | 2 +- TEKDB/configuration/models.py | 2 +- TEKDB/explore/models.py | 2 +- 4 files changed, 47 insertions(+), 47 deletions(-) diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index 42005665..a349180a 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -405,7 +405,7 @@ class Meta: verbose_name_plural = "planning units" def __unicode__(self): - return unicode("%s" % (self.planningunitname)) + return unicode("%s" % (self.planningunitname)) # noqa: F821 def __str__(self): return self.planningunitname or "" @@ -447,7 +447,7 @@ def keyword_search(keyword): ) def __unicode__(self): - return unicode("%s: %s, %s" % (self.tribe, self.tribeunit, self.federaltribe)) + return unicode("%s: %s, %s" % (self.tribe, self.tribeunit, self.federaltribe)) # noqa: F821 def __str__(self): return "%s: %s, %s" % (self.tribe, self.tribeunit, self.federaltribe) or "" @@ -486,7 +486,7 @@ class Meta: verbose_name_plural = "habitats" def __unicode__(self): - return unicode("%s" % (self.habitat)) + return unicode("%s" % (self.habitat)) # noqa: F821 def __str__(self): return self.habitat or "" @@ -738,9 +738,9 @@ def __unicode__(self): if indigenous and english: return "%s (%s)" % (indigenous, english) elif indigenous: - return unicode(indigenous) + return unicode(indigenous) # noqa: F821 elif english: - return unicode(english) + return unicode(english) # noqa: F821 else: return "No Name Given" @@ -775,7 +775,7 @@ class Meta: verbose_name_plural = "resource groups" def __unicode__(self): - return unicode("%s" % (self.resourceclassificationgroup)) + return unicode("%s" % (self.resourceclassificationgroup)) # noqa: F821 def __str__(self): return self.resourceclassificationgroup or "" @@ -826,7 +826,7 @@ class Meta: verbose_name_plural = "Resources" def __unicode__(self): - return unicode("%s" % (self.commonname)) + return unicode("%s" % (self.commonname)) # noqa: F821 def __str__(self): return self.commonname or "" @@ -1012,7 +1012,7 @@ class Meta: verbose_name_plural = "parts used" def __unicode__(self): - return unicode("%s" % (self.partused)) + return unicode("%s" % (self.partused)) # noqa: F821 def __str__(self): return self.partused or "" @@ -1033,7 +1033,7 @@ class Meta: verbose_name_plural = "customary uses" def __unicode__(self): - return unicode("%s" % (self.usedfor)) + return unicode("%s" % (self.usedfor)) # noqa: F821 def __str__(self): return self.usedfor or "" @@ -1052,7 +1052,7 @@ class Meta: verbose_name_plural = "seasons" def __unicode__(self): - return unicode("%s" % (self.season)) + return unicode("%s" % (self.season)) # noqa: F821 def __str__(self): return self.season or "" @@ -1071,7 +1071,7 @@ class Meta: verbose_name_plural = "timings" def __unicode__(self): - return unicode("%s" % (self.timing)) + return unicode("%s" % (self.timing)) # noqa: F821 def __str__(self): return self.timing or "" @@ -1190,7 +1190,7 @@ def keyword_search(keyword): ) def __unicode__(self): - return unicode("%s at %s" % (str(self.resourceid), str(self.placeid))) + return unicode("%s at %s" % (str(self.resourceid), str(self.placeid))) # noqa: F821 def __str__(self): return "%s at %s" % (str(self.resourceid), str(self.placeid)) or "" @@ -1317,7 +1317,7 @@ class Meta: verbose_name_plural = "participants" def __unicode__(self): - return unicode("%s" % (self.participants)) + return unicode("%s" % (self.participants)) # noqa: F821 def __str__(self): return self.participants or "" @@ -1336,7 +1336,7 @@ class Meta: verbose_name_plural = "techniques" def __unicode__(self): - return unicode("%s" % (self.techniques)) + return unicode("%s" % (self.techniques)) # noqa: F821 def __str__(self): return self.techniques or "" @@ -1355,7 +1355,7 @@ class Meta: verbose_name_plural = "activities" def __unicode__(self): - return unicode("%s" % (self.activity)) + return unicode("%s" % (self.activity)) # noqa: F821 def __str__(self): return self.activity or "" @@ -1456,7 +1456,7 @@ class Meta: verbose_name_plural = "Activities" def __unicode__(self): - return unicode( + return unicode( # noqa: F821 "%s: %s" % (str(self.placeresourceid), self.activityshortdescription) ) @@ -1726,7 +1726,7 @@ def keyword_search(keyword): ) def __unicode__(self): - return unicode("%s %s" % (self.firstname, self.lastname)) + return unicode("%s %s" % (self.firstname, self.lastname)) # noqa: F821 def __str__(self): return "%s %s" % (self.firstname, self.lastname) or "" @@ -1799,7 +1799,7 @@ class Meta: verbose_name_plural = "reference types" def __unicode__(self): - return unicode("%s" % (self.documenttype)) + return unicode("%s" % (self.documenttype)) # noqa: F821 def __str__(self): return self.documenttype or "" @@ -1820,7 +1820,7 @@ class Meta: verbose_name_plural = "author types" def __unicode__(self): - return unicode("%s" % (self.authortype)) + return unicode("%s" % (self.authortype)) # noqa: F821 def __str__(self): return self.authortype or "" @@ -2230,7 +2230,7 @@ def __str__(self): ) def __unicode__(self): - return unicode("%s" % (str(self))) + return unicode("%s" % (str(self))) # noqa: F821 class PlacesCitationEvents(SimpleRelationship): @@ -2264,7 +2264,7 @@ class Meta: unique_together = (("placeid", "citationid"),) def __unicode__(self): - return unicode("%s %s" % (str(self.placeid), str(self.citationid))) + return unicode("%s %s" % (str(self.placeid), str(self.citationid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.placeid), str(self.citationid)) or "" @@ -2360,7 +2360,7 @@ class Meta: verbose_name_plural = "current versions" def __unicode__(self): - return unicode( + return unicode( # noqa: F821 "Back: %d, Front:%d" % (self.backendversion, self.frontendversion) ) @@ -2383,7 +2383,7 @@ class Meta: verbose_name_plural = "locality types" def __unicode__(self): - return unicode("%s" % (self.localitytype)) + return unicode("%s" % (self.localitytype)) # noqa: F821 def __str__(self): return self.localitytype or "" @@ -2462,9 +2462,9 @@ class Meta: def __unicode__(self): if self.englishname: - return unicode("%s" % (self.englishname)) + return unicode("%s" % (self.englishname)) # noqa: F821 else: - return unicode("Locality in %s" % (self.placeid.englishplacename)) + return unicode("Locality in %s" % (self.placeid.englishplacename)) # noqa: F821 def __str__(self): if self.englishname: @@ -2576,7 +2576,7 @@ class Meta: verbose_name_plural = "Locality GIS Selections" def __unicode__(self): - return unicode("%s" % (self.localitylabel)) + return unicode("%s" % (self.localitylabel)) # noqa: F821 def __str__(self): return self.localitylabel or "" @@ -2605,7 +2605,7 @@ class Meta: verbose_name_plural = "Localities - Place-Resources" def __unicode__(self): - return unicode("%s - %s" % (str(self.localityid), str(self.placeresourceid))) + return unicode("%s - %s" % (str(self.localityid), str(self.placeresourceid))) # noqa: F821 def __str__(self): return "%s - %s" % (str(self.localityid), str(self.placeresourceid)) or "" @@ -2683,7 +2683,7 @@ class Meta: verbose_name_plural = "media types" def __unicode__(self): - return unicode("%s" % (self.mediatype)) + return unicode("%s" % (self.mediatype)) # noqa: F821 def __str__(self): return self.mediatype or "" @@ -2731,7 +2731,7 @@ class Meta: verbose_name_plural = "user info" def __unicode__(self): - return unicode("%s" % (self.username)) + return unicode("%s" % (self.username)) # noqa: F821 def __str__(self): return self.username or "" @@ -2832,7 +2832,7 @@ class Meta: verbose_name_plural = "Media" def __unicode__(self): - return unicode("%s" % (self.medianame)) + return unicode("%s" % (self.medianame)) # noqa: F821 def __str__(self): return "%s [ %s ]" % (self.medianame, self.mediatype) or "" @@ -3089,7 +3089,7 @@ class Meta: unique_together = (("mediaid", "citationid"),) def __unicode__(self): - return unicode("%s %s" % (str(self.mediaid), str(self.citationid))) + return unicode("%s %s" % (str(self.mediaid), str(self.citationid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.mediaid), str(self.citationid)) or "" @@ -3194,7 +3194,7 @@ def get_query_json(self): return {"name": str(self), "link": False} def __unicode__(self): - return unicode("%s" % (self.altindigenousname)) + return unicode("%s" % (self.altindigenousname)) # noqa: F821 def __str__(self): return self.altindigenousname or "" @@ -3238,7 +3238,7 @@ class Meta: verbose_name_plural = "Place GIS Selections" def __unicode__(self): - return unicode("%s" % (self.placelabel)) + return unicode("%s" % (self.placelabel)) # noqa: F821 def __str__(self): return self.placelabel or "" @@ -3272,7 +3272,7 @@ class Meta: unique_together = (("placeid", "mediaid"),) def __unicode__(self): - return unicode("%s %s" % (str(self.placeid), str(self.mediaid))) + return unicode("%s %s" % (str(self.placeid), str(self.mediaid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.placeid), str(self.mediaid)) or "" @@ -3367,7 +3367,7 @@ class Meta: verbose_name_plural = "Place-Resources - Sources" def __unicode__(self): - return unicode("%s %s" % (str(self.placeresourceid), str(self.citationid))) + return unicode("%s %s" % (str(self.placeresourceid), str(self.citationid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.placeresourceid), str(self.citationid)) or "" @@ -3460,7 +3460,7 @@ class Meta: verbose_name_plural = "Place-Resources - Media" def __unicode__(self): - return unicode("%s %s" % (str(self.placeresourceid), str(self.mediaid))) + return unicode("%s %s" % (str(self.placeresourceid), str(self.mediaid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.placeresourceid), str(self.mediaid)) or "" @@ -3555,7 +3555,7 @@ class Meta: verbose_name_plural = "Activity - Sources" def __unicode__(self): - return unicode("%s %s" % (str(self.resourceactivityid), str(self.citationid))) + return unicode("%s %s" % (str(self.resourceactivityid), str(self.citationid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.resourceactivityid), str(self.citationid)) or "" @@ -3649,7 +3649,7 @@ class Meta: verbose_name_plural = "Activity - Media" def __unicode__(self): - return unicode("%s %s" % (str(self.resourceactivityid), str(self.mediaid))) + return unicode("%s %s" % (str(self.resourceactivityid), str(self.mediaid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.resourceactivityid), str(self.mediaid)) or "" @@ -3758,7 +3758,7 @@ def data(self): ] def __unicode__(self): - return unicode("%s" % (self.altindigenousname)) + return unicode("%s" % (self.altindigenousname)) # noqa: F821 def __str__(self): return self.altindigenousname or "" @@ -3793,7 +3793,7 @@ class Meta: verbose_name_plural = "Resources - Resources" def __unicode__(self): - return unicode("%s %s" % (str(self.resourceid), str(self.altresourceid))) + return unicode("%s %s" % (str(self.resourceid), str(self.altresourceid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.resourceid), str(self.altresourceid)) or "" @@ -3928,7 +3928,7 @@ class Meta: app_label = "Relationships" def __unicode__(self): - return unicode("%s %s" % (str(self.resourceid), str(self.citationid))) + return unicode("%s %s" % (str(self.resourceid), str(self.citationid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.resourceid), str(self.citationid)) or "" @@ -4021,7 +4021,7 @@ class Meta: app_label = "Relationships" def __unicode__(self): - return unicode("%s %s" % (str(self.resourceid), str(self.mediaid))) + return unicode("%s %s" % (str(self.resourceid), str(self.mediaid))) # noqa: F821 def __str__(self): return "%s %s" % (str(self.resourceid), str(self.mediaid)) or "" @@ -4105,7 +4105,7 @@ class Meta: verbose_name_plural = "user access" def __unicode__(self): - return unicode("%s" % (self.accesslevel)) + return unicode("%s" % (self.accesslevel)) # noqa: F821 def __str__(self): return self.accesslevel or "" @@ -4173,7 +4173,7 @@ class Meta: verbose_name_plural = "Users" def __unicode__(self): - return unicode("%s" % (self.username)) + return unicode("%s" % (self.username)) # noqa: F821 def __str__(self): return self.username or "" diff --git a/TEKDB/TEKDB/tests/test_views.py b/TEKDB/TEKDB/tests/test_views.py index b7300637..47c9cd25 100644 --- a/TEKDB/TEKDB/tests/test_views.py +++ b/TEKDB/TEKDB/tests/test_views.py @@ -46,7 +46,7 @@ def get_checksum(filename, hash_function): readable_hash = hashlib.md5(bytes).hexdigest() else: - Raise("{} is an invalid hash function. Please Enter MD5 value") + raise ValueError("{} is an invalid hash function. Please Enter MD5 value") return readable_hash diff --git a/TEKDB/configuration/models.py b/TEKDB/configuration/models.py index 64839054..e24868ca 100644 --- a/TEKDB/configuration/models.py +++ b/TEKDB/configuration/models.py @@ -178,7 +178,7 @@ class Configuration(models.Model): # media_name_override def __unicode__(self): - return unicode( + return unicode( # noqa: F821 "Site Configuration: '{}' ({})".format(self.preferredInitialism, self.pk) ) diff --git a/TEKDB/explore/models.py b/TEKDB/explore/models.py index 0356ffce..00c358d2 100644 --- a/TEKDB/explore/models.py +++ b/TEKDB/explore/models.py @@ -25,7 +25,7 @@ class Meta: verbose_name_plural = "Page Contents" def __unicode__(self): - return unicode("%s" % (self.page)) + return unicode("%s" % (self.page)) # noqa: F821 def __str__(self): return self.page From 9f78e82840275c4f6c8f76784850ec98a85a223d Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:56:47 -0700 Subject: [PATCH 10/27] resolve E712 errors --- TEKDB/TEKDB/tests/test_models.py | 4 ++-- TEKDB/explore/views.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/TEKDB/TEKDB/tests/test_models.py b/TEKDB/TEKDB/tests/test_models.py index c8803da6..c3702404 100644 --- a/TEKDB/TEKDB/tests/test_models.py +++ b/TEKDB/TEKDB/tests/test_models.py @@ -565,8 +565,8 @@ def test_activity_citation_relationship_id_collision(self): break if new_combo_1 and new_combo_2: break - self.assertTrue(new_combo_1 != False) - self.assertTrue(new_combo_2 != False) + self.assertTrue(new_combo_1 is not False) + self.assertTrue(new_combo_2 is not False) self.assertTrue(new_combo_1 != new_combo_2) insertion_object = new_combo_2 diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 63edfe61..8b5cf7e1 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -424,7 +424,7 @@ def search(request): query_string = request.GET.get("query") elif "filter" in request.GET.urlencode(): query_string = request.GET.get("filter") - if query_string == "" or query_string == True: + if query_string == "" or query_string is True: query_string = None else: From a14e4be93565c67142652f8e63400dcfdbde95e4 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 16:59:42 -0700 Subject: [PATCH 11/27] add noqa: F405 --- TEKDB/TEKDB/management/commands/import_sql.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TEKDB/TEKDB/management/commands/import_sql.py b/TEKDB/TEKDB/management/commands/import_sql.py index cc816eef..f010dd03 100644 --- a/TEKDB/TEKDB/management/commands/import_sql.py +++ b/TEKDB/TEKDB/management/commands/import_sql.py @@ -447,7 +447,7 @@ def handle(self, *args, **options): # # Running this will delete your database. If you are okay with this, press 'c' and enter. If not, press 'q' and enter try: - revert = os.path.join(MANAGE_DIR, options["revert"][0]) + revert = os.path.join(MANAGE_DIR, options["revert"][0]) # noqa: F405 except Exception: revert = False FILE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) From cf021dd018e4ecaa4fa0dae9e287e034096e1d9f Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 17:06:19 -0700 Subject: [PATCH 12/27] add noqa: F811 and comment --- TEKDB/explore/templatetags/explore_tags.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TEKDB/explore/templatetags/explore_tags.py b/TEKDB/explore/templatetags/explore_tags.py index 60807c89..c4fc635a 100644 --- a/TEKDB/explore/templatetags/explore_tags.py +++ b/TEKDB/explore/templatetags/explore_tags.py @@ -9,8 +9,9 @@ def mult(value, arg): return int(value) * int(arg) +# redefining 'mult' from line 6, should this be 'subtract'? @register.filter(name="subtract") -def mult(value, arg): +def mult(value, arg): # noqa: F811 """Subtracts the arg from the value""" return int(value) - int(arg) From a8741eb5181c97e8ccd412fc0f962db6477151df Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 17:13:37 -0700 Subject: [PATCH 13/27] resolve E721 errors --- TEKDB/explore/views.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 8b5cf7e1..41c625ec 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -280,16 +280,16 @@ def export_record_csv(record_dict, filename): writer = csv.writer(csv_response) for key in get_sorted_keys(list(record_dict.keys())): field = record_dict[key] - if type(field) == list and len(field) > 0 and type(field[0]) == dict: + if isinstance(field, list) and len(field) > 0 and isinstance(field[0], dict): for item in field: if ( "key" in item.keys() and "value" in item.keys() and len(item.keys()) == 2 ): - if type(item["value"]) == list and len(item["value"]) > 0: + if isinstance(item["value"], list) and len(item["value"]) > 0: for sub_item in item["value"]: - if type(sub_item) == dict and "name" in sub_item.keys(): + if isinstance(sub_item, dict) and "name" in sub_item.keys(): writer.writerow( ["%s - %s" % (key, item["key"]), sub_item["name"]] ) @@ -318,16 +318,16 @@ def export_record_xls(record_dict, filename): row = 0 for key in get_sorted_keys(list(record_dict.keys())): field = record_dict[key] - if type(field) == list and len(field) > 0 and type(field[0]) == dict: + if isinstance(field, list) and len(field) > 0 and isinstance(field[0], dict): for item in field: if ( "key" in item.keys() and "value" in item.keys() and len(item.keys()) == 2 ): - if type(item["value"]) == list and len(item["value"]) > 0: + if isinstance(item["value"], list) and len(item["value"]) > 0: for sub_item in item["value"]: - if type(sub_item) == dict and "name" in sub_item.keys(): + if isinstance(sub_item, dict) and "name" in sub_item.keys(): worksheet.write(row, 0, "%s - %s" % (key, item["key"])) worksheet.write(row, 1, sub_item["name"]) row += 1 From 7b0627684ceddb936e49671846b07959d60be580 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 17:14:49 -0700 Subject: [PATCH 14/27] add noqa: F401 --- TEKDB/manage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TEKDB/manage.py b/TEKDB/manage.py index b3c83e17..6811de8e 100755 --- a/TEKDB/manage.py +++ b/TEKDB/manage.py @@ -11,7 +11,7 @@ # issue is really that Django is missing to avoid masking other # exceptions on Python 2. try: - import django + import django # noqa: F401 except ImportError: raise ImportError( "Couldn't import Django. Are you sure it's installed and " From 4ffb0d0f3be5585ad8348615e919634c40091789 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 17:15:04 -0700 Subject: [PATCH 15/27] ruff format --- TEKDB/explore/templatetags/explore_tags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TEKDB/explore/templatetags/explore_tags.py b/TEKDB/explore/templatetags/explore_tags.py index c4fc635a..985c3e15 100644 --- a/TEKDB/explore/templatetags/explore_tags.py +++ b/TEKDB/explore/templatetags/explore_tags.py @@ -11,7 +11,7 @@ def mult(value, arg): # redefining 'mult' from line 6, should this be 'subtract'? @register.filter(name="subtract") -def mult(value, arg): # noqa: F811 +def mult(value, arg): # noqa: F811 """Subtracts the arg from the value""" return int(value) - int(arg) From f78e0d1fa6657ba0bd934a83d761bdbfffc00a98 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 17:17:46 -0700 Subject: [PATCH 16/27] use relative import --- TEKDB/explore/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TEKDB/explore/admin.py b/TEKDB/explore/admin.py index 55ac4ed8..0338a612 100644 --- a/TEKDB/explore/admin.py +++ b/TEKDB/explore/admin.py @@ -1,4 +1,4 @@ from django.contrib import admin -from TEKDB.models import PageContent +from .models import PageContent admin.site.register(PageContent) From 3a32cf1feb7e5dc2cb1244d5f52625d1efbe9a1b Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 17:40:18 -0700 Subject: [PATCH 17/27] fix tests --- TEKDB/TEKDB/tests/test_models.py | 6 +----- TEKDB/TEKDB/tests/test_views.py | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/TEKDB/TEKDB/tests/test_models.py b/TEKDB/TEKDB/tests/test_models.py index c3702404..0d88cf60 100644 --- a/TEKDB/TEKDB/tests/test_models.py +++ b/TEKDB/TEKDB/tests/test_models.py @@ -277,7 +277,6 @@ def test_resources_search(self): # Advanced search name, description ONLY (no genus/spceies): 2 results skunk_cabbage_id = 325 sea_cucumber_id = 305 - gumboot_chiton_id = 188 chiton_id = 187 fields = ["commonname", "indigenousname"] fk_fields = [] @@ -285,10 +284,7 @@ def test_resources_search(self): # sea cukes and skunk cabbage only have 'chiton' in their genus or species name. They should not be present. self.assertEqual(advanced_results.count(), 10) for resource in advanced_results: - self.assertTrue( - resource.pk - not in [gumboot_chiton_id, skunk_cabbage_id, sea_cucumber_id] - ) + self.assertTrue(resource.pk not in [skunk_cabbage_id, sea_cucumber_id]) fields = ["genus", "species"] advanced_results = Resources.keyword_search(keyword, fields, fk_fields) # 'chiton' only has chiton in it's commonname. It should not be present. diff --git a/TEKDB/TEKDB/tests/test_views.py b/TEKDB/TEKDB/tests/test_views.py index 47c9cd25..5015e06c 100644 --- a/TEKDB/TEKDB/tests/test_views.py +++ b/TEKDB/TEKDB/tests/test_views.py @@ -26,7 +26,7 @@ ResourcesActivityEvents, Users, ) -from TEKDB.views import ExportDatabase +from TEKDB.views import ExportDatabase, ImportDatabase import tempfile import zipfile @@ -494,8 +494,8 @@ def setUp(cls): None, ) cls.import_request.FILES["import_file"] = import_file - cls.import_request.user = Users.objects.get(username="admin") + response = ImportDatabase(cls.import_request) def test_import(self): self.assertEqual(Resources.objects.all().count(), self.old_resources_count) From 598422fd3efd43df15ad14f6e45043a50ee7d04f Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Wed, 22 Oct 2025 17:42:29 -0700 Subject: [PATCH 18/27] add noqa: F841 --- TEKDB/TEKDB/tests/test_views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TEKDB/TEKDB/tests/test_views.py b/TEKDB/TEKDB/tests/test_views.py index 5015e06c..eee995bb 100644 --- a/TEKDB/TEKDB/tests/test_views.py +++ b/TEKDB/TEKDB/tests/test_views.py @@ -495,7 +495,7 @@ def setUp(cls): ) cls.import_request.FILES["import_file"] = import_file cls.import_request.user = Users.objects.get(username="admin") - response = ImportDatabase(cls.import_request) + response = ImportDatabase(cls.import_request) # noqa: F841 def test_import(self): self.assertEqual(Resources.objects.all().count(), self.old_resources_count) From 5004b6803c43753ab879b08c08d0d1c4560046f3 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 10:09:08 -0700 Subject: [PATCH 19/27] ruff format --- TEKDB/TEKDB/tests/test_admin.py | 41 ++++++++++++--------------------- TEKDB/explore/views.py | 28 ++++++++++++---------- TEKDB/pyproject.toml | 3 +++ TEKDB/requirements.txt | 2 ++ 4 files changed, 36 insertions(+), 38 deletions(-) diff --git a/TEKDB/TEKDB/tests/test_admin.py b/TEKDB/TEKDB/tests/test_admin.py index a5de7147..d268a5d6 100644 --- a/TEKDB/TEKDB/tests/test_admin.py +++ b/TEKDB/TEKDB/tests/test_admin.py @@ -12,46 +12,35 @@ User = get_user_model() - class MediaBulkUploadAdminTest(ITKTestCase): + def setUp(self): self.factory = RequestFactory() - self.user = User.objects.create_superuser( - username="admin2", password="password", email="admin@example.com" - ) + self.user = User.objects.create_superuser(username='admin2', password='password', email='admin@example.com') def test_media_bulk_upload_admin_add(self): - url = reverse("admin:TEKDB_mediabulkupload_add") - test_image = SimpleUploadedFile( - "./test_image.jpg", b"\x00\x00\x00\x00", content_type="image" - ) + url = reverse('admin:TEKDB_mediabulkupload_add') + test_image = SimpleUploadedFile("./test_image.jpg", b"\x00\x00\x00\x00", content_type="image") # TODO: Associate the images with 1+ Places, Resources, Citations, Activities, and PlacesResources - request = self.factory.post( - url, - { - # 'mediabulkname': 'Test Bulk Upload', - # 'mediabulkdate': '2024-12-12', - "files": [test_image, test_image], - }, - ) + request = self.factory.post(url, { + # 'mediabulkname': 'Test Bulk Upload', + # 'mediabulkdate': '2024-12-12', + 'files': [test_image, test_image], + }) request.user = self.user bulk_admin = MediaBulkUploadAdmin(model=MediaBulkUpload, admin_site=AdminSite()) bulk_form = MediaBulkUploadForm(request.POST) bulk_form.is_valid() - bulk_admin.save_model( - obj=MediaBulkUpload(), request=request, form=bulk_form, change=None - ) + bulk_admin.save_model(obj=MediaBulkUpload(), request=request, form=bulk_form, change=None) - self.assertTrue(Media.objects.filter(medianame="test_image").exists()) - self.assertTrue(Media.objects.filter(medianame="test_image").count() == 2) + self.assertTrue(Media.objects.filter(medianame='test_image').exists()) + self.assertTrue(Media.objects.filter(medianame='test_image').count() == 2) - for media in Media.objects.filter(medianame="test_image"): + for media in Media.objects.filter(medianame='test_image'): self.assertTrue(os.path.exists(media.mediafile.path)) - os.remove( - media.mediafile.path - ) # Clean up the uploaded files after the test + os.remove(media.mediafile.path) # Clean up the uploaded files after the test self.assertFalse(os.path.exists(media.mediafile.path)) media.delete() @@ -72,4 +61,4 @@ def test_media_bulk_upload_admin_add(self): # url = reverse('admin:TEKDB_mediabulkupload_delete', args=[media_bulk_upload.id]) # response = self.client.post(url, {'post': 'yes'}) # self.assertEqual(response.status_code, 302) - # self.assertFalse(MediaBulkUpload.objects.filter(id=media_bulk_upload.id).exists()) + # self.assertFalse(MediaBulkUpload.objects.filter(id=media_bulk_upload.id).exists()) \ No newline at end of file diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 41c625ec..54e68b51 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -153,6 +153,8 @@ def get_project_geography(): @login_required def get_by_model_id(request, model_type, id): + from TEKDB.settings import RECORD_ICONS + state = "?%s" % request.GET.urlencode() back_link = "%s%s" % ("/search/", state) models = get_model_by_type(model_type) @@ -202,7 +204,7 @@ def get_by_model_id(request, model_type, id): "state": state, } - if "map" in record_dict.keys() and record_dict["map"] is not None: + if "map" in record_dict.keys() and not record_dict["map"] == None: DATABASE_GEOGRAPHY = get_project_geography() context["default_lon"] = DATABASE_GEOGRAPHY["default_lon"] context["default_lat"] = DATABASE_GEOGRAPHY["default_lat"] @@ -287,9 +289,9 @@ def export_record_csv(record_dict, filename): and "value" in item.keys() and len(item.keys()) == 2 ): - if isinstance(item["value"], list) and len(item["value"]) > 0: + if type(item["value"]) == list and len(item["value"]) > 0: for sub_item in item["value"]: - if isinstance(sub_item, dict) and "name" in sub_item.keys(): + if type(sub_item) == dict and "name" in sub_item.keys(): writer.writerow( ["%s - %s" % (key, item["key"]), sub_item["name"]] ) @@ -314,7 +316,7 @@ def export_record_xls(record_dict, filename): output = io.BytesIO() workbook = Workbook(output, {"in_membory": True}) worksheet = workbook.add_worksheet() - workbook.add_format({"bold": True}) + bold = workbook.add_format({"bold": True}) row = 0 for key in get_sorted_keys(list(record_dict.keys())): field = record_dict[key] @@ -325,9 +327,9 @@ def export_record_xls(record_dict, filename): and "value" in item.keys() and len(item.keys()) == 2 ): - if isinstance(item["value"], list) and len(item["value"]) > 0: + if type(item["value"]) == list and len(item["value"]) > 0: for sub_item in item["value"]: - if isinstance(sub_item, dict) and "name" in sub_item.keys(): + if type(sub_item) == dict and "name" in sub_item.keys(): worksheet.write(row, 0, "%s - %s" % (key, item["key"])) worksheet.write(row, 1, sub_item["name"]) row += 1 @@ -400,7 +402,7 @@ def search(request): if "category" in request.POST.keys(): try: categories = request.POST["category"].split(",") - except Exception: + except Exception as e: categories = all_categories pass @@ -424,7 +426,7 @@ def search(request): query_string = request.GET.get("query") elif "filter" in request.GET.urlencode(): query_string = request.GET.get("filter") - if query_string == "" or query_string is True: + if query_string == "" or query_string == True: query_string = None else: @@ -490,11 +492,11 @@ def search(request): items_per_page = len(resultlist) page = request.GET.get("page") - if page is None: + if page == None: page = 1 view = request.GET.get("view") - if view is None: + if view == None: view = "list" DATABASE_GEOGRAPHY = get_project_geography() @@ -545,7 +547,9 @@ def search(request): def getResults(keyword_string, categories): - if keyword_string is None: + import TEKDB + + if keyword_string == None: keyword_string = "" resultlist = [] @@ -595,7 +599,7 @@ def download(request): rows.append(row_dict) if format_type == "xlsx": - import io + import xlsxwriter, io from xlsxwriter.workbook import Workbook output = io.BytesIO() diff --git a/TEKDB/pyproject.toml b/TEKDB/pyproject.toml index 26261a0e..e5ada69f 100644 --- a/TEKDB/pyproject.toml +++ b/TEKDB/pyproject.toml @@ -1,3 +1,6 @@ +[tool.ruff] +exclude = ["/migrations/"] + [tool.ruff.format] quote-style = "double" diff --git a/TEKDB/requirements.txt b/TEKDB/requirements.txt index de1b8369..f3768a1a 100644 --- a/TEKDB/requirements.txt +++ b/TEKDB/requirements.txt @@ -29,3 +29,5 @@ urllib3>=1.26.5 #OPTIONAL, BUT LOVELY FOR DEBUGGING ipdb ipython +# FORMATTING AND LINTING +ruff \ No newline at end of file From c94e05c21fa47723fd3ab3a2e175a84389b5d90e Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 10:20:41 -0700 Subject: [PATCH 20/27] revert formatting in migrations --- TEKDB/Accounts/migrations/0001_initial.py | 190 +- .../0002_alter_users_accesslevel.py | 17 +- TEKDB/Lookup/migrations/0001_initial.py | 524 ++---- .../migrations/0002_auto_20191223_1538.py | 207 +-- .../migrations/0003_auto_20191223_1604.py | 27 +- .../migrations/0004_auto_20200107_1249.py | 14 +- .../0005_alter_lookupuserinfo_id.py | 11 +- ..._alter_people_relationshiptootherpeople.py | 14 +- .../Relationships/migrations/0001_initial.py | 1628 +++-------------- .../migrations/0002_auto_20171013_1650.py | 545 ++---- .../migrations/0003_auto_20171031_1434.py | 14 +- .../migrations/0004_auto_20171031_1525.py | 14 +- .../migrations/0005_auto_20191223_1538.py | 22 +- .../migrations/0006_auto_20191223_1604.py | 91 +- .../migrations/0007_auto_20200107_1707.py | 124 +- .../migrations/0008_auto_20211021_1607.py | 665 +++---- .../migrations/0009_auto_20230413_1555.py | 23 +- ..._alter_placesresourceevents_needsreview.py | 11 +- ...events_relationshipdescription_and_more.py | 124 +- ...lter_placesmediaevents_mediaid_and_more.py | 30 +- ...mediacitationevents_citationid_and_more.py | 299 +-- TEKDB/TEKDB/migrations/0001_initial.py | 1265 ++----------- .../migrations/0002_auto_20171031_1421.py | 22 +- .../migrations/0003_auto_20191223_1604.py | 14 +- .../migrations/0004_auto_20200107_1604.py | 55 +- .../migrations/0005_auto_20211021_1607.py | 329 +--- .../0006_trigram_unaccent_extensions.py | 13 +- .../migrations/0007_citations_rawcitation.py | 15 +- TEKDB/TEKDB/migrations/0008_citations_date.py | 11 +- .../migrations/0009_auto_20230413_1555.py | 103 +- .../migrations/0010_auto_20231106_1316.py | 43 +- TEKDB/TEKDB/migrations/0011_searchsettings.py | 19 +- .../migrations/0012_auto_20240926_1440.py | 23 +- .../migrations/0013_auto_20241004_1547.py | 52 +- .../0014_alter_media_mediauploadevent.py | 15 +- .../migrations/0015_auto_20241004_1559.py | 19 +- .../migrations/0016_auto_20241016_1549.py | 125 +- .../migrations/0017_auto_20241016_1552.py | 25 +- .../migrations/0018_auto_20241022_1653.py | 25 +- .../migrations/0018_delete_searchsettings.py | 5 +- .../migrations/0019_merge_20241126_1351.py | 8 +- .../0020_alter_media_mediabulkupload.py | 15 +- ...020_alter_mediabulkupload_mediabulkdate.py | 11 +- .../migrations/0021_merge_20241224_1132.py | 8 +- ..._options_alter_media_mediatype_and_more.py | 39 +- ...023_alter_mediabulkupload_mediabulkname.py | 15 +- ...ts_alter_citations_rawcitation_and_more.py | 54 +- ...025_alter_mediabulkupload_mediabulkname.py | 15 +- .../configuration/migrations/0001_initial.py | 47 +- .../migrations/0002_auto_20220503_1757.py | 26 +- .../0003_alter_configuration_geometry.py | 16 +- .../migrations/0004_auto_20220506_1506.py | 88 +- .../migrations/0005_auto_20220510_0939.py | 85 +- .../0006_alter_configuration_logo.py | 18 +- .../migrations/0007_auto_20240913_1539.py | 75 +- ...alter_configuration_preferredinitialism.py | 15 +- ...figuration_preferredinitialismplacement.py | 18 +- ...figuration_preferredinitialismplacement.py | 18 +- ...figuration_preferredinitialismplacement.py | 18 +- .../migrations/0012_auto_20241025_1313.py | 27 +- .../migrations/0013_auto_20241025_1406.py | 41 +- .../migrations/0014_auto_20241025_1603.py | 42 +- ...ter_configuration_min_search_similarity.py | 23 +- ..._configuration_min_search_rank_and_more.py | 42 +- ...onfiguration_homepage_image_attribution.py | 15 +- TEKDB/explore/migrations/0001_initial.py | 39 +- .../0002_alter_pagecontent_content.py | 7 +- 67 files changed, 1786 insertions(+), 5811 deletions(-) diff --git a/TEKDB/Accounts/migrations/0001_initial.py b/TEKDB/Accounts/migrations/0001_initial.py index 2f012c6a..0fec0f98 100644 --- a/TEKDB/Accounts/migrations/0001_initial.py +++ b/TEKDB/Accounts/migrations/0001_initial.py @@ -9,182 +9,56 @@ class Migration(migrations.Migration): + initial = True dependencies = [ - ("auth", "0008_alter_user_username_max_length"), + ('auth', '0008_alter_user_username_max_length'), ] operations = [ migrations.CreateModel( - name="UserAccess", + name='UserAccess', fields=[ - ( - "accessid", - models.AutoField( - db_column="accessid", primary_key=True, serialize=False - ), - ), - ( - "accesslevel", - models.CharField( - blank=True, - db_column="accesslevel", - max_length=255, - null=True, - verbose_name="access level", - ), - ), - ( - "group", - models.OneToOneField( - db_column="group_id", - on_delete=django.db.models.deletion.CASCADE, - to="auth.Group", - ), - ), + ('accessid', models.AutoField(db_column='accessid', primary_key=True, serialize=False)), + ('accesslevel', models.CharField(blank=True, db_column='accesslevel', max_length=255, null=True, verbose_name='access level')), + ('group', models.OneToOneField(db_column='group_id', on_delete=django.db.models.deletion.CASCADE, to='auth.Group')), ], options={ - "db_table": "useraccess", - "verbose_name": "user access", - "managed": True, - "verbose_name_plural": "user access", + 'db_table': 'useraccess', + 'verbose_name': 'user access', + 'managed': True, + 'verbose_name_plural': 'user access', }, ), migrations.CreateModel( - name="Users", + name='Users', fields=[ - ( - "last_login", - models.DateTimeField( - blank=True, null=True, verbose_name="last login" - ), - ), - ( - "userid", - models.AutoField( - db_column="userid", primary_key=True, serialize=False - ), - ), - ( - "username", - models.CharField( - db_column="username", - max_length=20, - unique=True, - verbose_name="username", - ), - ), - ( - "password", - models.CharField( - db_column="password", max_length=128, verbose_name="password" - ), - ), - ( - "first_name", - models.CharField( - db_column="firstname", max_length=255, verbose_name="first name" - ), - ), - ( - "last_name", - models.CharField( - db_column="lastname", max_length=255, verbose_name="last name" - ), - ), - ( - "affiliation", - models.CharField(db_column="affiliation", max_length=255), - ), - ("title", models.CharField(db_column="title", max_length=255)), - ( - "is_superuser", - models.BooleanField( - db_column="is_superuser", - default=False, - help_text="Designates that this user has all permissions without explicitly assigning them.", - verbose_name="superuser status", - ), - ), - ( - "email", - models.EmailField( - blank=True, - db_column="email", - max_length=254, - null=True, - verbose_name="email address", - ), - ), - ( - "is_staff", - models.BooleanField( - db_column="is_staff", - default=False, - help_text="Designates whether the user can log into this admin site.", - verbose_name="staff status", - ), - ), - ( - "is_active", - models.BooleanField( - db_column="is_active", - default=True, - help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", - verbose_name="active", - ), - ), - ( - "date_joined", - models.DateTimeField( - db_column="date_joined", - default=django.utils.timezone.now, - verbose_name="date joined", - ), - ), - ( - "accesslevel", - models.ForeignKey( - blank=True, - db_column="accesslevel", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Accounts.UserAccess", - verbose_name="access level", - ), - ), - ( - "groups", - models.ManyToManyField( - blank=True, - help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", - related_name="user_set", - related_query_name="user", - to="auth.Group", - verbose_name="groups", - ), - ), - ( - "user_permissions", - models.ManyToManyField( - blank=True, - help_text="Specific permissions for this user.", - related_name="user_set", - related_query_name="user", - to="auth.Permission", - verbose_name="user permissions", - ), - ), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('userid', models.AutoField(db_column='userid', primary_key=True, serialize=False)), + ('username', models.CharField(db_column='username', max_length=20, unique=True, verbose_name='username')), + ('password', models.CharField(db_column='password', max_length=128, verbose_name='password')), + ('first_name', models.CharField(db_column='firstname', max_length=255, verbose_name='first name')), + ('last_name', models.CharField(db_column='lastname', max_length=255, verbose_name='last name')), + ('affiliation', models.CharField(db_column='affiliation', max_length=255)), + ('title', models.CharField(db_column='title', max_length=255)), + ('is_superuser', models.BooleanField(db_column='is_superuser', default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('email', models.EmailField(blank=True, db_column='email', max_length=254, null=True, verbose_name='email address')), + ('is_staff', models.BooleanField(db_column='is_staff', default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(db_column='is_active', default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(db_column='date_joined', default=django.utils.timezone.now, verbose_name='date joined')), + ('accesslevel', models.ForeignKey(blank=True, db_column='accesslevel', null=True, on_delete=django.db.models.deletion.CASCADE, to='Accounts.UserAccess', verbose_name='access level')), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), ], options={ - "db_table": "users", - "verbose_name": "User", - "managed": True, - "verbose_name_plural": "Users", + 'db_table': 'users', + 'verbose_name': 'User', + 'managed': True, + 'verbose_name_plural': 'Users', }, managers=[ - ("objects", django.contrib.auth.models.UserManager()), + ('objects', django.contrib.auth.models.UserManager()), ], ), ] diff --git a/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py b/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py index e427dcc5..497d78f1 100644 --- a/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py +++ b/TEKDB/Accounts/migrations/0002_alter_users_accesslevel.py @@ -5,22 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("Accounts", "0001_initial"), + ('Accounts', '0001_initial'), ] operations = [ migrations.AlterField( - model_name="users", - name="accesslevel", - field=models.ForeignKey( - blank=True, - db_column="accesslevel", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Accounts.useraccess", - verbose_name="access level", - ), + model_name='users', + name='accesslevel', + field=models.ForeignKey(blank=True, db_column='accesslevel', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Accounts.useraccess', verbose_name='access level'), ), ] diff --git a/TEKDB/Lookup/migrations/0001_initial.py b/TEKDB/Lookup/migrations/0001_initial.py index 9de598e1..5318d79b 100644 --- a/TEKDB/Lookup/migrations/0001_initial.py +++ b/TEKDB/Lookup/migrations/0001_initial.py @@ -6,500 +6,256 @@ class Migration(migrations.Migration): + initial = True - dependencies = [] + dependencies = [ + ] operations = [ migrations.CreateModel( - name="CurrentVersion", + name='CurrentVersion', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "backendversion", - models.IntegerField( - blank=True, - db_column="backendversion", - null=True, - verbose_name="backend version", - ), - ), - ( - "frontendversion", - models.IntegerField( - blank=True, - db_column="frontendversion", - null=True, - verbose_name="frontend version", - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('backendversion', models.IntegerField(blank=True, db_column='backendversion', null=True, verbose_name='backend version')), + ('frontendversion', models.IntegerField(blank=True, db_column='frontendversion', null=True, verbose_name='frontend version')), ], options={ - "db_table": "currentversion", - "verbose_name": "current version", - "managed": True, - "verbose_name_plural": "current versions", + 'db_table': 'currentversion', + 'verbose_name': 'current version', + 'managed': True, + 'verbose_name_plural': 'current versions', }, ), migrations.CreateModel( - name="LookupActivity", + name='LookupActivity', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ("activity", models.CharField(db_column="activity", max_length=255)), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('activity', models.CharField(db_column='activity', max_length=255)), ], options={ - "db_table": "lookupactivity", - "verbose_name": "activity", - "managed": True, - "verbose_name_plural": "activities", + 'db_table': 'lookupactivity', + 'verbose_name': 'activity', + 'managed': True, + 'verbose_name_plural': 'activities', }, ), migrations.CreateModel( - name="LookupAuthorType", + name='LookupAuthorType', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "authortype", - models.CharField( - db_column="authortype", - max_length=50, - verbose_name="author type", - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('authortype', models.CharField(db_column='authortype', max_length=50, verbose_name='author type')), ], options={ - "db_table": "lookupauthortype", - "verbose_name": "author type", - "managed": True, - "verbose_name_plural": "author types", + 'db_table': 'lookupauthortype', + 'verbose_name': 'author type', + 'managed': True, + 'verbose_name_plural': 'author types', }, ), migrations.CreateModel( - name="LookupCustomaryUse", + name='LookupCustomaryUse', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "usedfor", - models.CharField( - db_column="usedfor", max_length=255, verbose_name="used_for" - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('usedfor', models.CharField(db_column='usedfor', max_length=255, verbose_name='used_for')), ], options={ - "db_table": "lookupcustomaryuse", - "verbose_name": "customary use", - "managed": True, - "verbose_name_plural": "customary uses", + 'db_table': 'lookupcustomaryuse', + 'verbose_name': 'customary use', + 'managed': True, + 'verbose_name_plural': 'customary uses', }, ), migrations.CreateModel( - name="LookupHabitat", + name='LookupHabitat', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ("habitat", models.CharField(db_column="habitat", max_length=100)), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('habitat', models.CharField(db_column='habitat', max_length=100)), ], options={ - "db_table": "lookuphabitat", - "verbose_name": "habitat", - "managed": True, - "verbose_name_plural": "habitats", + 'db_table': 'lookuphabitat', + 'verbose_name': 'habitat', + 'managed': True, + 'verbose_name_plural': 'habitats', }, ), migrations.CreateModel( - name="LookupLocalityType", + name='LookupLocalityType', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "localitytype", - models.CharField( - db_column="localitytype", - max_length=255, - verbose_name="locality type", - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('localitytype', models.CharField(db_column='localitytype', max_length=255, verbose_name='locality type')), ], options={ - "db_table": "lookuplocalitytype", - "verbose_name": "locality type", - "managed": True, - "verbose_name_plural": "locality types", + 'db_table': 'lookuplocalitytype', + 'verbose_name': 'locality type', + 'managed': True, + 'verbose_name_plural': 'locality types', }, ), migrations.CreateModel( - name="LookupMediaType", + name='LookupMediaType', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "mediatype", - models.CharField( - db_column="mediatype", max_length=255, verbose_name="type" - ), - ), - ( - "mediacategory", - models.CharField( - blank=True, - db_column="mediacategory", - max_length=255, - null=True, - verbose_name="category", - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('mediatype', models.CharField(db_column='mediatype', max_length=255, verbose_name='type')), + ('mediacategory', models.CharField(blank=True, db_column='mediacategory', max_length=255, null=True, verbose_name='category')), ], options={ - "db_table": "lookupmediatype", - "verbose_name": "media type", - "managed": True, - "verbose_name_plural": "media types", + 'db_table': 'lookupmediatype', + 'verbose_name': 'media type', + 'managed': True, + 'verbose_name_plural': 'media types', }, ), migrations.CreateModel( - name="LookupParticipants", + name='LookupParticipants', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "participants", - models.CharField(db_column="participants", max_length=255), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('participants', models.CharField(db_column='participants', max_length=255)), ], options={ - "db_table": "lookupparticipants", - "verbose_name": "participant", - "managed": True, - "verbose_name_plural": "participants", + 'db_table': 'lookupparticipants', + 'verbose_name': 'participant', + 'managed': True, + 'verbose_name_plural': 'participants', }, ), migrations.CreateModel( - name="LookupPartUsed", + name='LookupPartUsed', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "partused", - models.CharField( - db_column="partused", max_length=255, verbose_name="part used" - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('partused', models.CharField(db_column='partused', max_length=255, verbose_name='part used')), ], options={ - "db_table": "lookuppartused", - "verbose_name": "part used", - "managed": True, - "verbose_name_plural": "parts used", + 'db_table': 'lookuppartused', + 'verbose_name': 'part used', + 'managed': True, + 'verbose_name_plural': 'parts used', }, ), migrations.CreateModel( - name="LookupPlanningUnit", + name='LookupPlanningUnit', fields=[ - ( - "planningunitid", - models.AutoField( - db_column="planningunitid", primary_key=True, serialize=False - ), - ), - ( - "planningunitname", - models.CharField( - blank=True, - db_column="planningunitname", - max_length=100, - null=True, - verbose_name="planning unit", - ), - ), + ('planningunitid', models.AutoField(db_column='planningunitid', primary_key=True, serialize=False)), + ('planningunitname', models.CharField(blank=True, db_column='planningunitname', max_length=100, null=True, verbose_name='planning unit')), ], options={ - "db_table": "lookupplanningunit", - "verbose_name": "planning unit", - "managed": True, - "verbose_name_plural": "planning units", + 'db_table': 'lookupplanningunit', + 'verbose_name': 'planning unit', + 'managed': True, + 'verbose_name_plural': 'planning units', }, ), migrations.CreateModel( - name="LookupReferenceType", + name='LookupReferenceType', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "documenttype", - models.CharField( - db_column="documenttype", - max_length=25, - verbose_name="document type", - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('documenttype', models.CharField(db_column='documenttype', max_length=25, verbose_name='document type')), ], options={ - "db_table": "lookupreferencetype", - "verbose_name": "reference type", - "managed": True, - "verbose_name_plural": "reference types", + 'db_table': 'lookupreferencetype', + 'verbose_name': 'reference type', + 'managed': True, + 'verbose_name_plural': 'reference types', }, ), migrations.CreateModel( - name="LookupResourceGroup", + name='LookupResourceGroup', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "resourceclassificationgroup", - models.CharField( - db_column="resourceclassificationgroup", - max_length=255, - verbose_name="broad species group", - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('resourceclassificationgroup', models.CharField(db_column='resourceclassificationgroup', max_length=255, verbose_name='broad species group')), ], options={ - "db_table": "lookupresourcegroup", - "verbose_name": "resource group", - "managed": True, - "verbose_name_plural": "resource groups", + 'db_table': 'lookupresourcegroup', + 'verbose_name': 'resource group', + 'managed': True, + 'verbose_name_plural': 'resource groups', }, ), migrations.CreateModel( - name="LookupSeason", + name='LookupSeason', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ("season", models.CharField(db_column="season", max_length=255)), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('season', models.CharField(db_column='season', max_length=255)), ], options={ - "db_table": "lookupseason", - "verbose_name": "season", - "managed": True, - "verbose_name_plural": "seasons", + 'db_table': 'lookupseason', + 'verbose_name': 'season', + 'managed': True, + 'verbose_name_plural': 'seasons', }, ), migrations.CreateModel( - name="LookupTechniques", + name='LookupTechniques', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "techniques", - models.CharField(db_column="techniques", max_length=255), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('techniques', models.CharField(db_column='techniques', max_length=255)), ], options={ - "db_table": "lookuptechniques", - "verbose_name": "technique", - "managed": True, - "verbose_name_plural": "techniques", + 'db_table': 'lookuptechniques', + 'verbose_name': 'technique', + 'managed': True, + 'verbose_name_plural': 'techniques', }, ), migrations.CreateModel( - name="LookupTiming", + name='LookupTiming', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ("timing", models.CharField(db_column="timing", max_length=255)), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('timing', models.CharField(db_column='timing', max_length=255)), ], options={ - "db_table": "lookuptiming", - "verbose_name": "timing", - "managed": True, - "verbose_name_plural": "timings", + 'db_table': 'lookuptiming', + 'verbose_name': 'timing', + 'managed': True, + 'verbose_name_plural': 'timings', }, ), migrations.CreateModel( - name="LookupTribe", + name='LookupTribe', fields=[ - ( - "id", - models.AutoField(db_column="id", primary_key=True, serialize=False), - ), - ( - "tribeunit", - models.CharField( - blank=True, - db_column="tribeunit", - max_length=50, - null=True, - verbose_name="tribe subunit", - ), - ), - ( - "tribe", - models.CharField( - blank=True, - db_column="tribe", - max_length=100, - null=True, - verbose_name="tribe", - ), - ), - ( - "federaltribe", - models.CharField( - blank=True, - db_column="federaltribe", - max_length=100, - null=True, - verbose_name="tribal government", - ), - ), + ('id', models.AutoField(db_column='id', primary_key=True, serialize=False)), + ('tribeunit', models.CharField(blank=True, db_column='tribeunit', max_length=50, null=True, verbose_name='tribe subunit')), + ('tribe', models.CharField(blank=True, db_column='tribe', max_length=100, null=True, verbose_name='tribe')), + ('federaltribe', models.CharField(blank=True, db_column='federaltribe', max_length=100, null=True, verbose_name='tribal government')), ], options={ - "db_table": "lookuptribe", - "verbose_name": "tribe", - "managed": True, - "verbose_name_plural": "tribes", + 'db_table': 'lookuptribe', + 'verbose_name': 'tribe', + 'managed': True, + 'verbose_name_plural': 'tribes', }, ), migrations.CreateModel( - name="LookupUserInfo", + name='LookupUserInfo', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "username", - models.CharField( - blank=True, - db_column="username", - max_length=100, - null=True, - verbose_name="username", - ), - ), - ( - "usingcustomusername", - models.BooleanField( - db_column="usingcustomusername", - default=False, - verbose_name="using custom username", - ), - ), - ( - "usertitle", - models.CharField( - blank=True, - db_column="usertitle", - max_length=100, - null=True, - verbose_name="title", - ), - ), - ( - "useraffiliation", - models.CharField( - blank=True, - db_column="useraffiliation", - max_length=100, - null=True, - verbose_name="affiliation", - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('username', models.CharField(blank=True, db_column='username', max_length=100, null=True, verbose_name='username')), + ('usingcustomusername', models.BooleanField(db_column='usingcustomusername', default=False, verbose_name='using custom username')), + ('usertitle', models.CharField(blank=True, db_column='usertitle', max_length=100, null=True, verbose_name='title')), + ('useraffiliation', models.CharField(blank=True, db_column='useraffiliation', max_length=100, null=True, verbose_name='affiliation')), ], options={ - "db_table": "lookupuserinfo", - "verbose_name": "user info", - "managed": True, - "verbose_name_plural": "user info", + 'db_table': 'lookupuserinfo', + 'verbose_name': 'user info', + 'managed': True, + 'verbose_name_plural': 'user info', }, ), migrations.CreateModel( - name="People", + name='People', fields=[ - ( - "personid", - models.AutoField( - db_column="personid", primary_key=True, serialize=False - ), - ), - ( - "firstname", - models.CharField( - blank=True, - db_column="firstname", - max_length=255, - null=True, - verbose_name="first name", - ), - ), - ( - "lastname", - models.CharField( - blank=True, - db_column="lastname", - max_length=255, - null=True, - verbose_name="last name", - ), - ), - ( - "village", - models.CharField( - blank=True, db_column="village", max_length=255, null=True - ), - ), - ( - "yearborn", - models.IntegerField( - blank=True, - db_column="yearborn", - null=True, - verbose_name="year born", - ), - ), - ( - "relationshiptootherpeople", - models.TextField( - blank=True, - db_column="relationshiptootherpeople", - null=True, - verbose_name="relationship to other people", - ), - ), + ('personid', models.AutoField(db_column='personid', primary_key=True, serialize=False)), + ('firstname', models.CharField(blank=True, db_column='firstname', max_length=255, null=True, verbose_name='first name')), + ('lastname', models.CharField(blank=True, db_column='lastname', max_length=255, null=True, verbose_name='last name')), + ('village', models.CharField(blank=True, db_column='village', max_length=255, null=True)), + ('yearborn', models.IntegerField(blank=True, db_column='yearborn', null=True, verbose_name='year born')), + ('relationshiptootherpeople', models.TextField(blank=True, db_column='relationshiptootherpeople', null=True, verbose_name='relationship to other people')), ], options={ - "db_table": "people", - "verbose_name": "person", - "managed": True, - "verbose_name_plural": "people", + 'db_table': 'people', + 'verbose_name': 'person', + 'managed': True, + 'verbose_name_plural': 'people', }, ), ] diff --git a/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py b/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py index 279bd561..62ff1b64 100644 --- a/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py +++ b/TEKDB/Lookup/migrations/0002_auto_20191223_1538.py @@ -6,153 +6,74 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0001_initial"), + ('Lookup', '0001_initial'), ] operations = [ migrations.AlterModelOptions( - name="lookupactivity", - options={ - "managed": True, - "ordering": ["activity"], - "verbose_name": "activity", - "verbose_name_plural": "activities", - }, - ), - migrations.AlterModelOptions( - name="lookupauthortype", - options={ - "managed": True, - "ordering": ["authortype"], - "verbose_name": "author type", - "verbose_name_plural": "author types", - }, - ), - migrations.AlterModelOptions( - name="lookupcustomaryuse", - options={ - "managed": True, - "ordering": ["usedfor"], - "verbose_name": "customary use", - "verbose_name_plural": "customary uses", - }, - ), - migrations.AlterModelOptions( - name="lookuphabitat", - options={ - "managed": True, - "ordering": ["habitat"], - "verbose_name": "habitat", - "verbose_name_plural": "habitats", - }, - ), - migrations.AlterModelOptions( - name="lookuplocalitytype", - options={ - "managed": True, - "ordering": ["localitytype"], - "verbose_name": "locality type", - "verbose_name_plural": "locality types", - }, - ), - migrations.AlterModelOptions( - name="lookupmediatype", - options={ - "managed": True, - "ordering": ["mediatype"], - "verbose_name": "media type", - "verbose_name_plural": "media types", - }, - ), - migrations.AlterModelOptions( - name="lookupparticipants", - options={ - "managed": True, - "ordering": ["participants"], - "verbose_name": "participant", - "verbose_name_plural": "participants", - }, - ), - migrations.AlterModelOptions( - name="lookuppartused", - options={ - "managed": True, - "ordering": ["partused"], - "verbose_name": "part used", - "verbose_name_plural": "parts used", - }, - ), - migrations.AlterModelOptions( - name="lookupplanningunit", - options={ - "managed": True, - "ordering": ["planningunitname"], - "verbose_name": "planning unit", - "verbose_name_plural": "planning units", - }, - ), - migrations.AlterModelOptions( - name="lookupreferencetype", - options={ - "managed": True, - "ordering": ["documenttype"], - "verbose_name": "reference type", - "verbose_name_plural": "reference types", - }, - ), - migrations.AlterModelOptions( - name="lookupresourcegroup", - options={ - "managed": True, - "ordering": ["resourceclassificationgroup"], - "verbose_name": "resource group", - "verbose_name_plural": "resource groups", - }, - ), - migrations.AlterModelOptions( - name="lookupseason", - options={ - "managed": True, - "ordering": ["season"], - "verbose_name": "season", - "verbose_name_plural": "seasons", - }, - ), - migrations.AlterModelOptions( - name="lookuptechniques", - options={ - "managed": True, - "ordering": ["techniques"], - "verbose_name": "technique", - "verbose_name_plural": "techniques", - }, - ), - migrations.AlterModelOptions( - name="lookuptiming", - options={ - "managed": True, - "ordering": ["timing"], - "verbose_name": "timing", - "verbose_name_plural": "timings", - }, - ), - migrations.AlterModelOptions( - name="lookuptribe", - options={ - "managed": True, - "ordering": ["tribe"], - "verbose_name": "tribe", - "verbose_name_plural": "tribes", - }, - ), - migrations.AlterModelOptions( - name="lookupuserinfo", - options={ - "managed": True, - "ordering": ["username"], - "verbose_name": "user info", - "verbose_name_plural": "user info", - }, + name='lookupactivity', + options={'managed': True, 'ordering': ['activity'], 'verbose_name': 'activity', 'verbose_name_plural': 'activities'}, + ), + migrations.AlterModelOptions( + name='lookupauthortype', + options={'managed': True, 'ordering': ['authortype'], 'verbose_name': 'author type', 'verbose_name_plural': 'author types'}, + ), + migrations.AlterModelOptions( + name='lookupcustomaryuse', + options={'managed': True, 'ordering': ['usedfor'], 'verbose_name': 'customary use', 'verbose_name_plural': 'customary uses'}, + ), + migrations.AlterModelOptions( + name='lookuphabitat', + options={'managed': True, 'ordering': ['habitat'], 'verbose_name': 'habitat', 'verbose_name_plural': 'habitats'}, + ), + migrations.AlterModelOptions( + name='lookuplocalitytype', + options={'managed': True, 'ordering': ['localitytype'], 'verbose_name': 'locality type', 'verbose_name_plural': 'locality types'}, + ), + migrations.AlterModelOptions( + name='lookupmediatype', + options={'managed': True, 'ordering': ['mediatype'], 'verbose_name': 'media type', 'verbose_name_plural': 'media types'}, + ), + migrations.AlterModelOptions( + name='lookupparticipants', + options={'managed': True, 'ordering': ['participants'], 'verbose_name': 'participant', 'verbose_name_plural': 'participants'}, + ), + migrations.AlterModelOptions( + name='lookuppartused', + options={'managed': True, 'ordering': ['partused'], 'verbose_name': 'part used', 'verbose_name_plural': 'parts used'}, + ), + migrations.AlterModelOptions( + name='lookupplanningunit', + options={'managed': True, 'ordering': ['planningunitname'], 'verbose_name': 'planning unit', 'verbose_name_plural': 'planning units'}, + ), + migrations.AlterModelOptions( + name='lookupreferencetype', + options={'managed': True, 'ordering': ['documenttype'], 'verbose_name': 'reference type', 'verbose_name_plural': 'reference types'}, + ), + migrations.AlterModelOptions( + name='lookupresourcegroup', + options={'managed': True, 'ordering': ['resourceclassificationgroup'], 'verbose_name': 'resource group', 'verbose_name_plural': 'resource groups'}, + ), + migrations.AlterModelOptions( + name='lookupseason', + options={'managed': True, 'ordering': ['season'], 'verbose_name': 'season', 'verbose_name_plural': 'seasons'}, + ), + migrations.AlterModelOptions( + name='lookuptechniques', + options={'managed': True, 'ordering': ['techniques'], 'verbose_name': 'technique', 'verbose_name_plural': 'techniques'}, + ), + migrations.AlterModelOptions( + name='lookuptiming', + options={'managed': True, 'ordering': ['timing'], 'verbose_name': 'timing', 'verbose_name_plural': 'timings'}, + ), + migrations.AlterModelOptions( + name='lookuptribe', + options={'managed': True, 'ordering': ['tribe'], 'verbose_name': 'tribe', 'verbose_name_plural': 'tribes'}, + ), + migrations.AlterModelOptions( + name='lookupuserinfo', + options={'managed': True, 'ordering': ['username'], 'verbose_name': 'user info', 'verbose_name_plural': 'user info'}, ), ] diff --git a/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py b/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py index 682a1ed5..2bd255b4 100644 --- a/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py +++ b/TEKDB/Lookup/migrations/0003_auto_20191223_1604.py @@ -6,31 +6,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0002_auto_20191223_1538"), + ('Lookup', '0002_auto_20191223_1538'), ] operations = [ migrations.AlterField( - model_name="lookuptribe", - name="federaltribe", - field=models.CharField( - blank=True, - db_column="federaltribe", - max_length=255, - null=True, - verbose_name="tribal government", - ), + model_name='lookuptribe', + name='federaltribe', + field=models.CharField(blank=True, db_column='federaltribe', max_length=255, null=True, verbose_name='tribal government'), ), migrations.AlterField( - model_name="lookuptribe", - name="tribe", - field=models.CharField( - blank=True, - db_column="tribe", - max_length=255, - null=True, - verbose_name="tribe", - ), + model_name='lookuptribe', + name='tribe', + field=models.CharField(blank=True, db_column='tribe', max_length=255, null=True, verbose_name='tribe'), ), ] diff --git a/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py b/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py index 104dcfdf..eb5c4b2e 100644 --- a/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py +++ b/TEKDB/Lookup/migrations/0004_auto_20200107_1249.py @@ -7,19 +7,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0003_auto_20191223_1604"), + ('Lookup', '0003_auto_20191223_1604'), ] operations = [ migrations.AlterField( - model_name="people", - name="relationshiptootherpeople", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshiptootherpeople", - null=True, - verbose_name="relationship to other people", - ), + model_name='people', + name='relationshiptootherpeople', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshiptootherpeople', null=True, verbose_name='relationship to other people'), ), ] diff --git a/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py b/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py index ac136b0b..77421b48 100644 --- a/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py +++ b/TEKDB/Lookup/migrations/0005_alter_lookupuserinfo_id.py @@ -4,16 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0004_auto_20200107_1249"), + ('Lookup', '0004_auto_20200107_1249'), ] operations = [ migrations.AlterField( - model_name="lookupuserinfo", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), + model_name='lookupuserinfo', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), ), ] diff --git a/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py b/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py index 2e40ec77..963875b8 100644 --- a/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py +++ b/TEKDB/Lookup/migrations/0006_alter_people_relationshiptootherpeople.py @@ -5,19 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0005_alter_lookupuserinfo_id"), + ('Lookup', '0005_alter_lookupuserinfo_id'), ] operations = [ migrations.AlterField( - model_name="people", - name="relationshiptootherpeople", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshiptootherpeople", - null=True, - verbose_name="relationship to other people", - ), + model_name='people', + name='relationshiptootherpeople', + field=tinymce.models.HTMLField(blank=True, db_column='relationshiptootherpeople', null=True, verbose_name='relationship to other people'), ), ] diff --git a/TEKDB/Relationships/migrations/0001_initial.py b/TEKDB/Relationships/migrations/0001_initial.py index 1a49960e..a6a883c2 100644 --- a/TEKDB/Relationships/migrations/0001_initial.py +++ b/TEKDB/Relationships/migrations/0001_initial.py @@ -6,1505 +6,331 @@ class Migration(migrations.Migration): + initial = True - dependencies = [] + dependencies = [ + ] operations = [ migrations.CreateModel( - name="LocalityGISSelections", + name='LocalityGISSelections', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "localitylabel", - models.CharField( - blank=True, - db_column="localitylabel", - max_length=255, - null=True, - verbose_name="locality label", - ), - ), - ( - "sourcefc", - models.CharField( - blank=True, - db_column="sourcefc", - max_length=255, - null=True, - verbose_name="source fc", - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('localitylabel', models.CharField(blank=True, db_column='localitylabel', max_length=255, null=True, verbose_name='locality label')), + ('sourcefc', models.CharField(blank=True, db_column='sourcefc', max_length=255, null=True, verbose_name='source fc')), ], options={ - "db_table": "localitygisselections", - "managed": True, - "verbose_name_plural": "Locality GIS Selections", + 'db_table': 'localitygisselections', + 'managed': True, + 'verbose_name_plural': 'Locality GIS Selections', }, ), migrations.CreateModel( - name="LocalityPlaceResourceEvent", + name='LocalityPlaceResourceEvent', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), ], options={ - "db_table": "localityplaceresourceevent", - "managed": True, - "verbose_name_plural": "Localities - Place-Resources", + 'db_table': 'localityplaceresourceevent', + 'managed': True, + 'verbose_name_plural': 'Localities - Place-Resources', }, ), migrations.CreateModel( - name="MediaCitationEvents", + name='MediaCitationEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="excerpt/description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=255, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), ], options={ - "db_table": "mediacitationevents", - "verbose_name_plural": "Media - Sources", - "verbose_name": "Medium - Source", - "managed": True, + 'db_table': 'mediacitationevents', + 'verbose_name_plural': 'Media - Sources', + 'verbose_name': 'Medium - Source', + 'managed': True, }, ), migrations.CreateModel( - name="PlaceAltIndigenousName", + name='PlaceAltIndigenousName', fields=[ - ( - "altindigenousnameid", - models.AutoField( - db_column="altindigenousnameid", - primary_key=True, - serialize=False, - ), - ), - ( - "altindigenousname", - models.CharField( - blank=True, - db_column="altindigenousname", - max_length=255, - null=True, - verbose_name="alternate name", - ), - ), + ('altindigenousnameid', models.AutoField(db_column='altindigenousnameid', primary_key=True, serialize=False)), + ('altindigenousname', models.CharField(blank=True, db_column='altindigenousname', max_length=255, null=True, verbose_name='alternate name')), ], options={ - "db_table": "placealtindigenousname", - "verbose_name": "Place - Alternate Name", - "managed": True, - "verbose_name_plural": "Places - Alternate Names", + 'db_table': 'placealtindigenousname', + 'verbose_name': 'Place - Alternate Name', + 'managed': True, + 'verbose_name_plural': 'Places - Alternate Names', }, ), migrations.CreateModel( - name="PlaceGISSelections", + name='PlaceGISSelections', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "placelabel", - models.CharField( - blank=True, - db_column="placelabel", - max_length=255, - null=True, - verbose_name="label", - ), - ), - ( - "sourcefc", - models.CharField( - blank=True, - db_column="sourcefc", - max_length=255, - null=True, - verbose_name="source fc", - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('placelabel', models.CharField(blank=True, db_column='placelabel', max_length=255, null=True, verbose_name='label')), + ('sourcefc', models.CharField(blank=True, db_column='sourcefc', max_length=255, null=True, verbose_name='source fc')), ], options={ - "db_table": "placegisselections", - "managed": True, - "verbose_name_plural": "Place GIS Selections", + 'db_table': 'placegisselections', + 'managed': True, + 'verbose_name_plural': 'Place GIS Selections', }, ), migrations.CreateModel( - name="PlacesCitationEvents", + name='PlacesCitationEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="excerpt/description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=255, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), ], options={ - "db_table": "placescitationevents", - "verbose_name_plural": "Places - Sources", - "verbose_name": "Place - Source", - "managed": True, + 'db_table': 'placescitationevents', + 'verbose_name_plural': 'Places - Sources', + 'verbose_name': 'Place - Source', + 'managed': True, }, ), migrations.CreateModel( - name="PlacesMediaEvents", + name='PlacesMediaEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="relationship description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=50, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), ], options={ - "db_table": "placesmediaevents", - "verbose_name_plural": "Places - Media", - "verbose_name": "Place - Medium", - "managed": True, + 'db_table': 'placesmediaevents', + 'verbose_name_plural': 'Places - Media', + 'verbose_name': 'Place - Medium', + 'managed': True, }, ), migrations.CreateModel( - name="PlacesResourceCitationEvents", + name='PlacesResourceCitationEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="excerpt/description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=255, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), ], options={ - "db_table": "placesresourcecitationevents", - "managed": True, - "verbose_name_plural": "Place-Resources - Sources", + 'db_table': 'placesresourcecitationevents', + 'managed': True, + 'verbose_name_plural': 'Place-Resources - Sources', }, ), migrations.CreateModel( - name="PlacesResourceEvents", + name='PlacesResourceEvents', fields=[ - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "placeresourceid", - models.AutoField( - db_column="placeresourceid", primary_key=True, serialize=False - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="excerpt", - ), - ), - ( - "barterresource", - models.BooleanField( - db_column="barterresource", - default=False, - verbose_name="barter resource?", - ), - ), - ("january", models.BooleanField(db_column="january", default=False)), - ("february", models.BooleanField(db_column="february", default=False)), - ("march", models.BooleanField(db_column="march", default=False)), - ("april", models.BooleanField(db_column="april", default=False)), - ("may", models.BooleanField(db_column="may", default=False)), - ("june", models.BooleanField(db_column="june", default=False)), - ("july", models.BooleanField(db_column="july", default=False)), - ("august", models.BooleanField(db_column="august", default=False)), - ( - "september", - models.BooleanField(db_column="september", default=False), - ), - ("october", models.BooleanField(db_column="october", default=False)), - ("november", models.BooleanField(db_column="november", default=False)), - ("december", models.BooleanField(db_column="december", default=False)), - ("year", models.IntegerField(blank=True, db_column="year", null=True)), - ( - "islocked", - models.BooleanField( - db_column="islocked", default=False, verbose_name="locked?" - ), - ), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('placeresourceid', models.AutoField(db_column='placeresourceid', primary_key=True, serialize=False)), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt')), + ('barterresource', models.BooleanField(db_column='barterresource', default=False, verbose_name='barter resource?')), + ('january', models.BooleanField(db_column='january', default=False)), + ('february', models.BooleanField(db_column='february', default=False)), + ('march', models.BooleanField(db_column='march', default=False)), + ('april', models.BooleanField(db_column='april', default=False)), + ('may', models.BooleanField(db_column='may', default=False)), + ('june', models.BooleanField(db_column='june', default=False)), + ('july', models.BooleanField(db_column='july', default=False)), + ('august', models.BooleanField(db_column='august', default=False)), + ('september', models.BooleanField(db_column='september', default=False)), + ('october', models.BooleanField(db_column='october', default=False)), + ('november', models.BooleanField(db_column='november', default=False)), + ('december', models.BooleanField(db_column='december', default=False)), + ('year', models.IntegerField(blank=True, db_column='year', null=True)), + ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), ], options={ - "db_table": "placesresourceevents", - "verbose_name": "Place - Resource", - "managed": True, - "verbose_name_plural": "Places - Resources", + 'db_table': 'placesresourceevents', + 'verbose_name': 'Place - Resource', + 'managed': True, + 'verbose_name_plural': 'Places - Resources', }, ), migrations.CreateModel( - name="PlacesResourceMediaEvents", + name='PlacesResourceMediaEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="relationship description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=50, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), ], options={ - "db_table": "placesresourcemediaevents", - "managed": True, - "verbose_name_plural": "Place-Resources - Media", + 'db_table': 'placesresourcemediaevents', + 'managed': True, + 'verbose_name_plural': 'Place-Resources - Media', }, ), migrations.CreateModel( - name="ResourceActivityCitationEvents", + name='ResourceActivityCitationEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="excerpt/description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=255, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), ], options={ - "db_table": "resourceactivitycitationevents", - "managed": True, - "verbose_name_plural": "Activity - Sources", + 'db_table': 'resourceactivitycitationevents', + 'managed': True, + 'verbose_name_plural': 'Activity - Sources', }, ), migrations.CreateModel( - name="ResourceActivityMediaEvents", + name='ResourceActivityMediaEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="relationship description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=50, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), ], options={ - "db_table": "resourceactivitymediaevents", - "managed": True, - "verbose_name_plural": "Activity - Media", + 'db_table': 'resourceactivitymediaevents', + 'managed': True, + 'verbose_name_plural': 'Activity - Media', }, ), migrations.CreateModel( - name="ResourceAltIndigenousName", + name='ResourceAltIndigenousName', fields=[ - ( - "altindigenousnameid", - models.AutoField( - db_column="altindigenousnameid", - primary_key=True, - serialize=False, - ), - ), - ( - "altindigenousname", - models.CharField( - blank=True, - db_column="altindigenousname", - max_length=255, - null=True, - verbose_name="alt name", - ), - ), + ('altindigenousnameid', models.AutoField(db_column='altindigenousnameid', primary_key=True, serialize=False)), + ('altindigenousname', models.CharField(blank=True, db_column='altindigenousname', max_length=255, null=True, verbose_name='alt name')), ], options={ - "db_table": "resourcealtindigenousname", - "managed": True, - "verbose_name_plural": "Resource Alternative Names", + 'db_table': 'resourcealtindigenousname', + 'managed': True, + 'verbose_name_plural': 'Resource Alternative Names', }, ), migrations.CreateModel( - name="ResourceResourceEvents", + name='ResourceResourceEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="relationship description", - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), ], options={ - "db_table": "resourceresourceevents", - "managed": True, - "verbose_name_plural": "Resources - Resources", + 'db_table': 'resourceresourceevents', + 'managed': True, + 'verbose_name_plural': 'Resources - Resources', }, ), migrations.CreateModel( - name="ResourcesCitationEvents", + name='ResourcesCitationEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="excerpt/description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=255, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='excerpt/description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=255, null=True)), ], options={ - "db_table": "resourcescitationevents", - "verbose_name_plural": "Resources - Sources", - "verbose_name": "Resource - Source", - "managed": True, + 'db_table': 'resourcescitationevents', + 'verbose_name_plural': 'Resources - Sources', + 'verbose_name': 'Resource - Source', + 'managed': True, }, ), migrations.CreateModel( - name="ResourcesMediaEvents", + name='ResourcesMediaEvents', fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "relationshipdescription", - models.CharField( - blank=True, - db_column="relationshipdescription", - max_length=255, - null=True, - verbose_name="relationship description", - ), - ), - ( - "pages", - models.CharField( - blank=True, db_column="pages", max_length=50, null=True - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('relationshipdescription', models.CharField(blank=True, db_column='relationshipdescription', max_length=255, null=True, verbose_name='relationship description')), + ('pages', models.CharField(blank=True, db_column='pages', max_length=50, null=True)), ], options={ - "db_table": "resourcesmediaevents", - "verbose_name_plural": "Resources - Media", - "verbose_name": "Resource - Medium", - "managed": True, + 'db_table': 'resourcesmediaevents', + 'verbose_name_plural': 'Resources - Media', + 'verbose_name': 'Resource - Medium', + 'managed': True, }, ), ] diff --git a/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py b/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py index 9b60a90e..01ab3597 100644 --- a/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py +++ b/TEKDB/Relationships/migrations/0002_auto_20171013_1650.py @@ -7,395 +7,218 @@ class Migration(migrations.Migration): + initial = True dependencies = [ - ("Relationships", "0001_initial"), - ("Lookup", "0001_initial"), - ("TEKDB", "0001_initial"), + ('Relationships', '0001_initial'), + ('Lookup', '0001_initial'), + ('TEKDB', '0001_initial'), ] operations = [ migrations.AddField( - model_name="resourcesmediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Media", - verbose_name="media", - ), - ), - migrations.AddField( - model_name="resourcesmediaevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Resources", - verbose_name="resource", - ), - ), - migrations.AddField( - model_name="resourcescitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Citations", - verbose_name="citation", - ), - ), - migrations.AddField( - model_name="resourcescitationevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Resources", - verbose_name="resource", - ), - ), - migrations.AddField( - model_name="resourceresourceevents", - name="altresourceid", - field=models.ForeignKey( - db_column="altresourceid", - on_delete=django.db.models.deletion.CASCADE, - related_name="resource_b", - to="TEKDB.Resources", - ), - ), - migrations.AddField( - model_name="resourceresourceevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - related_name="resource_a", - to="TEKDB.Resources", - ), - ), - migrations.AddField( - model_name="resourcealtindigenousname", - name="resourceid", - field=models.ForeignKey( - blank=True, - db_column="resourceid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Resources", - verbose_name="resource", - ), - ), - migrations.AddField( - model_name="resourceactivitymediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Media", - verbose_name="media", - ), - ), - migrations.AddField( - model_name="resourceactivitymediaevents", - name="resourceactivityid", - field=models.ForeignKey( - db_column="resourceactivityid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.ResourcesActivityEvents", - verbose_name="resource activity", - ), - ), - migrations.AddField( - model_name="resourceactivitycitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Citations", - verbose_name="citation", - ), - ), - migrations.AddField( - model_name="resourceactivitycitationevents", - name="resourceactivityid", - field=models.ForeignKey( - db_column="resourceactivityid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.ResourcesActivityEvents", - verbose_name="resource activity", - ), - ), - migrations.AddField( - model_name="placesresourcemediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Media", - verbose_name="media", - ), - ), - migrations.AddField( - model_name="placesresourcemediaevents", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.CASCADE, - to="Relationships.PlacesResourceEvents", - verbose_name="place - resource", - ), - ), - migrations.AddField( - model_name="placesresourceevents", - name="customaryuse", - field=models.ForeignKey( - blank=True, - db_column="customaryuse", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupCustomaryUse", - verbose_name="customary use", - ), - ), - migrations.AddField( - model_name="placesresourceevents", - name="partused", - field=models.ForeignKey( - blank=True, - db_column="partused", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupPartUsed", - verbose_name="part used", - ), - ), - migrations.AddField( - model_name="placesresourceevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Places", - verbose_name="place", - ), - ), - migrations.AddField( - model_name="placesresourceevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Resources", - verbose_name="resource", - ), - ), - migrations.AddField( - model_name="placesresourceevents", - name="season", - field=models.ForeignKey( - blank=True, - db_column="season", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupSeason", - ), - ), - migrations.AddField( - model_name="placesresourceevents", - name="timing", - field=models.ForeignKey( - blank=True, - db_column="timing", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupTiming", - ), - ), - migrations.AddField( - model_name="placesresourcecitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Citations", - verbose_name="citation", - ), - ), - migrations.AddField( - model_name="placesresourcecitationevents", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.CASCADE, - to="Relationships.PlacesResourceEvents", - verbose_name="place resource", - ), - ), - migrations.AddField( - model_name="placesmediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Media", - verbose_name="media", - ), - ), - migrations.AddField( - model_name="placesmediaevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Places", - verbose_name="place", - ), - ), - migrations.AddField( - model_name="placescitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Citations", - verbose_name="citation", - ), - ), - migrations.AddField( - model_name="placescitationevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Places", - verbose_name="place", - ), - ), - migrations.AddField( - model_name="placegisselections", - name="placeid", - field=models.ForeignKey( - blank=True, - db_column="placeid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Places", - verbose_name="place", - ), - ), - migrations.AddField( - model_name="placealtindigenousname", - name="placeid", - field=models.ForeignKey( - blank=True, - db_column="placeid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Places", - verbose_name="place", - ), - ), - migrations.AddField( - model_name="mediacitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Citations", - verbose_name="citation", - ), - ), - migrations.AddField( - model_name="mediacitationevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Media", - verbose_name="media", - ), - ), - migrations.AddField( - model_name="localityplaceresourceevent", - name="localityid", - field=models.ForeignKey( - db_column="localityid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Locality", - verbose_name="locality", - ), - ), - migrations.AddField( - model_name="localityplaceresourceevent", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.CASCADE, - to="Relationships.PlacesResourceEvents", - verbose_name="place resource", - ), - ), - migrations.AddField( - model_name="localitygisselections", - name="localityid", - field=models.ForeignKey( - blank=True, - db_column="localityid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Locality", - verbose_name="locality", - ), + model_name='resourcesmediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), + ), + migrations.AddField( + model_name='resourcesmediaevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), + ), + migrations.AddField( + model_name='resourcescitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), + ), + migrations.AddField( + model_name='resourcescitationevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), + ), + migrations.AddField( + model_name='resourceresourceevents', + name='altresourceid', + field=models.ForeignKey(db_column='altresourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_b', to='TEKDB.Resources'), + ), + migrations.AddField( + model_name='resourceresourceevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_a', to='TEKDB.Resources'), + ), + migrations.AddField( + model_name='resourcealtindigenousname', + name='resourceid', + field=models.ForeignKey(blank=True, db_column='resourceid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), + ), + migrations.AddField( + model_name='resourceactivitymediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), + ), + migrations.AddField( + model_name='resourceactivitymediaevents', + name='resourceactivityid', + field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.ResourcesActivityEvents', verbose_name='resource activity'), + ), + migrations.AddField( + model_name='resourceactivitycitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), + ), + migrations.AddField( + model_name='resourceactivitycitationevents', + name='resourceactivityid', + field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.ResourcesActivityEvents', verbose_name='resource activity'), + ), + migrations.AddField( + model_name='placesresourcemediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), + ), + migrations.AddField( + model_name='placesresourcemediaevents', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place - resource'), + ), + migrations.AddField( + model_name='placesresourceevents', + name='customaryuse', + field=models.ForeignKey(blank=True, db_column='customaryuse', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupCustomaryUse', verbose_name='customary use'), + ), + migrations.AddField( + model_name='placesresourceevents', + name='partused', + field=models.ForeignKey(blank=True, db_column='partused', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupPartUsed', verbose_name='part used'), + ), + migrations.AddField( + model_name='placesresourceevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), + ), + migrations.AddField( + model_name='placesresourceevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Resources', verbose_name='resource'), + ), + migrations.AddField( + model_name='placesresourceevents', + name='season', + field=models.ForeignKey(blank=True, db_column='season', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupSeason'), + ), + migrations.AddField( + model_name='placesresourceevents', + name='timing', + field=models.ForeignKey(blank=True, db_column='timing', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTiming'), + ), + migrations.AddField( + model_name='placesresourcecitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), + ), + migrations.AddField( + model_name='placesresourcecitationevents', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place resource'), + ), + migrations.AddField( + model_name='placesmediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), + ), + migrations.AddField( + model_name='placesmediaevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), + ), + migrations.AddField( + model_name='placescitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), + ), + migrations.AddField( + model_name='placescitationevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), + ), + migrations.AddField( + model_name='placegisselections', + name='placeid', + field=models.ForeignKey(blank=True, db_column='placeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), + ), + migrations.AddField( + model_name='placealtindigenousname', + name='placeid', + field=models.ForeignKey(blank=True, db_column='placeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), + ), + migrations.AddField( + model_name='mediacitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Citations', verbose_name='citation'), + ), + migrations.AddField( + model_name='mediacitationevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Media', verbose_name='media'), + ), + migrations.AddField( + model_name='localityplaceresourceevent', + name='localityid', + field=models.ForeignKey(db_column='localityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Locality', verbose_name='locality'), + ), + migrations.AddField( + model_name='localityplaceresourceevent', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place resource'), + ), + migrations.AddField( + model_name='localitygisselections', + name='localityid', + field=models.ForeignKey(blank=True, db_column='localityid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Locality', verbose_name='locality'), ), migrations.AlterUniqueTogether( - name="resourcesmediaevents", - unique_together=set([("resourceid", "mediaid")]), + name='resourcesmediaevents', + unique_together=set([('resourceid', 'mediaid')]), ), migrations.AlterUniqueTogether( - name="resourcescitationevents", - unique_together=set([("resourceid", "citationid")]), + name='resourcescitationevents', + unique_together=set([('resourceid', 'citationid')]), ), migrations.AlterUniqueTogether( - name="resourceresourceevents", - unique_together=set([("resourceid", "altresourceid")]), + name='resourceresourceevents', + unique_together=set([('resourceid', 'altresourceid')]), ), migrations.AlterUniqueTogether( - name="resourceactivitymediaevents", - unique_together=set([("resourceactivityid", "mediaid")]), + name='resourceactivitymediaevents', + unique_together=set([('resourceactivityid', 'mediaid')]), ), migrations.AlterUniqueTogether( - name="resourceactivitycitationevents", - unique_together=set([("resourceactivityid", "citationid")]), + name='resourceactivitycitationevents', + unique_together=set([('resourceactivityid', 'citationid')]), ), migrations.AlterUniqueTogether( - name="placesresourcemediaevents", - unique_together=set([("placeresourceid", "mediaid")]), + name='placesresourcemediaevents', + unique_together=set([('placeresourceid', 'mediaid')]), ), migrations.AlterUniqueTogether( - name="placesresourcecitationevents", - unique_together=set([("placeresourceid", "citationid")]), + name='placesresourcecitationevents', + unique_together=set([('placeresourceid', 'citationid')]), ), migrations.AlterUniqueTogether( - name="placesmediaevents", - unique_together=set([("placeid", "mediaid")]), + name='placesmediaevents', + unique_together=set([('placeid', 'mediaid')]), ), migrations.AlterUniqueTogether( - name="placescitationevents", - unique_together=set([("placeid", "citationid")]), + name='placescitationevents', + unique_together=set([('placeid', 'citationid')]), ), migrations.AlterUniqueTogether( - name="mediacitationevents", - unique_together=set([("mediaid", "citationid")]), + name='mediacitationevents', + unique_together=set([('mediaid', 'citationid')]), ), migrations.AlterUniqueTogether( - name="localityplaceresourceevent", - unique_together=set([("placeresourceid", "localityid")]), + name='localityplaceresourceevent', + unique_together=set([('placeresourceid', 'localityid')]), ), ] diff --git a/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py b/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py index d226bd96..3aa0ce10 100644 --- a/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py +++ b/TEKDB/Relationships/migrations/0003_auto_20171031_1434.py @@ -6,19 +6,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0002_auto_20171013_1650"), + ('Relationships', '0002_auto_20171013_1650'), ] operations = [ migrations.AlterField( - model_name="resourceresourceevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourceresourceevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), ] diff --git a/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py b/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py index 2c1745df..501e9a3a 100644 --- a/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py +++ b/TEKDB/Relationships/migrations/0004_auto_20171031_1525.py @@ -6,19 +6,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0003_auto_20171031_1434"), + ('Relationships', '0003_auto_20171031_1434'), ] operations = [ migrations.AlterField( - model_name="placesresourceevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt", - ), + model_name='placesresourceevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), ), ] diff --git a/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py b/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py index 3a09394f..908155ad 100644 --- a/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py +++ b/TEKDB/Relationships/migrations/0005_auto_20191223_1538.py @@ -6,27 +6,19 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0004_auto_20171031_1525"), + ('Relationships', '0004_auto_20171031_1525'), ] operations = [ migrations.AlterModelOptions( - name="resourcealtindigenousname", - options={ - "managed": True, - "verbose_name": "Resource Alternative Name", - "verbose_name_plural": "Resource Alternative Names", - }, + name='resourcealtindigenousname', + options={'managed': True, 'verbose_name': 'Resource Alternative Name', 'verbose_name_plural': 'Resource Alternative Names'}, ), migrations.AlterField( - model_name="resourceactivitycitationevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='resourceactivitycitationevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), ] diff --git a/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py b/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py index 98c516ce..d4483a71 100644 --- a/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py +++ b/TEKDB/Relationships/migrations/0006_auto_20191223_1604.py @@ -6,89 +6,50 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0005_auto_20191223_1538"), + ('Relationships', '0005_auto_20191223_1538'), ] operations = [ migrations.AlterField( - model_name="mediacitationevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='mediacitationevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placescitationevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='placescitationevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placesmediaevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='placesmediaevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="placesresourcecitationevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='placesresourcecitationevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placesresourcemediaevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='placesresourcemediaevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourceactivitymediaevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourceactivitymediaevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourcescitationevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='resourcescitationevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="resourcesmediaevents", - name="relationshipdescription", - field=models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourcesmediaevents', + name='relationshipdescription', + field=models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), ] diff --git a/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py b/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py index de7a27fc..29f99916 100644 --- a/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py +++ b/TEKDB/Relationships/migrations/0007_auto_20200107_1707.py @@ -7,119 +7,65 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0006_auto_20191223_1604"), + ('Relationships', '0006_auto_20191223_1604'), ] operations = [ migrations.AlterField( - model_name="mediacitationevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='mediacitationevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placescitationevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='placescitationevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placesmediaevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='placesmediaevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="placesresourcecitationevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='placesresourcecitationevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placesresourceevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt", - ), + model_name='placesresourceevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), ), migrations.AlterField( - model_name="placesresourcemediaevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='placesresourcemediaevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourceactivitycitationevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='resourceactivitycitationevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="resourceactivitymediaevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourceactivitymediaevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourceresourceevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourceresourceevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourcescitationevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='resourcescitationevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="resourcesmediaevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourcesmediaevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), ] diff --git a/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py b/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py index 843e1ee6..c85a4be4 100644 --- a/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py +++ b/TEKDB/Relationships/migrations/0008_auto_20211021_1607.py @@ -5,448 +5,237 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0005_alter_lookupuserinfo_id"), - ("TEKDB", "0004_auto_20200107_1604"), - ("Relationships", "0007_auto_20200107_1707"), + ('Lookup', '0005_alter_lookupuserinfo_id'), + ('TEKDB', '0004_auto_20200107_1604'), + ('Relationships', '0007_auto_20200107_1707'), ] operations = [ migrations.AlterField( - model_name="localitygisselections", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="localitygisselections", - name="localityid", - field=models.ForeignKey( - blank=True, - db_column="localityid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="TEKDB.locality", - verbose_name="locality", - ), - ), - migrations.AlterField( - model_name="localityplaceresourceevent", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="localityplaceresourceevent", - name="localityid", - field=models.ForeignKey( - db_column="localityid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.locality", - verbose_name="locality", - ), - ), - migrations.AlterField( - model_name="localityplaceresourceevent", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.PROTECT, - to="Relationships.placesresourceevents", - verbose_name="place resource", - ), - ), - migrations.AlterField( - model_name="mediacitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="mediacitationevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="mediacitationevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="placealtindigenousname", - name="placeid", - field=models.ForeignKey( - blank=True, - db_column="placeid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="placegisselections", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="placegisselections", - name="placeid", - field=models.ForeignKey( - blank=True, - db_column="placeid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="placescitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="placescitationevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="placescitationevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="placesmediaevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="placesmediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="placesmediaevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="placesresourcecitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="placesresourcecitationevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="placesresourcecitationevents", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.PROTECT, - to="Relationships.placesresourceevents", - verbose_name="place resource", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="customaryuse", - field=models.ForeignKey( - blank=True, - db_column="customaryuse", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupcustomaryuse", - verbose_name="customary use", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="partused", - field=models.ForeignKey( - blank=True, - db_column="partused", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuppartused", - verbose_name="part used", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.resources", - verbose_name="resource", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="season", - field=models.ForeignKey( - blank=True, - db_column="season", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupseason", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="timing", - field=models.ForeignKey( - blank=True, - db_column="timing", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuptiming", - ), - ), - migrations.AlterField( - model_name="placesresourcemediaevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="placesresourcemediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="placesresourcemediaevents", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.PROTECT, - to="Relationships.placesresourceevents", - verbose_name="place - resource", - ), - ), - migrations.AlterField( - model_name="resourceactivitycitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="resourceactivitycitationevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="resourceactivitycitationevents", - name="resourceactivityid", - field=models.ForeignKey( - db_column="resourceactivityid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.resourcesactivityevents", - verbose_name="resource activity", - ), - ), - migrations.AlterField( - model_name="resourceactivitymediaevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="resourceactivitymediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="resourceactivitymediaevents", - name="resourceactivityid", - field=models.ForeignKey( - db_column="resourceactivityid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.resourcesactivityevents", - verbose_name="resource activity", - ), - ), - migrations.AlterField( - model_name="resourcealtindigenousname", - name="resourceid", - field=models.ForeignKey( - blank=True, - db_column="resourceid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="TEKDB.resources", - verbose_name="resource", - ), - ), - migrations.AlterField( - model_name="resourceresourceevents", - name="altresourceid", - field=models.ForeignKey( - db_column="altresourceid", - on_delete=django.db.models.deletion.PROTECT, - related_name="resource_b", - to="TEKDB.resources", - ), - ), - migrations.AlterField( - model_name="resourceresourceevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="resourceresourceevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.PROTECT, - related_name="resource_a", - to="TEKDB.resources", - ), - ), - migrations.AlterField( - model_name="resourcescitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="resourcescitationevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="resourcescitationevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.resources", - verbose_name="resource", - ), - ), - migrations.AlterField( - model_name="resourcesmediaevents", - name="id", - field=models.BigAutoField( - auto_created=True, primary_key=True, serialize=False, verbose_name="ID" - ), - ), - migrations.AlterField( - model_name="resourcesmediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="resourcesmediaevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.PROTECT, - to="TEKDB.resources", - verbose_name="resource", - ), + model_name='localitygisselections', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='localitygisselections', + name='localityid', + field=models.ForeignKey(blank=True, db_column='localityid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.locality', verbose_name='locality'), + ), + migrations.AlterField( + model_name='localityplaceresourceevent', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='localityplaceresourceevent', + name='localityid', + field=models.ForeignKey(db_column='localityid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.locality', verbose_name='locality'), + ), + migrations.AlterField( + model_name='localityplaceresourceevent', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place resource'), + ), + migrations.AlterField( + model_name='mediacitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='mediacitationevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='mediacitationevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='placealtindigenousname', + name='placeid', + field=models.ForeignKey(blank=True, db_column='placeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='placegisselections', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='placegisselections', + name='placeid', + field=models.ForeignKey(blank=True, db_column='placeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='placescitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='placescitationevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='placescitationevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='placesmediaevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='placesmediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='placesmediaevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='placesresourcecitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='placesresourcecitationevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='placesresourcecitationevents', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place resource'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='customaryuse', + field=models.ForeignKey(blank=True, db_column='customaryuse', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupcustomaryuse', verbose_name='customary use'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='partused', + field=models.ForeignKey(blank=True, db_column='partused', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuppartused', verbose_name='part used'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resources', verbose_name='resource'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='season', + field=models.ForeignKey(blank=True, db_column='season', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupseason'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='timing', + field=models.ForeignKey(blank=True, db_column='timing', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptiming'), + ), + migrations.AlterField( + model_name='placesresourcemediaevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='placesresourcemediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='placesresourcemediaevents', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place - resource'), + ), + migrations.AlterField( + model_name='resourceactivitycitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='resourceactivitycitationevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='resourceactivitycitationevents', + name='resourceactivityid', + field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), + ), + migrations.AlterField( + model_name='resourceactivitymediaevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='resourceactivitymediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='resourceactivitymediaevents', + name='resourceactivityid', + field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), + ), + migrations.AlterField( + model_name='resourcealtindigenousname', + name='resourceid', + field=models.ForeignKey(blank=True, db_column='resourceid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.resources', verbose_name='resource'), + ), + migrations.AlterField( + model_name='resourceresourceevents', + name='altresourceid', + field=models.ForeignKey(db_column='altresourceid', on_delete=django.db.models.deletion.PROTECT, related_name='resource_b', to='TEKDB.resources'), + ), + migrations.AlterField( + model_name='resourceresourceevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='resourceresourceevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, related_name='resource_a', to='TEKDB.resources'), + ), + migrations.AlterField( + model_name='resourcescitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='resourcescitationevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='resourcescitationevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resources', verbose_name='resource'), + ), + migrations.AlterField( + model_name='resourcesmediaevents', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='resourcesmediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='resourcesmediaevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.PROTECT, to='TEKDB.resources', verbose_name='resource'), ), ] diff --git a/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py b/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py index c0124ef5..fa069ce5 100644 --- a/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py +++ b/TEKDB/Relationships/migrations/0009_auto_20230413_1555.py @@ -4,27 +4,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0008_auto_20211021_1607"), + ('Relationships', '0008_auto_20211021_1607'), ] operations = [ migrations.AddField( - model_name="placesresourceevents", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=False, verbose_name="Needs Review" - ), + model_name='placesresourceevents', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), ), migrations.AddField( - model_name="placesresourceevents", - name="researchComments", - field=models.TextField( - blank=True, - db_column="researchcomments", - default=None, - null=True, - verbose_name="Research Comments", - ), + model_name='placesresourceevents', + name='researchComments', + field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), ), ] diff --git a/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py b/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py index c55ceef6..5b9e8997 100644 --- a/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py +++ b/TEKDB/Relationships/migrations/0010_alter_placesresourceevents_needsreview.py @@ -4,16 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0009_auto_20230413_1555"), + ('Relationships', '0009_auto_20230413_1555'), ] operations = [ migrations.AlterField( - model_name="placesresourceevents", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=True, verbose_name="Needs Review" - ), + model_name='placesresourceevents', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), ), ] diff --git a/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py b/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py index cc5acd1f..e87c19d7 100644 --- a/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py +++ b/TEKDB/Relationships/migrations/0011_alter_mediacitationevents_relationshipdescription_and_more.py @@ -5,119 +5,65 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0010_alter_placesresourceevents_needsreview"), + ('Relationships', '0010_alter_placesresourceevents_needsreview'), ] operations = [ migrations.AlterField( - model_name="mediacitationevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='mediacitationevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placescitationevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='placescitationevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placesmediaevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='placesmediaevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="placesresourcecitationevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='placesresourcecitationevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="placesresourceevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt", - ), + model_name='placesresourceevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), ), migrations.AlterField( - model_name="placesresourcemediaevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='placesresourcemediaevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourceactivitycitationevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='resourceactivitycitationevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="resourceactivitymediaevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourceactivitymediaevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourceresourceevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourceresourceevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), migrations.AlterField( - model_name="resourcescitationevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt/description", - ), + model_name='resourcescitationevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt/description'), ), migrations.AlterField( - model_name="resourcesmediaevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="relationship description", - ), + model_name='resourcesmediaevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='relationship description'), ), ] diff --git a/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py b/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py index d4a402cb..4bf2651e 100644 --- a/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py +++ b/TEKDB/Relationships/migrations/0012_alter_placesmediaevents_mediaid_and_more.py @@ -5,33 +5,21 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0025_alter_mediabulkupload_mediabulkname"), - ( - "Relationships", - "0011_alter_mediacitationevents_relationshipdescription_and_more", - ), + ('TEKDB', '0025_alter_mediabulkupload_mediabulkname'), + ('Relationships', '0011_alter_mediacitationevents_relationshipdescription_and_more'), ] operations = [ migrations.AlterField( - model_name="placesmediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.media", - verbose_name="media", - ), + model_name='placesmediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), ), migrations.AlterField( - model_name="placesmediaevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.places", - verbose_name="place", - ), + model_name='placesmediaevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.places', verbose_name='place'), ), ] diff --git a/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py b/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py index 428afa0b..106aff71 100644 --- a/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py +++ b/TEKDB/Relationships/migrations/0013_alter_mediacitationevents_citationid_and_more.py @@ -5,209 +5,110 @@ class Migration(migrations.Migration): + dependencies = [ - ("Relationships", "0012_alter_placesmediaevents_mediaid_and_more"), + ('Relationships', '0012_alter_placesmediaevents_mediaid_and_more'), ] operations = [ migrations.AlterField( - model_name="mediacitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="mediacitationevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="placescitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="placescitationevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="placesresourcecitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="placesresourcecitationevents", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.CASCADE, - to="Relationships.placesresourceevents", - verbose_name="place resource", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="placeid", - field=models.ForeignKey( - db_column="placeid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="placesresourceevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.resources", - verbose_name="resource", - ), - ), - migrations.AlterField( - model_name="placesresourcemediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="placesresourcemediaevents", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.CASCADE, - to="Relationships.placesresourceevents", - verbose_name="place - resource", - ), - ), - migrations.AlterField( - model_name="resourceactivitycitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="resourceactivitycitationevents", - name="resourceactivityid", - field=models.ForeignKey( - db_column="resourceactivityid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.resourcesactivityevents", - verbose_name="resource activity", - ), - ), - migrations.AlterField( - model_name="resourceactivitymediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="resourceactivitymediaevents", - name="resourceactivityid", - field=models.ForeignKey( - db_column="resourceactivityid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.resourcesactivityevents", - verbose_name="resource activity", - ), - ), - migrations.AlterField( - model_name="resourceresourceevents", - name="altresourceid", - field=models.ForeignKey( - db_column="altresourceid", - on_delete=django.db.models.deletion.CASCADE, - related_name="resource_b", - to="TEKDB.resources", - ), - ), - migrations.AlterField( - model_name="resourceresourceevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - related_name="resource_a", - to="TEKDB.resources", - ), - ), - migrations.AlterField( - model_name="resourcescitationevents", - name="citationid", - field=models.ForeignKey( - db_column="citationid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.citations", - verbose_name="citation", - ), - ), - migrations.AlterField( - model_name="resourcescitationevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.resources", - verbose_name="resource", - ), - ), - migrations.AlterField( - model_name="resourcesmediaevents", - name="mediaid", - field=models.ForeignKey( - db_column="mediaid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.media", - verbose_name="media", - ), - ), - migrations.AlterField( - model_name="resourcesmediaevents", - name="resourceid", - field=models.ForeignKey( - db_column="resourceid", - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.resources", - verbose_name="resource", - ), + model_name='mediacitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='mediacitationevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='placescitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='placescitationevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='placesresourcecitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='placesresourcecitationevents', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.placesresourceevents', verbose_name='place resource'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='placeid', + field=models.ForeignKey(db_column='placeid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='placesresourceevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resources', verbose_name='resource'), + ), + migrations.AlterField( + model_name='placesresourcemediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='placesresourcemediaevents', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.placesresourceevents', verbose_name='place - resource'), + ), + migrations.AlterField( + model_name='resourceactivitycitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='resourceactivitycitationevents', + name='resourceactivityid', + field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), + ), + migrations.AlterField( + model_name='resourceactivitymediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='resourceactivitymediaevents', + name='resourceactivityid', + field=models.ForeignKey(db_column='resourceactivityid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resourcesactivityevents', verbose_name='resource activity'), + ), + migrations.AlterField( + model_name='resourceresourceevents', + name='altresourceid', + field=models.ForeignKey(db_column='altresourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_b', to='TEKDB.resources'), + ), + migrations.AlterField( + model_name='resourceresourceevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, related_name='resource_a', to='TEKDB.resources'), + ), + migrations.AlterField( + model_name='resourcescitationevents', + name='citationid', + field=models.ForeignKey(db_column='citationid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.citations', verbose_name='citation'), + ), + migrations.AlterField( + model_name='resourcescitationevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resources', verbose_name='resource'), + ), + migrations.AlterField( + model_name='resourcesmediaevents', + name='mediaid', + field=models.ForeignKey(db_column='mediaid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.media', verbose_name='media'), + ), + migrations.AlterField( + model_name='resourcesmediaevents', + name='resourceid', + field=models.ForeignKey(db_column='resourceid', on_delete=django.db.models.deletion.CASCADE, to='TEKDB.resources', verbose_name='resource'), ), ] diff --git a/TEKDB/TEKDB/migrations/0001_initial.py b/TEKDB/TEKDB/migrations/0001_initial.py index 7df266b3..532cc943 100644 --- a/TEKDB/TEKDB/migrations/0001_initial.py +++ b/TEKDB/TEKDB/migrations/0001_initial.py @@ -8,1163 +8,198 @@ class Migration(migrations.Migration): + initial = True dependencies = [ - ("Lookup", "0001_initial"), - ("Relationships", "0001_initial"), + ('Lookup', '0001_initial'), + ('Relationships', '0001_initial'), ] operations = [ migrations.CreateModel( - name="Citations", + name='Citations', fields=[ - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "citationid", - models.AutoField( - db_column="citationid", primary_key=True, serialize=False - ), - ), - ( - "referencetext", - models.CharField( - blank=True, - db_column="referencetext", - max_length=50, - null=True, - verbose_name="description", - ), - ), - ( - "authorprimary", - models.CharField( - blank=True, - db_column="authorprimary", - max_length=255, - null=True, - verbose_name="primary author", - ), - ), - ( - "authorsecondary", - models.CharField( - blank=True, - db_column="authorsecondary", - max_length=255, - null=True, - verbose_name="secondary author", - ), - ), - ( - "placeofinterview", - models.CharField( - blank=True, - db_column="placeofinterview", - max_length=255, - null=True, - verbose_name="place of interview", - ), - ), - ("year", models.IntegerField(blank=True, db_column="year", null=True)), - ("title", models.TextField(blank=True, db_column="title", null=True)), - ( - "seriestitle", - models.CharField( - blank=True, - db_column="seriestitle", - max_length=255, - null=True, - verbose_name="series title", - ), - ), - ( - "seriesvolume", - models.CharField( - blank=True, - db_column="seriesvolume", - max_length=50, - null=True, - verbose_name="series volume", - ), - ), - ( - "serieseditor", - models.CharField( - blank=True, - db_column="serieseditor", - max_length=255, - null=True, - verbose_name="series editor", - ), - ), - ( - "publisher", - models.CharField( - blank=True, db_column="publisher", max_length=100, null=True - ), - ), - ( - "publishercity", - models.CharField( - blank=True, - db_column="publishercity", - max_length=255, - null=True, - verbose_name="city", - ), - ), - ( - "preparedfor", - models.CharField( - blank=True, - db_column="preparedfor", - max_length=100, - null=True, - verbose_name="prepared_for", - ), - ), - ( - "comments", - models.TextField(blank=True, db_column="comments", null=True), - ), - ( - "authortype", - models.ForeignKey( - blank=True, - db_column="authortype", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupAuthorType", - verbose_name="author type", - ), - ), - ( - "intervieweeid", - models.ForeignKey( - blank=True, - db_column="intervieweeid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="interviewee", - to="Lookup.People", - verbose_name="interviewee", - ), - ), - ( - "interviewerid", - models.ForeignKey( - blank=True, - db_column="interviewerid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="interviewer", - to="Lookup.People", - verbose_name="interviewer", - ), - ), - ( - "referencetype", - models.ForeignKey( - db_column="referencetype", - help_text="Select a reference type to continue", - max_length=255, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupReferenceType", - verbose_name="reference type", - ), - ), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('citationid', models.AutoField(db_column='citationid', primary_key=True, serialize=False)), + ('referencetext', models.CharField(blank=True, db_column='referencetext', max_length=50, null=True, verbose_name='description')), + ('authorprimary', models.CharField(blank=True, db_column='authorprimary', max_length=255, null=True, verbose_name='primary author')), + ('authorsecondary', models.CharField(blank=True, db_column='authorsecondary', max_length=255, null=True, verbose_name='secondary author')), + ('placeofinterview', models.CharField(blank=True, db_column='placeofinterview', max_length=255, null=True, verbose_name='place of interview')), + ('year', models.IntegerField(blank=True, db_column='year', null=True)), + ('title', models.TextField(blank=True, db_column='title', null=True)), + ('seriestitle', models.CharField(blank=True, db_column='seriestitle', max_length=255, null=True, verbose_name='series title')), + ('seriesvolume', models.CharField(blank=True, db_column='seriesvolume', max_length=50, null=True, verbose_name='series volume')), + ('serieseditor', models.CharField(blank=True, db_column='serieseditor', max_length=255, null=True, verbose_name='series editor')), + ('publisher', models.CharField(blank=True, db_column='publisher', max_length=100, null=True)), + ('publishercity', models.CharField(blank=True, db_column='publishercity', max_length=255, null=True, verbose_name='city')), + ('preparedfor', models.CharField(blank=True, db_column='preparedfor', max_length=100, null=True, verbose_name='prepared_for')), + ('comments', models.TextField(blank=True, db_column='comments', null=True)), + ('authortype', models.ForeignKey(blank=True, db_column='authortype', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupAuthorType', verbose_name='author type')), + ('intervieweeid', models.ForeignKey(blank=True, db_column='intervieweeid', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='interviewee', to='Lookup.People', verbose_name='interviewee')), + ('interviewerid', models.ForeignKey(blank=True, db_column='interviewerid', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='interviewer', to='Lookup.People', verbose_name='interviewer')), + ('referencetype', models.ForeignKey(db_column='referencetype', help_text='Select a reference type to continue', max_length=255, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupReferenceType', verbose_name='reference type')), ], options={ - "db_table": "citations", - "verbose_name": "Bibliographic Source", - "managed": True, - "verbose_name_plural": "Bibliographic Sources", + 'db_table': 'citations', + 'verbose_name': 'Bibliographic Source', + 'managed': True, + 'verbose_name_plural': 'Bibliographic Sources', }, ), migrations.CreateModel( - name="Locality", + name='Locality', fields=[ - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "localityid", - models.AutoField( - db_column="localityid", primary_key=True, serialize=False - ), - ), - ( - "englishname", - models.CharField( - blank=True, - db_column="englishname", - max_length=255, - null=True, - verbose_name="english name", - ), - ), - ( - "indigenousname", - models.CharField( - blank=True, - db_column="indigenousname", - max_length=255, - null=True, - verbose_name="indigenous name", - ), - ), - ( - "geometry", - django.contrib.gis.db.models.fields.GeometryField( - blank=True, - default=None, - null=True, - srid=3857, - verbose_name="Place Geometry", - ), - ), - ( - "Source", - models.CharField( - blank=True, - db_column="source", - default=None, - max_length=255, - null=True, - verbose_name="source", - ), - ), - ( - "DigitizedBy", - models.CharField( - blank=True, - db_column="digitizedby", - default=None, - max_length=255, - null=True, - verbose_name="digitized by", - ), - ), - ( - "DigitizedDate", - models.DateTimeField( - blank=True, - db_column="digitizeddate", - default=None, - null=True, - verbose_name="digitized date", - ), - ), - ( - "localitytype", - models.ForeignKey( - blank=True, - db_column="localitytype", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupLocalityType", - verbose_name="type", - ), - ), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('localityid', models.AutoField(db_column='localityid', primary_key=True, serialize=False)), + ('englishname', models.CharField(blank=True, db_column='englishname', max_length=255, null=True, verbose_name='english name')), + ('indigenousname', models.CharField(blank=True, db_column='indigenousname', max_length=255, null=True, verbose_name='indigenous name')), + ('geometry', django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, null=True, srid=3857, verbose_name='Place Geometry')), + ('Source', models.CharField(blank=True, db_column='source', default=None, max_length=255, null=True, verbose_name='source')), + ('DigitizedBy', models.CharField(blank=True, db_column='digitizedby', default=None, max_length=255, null=True, verbose_name='digitized by')), + ('DigitizedDate', models.DateTimeField(blank=True, db_column='digitizeddate', default=None, null=True, verbose_name='digitized date')), + ('localitytype', models.ForeignKey(blank=True, db_column='localitytype', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupLocalityType', verbose_name='type')), ], options={ - "db_table": "locality", - "verbose_name": "Locality", - "managed": True, - "verbose_name_plural": "Localities", + 'db_table': 'locality', + 'verbose_name': 'Locality', + 'managed': True, + 'verbose_name_plural': 'Localities', }, ), migrations.CreateModel( - name="Media", + name='Media', fields=[ - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "mediaid", - models.AutoField( - db_column="mediaid", primary_key=True, serialize=False - ), - ), - ( - "medianame", - models.CharField( - blank=True, - db_column="medianame", - max_length=255, - null=True, - verbose_name="name", - ), - ), - ( - "mediadescription", - models.TextField( - blank=True, - db_column="mediadescription", - null=True, - verbose_name="description", - ), - ), - ( - "medialink", - models.CharField( - blank=True, - db_column="medialink", - max_length=255, - null=True, - verbose_name="historic location", - ), - ), - ( - "mediafile", - models.FileField( - blank=True, - db_column="mediafile", - max_length=255, - null=True, - upload_to="", - verbose_name="file", - ), - ), - ( - "limitedaccess", - models.NullBooleanField( - db_column="limitedaccess", - default=False, - verbose_name="limited access?", - ), - ), - ( - "mediatype", - models.ForeignKey( - blank=True, - db_column="mediatype", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupMediaType", - verbose_name="type", - ), - ), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('mediaid', models.AutoField(db_column='mediaid', primary_key=True, serialize=False)), + ('medianame', models.CharField(blank=True, db_column='medianame', max_length=255, null=True, verbose_name='name')), + ('mediadescription', models.TextField(blank=True, db_column='mediadescription', null=True, verbose_name='description')), + ('medialink', models.CharField(blank=True, db_column='medialink', max_length=255, null=True, verbose_name='historic location')), + ('mediafile', models.FileField(blank=True, db_column='mediafile', max_length=255, null=True, upload_to='', verbose_name='file')), + ('limitedaccess', models.NullBooleanField(db_column='limitedaccess', default=False, verbose_name='limited access?')), + ('mediatype', models.ForeignKey(blank=True, db_column='mediatype', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupMediaType', verbose_name='type')), ], options={ - "db_table": "media", - "verbose_name": "Medium", - "managed": True, - "verbose_name_plural": "Media", + 'db_table': 'media', + 'verbose_name': 'Medium', + 'managed': True, + 'verbose_name_plural': 'Media', }, ), migrations.CreateModel( - name="Places", + name='Places', fields=[ - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "placeid", - models.AutoField( - db_column="placeid", primary_key=True, serialize=False - ), - ), - ( - "indigenousplacename", - models.CharField( - blank=True, - db_column="indigenousplacename", - max_length=255, - null=True, - verbose_name="indigenous name", - ), - ), - ( - "indigenousplacenamemeaning", - models.CharField( - blank=True, - db_column="indigenousplacenamemeaning", - max_length=255, - null=True, - verbose_name="english translation", - ), - ), - ( - "englishplacename", - models.CharField( - blank=True, - db_column="englishplacename", - max_length=255, - null=True, - verbose_name="english name", - ), - ), - ( - "islocked", - models.BooleanField( - db_column="islocked", default=False, verbose_name="locked?" - ), - ), - ( - "geometry", - django.contrib.gis.db.models.fields.GeometryField( - blank=True, - default=None, - null=True, - srid=3857, - verbose_name="Place Geometry", - ), - ), - ( - "Source", - models.CharField( - blank=True, - db_column="source", - default=None, - max_length=255, - null=True, - verbose_name="source", - ), - ), - ( - "DigitizedBy", - models.CharField( - blank=True, - db_column="digitizedby", - default=None, - max_length=255, - null=True, - verbose_name="digitized by", - ), - ), - ( - "DigitizedDate", - models.DateTimeField( - blank=True, - db_column="digitizeddate", - default=None, - null=True, - verbose_name="digitized date", - ), - ), - ( - "planningunitid", - models.ForeignKey( - blank=True, - db_column="planningunitid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupPlanningUnit", - verbose_name="planning unit", - ), - ), - ( - "primaryhabitat", - models.ForeignKey( - blank=True, - db_column="primaryhabitat", - max_length=100, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupHabitat", - verbose_name="primary habitat", - ), - ), - ( - "tribeid", - models.ForeignKey( - blank=True, - db_column="tribeid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupTribe", - verbose_name="tribe", - ), - ), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('placeid', models.AutoField(db_column='placeid', primary_key=True, serialize=False)), + ('indigenousplacename', models.CharField(blank=True, db_column='indigenousplacename', max_length=255, null=True, verbose_name='indigenous name')), + ('indigenousplacenamemeaning', models.CharField(blank=True, db_column='indigenousplacenamemeaning', max_length=255, null=True, verbose_name='english translation')), + ('englishplacename', models.CharField(blank=True, db_column='englishplacename', max_length=255, null=True, verbose_name='english name')), + ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), + ('geometry', django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, null=True, srid=3857, verbose_name='Place Geometry')), + ('Source', models.CharField(blank=True, db_column='source', default=None, max_length=255, null=True, verbose_name='source')), + ('DigitizedBy', models.CharField(blank=True, db_column='digitizedby', default=None, max_length=255, null=True, verbose_name='digitized by')), + ('DigitizedDate', models.DateTimeField(blank=True, db_column='digitizeddate', default=None, null=True, verbose_name='digitized date')), + ('planningunitid', models.ForeignKey(blank=True, db_column='planningunitid', null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupPlanningUnit', verbose_name='planning unit')), + ('primaryhabitat', models.ForeignKey(blank=True, db_column='primaryhabitat', max_length=100, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupHabitat', verbose_name='primary habitat')), + ('tribeid', models.ForeignKey(blank=True, db_column='tribeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTribe', verbose_name='tribe')), ], options={ - "db_table": "places", - "verbose_name": "Place", - "managed": True, - "verbose_name_plural": "Places", + 'db_table': 'places', + 'verbose_name': 'Place', + 'managed': True, + 'verbose_name_plural': 'Places', }, ), migrations.CreateModel( - name="Resources", + name='Resources', fields=[ - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "resourceid", - models.AutoField( - db_column="resourceid", primary_key=True, serialize=False - ), - ), - ( - "commonname", - models.CharField( - blank=True, - db_column="commonname", - max_length=255, - null=True, - unique=True, - verbose_name="common name", - ), - ), - ( - "indigenousname", - models.CharField( - blank=True, - db_column="indigenousname", - max_length=255, - null=True, - verbose_name="indigenous name", - ), - ), - ( - "genus", - models.CharField( - blank=True, - db_column="genus", - max_length=255, - null=True, - verbose_name="genus", - ), - ), - ( - "species", - models.CharField( - blank=True, db_column="species", max_length=255, null=True - ), - ), - ("specific", models.BooleanField(db_column="specific", default=False)), - ( - "islocked", - models.BooleanField( - db_column="islocked", default=False, verbose_name="locked?" - ), - ), - ( - "resourceclassificationgroup", - models.ForeignKey( - blank=True, - db_column="resourceclassificationgroup", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupResourceGroup", - verbose_name="broad species group", - ), - ), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('resourceid', models.AutoField(db_column='resourceid', primary_key=True, serialize=False)), + ('commonname', models.CharField(blank=True, db_column='commonname', max_length=255, null=True, unique=True, verbose_name='common name')), + ('indigenousname', models.CharField(blank=True, db_column='indigenousname', max_length=255, null=True, verbose_name='indigenous name')), + ('genus', models.CharField(blank=True, db_column='genus', max_length=255, null=True, verbose_name='genus')), + ('species', models.CharField(blank=True, db_column='species', max_length=255, null=True)), + ('specific', models.BooleanField(db_column='specific', default=False)), + ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), + ('resourceclassificationgroup', models.ForeignKey(blank=True, db_column='resourceclassificationgroup', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupResourceGroup', verbose_name='broad species group')), ], options={ - "db_table": "resources", - "verbose_name": "Resource", - "managed": True, - "verbose_name_plural": "Resources", + 'db_table': 'resources', + 'verbose_name': 'Resource', + 'managed': True, + 'verbose_name_plural': 'Resources', }, ), migrations.CreateModel( - name="ResourcesActivityEvents", + name='ResourcesActivityEvents', fields=[ - ( - "enteredbyname", - models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), - ), - ( - "enteredbytribe", - models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), - ), - ( - "enteredbytitle", - models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), - ), - ( - "enteredbydate", - models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), - ), - ( - "modifiedbyname", - models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), - ), - ( - "modifiedbytitle", - models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), - ), - ( - "modifiedbytribe", - models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), - ), - ( - "modifiedbydate", - models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), - ), - ( - "resourceactivityid", - models.AutoField( - db_column="resourceactivityid", - primary_key=True, - serialize=False, - ), - ), - ( - "relationshipdescription", - models.TextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt", - ), - ), - ( - "activitylongdescription", - models.TextField( - blank=True, - db_column="activitylongdescription", - null=True, - verbose_name="full activity description", - ), - ), - ( - "gear", - models.CharField( - blank=True, db_column="gear", max_length=255, null=True - ), - ), - ( - "customaryuse", - models.CharField( - blank=True, - db_column="customaryuse", - max_length=255, - null=True, - verbose_name="customary use", - ), - ), - ( - "timingdescription", - models.CharField( - blank=True, - db_column="timingdescription", - max_length=255, - null=True, - verbose_name="timing description", - ), - ), - ( - "islocked", - models.BooleanField( - db_column="islocked", default=False, verbose_name="locked?" - ), - ), - ( - "activityshortdescription", - models.ForeignKey( - blank=True, - db_column="activityshortdescription", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupActivity", - verbose_name="activity type", - ), - ), - ( - "participants", - models.ForeignKey( - blank=True, - db_column="participants", - max_length=50, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupParticipants", - ), - ), - ( - "partused", - models.ForeignKey( - blank=True, - db_column="partused", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupPartUsed", - verbose_name="part used", - ), - ), - ( - "placeresourceid", - models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.CASCADE, - to="Relationships.PlacesResourceEvents", - verbose_name="place resource", - ), - ), - ( - "technique", - models.ForeignKey( - blank=True, - db_column="technique", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupTechniques", - ), - ), - ( - "timing", - models.ForeignKey( - blank=True, - db_column="timing", - max_length=255, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="Lookup.LookupTiming", - ), - ), + ('enteredbyname', models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name')), + ('enteredbytribe', models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe')), + ('enteredbytitle', models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title')), + ('enteredbydate', models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date')), + ('modifiedbyname', models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name')), + ('modifiedbytitle', models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title')), + ('modifiedbytribe', models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe')), + ('modifiedbydate', models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date')), + ('resourceactivityid', models.AutoField(db_column='resourceactivityid', primary_key=True, serialize=False)), + ('relationshipdescription', models.TextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt')), + ('activitylongdescription', models.TextField(blank=True, db_column='activitylongdescription', null=True, verbose_name='full activity description')), + ('gear', models.CharField(blank=True, db_column='gear', max_length=255, null=True)), + ('customaryuse', models.CharField(blank=True, db_column='customaryuse', max_length=255, null=True, verbose_name='customary use')), + ('timingdescription', models.CharField(blank=True, db_column='timingdescription', max_length=255, null=True, verbose_name='timing description')), + ('islocked', models.BooleanField(db_column='islocked', default=False, verbose_name='locked?')), + ('activityshortdescription', models.ForeignKey(blank=True, db_column='activityshortdescription', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupActivity', verbose_name='activity type')), + ('participants', models.ForeignKey(blank=True, db_column='participants', max_length=50, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupParticipants')), + ('partused', models.ForeignKey(blank=True, db_column='partused', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupPartUsed', verbose_name='part used')), + ('placeresourceid', models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.CASCADE, to='Relationships.PlacesResourceEvents', verbose_name='place resource')), + ('technique', models.ForeignKey(blank=True, db_column='technique', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTechniques')), + ('timing', models.ForeignKey(blank=True, db_column='timing', max_length=255, null=True, on_delete=django.db.models.deletion.CASCADE, to='Lookup.LookupTiming')), ], options={ - "db_table": "resourcesactivityevents", - "verbose_name": "Activity", - "managed": True, - "verbose_name_plural": "Activities", + 'db_table': 'resourcesactivityevents', + 'verbose_name': 'Activity', + 'managed': True, + 'verbose_name_plural': 'Activities', }, ), migrations.AddField( - model_name="locality", - name="placeid", - field=models.ForeignKey( - blank=True, - db_column="placeid", - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="TEKDB.Places", - verbose_name="place", - ), + model_name='locality', + name='placeid', + field=models.ForeignKey(blank=True, db_column='placeid', null=True, on_delete=django.db.models.deletion.CASCADE, to='TEKDB.Places', verbose_name='place'), ), ] diff --git a/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py b/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py index 3f24cdd1..a193a04d 100644 --- a/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py +++ b/TEKDB/TEKDB/migrations/0002_auto_20171031_1421.py @@ -6,26 +6,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0001_initial"), + ('TEKDB', '0001_initial'), ] operations = [ migrations.AddField( - model_name="citations", - name="journal", - field=models.TextField( - blank=True, db_column="journal", null=True, verbose_name="journal" - ), + model_name='citations', + name='journal', + field=models.TextField(blank=True, db_column='journal', null=True, verbose_name='journal'), ), migrations.AddField( - model_name="citations", - name="journalpages", - field=models.TextField( - blank=True, - db_column="journalpages", - null=True, - verbose_name="journal pages", - ), + model_name='citations', + name='journalpages', + field=models.TextField(blank=True, db_column='journalpages', null=True, verbose_name='journal pages'), ), ] diff --git a/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py b/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py index 9488561e..e8c5fb4e 100644 --- a/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py +++ b/TEKDB/TEKDB/migrations/0003_auto_20191223_1604.py @@ -6,19 +6,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0002_auto_20171031_1421"), + ('TEKDB', '0002_auto_20171031_1421'), ] operations = [ migrations.AlterField( - model_name="places", - name="indigenousplacenamemeaning", - field=models.TextField( - blank=True, - db_column="indigenousplacenamemeaning", - null=True, - verbose_name="english translation", - ), + model_name='places', + name='indigenousplacenamemeaning', + field=models.TextField(blank=True, db_column='indigenousplacenamemeaning', null=True, verbose_name='english translation'), ), ] diff --git a/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py b/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py index 323739e8..e59e18cd 100644 --- a/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py +++ b/TEKDB/TEKDB/migrations/0004_auto_20200107_1604.py @@ -7,56 +7,35 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0003_auto_20191223_1604"), + ('TEKDB', '0003_auto_20191223_1604'), ] operations = [ migrations.AlterField( - model_name="citations", - name="comments", - field=ckeditor.fields.RichTextField( - blank=True, db_column="comments", null=True - ), + model_name='citations', + name='comments', + field=ckeditor.fields.RichTextField(blank=True, db_column='comments', null=True), ), migrations.AlterField( - model_name="citations", - name="referencetext", - field=models.TextField( - blank=True, - db_column="referencetext", - null=True, - verbose_name="description", - ), + model_name='citations', + name='referencetext', + field=models.TextField(blank=True, db_column='referencetext', null=True, verbose_name='description'), ), migrations.AlterField( - model_name="media", - name="mediadescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="mediadescription", - null=True, - verbose_name="description", - ), + model_name='media', + name='mediadescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='mediadescription', null=True, verbose_name='description'), ), migrations.AlterField( - model_name="resourcesactivityevents", - name="activitylongdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="activitylongdescription", - null=True, - verbose_name="full activity description", - ), + model_name='resourcesactivityevents', + name='activitylongdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='activitylongdescription', null=True, verbose_name='full activity description'), ), migrations.AlterField( - model_name="resourcesactivityevents", - name="relationshipdescription", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt", - ), + model_name='resourcesactivityevents', + name='relationshipdescription', + field=ckeditor.fields.RichTextField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), ), ] diff --git a/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py b/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py index 8542421c..0193dcca 100644 --- a/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py +++ b/TEKDB/TEKDB/migrations/0005_auto_20211021_1607.py @@ -5,247 +5,102 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0005_alter_lookupuserinfo_id"), - ("Relationships", "0008_auto_20211021_1607"), - ("TEKDB", "0004_auto_20200107_1604"), + ('Lookup', '0005_alter_lookupuserinfo_id'), + ('Relationships', '0008_auto_20211021_1607'), + ('TEKDB', '0004_auto_20200107_1604'), ] operations = [ migrations.AlterField( - model_name="citations", - name="authortype", - field=models.ForeignKey( - blank=True, - db_column="authortype", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupauthortype", - verbose_name="author type", - ), - ), - migrations.AlterField( - model_name="citations", - name="intervieweeid", - field=models.ForeignKey( - blank=True, - db_column="intervieweeid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - related_name="interviewee", - to="Lookup.people", - verbose_name="interviewee", - ), - ), - migrations.AlterField( - model_name="citations", - name="interviewerid", - field=models.ForeignKey( - blank=True, - db_column="interviewerid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - related_name="interviewer", - to="Lookup.people", - verbose_name="interviewer", - ), - ), - migrations.AlterField( - model_name="citations", - name="referencetype", - field=models.ForeignKey( - db_column="referencetype", - help_text="Select a reference type to continue", - max_length=255, - on_delete=django.db.models.deletion.PROTECT, - to="Lookup.lookupreferencetype", - verbose_name="reference type", - ), - ), - migrations.AlterField( - model_name="locality", - name="localitytype", - field=models.ForeignKey( - blank=True, - db_column="localitytype", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuplocalitytype", - verbose_name="type", - ), - ), - migrations.AlterField( - model_name="locality", - name="placeid", - field=models.ForeignKey( - blank=True, - db_column="placeid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="TEKDB.places", - verbose_name="place", - ), - ), - migrations.AlterField( - model_name="media", - name="limitedaccess", - field=models.BooleanField( - db_column="limitedaccess", - default=False, - null=True, - verbose_name="limited access?", - ), - ), - migrations.AlterField( - model_name="media", - name="mediatype", - field=models.ForeignKey( - blank=True, - db_column="mediatype", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupmediatype", - verbose_name="type", - ), - ), - migrations.AlterField( - model_name="places", - name="planningunitid", - field=models.ForeignKey( - blank=True, - db_column="planningunitid", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupplanningunit", - verbose_name="planning unit", - ), - ), - migrations.AlterField( - model_name="places", - name="primaryhabitat", - field=models.ForeignKey( - blank=True, - db_column="primaryhabitat", - default=None, - max_length=100, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuphabitat", - verbose_name="primary habitat", - ), - ), - migrations.AlterField( - model_name="places", - name="tribeid", - field=models.ForeignKey( - blank=True, - db_column="tribeid", - default=True, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuptribe", - verbose_name="tribe", - ), - ), - migrations.AlterField( - model_name="resources", - name="resourceclassificationgroup", - field=models.ForeignKey( - blank=True, - db_column="resourceclassificationgroup", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupresourcegroup", - verbose_name="broad species group", - ), - ), - migrations.AlterField( - model_name="resourcesactivityevents", - name="activityshortdescription", - field=models.ForeignKey( - blank=True, - db_column="activityshortdescription", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupactivity", - verbose_name="activity type", - ), - ), - migrations.AlterField( - model_name="resourcesactivityevents", - name="participants", - field=models.ForeignKey( - blank=True, - db_column="participants", - default=None, - max_length=50, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupparticipants", - ), - ), - migrations.AlterField( - model_name="resourcesactivityevents", - name="partused", - field=models.ForeignKey( - blank=True, - db_column="partused", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuppartused", - verbose_name="part used", - ), - ), - migrations.AlterField( - model_name="resourcesactivityevents", - name="placeresourceid", - field=models.ForeignKey( - db_column="placeresourceid", - on_delete=django.db.models.deletion.PROTECT, - to="Relationships.placesresourceevents", - verbose_name="place resource", - ), - ), - migrations.AlterField( - model_name="resourcesactivityevents", - name="technique", - field=models.ForeignKey( - blank=True, - db_column="technique", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuptechniques", - ), - ), - migrations.AlterField( - model_name="resourcesactivityevents", - name="timing", - field=models.ForeignKey( - blank=True, - db_column="timing", - default=None, - max_length=255, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookuptiming", - ), + model_name='citations', + name='authortype', + field=models.ForeignKey(blank=True, db_column='authortype', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupauthortype', verbose_name='author type'), + ), + migrations.AlterField( + model_name='citations', + name='intervieweeid', + field=models.ForeignKey(blank=True, db_column='intervieweeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='interviewee', to='Lookup.people', verbose_name='interviewee'), + ), + migrations.AlterField( + model_name='citations', + name='interviewerid', + field=models.ForeignKey(blank=True, db_column='interviewerid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='interviewer', to='Lookup.people', verbose_name='interviewer'), + ), + migrations.AlterField( + model_name='citations', + name='referencetype', + field=models.ForeignKey(db_column='referencetype', help_text='Select a reference type to continue', max_length=255, on_delete=django.db.models.deletion.PROTECT, to='Lookup.lookupreferencetype', verbose_name='reference type'), + ), + migrations.AlterField( + model_name='locality', + name='localitytype', + field=models.ForeignKey(blank=True, db_column='localitytype', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuplocalitytype', verbose_name='type'), + ), + migrations.AlterField( + model_name='locality', + name='placeid', + field=models.ForeignKey(blank=True, db_column='placeid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='TEKDB.places', verbose_name='place'), + ), + migrations.AlterField( + model_name='media', + name='limitedaccess', + field=models.BooleanField(db_column='limitedaccess', default=False, null=True, verbose_name='limited access?'), + ), + migrations.AlterField( + model_name='media', + name='mediatype', + field=models.ForeignKey(blank=True, db_column='mediatype', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupmediatype', verbose_name='type'), + ), + migrations.AlterField( + model_name='places', + name='planningunitid', + field=models.ForeignKey(blank=True, db_column='planningunitid', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupplanningunit', verbose_name='planning unit'), + ), + migrations.AlterField( + model_name='places', + name='primaryhabitat', + field=models.ForeignKey(blank=True, db_column='primaryhabitat', default=None, max_length=100, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuphabitat', verbose_name='primary habitat'), + ), + migrations.AlterField( + model_name='places', + name='tribeid', + field=models.ForeignKey(blank=True, db_column='tribeid', default=True, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptribe', verbose_name='tribe'), + ), + migrations.AlterField( + model_name='resources', + name='resourceclassificationgroup', + field=models.ForeignKey(blank=True, db_column='resourceclassificationgroup', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupresourcegroup', verbose_name='broad species group'), + ), + migrations.AlterField( + model_name='resourcesactivityevents', + name='activityshortdescription', + field=models.ForeignKey(blank=True, db_column='activityshortdescription', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupactivity', verbose_name='activity type'), + ), + migrations.AlterField( + model_name='resourcesactivityevents', + name='participants', + field=models.ForeignKey(blank=True, db_column='participants', default=None, max_length=50, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupparticipants'), + ), + migrations.AlterField( + model_name='resourcesactivityevents', + name='partused', + field=models.ForeignKey(blank=True, db_column='partused', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuppartused', verbose_name='part used'), + ), + migrations.AlterField( + model_name='resourcesactivityevents', + name='placeresourceid', + field=models.ForeignKey(db_column='placeresourceid', on_delete=django.db.models.deletion.PROTECT, to='Relationships.placesresourceevents', verbose_name='place resource'), + ), + migrations.AlterField( + model_name='resourcesactivityevents', + name='technique', + field=models.ForeignKey(blank=True, db_column='technique', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptechniques'), + ), + migrations.AlterField( + model_name='resourcesactivityevents', + name='timing', + field=models.ForeignKey(blank=True, db_column='timing', default=None, max_length=255, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookuptiming'), ), ] diff --git a/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py b/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py index 96f0bc99..8161883f 100644 --- a/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py +++ b/TEKDB/TEKDB/migrations/0006_trigram_unaccent_extensions.py @@ -1,10 +1,13 @@ from django.contrib.postgres.operations import TrigramExtension, UnaccentExtension from django.db import migrations - class Migration(migrations.Migration): - dependencies = [ - ("TEKDB", "0005_auto_20211021_1607"), - ] - operations = [TrigramExtension(), UnaccentExtension()] + dependencies = [ + ('TEKDB', '0005_auto_20211021_1607'), + ] + + operations = [ + TrigramExtension(), + UnaccentExtension() + ] diff --git a/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py b/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py index ecb2a48e..abaa6613 100644 --- a/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py +++ b/TEKDB/TEKDB/migrations/0007_citations_rawcitation.py @@ -5,20 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0006_trigram_unaccent_extensions"), + ('TEKDB', '0006_trigram_unaccent_extensions'), ] operations = [ migrations.AddField( - model_name="citations", - name="rawcitation", - field=ckeditor.fields.RichTextField( - blank=True, - db_column="rawcitation", - help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", - null=True, - verbose_name="Raw, formatted bibliographic citation", - ), + model_name='citations', + name='rawcitation', + field=ckeditor.fields.RichTextField(blank=True, db_column='rawcitation', help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", null=True, verbose_name='Raw, formatted bibliographic citation'), ), ] diff --git a/TEKDB/TEKDB/migrations/0008_citations_date.py b/TEKDB/TEKDB/migrations/0008_citations_date.py index 70a7eb55..0ed457a0 100644 --- a/TEKDB/TEKDB/migrations/0008_citations_date.py +++ b/TEKDB/TEKDB/migrations/0008_citations_date.py @@ -4,16 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0007_citations_rawcitation"), + ('TEKDB', '0007_citations_rawcitation'), ] operations = [ migrations.AddField( - model_name="citations", - name="date", - field=models.DateField( - blank=True, db_column="date", default=None, null=True - ), + model_name='citations', + name='date', + field=models.DateField(blank=True, db_column='date', default=None, null=True), ), ] diff --git a/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py b/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py index f5d59170..03b26c3c 100644 --- a/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py +++ b/TEKDB/TEKDB/migrations/0009_auto_20230413_1555.py @@ -4,99 +4,60 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0008_citations_date"), + ('TEKDB', '0008_citations_date'), ] operations = [ migrations.AddField( - model_name="citations", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=False, verbose_name="Needs Review" - ), + model_name='citations', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), ), migrations.AddField( - model_name="citations", - name="researchComments", - field=models.TextField( - blank=True, - db_column="researchcomments", - default=None, - null=True, - verbose_name="Research Comments", - ), + model_name='citations', + name='researchComments', + field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), ), migrations.AddField( - model_name="media", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=False, verbose_name="Needs Review" - ), + model_name='media', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), ), migrations.AddField( - model_name="media", - name="researchComments", - field=models.TextField( - blank=True, - db_column="researchcomments", - default=None, - null=True, - verbose_name="Research Comments", - ), + model_name='media', + name='researchComments', + field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), ), migrations.AddField( - model_name="places", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=False, verbose_name="Needs Review" - ), + model_name='places', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), ), migrations.AddField( - model_name="places", - name="researchComments", - field=models.TextField( - blank=True, - db_column="researchcomments", - default=None, - null=True, - verbose_name="Research Comments", - ), + model_name='places', + name='researchComments', + field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), ), migrations.AddField( - model_name="resources", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=False, verbose_name="Needs Review" - ), + model_name='resources', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), ), migrations.AddField( - model_name="resources", - name="researchComments", - field=models.TextField( - blank=True, - db_column="researchcomments", - default=None, - null=True, - verbose_name="Research Comments", - ), + model_name='resources', + name='researchComments', + field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), ), migrations.AddField( - model_name="resourcesactivityevents", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=False, verbose_name="Needs Review" - ), + model_name='resourcesactivityevents', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=False, verbose_name='Needs Review'), ), migrations.AddField( - model_name="resourcesactivityevents", - name="researchComments", - field=models.TextField( - blank=True, - db_column="researchcomments", - default=None, - null=True, - verbose_name="Research Comments", - ), + model_name='resourcesactivityevents', + name='researchComments', + field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), ), ] diff --git a/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py b/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py index cbbfb513..3241fb1d 100644 --- a/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py +++ b/TEKDB/TEKDB/migrations/0010_auto_20231106_1316.py @@ -4,44 +4,35 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0009_auto_20230413_1555"), + ('TEKDB', '0009_auto_20230413_1555'), ] operations = [ migrations.AlterField( - model_name="citations", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=True, verbose_name="Needs Review" - ), + model_name='citations', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), ), migrations.AlterField( - model_name="media", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=True, verbose_name="Needs Review" - ), + model_name='media', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), ), migrations.AlterField( - model_name="places", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=True, verbose_name="Needs Review" - ), + model_name='places', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), ), migrations.AlterField( - model_name="resources", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=True, verbose_name="Needs Review" - ), + model_name='resources', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), ), migrations.AlterField( - model_name="resourcesactivityevents", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=True, verbose_name="Needs Review" - ), + model_name='resourcesactivityevents', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), ), ] diff --git a/TEKDB/TEKDB/migrations/0011_searchsettings.py b/TEKDB/TEKDB/migrations/0011_searchsettings.py index 082a6720..d1fc17ac 100644 --- a/TEKDB/TEKDB/migrations/0011_searchsettings.py +++ b/TEKDB/TEKDB/migrations/0011_searchsettings.py @@ -4,25 +4,18 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0010_auto_20231106_1316"), + ('TEKDB', '0010_auto_20231106_1316'), ] operations = [ migrations.CreateModel( - name="SearchSettings", + name='SearchSettings', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("min_search_rank", models.FloatField(default=0.01)), - ("min_search_similarity", models.FloatField(default=0.1)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('min_search_rank', models.FloatField(default=0.01)), + ('min_search_similarity', models.FloatField(default=0.1)), ], ), ] diff --git a/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py b/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py index 8dd09a4d..cfd18bd3 100644 --- a/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py +++ b/TEKDB/TEKDB/migrations/0012_auto_20240926_1440.py @@ -4,27 +4,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0011_searchsettings"), + ('TEKDB', '0011_searchsettings'), ] operations = [ migrations.AlterField( - model_name="searchsettings", - name="min_search_rank", - field=models.FloatField( - default=0.01, - help_text="Weight 0-1 representing the minimum search rank threshold for search results.", - verbose_name="Minimum Search Rank", - ), + model_name='searchsettings', + name='min_search_rank', + field=models.FloatField(default=0.01, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', verbose_name='Minimum Search Rank'), ), migrations.AlterField( - model_name="searchsettings", - name="min_search_similarity", - field=models.FloatField( - default=0.1, - help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", - verbose_name="Minimum Search Similarity", - ), + model_name='searchsettings', + name='min_search_similarity', + field=models.FloatField(default=0.1, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', verbose_name='Minimum Search Similarity'), ), ] diff --git a/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py b/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py index 9681bce0..750cb883 100644 --- a/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py +++ b/TEKDB/TEKDB/migrations/0013_auto_20241004_1547.py @@ -5,52 +5,28 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0005_alter_lookupuserinfo_id"), - ("TEKDB", "0012_auto_20240926_1440"), + ('Lookup', '0005_alter_lookupuserinfo_id'), + ('TEKDB', '0012_auto_20240926_1440'), ] operations = [ migrations.CreateModel( - name="MediaBulkUpload", + name='MediaBulkUpload', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("name", models.CharField(blank=True, max_length=255, null=True)), - ("description", models.TextField(blank=True, null=True)), - ("date", models.DateField(blank=True, default=None, null=True)), - ("created_at", models.DateTimeField(auto_now_add=True, null=True)), - ("updated_at", models.DateTimeField(auto_now=True, null=True)), - ( - "user", - models.ForeignKey( - blank=True, - db_column="user", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupuserinfo", - verbose_name="user", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, max_length=255, null=True)), + ('description', models.TextField(blank=True, null=True)), + ('date', models.DateField(blank=True, default=None, null=True)), + ('created_at', models.DateTimeField(auto_now_add=True, null=True)), + ('updated_at', models.DateTimeField(auto_now=True, null=True)), + ('user', models.ForeignKey(blank=True, db_column='user', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupuserinfo', verbose_name='user')), ], ), migrations.AddField( - model_name="media", - name="mediauploadevent", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="mediabulkupload", - to="TEKDB.mediabulkupload", - ), + model_name='media', + name='mediauploadevent', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mediabulkupload', to='TEKDB.mediabulkupload'), ), ] diff --git a/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py b/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py index ad7d0322..0b511fb9 100644 --- a/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py +++ b/TEKDB/TEKDB/migrations/0014_alter_media_mediauploadevent.py @@ -5,20 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0013_auto_20241004_1547"), + ('TEKDB', '0013_auto_20241004_1547'), ] operations = [ migrations.AlterField( - model_name="media", - name="mediauploadevent", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="mediauploadevent", - to="TEKDB.mediabulkupload", - ), + model_name='media', + name='mediauploadevent', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mediauploadevent', to='TEKDB.mediabulkupload'), ), ] diff --git a/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py b/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py index fbe2686b..8ecc5443 100644 --- a/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py +++ b/TEKDB/TEKDB/migrations/0015_auto_20241004_1559.py @@ -5,24 +5,19 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0014_alter_media_mediauploadevent"), + ('TEKDB', '0014_alter_media_mediauploadevent'), ] operations = [ migrations.RemoveField( - model_name="media", - name="mediauploadevent", + model_name='media', + name='mediauploadevent', ), migrations.AddField( - model_name="media", - name="mediabulkupload", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="mediabulkupload", - to="TEKDB.mediabulkupload", - ), + model_name='media', + name='mediabulkupload', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mediabulkupload', to='TEKDB.mediabulkupload'), ), ] diff --git a/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py b/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py index 9f981ee9..823f0def 100644 --- a/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py +++ b/TEKDB/TEKDB/migrations/0016_auto_20241016_1549.py @@ -4,121 +4,68 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0015_auto_20241004_1559"), + ('TEKDB', '0015_auto_20241004_1559'), ] operations = [ migrations.RemoveField( - model_name="mediabulkupload", - name="created_at", + model_name='mediabulkupload', + name='created_at', ), migrations.RemoveField( - model_name="mediabulkupload", - name="updated_at", + model_name='mediabulkupload', + name='updated_at', ), migrations.AddField( - model_name="mediabulkupload", - name="enteredbydate", - field=models.DateTimeField( - auto_now_add=True, - db_column="enteredbydate", - null=True, - verbose_name="entered by date", - ), + model_name='mediabulkupload', + name='enteredbydate', + field=models.DateTimeField(auto_now_add=True, db_column='enteredbydate', null=True, verbose_name='entered by date'), ), migrations.AddField( - model_name="mediabulkupload", - name="enteredbyname", - field=models.CharField( - blank=True, - db_column="enteredbyname", - max_length=25, - null=True, - verbose_name="entered by name", - ), + model_name='mediabulkupload', + name='enteredbyname', + field=models.CharField(blank=True, db_column='enteredbyname', max_length=25, null=True, verbose_name='entered by name'), ), migrations.AddField( - model_name="mediabulkupload", - name="enteredbytitle", - field=models.CharField( - blank=True, - db_column="enteredbytitle", - max_length=100, - null=True, - verbose_name="entered by title", - ), + model_name='mediabulkupload', + name='enteredbytitle', + field=models.CharField(blank=True, db_column='enteredbytitle', max_length=100, null=True, verbose_name='entered by title'), ), migrations.AddField( - model_name="mediabulkupload", - name="enteredbytribe", - field=models.CharField( - blank=True, - db_column="enteredbytribe", - max_length=100, - null=True, - verbose_name="entered by tribe", - ), + model_name='mediabulkupload', + name='enteredbytribe', + field=models.CharField(blank=True, db_column='enteredbytribe', max_length=100, null=True, verbose_name='entered by tribe'), ), migrations.AddField( - model_name="mediabulkupload", - name="modifiedbydate", - field=models.DateTimeField( - auto_now=True, - db_column="modifiedbydate", - null=True, - verbose_name="modified by date", - ), + model_name='mediabulkupload', + name='modifiedbydate', + field=models.DateTimeField(auto_now=True, db_column='modifiedbydate', null=True, verbose_name='modified by date'), ), migrations.AddField( - model_name="mediabulkupload", - name="modifiedbyname", - field=models.CharField( - blank=True, - db_column="modifiedbyname", - max_length=25, - null=True, - verbose_name="modified by name", - ), + model_name='mediabulkupload', + name='modifiedbyname', + field=models.CharField(blank=True, db_column='modifiedbyname', max_length=25, null=True, verbose_name='modified by name'), ), migrations.AddField( - model_name="mediabulkupload", - name="modifiedbytitle", - field=models.CharField( - blank=True, - db_column="modifiedbytitle", - max_length=100, - null=True, - verbose_name="modified by title", - ), + model_name='mediabulkupload', + name='modifiedbytitle', + field=models.CharField(blank=True, db_column='modifiedbytitle', max_length=100, null=True, verbose_name='modified by title'), ), migrations.AddField( - model_name="mediabulkupload", - name="modifiedbytribe", - field=models.CharField( - blank=True, - db_column="modifiedbytribe", - max_length=100, - null=True, - verbose_name="modified by tribe", - ), + model_name='mediabulkupload', + name='modifiedbytribe', + field=models.CharField(blank=True, db_column='modifiedbytribe', max_length=100, null=True, verbose_name='modified by tribe'), ), migrations.AddField( - model_name="mediabulkupload", - name="needsReview", - field=models.BooleanField( - db_column="needsreview", default=True, verbose_name="Needs Review" - ), + model_name='mediabulkupload', + name='needsReview', + field=models.BooleanField(db_column='needsreview', default=True, verbose_name='Needs Review'), ), migrations.AddField( - model_name="mediabulkupload", - name="researchComments", - field=models.TextField( - blank=True, - db_column="researchcomments", - default=None, - null=True, - verbose_name="Research Comments", - ), + model_name='mediabulkupload', + name='researchComments', + field=models.TextField(blank=True, db_column='researchcomments', default=None, null=True, verbose_name='Research Comments'), ), ] diff --git a/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py b/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py index 75e2365c..d1835fd1 100644 --- a/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py +++ b/TEKDB/TEKDB/migrations/0017_auto_20241016_1552.py @@ -4,28 +4,29 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0016_auto_20241016_1549"), + ('TEKDB', '0016_auto_20241016_1549'), ] operations = [ migrations.RenameField( - model_name="mediabulkupload", - old_name="date", - new_name="mediabulkdate", + model_name='mediabulkupload', + old_name='date', + new_name='mediabulkdate', ), migrations.RenameField( - model_name="mediabulkupload", - old_name="description", - new_name="mediabulkdescription", + model_name='mediabulkupload', + old_name='description', + new_name='mediabulkdescription', ), migrations.RenameField( - model_name="mediabulkupload", - old_name="name", - new_name="mediabulkname", + model_name='mediabulkupload', + old_name='name', + new_name='mediabulkname', ), migrations.RemoveField( - model_name="mediabulkupload", - name="user", + model_name='mediabulkupload', + name='user', ), ] diff --git a/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py b/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py index b1ed5428..33691f6c 100644 --- a/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py +++ b/TEKDB/TEKDB/migrations/0018_auto_20241022_1653.py @@ -4,28 +4,25 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0017_auto_20241016_1552"), + ('TEKDB', '0017_auto_20241016_1552'), ] operations = [ migrations.AlterField( - model_name="mediabulkupload", - name="mediabulkdate", - field=models.DateField( - blank=True, default=None, null=True, verbose_name="date" - ), + model_name='mediabulkupload', + name='mediabulkdate', + field=models.DateField(blank=True, default=None, null=True, verbose_name='date'), ), migrations.AlterField( - model_name="mediabulkupload", - name="mediabulkdescription", - field=models.TextField(blank=True, null=True, verbose_name="description"), + model_name='mediabulkupload', + name='mediabulkdescription', + field=models.TextField(blank=True, null=True, verbose_name='description'), ), migrations.AlterField( - model_name="mediabulkupload", - name="mediabulkname", - field=models.CharField( - blank=True, max_length=255, null=True, verbose_name="name" - ), + model_name='mediabulkupload', + name='mediabulkname', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='name'), ), ] diff --git a/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py b/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py index 7bb7abe7..55734ff4 100644 --- a/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py +++ b/TEKDB/TEKDB/migrations/0018_delete_searchsettings.py @@ -4,12 +4,13 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0017_auto_20241016_1552"), + ('TEKDB', '0017_auto_20241016_1552'), ] operations = [ migrations.DeleteModel( - name="SearchSettings", + name='SearchSettings', ), ] diff --git a/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py b/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py index 17fa6b8c..5078a851 100644 --- a/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py +++ b/TEKDB/TEKDB/migrations/0019_merge_20241126_1351.py @@ -4,9 +4,11 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0018_auto_20241022_1653"), - ("TEKDB", "0018_delete_searchsettings"), + ('TEKDB', '0018_auto_20241022_1653'), + ('TEKDB', '0018_delete_searchsettings'), ] - operations = [] + operations = [ + ] diff --git a/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py b/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py index 389d8884..bd5d2b52 100644 --- a/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py +++ b/TEKDB/TEKDB/migrations/0020_alter_media_mediabulkupload.py @@ -5,20 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0019_merge_20241126_1351"), + ('TEKDB', '0019_merge_20241126_1351'), ] operations = [ migrations.AlterField( - model_name="media", - name="mediabulkupload", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="mediabulkupload", - to="TEKDB.mediabulkupload", - ), + model_name='media', + name='mediabulkupload', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mediabulkupload', to='TEKDB.mediabulkupload'), ), ] diff --git a/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py b/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py index 91c244fa..baad901c 100644 --- a/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py +++ b/TEKDB/TEKDB/migrations/0020_alter_mediabulkupload_mediabulkdate.py @@ -5,16 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0019_merge_20241126_1351"), + ('TEKDB', '0019_merge_20241126_1351'), ] operations = [ migrations.AlterField( - model_name="mediabulkupload", - name="mediabulkdate", - field=models.DateField( - blank=True, default=datetime.date.today, null=True, verbose_name="date" - ), + model_name='mediabulkupload', + name='mediabulkdate', + field=models.DateField(blank=True, default=datetime.date.today, null=True, verbose_name='date'), ), ] diff --git a/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py b/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py index 33e7a48e..0aca19ad 100644 --- a/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py +++ b/TEKDB/TEKDB/migrations/0021_merge_20241224_1132.py @@ -4,9 +4,11 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0020_alter_media_mediabulkupload"), - ("TEKDB", "0020_alter_mediabulkupload_mediabulkdate"), + ('TEKDB', '0020_alter_media_mediabulkupload'), + ('TEKDB', '0020_alter_mediabulkupload_mediabulkdate'), ] - operations = [] + operations = [ + ] diff --git a/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py b/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py index 4d22dfe9..32b63c48 100644 --- a/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py +++ b/TEKDB/TEKDB/migrations/0022_alter_mediabulkupload_options_alter_media_mediatype_and_more.py @@ -5,42 +5,25 @@ class Migration(migrations.Migration): + dependencies = [ - ("Lookup", "0005_alter_lookupuserinfo_id"), - ("TEKDB", "0021_merge_20241224_1132"), + ('Lookup', '0005_alter_lookupuserinfo_id'), + ('TEKDB', '0021_merge_20241224_1132'), ] operations = [ migrations.AlterModelOptions( - name="mediabulkupload", - options={ - "managed": True, - "verbose_name": "Media Bulk Upload", - "verbose_name_plural": "Media Bulk Uploads", - }, + name='mediabulkupload', + options={'managed': True, 'verbose_name': 'Media Bulk Upload', 'verbose_name_plural': 'Media Bulk Uploads'}, ), migrations.AlterField( - model_name="media", - name="mediatype", - field=models.ForeignKey( - blank=True, - db_column="mediatype", - default=None, - null=True, - on_delete=django.db.models.deletion.SET_DEFAULT, - to="Lookup.lookupmediatype", - verbose_name="type", - ), + model_name='media', + name='mediatype', + field=models.ForeignKey(blank=True, db_column='mediatype', default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='Lookup.lookupmediatype', verbose_name='type'), ), migrations.AlterField( - model_name="mediabulkupload", - name="mediabulkname", - field=models.CharField( - blank=True, - default="Bulk Upload on 2025-05-02", - max_length=255, - null=True, - verbose_name="name", - ), + model_name='mediabulkupload', + name='mediabulkname', + field=models.CharField(blank=True, default='Bulk Upload on 2025-05-02', max_length=255, null=True, verbose_name='name'), ), ] diff --git a/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py b/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py index 155e19ce..d65f4e94 100644 --- a/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py +++ b/TEKDB/TEKDB/migrations/0023_alter_mediabulkupload_mediabulkname.py @@ -4,20 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0022_alter_mediabulkupload_options_alter_media_mediatype_and_more"), + ('TEKDB', '0022_alter_mediabulkupload_options_alter_media_mediatype_and_more'), ] operations = [ migrations.AlterField( - model_name="mediabulkupload", - name="mediabulkname", - field=models.CharField( - blank=True, - default="Bulk Upload on 2025-05-08", - max_length=255, - null=True, - verbose_name="name", - ), + model_name='mediabulkupload', + name='mediabulkname', + field=models.CharField(blank=True, default='Bulk Upload on 2025-05-08', max_length=255, null=True, verbose_name='name'), ), ] diff --git a/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py b/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py index 6efb7fe3..45ddee9f 100644 --- a/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py +++ b/TEKDB/TEKDB/migrations/0024_alter_citations_comments_alter_citations_rawcitation_and_more.py @@ -5,55 +5,35 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0023_alter_mediabulkupload_mediabulkname"), + ('TEKDB', '0023_alter_mediabulkupload_mediabulkname'), ] operations = [ migrations.AlterField( - model_name="citations", - name="comments", - field=tinymce.models.HTMLField(blank=True, db_column="comments", null=True), + model_name='citations', + name='comments', + field=tinymce.models.HTMLField(blank=True, db_column='comments', null=True), ), migrations.AlterField( - model_name="citations", - name="rawcitation", - field=tinymce.models.HTMLField( - blank=True, - db_column="rawcitation", - help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", - null=True, - verbose_name="Raw, formatted bibliographic citation", - ), + model_name='citations', + name='rawcitation', + field=tinymce.models.HTMLField(blank=True, db_column='rawcitation', help_text="If you have the text for a bibliographic citation already formatted as you'd like it, please share it here.", null=True, verbose_name='Raw, formatted bibliographic citation'), ), migrations.AlterField( - model_name="media", - name="mediadescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="mediadescription", - null=True, - verbose_name="description", - ), + model_name='media', + name='mediadescription', + field=tinymce.models.HTMLField(blank=True, db_column='mediadescription', null=True, verbose_name='description'), ), migrations.AlterField( - model_name="resourcesactivityevents", - name="activitylongdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="activitylongdescription", - null=True, - verbose_name="full activity description", - ), + model_name='resourcesactivityevents', + name='activitylongdescription', + field=tinymce.models.HTMLField(blank=True, db_column='activitylongdescription', null=True, verbose_name='full activity description'), ), migrations.AlterField( - model_name="resourcesactivityevents", - name="relationshipdescription", - field=tinymce.models.HTMLField( - blank=True, - db_column="relationshipdescription", - null=True, - verbose_name="excerpt", - ), + model_name='resourcesactivityevents', + name='relationshipdescription', + field=tinymce.models.HTMLField(blank=True, db_column='relationshipdescription', null=True, verbose_name='excerpt'), ), ] diff --git a/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py b/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py index b97e26dd..29282b4d 100644 --- a/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py +++ b/TEKDB/TEKDB/migrations/0025_alter_mediabulkupload_mediabulkname.py @@ -4,20 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("TEKDB", "0024_alter_citations_comments_alter_citations_rawcitation_and_more"), + ('TEKDB', '0024_alter_citations_comments_alter_citations_rawcitation_and_more'), ] operations = [ migrations.AlterField( - model_name="mediabulkupload", - name="mediabulkname", - field=models.CharField( - blank=True, - default="Bulk Upload on 2025-05-11", - max_length=255, - null=True, - verbose_name="name", - ), + model_name='mediabulkupload', + name='mediabulkname', + field=models.CharField(blank=True, default='Bulk Upload on 2025-05-11', max_length=255, null=True, verbose_name='name'), ), ] diff --git a/TEKDB/configuration/migrations/0001_initial.py b/TEKDB/configuration/migrations/0001_initial.py index d8bbe2c1..fe023637 100644 --- a/TEKDB/configuration/migrations/0001_initial.py +++ b/TEKDB/configuration/migrations/0001_initial.py @@ -5,51 +5,20 @@ class Migration(migrations.Migration): + initial = True - dependencies = [] + dependencies = [ + ] operations = [ migrations.CreateModel( - name="Configuration", + name='Configuration', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "preferredInitialism", - models.CharField( - default="ITK", - max_length=15, - verbose_name="What to call this data: ITK? TEK?", - ), - ), - ( - "geometry", - django.contrib.gis.db.models.fields.GeometryField( - blank=True, - default=None, - help_text="Indicate the region in which most of your 'place' records are likely exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", - null=True, - srid=3857, - verbose_name="Area of Interest", - ), - ), - ( - "homepageImage", - models.ImageField( - blank=True, - default=None, - help_text="If you have a preferred image for the landing page, put it here. If blank, users will see a default image.", - upload_to="", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('preferredInitialism', models.CharField(default='ITK', max_length=15, verbose_name='What to call this data: ITK? TEK?')), + ('geometry', django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, help_text="Indicate the region in which most of your 'place' records are likely exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", null=True, srid=3857, verbose_name='Area of Interest')), + ('homepageImage', models.ImageField(blank=True, default=None, help_text='If you have a preferred image for the landing page, put it here. If blank, users will see a default image.', upload_to='')), ], ), ] diff --git a/TEKDB/configuration/migrations/0002_auto_20220503_1757.py b/TEKDB/configuration/migrations/0002_auto_20220503_1757.py index ead2af7e..65aaecb6 100644 --- a/TEKDB/configuration/migrations/0002_auto_20220503_1757.py +++ b/TEKDB/configuration/migrations/0002_auto_20220503_1757.py @@ -4,30 +4,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0001_initial"), + ('configuration', '0001_initial'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="homepageImage", - field=models.ImageField( - blank=True, - default=None, - help_text="If you have a preferred image for the landing page, put it here. If blank, users will see a default image.", - upload_to="", - verbose_name="Homepage Image", - ), + model_name='configuration', + name='homepageImage', + field=models.ImageField(blank=True, default=None, help_text='If you have a preferred image for the landing page, put it here. If blank, users will see a default image.', upload_to='', verbose_name='Homepage Image'), ), migrations.AlterField( - model_name="configuration", - name="preferredInitialism", - field=models.CharField( - default="ITK", - help_text="Suggestions: 'ITK', 'TEK', etc...", - max_length=15, - verbose_name="Preferred sharthand for traditional knowledge", - ), + model_name='configuration', + name='preferredInitialism', + field=models.CharField(default='ITK', help_text="Suggestions: 'ITK', 'TEK', etc...", max_length=15, verbose_name='Preferred sharthand for traditional knowledge'), ), ] diff --git a/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py b/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py index 9df97e70..94e3f0bd 100644 --- a/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py +++ b/TEKDB/configuration/migrations/0003_alter_configuration_geometry.py @@ -5,21 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0002_auto_20220503_1757"), + ('configuration', '0002_auto_20220503_1757'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="geometry", - field=django.contrib.gis.db.models.fields.GeometryField( - blank=True, - default=None, - help_text="Indicate the region in which most of your 'place' records are likely to exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", - null=True, - srid=3857, - verbose_name="Area of Interest", - ), + model_name='configuration', + name='geometry', + field=django.contrib.gis.db.models.fields.GeometryField(blank=True, default=None, help_text="Indicate the region in which most of your 'place' records are likely to exist. This serves to set the map conveniently for staff entering records. Records are allowed to exist outside of the area you indicate, and this can be changed at any time.", null=True, srid=3857, verbose_name='Area of Interest'), ), ] diff --git a/TEKDB/configuration/migrations/0004_auto_20220506_1506.py b/TEKDB/configuration/migrations/0004_auto_20220506_1506.py index a8c44788..ac0e4b9c 100644 --- a/TEKDB/configuration/migrations/0004_auto_20220506_1506.py +++ b/TEKDB/configuration/migrations/0004_auto_20220506_1506.py @@ -6,87 +6,45 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0003_alter_configuration_geometry"), + ('configuration', '0003_alter_configuration_geometry'), ] operations = [ migrations.RenameField( - model_name="configuration", - old_name="homepageImage", - new_name="homepage_image", + model_name='configuration', + old_name='homepageImage', + new_name='homepage_image', ), migrations.AddField( - model_name="configuration", - name="homepage_font_color", - field=colorfield.fields.ColorField( - default="#FFFFFF", - help_text="Text color on homepage. Recommended: White (#FFFFFF).", - image_field=None, - max_length=18, - samples=None, - verbose_name="Homepage Text Color", - ), + model_name='configuration', + name='homepage_font_color', + field=colorfield.fields.ColorField(default='#FFFFFF', help_text='Text color on homepage. Recommended: White (#FFFFFF).', image_field=None, max_length=18, samples=None, verbose_name='Homepage Text Color'), ), migrations.AddField( - model_name="configuration", - name="homepage_image_attribution", - field=ckeditor.fields.RichTextField( - blank=True, - default=None, - help_text="If using a custom image that requires attribution for use, please provide that here.", - null=True, - verbose_name="Homepage Image attribution", - ), + model_name='configuration', + name='homepage_image_attribution', + field=ckeditor.fields.RichTextField(blank=True, default=None, help_text='If using a custom image that requires attribution for use, please provide that here.', null=True, verbose_name='Homepage Image attribution'), ), migrations.AddField( - model_name="configuration", - name="homepage_left_background", - field=colorfield.fields.ColorField( - default="#000000", - help_text="Background color behind Text on homepage. Recommended: Black (#000000).", - image_field=None, - max_length=18, - samples=None, - verbose_name="Left Homepage Background Color", - ), + model_name='configuration', + name='homepage_left_background', + field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind Text on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=None, verbose_name='Left Homepage Background Color'), ), migrations.AddField( - model_name="configuration", - name="homepage_right_background", - field=colorfield.fields.ColorField( - default="#000000", - help_text="Background color behind image on homepage. Recommended: Black (#000000).", - image_field=None, - max_length=18, - samples=None, - verbose_name="Right Homepage Background Color", - ), + model_name='configuration', + name='homepage_right_background', + field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind image on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=None, verbose_name='Right Homepage Background Color'), ), migrations.AddField( - model_name="configuration", - name="logo", - field=models.CharField( - choices=[ - ("/static/explore/img/logos/logo_weave.svg", "Weave"), - ("/static/explore/img/logos/logo_drop.svg", "Droplet"), - ("Other", "Custom"), - ], - default=("/static/explore/img/logos/logo_weave.svg", "Weave"), - help_text='Choose your logo for the site header. You can choose between:
    • \'Weave\'
    • \'Droplet\'
    • Or choose \'Custom\' and add your own using the Override field below.
    ', - max_length=255, - ), + model_name='configuration', + name='logo', + field=models.CharField(choices=[('/static/explore/img/logos/logo_weave.svg', 'Weave'), ('/static/explore/img/logos/logo_drop.svg', 'Droplet'), ('Other', 'Custom')], default=('/static/explore/img/logos/logo_weave.svg', 'Weave'), help_text='Choose your logo for the site header. You can choose between:
    • \'Weave\'
    • \'Droplet\'
    • Or choose \'Custom\' and add your own using the Override field below.
    ', max_length=255), ), migrations.AddField( - model_name="configuration", - name="logo_override", - field=models.ImageField( - blank=True, - default=None, - help_text="Use this to add your own logo to the site header", - null=True, - upload_to="", - verbose_name="Header Logo Override Image", - ), + model_name='configuration', + name='logo_override', + field=models.ImageField(blank=True, default=None, help_text='Use this to add your own logo to the site header', null=True, upload_to='', verbose_name='Header Logo Override Image'), ), ] diff --git a/TEKDB/configuration/migrations/0005_auto_20220510_0939.py b/TEKDB/configuration/migrations/0005_auto_20220510_0939.py index 86dbb447..f9888511 100644 --- a/TEKDB/configuration/migrations/0005_auto_20220510_0939.py +++ b/TEKDB/configuration/migrations/0005_auto_20220510_0939.py @@ -5,87 +5,30 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0004_auto_20220506_1506"), + ('configuration', '0004_auto_20220506_1506'), ] operations = [ migrations.AddField( - model_name="configuration", - name="max_results_returned", - field=models.IntegerField( - default=500, - help_text="500 is recommended. Allowing more may result in poor website performance or strain on the server.", - verbose_name="Maximum no. of search results", - ), + model_name='configuration', + name='max_results_returned', + field=models.IntegerField(default=500, help_text='500 is recommended. Allowing more may result in poor website performance or strain on the server.', verbose_name='Maximum no. of search results'), ), migrations.AlterField( - model_name="configuration", - name="homepage_font_color", - field=colorfield.fields.ColorField( - default="#FFFFFF", - help_text="Text color on homepage. Recommended: White (#FFFFFF).", - image_field=None, - max_length=18, - samples=[ - ("#8f371c", "primary_a"), - ("#f7f3eb", "primary_b"), - ("#0e1522", "primary_c"), - ("#ced2da", "primary_d"), - ("#51723b", "secondary_a"), - ("#839230", "secondary_b"), - ("#6ea32e", "secondary_c"), - ("#b44ba3", "secondary_d"), - ("#FFFFFF", "white"), - ("#000000", "black"), - ], - verbose_name="Homepage Text Color", - ), + model_name='configuration', + name='homepage_font_color', + field=colorfield.fields.ColorField(default='#FFFFFF', help_text='Text color on homepage. Recommended: White (#FFFFFF).', image_field=None, max_length=18, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Homepage Text Color'), ), migrations.AlterField( - model_name="configuration", - name="homepage_left_background", - field=colorfield.fields.ColorField( - default="#000000", - help_text="Background color behind Text on homepage. Recommended: Black (#000000).", - image_field=None, - max_length=18, - samples=[ - ("#8f371c", "primary_a"), - ("#f7f3eb", "primary_b"), - ("#0e1522", "primary_c"), - ("#ced2da", "primary_d"), - ("#51723b", "secondary_a"), - ("#839230", "secondary_b"), - ("#6ea32e", "secondary_c"), - ("#b44ba3", "secondary_d"), - ("#FFFFFF", "white"), - ("#000000", "black"), - ], - verbose_name="Left Homepage Background Color", - ), + model_name='configuration', + name='homepage_left_background', + field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind Text on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Left Homepage Background Color'), ), migrations.AlterField( - model_name="configuration", - name="homepage_right_background", - field=colorfield.fields.ColorField( - default="#000000", - help_text="Background color behind image on homepage. Recommended: Black (#000000).", - image_field=None, - max_length=18, - samples=[ - ("#8f371c", "primary_a"), - ("#f7f3eb", "primary_b"), - ("#0e1522", "primary_c"), - ("#ced2da", "primary_d"), - ("#51723b", "secondary_a"), - ("#839230", "secondary_b"), - ("#6ea32e", "secondary_c"), - ("#b44ba3", "secondary_d"), - ("#FFFFFF", "white"), - ("#000000", "black"), - ], - verbose_name="Right Homepage Background Color", - ), + model_name='configuration', + name='homepage_right_background', + field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind image on homepage. Recommended: Black (#000000).', image_field=None, max_length=18, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Right Homepage Background Color'), ), ] diff --git a/TEKDB/configuration/migrations/0006_alter_configuration_logo.py b/TEKDB/configuration/migrations/0006_alter_configuration_logo.py index 55c3ad8d..5c470219 100644 --- a/TEKDB/configuration/migrations/0006_alter_configuration_logo.py +++ b/TEKDB/configuration/migrations/0006_alter_configuration_logo.py @@ -4,23 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0005_auto_20220510_0939"), + ('configuration', '0005_auto_20220510_0939'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="logo", - field=models.CharField( - choices=[ - ("/static/explore/img/logos/logo_weave.svg", "Weave"), - ("/static/explore/img/logos/logo_drop.svg", "Droplet"), - ("Other", "Custom"), - ], - default=("/static/explore/img/logos/logo_weave.svg", "Weave"), - help_text='Choose your logo for the site header. You can choose between:
    • \'Weave\'
    • \'Droplet\'
    • Or choose \'Custom\' and add your own using the Header Logo Override Image field.
    ', - max_length=255, - ), + model_name='configuration', + name='logo', + field=models.CharField(choices=[('/static/explore/img/logos/logo_weave.svg', 'Weave'), ('/static/explore/img/logos/logo_drop.svg', 'Droplet'), ('Other', 'Custom')], default=('/static/explore/img/logos/logo_weave.svg', 'Weave'), help_text='Choose your logo for the site header. You can choose between:
    • \'Weave\'
    • \'Droplet\'
    • Or choose \'Custom\' and add your own using the Header Logo Override Image field.
    ', max_length=255), ), ] diff --git a/TEKDB/configuration/migrations/0007_auto_20240913_1539.py b/TEKDB/configuration/migrations/0007_auto_20240913_1539.py index 4cf00e0d..29db6e30 100644 --- a/TEKDB/configuration/migrations/0007_auto_20240913_1539.py +++ b/TEKDB/configuration/migrations/0007_auto_20240913_1539.py @@ -5,78 +5,25 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0006_alter_configuration_logo"), + ('configuration', '0006_alter_configuration_logo'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="homepage_font_color", - field=colorfield.fields.ColorField( - default="#FFFFFF", - help_text="Text color on homepage. Recommended: White (#FFFFFF).", - image_field=None, - max_length=25, - samples=[ - ("#8f371c", "primary_a"), - ("#f7f3eb", "primary_b"), - ("#0e1522", "primary_c"), - ("#ced2da", "primary_d"), - ("#51723b", "secondary_a"), - ("#839230", "secondary_b"), - ("#6ea32e", "secondary_c"), - ("#b44ba3", "secondary_d"), - ("#FFFFFF", "white"), - ("#000000", "black"), - ], - verbose_name="Homepage Text Color", - ), + model_name='configuration', + name='homepage_font_color', + field=colorfield.fields.ColorField(default='#FFFFFF', help_text='Text color on homepage. Recommended: White (#FFFFFF).', image_field=None, max_length=25, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Homepage Text Color'), ), migrations.AlterField( - model_name="configuration", - name="homepage_left_background", - field=colorfield.fields.ColorField( - default="#000000", - help_text="Background color behind Text on homepage. Recommended: Black (#000000).", - image_field=None, - max_length=25, - samples=[ - ("#8f371c", "primary_a"), - ("#f7f3eb", "primary_b"), - ("#0e1522", "primary_c"), - ("#ced2da", "primary_d"), - ("#51723b", "secondary_a"), - ("#839230", "secondary_b"), - ("#6ea32e", "secondary_c"), - ("#b44ba3", "secondary_d"), - ("#FFFFFF", "white"), - ("#000000", "black"), - ], - verbose_name="Left Homepage Background Color", - ), + model_name='configuration', + name='homepage_left_background', + field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind Text on homepage. Recommended: Black (#000000).', image_field=None, max_length=25, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Left Homepage Background Color'), ), migrations.AlterField( - model_name="configuration", - name="homepage_right_background", - field=colorfield.fields.ColorField( - default="#000000", - help_text="Background color behind image on homepage. Recommended: Black (#000000).", - image_field=None, - max_length=25, - samples=[ - ("#8f371c", "primary_a"), - ("#f7f3eb", "primary_b"), - ("#0e1522", "primary_c"), - ("#ced2da", "primary_d"), - ("#51723b", "secondary_a"), - ("#839230", "secondary_b"), - ("#6ea32e", "secondary_c"), - ("#b44ba3", "secondary_d"), - ("#FFFFFF", "white"), - ("#000000", "black"), - ], - verbose_name="Right Homepage Background Color", - ), + model_name='configuration', + name='homepage_right_background', + field=colorfield.fields.ColorField(default='#000000', help_text='Background color behind image on homepage. Recommended: Black (#000000).', image_field=None, max_length=25, samples=[('#8f371c', 'primary_a'), ('#f7f3eb', 'primary_b'), ('#0e1522', 'primary_c'), ('#ced2da', 'primary_d'), ('#51723b', 'secondary_a'), ('#839230', 'secondary_b'), ('#6ea32e', 'secondary_c'), ('#b44ba3', 'secondary_d'), ('#FFFFFF', 'white'), ('#000000', 'black')], verbose_name='Right Homepage Background Color'), ), ] diff --git a/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py b/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py index 2fe590bf..b69da1fd 100644 --- a/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py +++ b/TEKDB/configuration/migrations/0008_alter_configuration_preferredinitialism.py @@ -4,20 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0007_auto_20240913_1539"), + ('configuration', '0007_auto_20240913_1539'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="preferredInitialism", - field=models.CharField( - blank=True, - default="ITK", - help_text="Suggestions: 'ITK', 'TEK', etc...", - max_length=15, - verbose_name="Preferred sharthand for traditional knowledge", - ), + model_name='configuration', + name='preferredInitialism', + field=models.CharField(blank=True, default='ITK', help_text="Suggestions: 'ITK', 'TEK', etc...", max_length=15, verbose_name='Preferred sharthand for traditional knowledge'), ), ] diff --git a/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py b/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py index 40123ed7..8a06149c 100644 --- a/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py +++ b/TEKDB/configuration/migrations/0009_configuration_preferredinitialismplacement.py @@ -4,23 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0008_alter_configuration_preferredinitialism"), + ('configuration', '0008_alter_configuration_preferredinitialism'), ] operations = [ migrations.AddField( - model_name="configuration", - name="preferredInitialismPlacement", - field=models.CharField( - choices=[ - ("default", "Default"), - ("before", "Before"), - ("after", "After"), - ], - default=("default", "Default"), - help_text="Choose where you would like the preferred initialism to appear in the site header.", - max_length=255, - ), + model_name='configuration', + name='preferredInitialismPlacement', + field=models.CharField(choices=[('default', 'Default'), ('before', 'Before'), ('after', 'After')], default=('default', 'Default'), help_text='Choose where you would like the preferred initialism to appear in the site header.', max_length=255), ), ] diff --git a/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py b/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py index be0b3b9b..f3b087c8 100644 --- a/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py +++ b/TEKDB/configuration/migrations/0010_alter_configuration_preferredinitialismplacement.py @@ -4,23 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0009_configuration_preferredinitialismplacement"), + ('configuration', '0009_configuration_preferredinitialismplacement'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="preferredInitialismPlacement", - field=models.CharField( - choices=[ - ("default", "Default"), - ("before", "Before"), - ("after", "After"), - ], - default=("default", "Default"), - help_text="Select the position of the preferred initialism in relative to the logo.", - max_length=255, - ), + model_name='configuration', + name='preferredInitialismPlacement', + field=models.CharField(choices=[('default', 'Default'), ('before', 'Before'), ('after', 'After')], default=('default', 'Default'), help_text='Select the position of the preferred initialism in relative to the logo.', max_length=255), ), ] diff --git a/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py b/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py index 79805c71..337e8259 100644 --- a/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py +++ b/TEKDB/configuration/migrations/0011_alter_configuration_preferredinitialismplacement.py @@ -4,23 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0010_alter_configuration_preferredinitialismplacement"), + ('configuration', '0010_alter_configuration_preferredinitialismplacement'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="preferredInitialismPlacement", - field=models.CharField( - choices=[ - ("default", "Align Center"), - ("before", "Align Left"), - ("after", "Align Right"), - ], - default=("default", "Align Center"), - help_text="Select the position of the preferred initialism in relative to the logo.", - max_length=255, - ), + model_name='configuration', + name='preferredInitialismPlacement', + field=models.CharField(choices=[('default', 'Align Center'), ('before', 'Align Left'), ('after', 'Align Right')], default=('default', 'Align Center'), help_text='Select the position of the preferred initialism in relative to the logo.', max_length=255), ), ] diff --git a/TEKDB/configuration/migrations/0012_auto_20241025_1313.py b/TEKDB/configuration/migrations/0012_auto_20241025_1313.py index ecb02202..bde23a52 100644 --- a/TEKDB/configuration/migrations/0012_auto_20241025_1313.py +++ b/TEKDB/configuration/migrations/0012_auto_20241025_1313.py @@ -4,31 +4,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0011_alter_configuration_preferredinitialismplacement"), + ('configuration', '0011_alter_configuration_preferredinitialismplacement'), ] operations = [ migrations.AddField( - model_name="configuration", - name="min_search_rank", - field=models.FloatField( - blank=True, - default=None, - help_text="Weight 0-1 representing the minimum search rank threshold for search results.", - null=True, - verbose_name="Minimum Search Rank", - ), + model_name='configuration', + name='min_search_rank', + field=models.FloatField(blank=True, default=None, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', null=True, verbose_name='Minimum Search Rank'), ), migrations.AddField( - model_name="configuration", - name="min_search_similarity", - field=models.FloatField( - blank=True, - default=None, - help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", - null=True, - verbose_name="Minimum Search Similarity", - ), + model_name='configuration', + name='min_search_similarity', + field=models.FloatField(blank=True, default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', null=True, verbose_name='Minimum Search Similarity'), ), ] diff --git a/TEKDB/configuration/migrations/0013_auto_20241025_1406.py b/TEKDB/configuration/migrations/0013_auto_20241025_1406.py index 2e7bc616..bfa865c6 100644 --- a/TEKDB/configuration/migrations/0013_auto_20241025_1406.py +++ b/TEKDB/configuration/migrations/0013_auto_20241025_1406.py @@ -4,45 +4,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0012_auto_20241025_1313"), + ('configuration', '0012_auto_20241025_1313'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="min_search_rank", - field=models.FloatField( - blank=True, - choices=[ - (0.01, "All Results"), - (0.1, "Most Results"), - (0.5, "Top Results"), - (0.9, "Only Best Results"), - ], - default=None, - help_text="Weight 0-1 representing the minimum search rank threshold for search results.", - max_length=255, - null=True, - verbose_name="Minimum Search Rank", - ), + model_name='configuration', + name='min_search_rank', + field=models.FloatField(blank=True, choices=[(0.01, 'All Results'), (0.1, 'Most Results'), (0.5, 'Top Results'), (0.9, 'Only Best Results')], default=None, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', max_length=255, null=True, verbose_name='Minimum Search Rank'), ), migrations.AlterField( - model_name="configuration", - name="min_search_similarity", - field=models.FloatField( - blank=True, - choices=[ - (0.1, "Loose"), - (0.4, "Moderate"), - (0.6, "Pretty Strict"), - (0.9, "Strict"), - ], - default=None, - help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", - max_length=255, - null=True, - verbose_name="Minimum Search Similarity", - ), + model_name='configuration', + name='min_search_similarity', + field=models.FloatField(blank=True, choices=[(0.1, 'Loose'), (0.4, 'Moderate'), (0.6, 'Pretty Strict'), (0.9, 'Strict')], default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), ), ] diff --git a/TEKDB/configuration/migrations/0014_auto_20241025_1603.py b/TEKDB/configuration/migrations/0014_auto_20241025_1603.py index b78b8103..dc3632ec 100644 --- a/TEKDB/configuration/migrations/0014_auto_20241025_1603.py +++ b/TEKDB/configuration/migrations/0014_auto_20241025_1603.py @@ -4,46 +4,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0013_auto_20241025_1406"), + ('configuration', '0013_auto_20241025_1406'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="min_search_rank", - field=models.FloatField( - blank=True, - choices=[ - (0.01, "Lowest"), - (0.1, "Default"), - (0.6, "Moderate"), - (0.9, "Highest"), - ], - default=None, - help_text="Weight 0-1 representing the minimum search rank threshold for search results.", - max_length=255, - null=True, - verbose_name="Minimum Search Rank", - ), + model_name='configuration', + name='min_search_rank', + field=models.FloatField(blank=True, choices=[(0.01, 'Lowest'), (0.1, 'Default'), (0.6, 'Moderate'), (0.9, 'Highest')], default=None, help_text='Weight 0-1 representing the minimum search rank threshold for search results.', max_length=255, null=True, verbose_name='Minimum Search Rank'), ), migrations.AlterField( - model_name="configuration", - name="min_search_similarity", - field=models.FloatField( - blank=True, - choices=[ - (0.1, "Permissive"), - (0.2, "Default"), - (0.3, "Similar"), - (0.4, "Has Match"), - (0.9, "Exact Match"), - ], - default=None, - help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", - max_length=255, - null=True, - verbose_name="Minimum Search Similarity", - ), + model_name='configuration', + name='min_search_similarity', + field=models.FloatField(blank=True, choices=[(0.1, 'Permissive'), (0.2, 'Default'), (0.3, 'Similar'), (0.4, 'Has Match'), (0.9, 'Exact Match')], default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), ), ] diff --git a/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py b/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py index 808e97c2..e72ad8c6 100644 --- a/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py +++ b/TEKDB/configuration/migrations/0015_alter_configuration_min_search_similarity.py @@ -4,28 +4,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0014_auto_20241025_1603"), + ('configuration', '0014_auto_20241025_1603'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="min_search_similarity", - field=models.FloatField( - blank=True, - choices=[ - (0.01, "Permissive"), - (0.1, "Default"), - (0.3, "Similar"), - (0.4, "Has Match"), - (0.9, "Exact Match"), - ], - default=None, - help_text="Weight 0-1 representing the minimum threshold for similar search results to be included in results.", - max_length=255, - null=True, - verbose_name="Minimum Search Similarity", - ), + model_name='configuration', + name='min_search_similarity', + field=models.FloatField(blank=True, choices=[(0.01, 'Permissive'), (0.1, 'Default'), (0.3, 'Similar'), (0.4, 'Has Match'), (0.9, 'Exact Match')], default=None, help_text='Weight 0-1 representing the minimum threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), ), ] diff --git a/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py b/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py index febdc5c0..5bb77459 100644 --- a/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py +++ b/TEKDB/configuration/migrations/0016_alter_configuration_min_search_rank_and_more.py @@ -4,46 +4,20 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0015_alter_configuration_min_search_similarity"), + ('configuration', '0015_alter_configuration_min_search_similarity'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="min_search_rank", - field=models.FloatField( - blank=True, - choices=[ - (0.01, "Lowest"), - (0.1, "Default"), - (0.6, "Moderate"), - (0.9, "Highest"), - ], - default=None, - help_text="The lowest acceptable ranking score assigned to search results.", - max_length=255, - null=True, - verbose_name="Minimum Search Rank", - ), + model_name='configuration', + name='min_search_rank', + field=models.FloatField(blank=True, choices=[(0.01, 'Lowest'), (0.1, 'Default'), (0.6, 'Moderate'), (0.9, 'Highest')], default=None, help_text='The lowest acceptable ranking score assigned to search results.', max_length=255, null=True, verbose_name='Minimum Search Rank'), ), migrations.AlterField( - model_name="configuration", - name="min_search_similarity", - field=models.FloatField( - blank=True, - choices=[ - (0.01, "Permissive"), - (0.1, "Default"), - (0.3, "Similar"), - (0.4, "Has Match"), - (0.9, "Exact Match"), - ], - default=None, - help_text="The lowest threshold for similar search results to be included in results.", - max_length=255, - null=True, - verbose_name="Minimum Search Similarity", - ), + model_name='configuration', + name='min_search_similarity', + field=models.FloatField(blank=True, choices=[(0.01, 'Permissive'), (0.1, 'Default'), (0.3, 'Similar'), (0.4, 'Has Match'), (0.9, 'Exact Match')], default=None, help_text='The lowest threshold for similar search results to be included in results.', max_length=255, null=True, verbose_name='Minimum Search Similarity'), ), ] diff --git a/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py b/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py index 32329873..2873e5c9 100644 --- a/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py +++ b/TEKDB/configuration/migrations/0017_alter_configuration_homepage_image_attribution.py @@ -5,20 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("configuration", "0016_alter_configuration_min_search_rank_and_more"), + ('configuration', '0016_alter_configuration_min_search_rank_and_more'), ] operations = [ migrations.AlterField( - model_name="configuration", - name="homepage_image_attribution", - field=tinymce.models.HTMLField( - blank=True, - default=None, - help_text="If using a custom image that requires attribution for use, please provide that here.", - null=True, - verbose_name="Homepage Image attribution", - ), + model_name='configuration', + name='homepage_image_attribution', + field=tinymce.models.HTMLField(blank=True, default=None, help_text='If using a custom image that requires attribution for use, please provide that here.', null=True, verbose_name='Homepage Image attribution'), ), ] diff --git a/TEKDB/explore/migrations/0001_initial.py b/TEKDB/explore/migrations/0001_initial.py index 5cbc58d1..a7887f20 100644 --- a/TEKDB/explore/migrations/0001_initial.py +++ b/TEKDB/explore/migrations/0001_initial.py @@ -7,44 +7,23 @@ class Migration(migrations.Migration): + initial = True - dependencies = [] + dependencies = [ + ] operations = [ migrations.CreateModel( - name="PageContent", + name='PageContent', fields=[ - ( - "page", - models.CharField( - choices=[ - ("Welcome", "Welcome"), - ("About", "About"), - ("Help", "Help"), - ], - max_length=255, - primary_key=True, - serialize=False, - ), - ), - ("content", ckeditor.fields.RichTextField(blank=True, null=True)), - ( - "is_html", - models.BooleanField( - default=False, - help_text='Select this if you want to use raw HTML instead. For this option, use the "HTML content" window below.', - ), - ), - ( - "html_content", - models.TextField( - blank=True, help_text="raw html if html == True", null=True - ), - ), + ('page', models.CharField(choices=[('Welcome', 'Welcome'), ('About', 'About'), ('Help', 'Help')], max_length=255, primary_key=True, serialize=False)), + ('content', ckeditor.fields.RichTextField(blank=True, null=True)), + ('is_html', models.BooleanField(default=False, help_text='Select this if you want to use raw HTML instead. For this option, use the "HTML content" window below.')), + ('html_content', models.TextField(blank=True, help_text='raw html if html == True', null=True)), ], options={ - "verbose_name_plural": "Page Contents", + 'verbose_name_plural': 'Page Contents', }, ), ] diff --git a/TEKDB/explore/migrations/0002_alter_pagecontent_content.py b/TEKDB/explore/migrations/0002_alter_pagecontent_content.py index 1555b837..891bd448 100644 --- a/TEKDB/explore/migrations/0002_alter_pagecontent_content.py +++ b/TEKDB/explore/migrations/0002_alter_pagecontent_content.py @@ -5,14 +5,15 @@ class Migration(migrations.Migration): + dependencies = [ - ("explore", "0001_initial"), + ('explore', '0001_initial'), ] operations = [ migrations.AlterField( - model_name="pagecontent", - name="content", + model_name='pagecontent', + name='content', field=tinymce.models.HTMLField(blank=True, null=True), ), ] From 827db58a0e7d38f90a175784f2bf2f31ec67b76f Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 10:33:11 -0700 Subject: [PATCH 21/27] exclude migration from ruff --- TEKDB/TEKDB/tests/test_admin.py | 41 +++++++++++++++++++++------------ TEKDB/pyproject.toml | 2 +- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/TEKDB/TEKDB/tests/test_admin.py b/TEKDB/TEKDB/tests/test_admin.py index d268a5d6..a5de7147 100644 --- a/TEKDB/TEKDB/tests/test_admin.py +++ b/TEKDB/TEKDB/tests/test_admin.py @@ -12,35 +12,46 @@ User = get_user_model() -class MediaBulkUploadAdminTest(ITKTestCase): +class MediaBulkUploadAdminTest(ITKTestCase): def setUp(self): self.factory = RequestFactory() - self.user = User.objects.create_superuser(username='admin2', password='password', email='admin@example.com') + self.user = User.objects.create_superuser( + username="admin2", password="password", email="admin@example.com" + ) def test_media_bulk_upload_admin_add(self): - url = reverse('admin:TEKDB_mediabulkupload_add') - test_image = SimpleUploadedFile("./test_image.jpg", b"\x00\x00\x00\x00", content_type="image") + url = reverse("admin:TEKDB_mediabulkupload_add") + test_image = SimpleUploadedFile( + "./test_image.jpg", b"\x00\x00\x00\x00", content_type="image" + ) # TODO: Associate the images with 1+ Places, Resources, Citations, Activities, and PlacesResources - request = self.factory.post(url, { - # 'mediabulkname': 'Test Bulk Upload', - # 'mediabulkdate': '2024-12-12', - 'files': [test_image, test_image], - }) + request = self.factory.post( + url, + { + # 'mediabulkname': 'Test Bulk Upload', + # 'mediabulkdate': '2024-12-12', + "files": [test_image, test_image], + }, + ) request.user = self.user bulk_admin = MediaBulkUploadAdmin(model=MediaBulkUpload, admin_site=AdminSite()) bulk_form = MediaBulkUploadForm(request.POST) bulk_form.is_valid() - bulk_admin.save_model(obj=MediaBulkUpload(), request=request, form=bulk_form, change=None) + bulk_admin.save_model( + obj=MediaBulkUpload(), request=request, form=bulk_form, change=None + ) - self.assertTrue(Media.objects.filter(medianame='test_image').exists()) - self.assertTrue(Media.objects.filter(medianame='test_image').count() == 2) + self.assertTrue(Media.objects.filter(medianame="test_image").exists()) + self.assertTrue(Media.objects.filter(medianame="test_image").count() == 2) - for media in Media.objects.filter(medianame='test_image'): + for media in Media.objects.filter(medianame="test_image"): self.assertTrue(os.path.exists(media.mediafile.path)) - os.remove(media.mediafile.path) # Clean up the uploaded files after the test + os.remove( + media.mediafile.path + ) # Clean up the uploaded files after the test self.assertFalse(os.path.exists(media.mediafile.path)) media.delete() @@ -61,4 +72,4 @@ def test_media_bulk_upload_admin_add(self): # url = reverse('admin:TEKDB_mediabulkupload_delete', args=[media_bulk_upload.id]) # response = self.client.post(url, {'post': 'yes'}) # self.assertEqual(response.status_code, 302) - # self.assertFalse(MediaBulkUpload.objects.filter(id=media_bulk_upload.id).exists()) \ No newline at end of file + # self.assertFalse(MediaBulkUpload.objects.filter(id=media_bulk_upload.id).exists()) diff --git a/TEKDB/pyproject.toml b/TEKDB/pyproject.toml index e5ada69f..34e543ed 100644 --- a/TEKDB/pyproject.toml +++ b/TEKDB/pyproject.toml @@ -1,5 +1,5 @@ [tool.ruff] -exclude = ["/migrations/"] +exclude = ["*/migrations/*"] [tool.ruff.format] quote-style = "double" From 750d3339426ae805f72790587a86151d1f0546ad Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 10:48:20 -0700 Subject: [PATCH 22/27] run ruff check --fix --- TEKDB/explore/views.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 54e68b51..a3856edf 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -153,7 +153,6 @@ def get_project_geography(): @login_required def get_by_model_id(request, model_type, id): - from TEKDB.settings import RECORD_ICONS state = "?%s" % request.GET.urlencode() back_link = "%s%s" % ("/search/", state) @@ -204,7 +203,7 @@ def get_by_model_id(request, model_type, id): "state": state, } - if "map" in record_dict.keys() and not record_dict["map"] == None: + if "map" in record_dict.keys() and record_dict["map"] is not None: DATABASE_GEOGRAPHY = get_project_geography() context["default_lon"] = DATABASE_GEOGRAPHY["default_lon"] context["default_lat"] = DATABASE_GEOGRAPHY["default_lat"] @@ -402,7 +401,7 @@ def search(request): if "category" in request.POST.keys(): try: categories = request.POST["category"].split(",") - except Exception as e: + except Exception: categories = all_categories pass @@ -492,11 +491,11 @@ def search(request): items_per_page = len(resultlist) page = request.GET.get("page") - if page == None: + if page is None: page = 1 view = request.GET.get("view") - if view == None: + if view is None: view = "list" DATABASE_GEOGRAPHY = get_project_geography() @@ -547,9 +546,8 @@ def search(request): def getResults(keyword_string, categories): - import TEKDB - if keyword_string == None: + if keyword_string is None: keyword_string = "" resultlist = [] @@ -599,7 +597,7 @@ def download(request): rows.append(row_dict) if format_type == "xlsx": - import xlsxwriter, io + import io from xlsxwriter.workbook import Workbook output = io.BytesIO() From e224c762b32a75448242363d7cd74141d6856cb4 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 10:52:39 -0700 Subject: [PATCH 23/27] fix linting errors in explore/views.py --- TEKDB/explore/views.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index a3856edf..3e3b3bad 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -288,9 +288,9 @@ def export_record_csv(record_dict, filename): and "value" in item.keys() and len(item.keys()) == 2 ): - if type(item["value"]) == list and len(item["value"]) > 0: + if isinstance(item["value"], list) and len(item["value"]) > 0: for sub_item in item["value"]: - if type(sub_item) == dict and "name" in sub_item.keys(): + if isinstance(sub_item, dict) and "name" in sub_item.keys(): writer.writerow( ["%s - %s" % (key, item["key"]), sub_item["name"]] ) @@ -315,7 +315,7 @@ def export_record_xls(record_dict, filename): output = io.BytesIO() workbook = Workbook(output, {"in_membory": True}) worksheet = workbook.add_worksheet() - bold = workbook.add_format({"bold": True}) + workbook.add_format({"bold": True}) row = 0 for key in get_sorted_keys(list(record_dict.keys())): field = record_dict[key] @@ -326,9 +326,9 @@ def export_record_xls(record_dict, filename): and "value" in item.keys() and len(item.keys()) == 2 ): - if type(item["value"]) == list and len(item["value"]) > 0: + if isinstance(item["value"], list) and len(item["value"]) > 0: for sub_item in item["value"]: - if type(sub_item) == dict and "name" in sub_item.keys(): + if isinstance(sub_item, dict) and "name" in sub_item.keys(): worksheet.write(row, 0, "%s - %s" % (key, item["key"])) worksheet.write(row, 1, sub_item["name"]) row += 1 @@ -425,7 +425,7 @@ def search(request): query_string = request.GET.get("query") elif "filter" in request.GET.urlencode(): query_string = request.GET.get("filter") - if query_string == "" or query_string == True: + if query_string == "" or query_string is True: query_string = None else: From 1b2318419de42a60a208dd838194ae3cdd4259fc Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 11:16:38 -0700 Subject: [PATCH 24/27] min_search_rank and min_search_similarity in vars to improve readability --- TEKDB/TEKDB/context_processors.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/TEKDB/TEKDB/context_processors.py b/TEKDB/TEKDB/context_processors.py index 99de598a..80510962 100644 --- a/TEKDB/TEKDB/context_processors.py +++ b/TEKDB/TEKDB/context_processors.py @@ -33,13 +33,19 @@ def search_settings(request=None): if configs: try: - search_config = { - "MIN_SEARCH_RANK": configs.min_search_rank + min_search_rank = ( + configs.min_search_rank if configs.min_search_rank - else search_config["MIN_SEARCH_RANK"], - "MIN_SEARCH_SIMILARITY": configs.min_search_similarity + else search_config["MIN_SEARCH_RANK"] + ) + min_search_similarity = ( + configs.min_search_similarity if configs.min_search_similarity - else search_config["MIN_SEARCH_SIMILARITY"], + else search_config["MIN_SEARCH_SIMILARITY"] + ) + search_config = { + "MIN_SEARCH_RANK": min_search_rank, + "MIN_SEARCH_SIMILARITY": min_search_similarity, } except Exception: print("No min_search_rank or min_search_similarity in Configuration") From 5ba34f57700b307303093f2946850027d9f0bbfa Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 11:53:27 -0700 Subject: [PATCH 25/27] return unicode in __unicode__ --- TEKDB/TEKDB/models.py | 4 ++-- TEKDB/explore/views.py | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index a349180a..85d95221 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -736,13 +736,13 @@ def __unicode__(self): english = self.englishplacename or "" if indigenous and english: - return "%s (%s)" % (indigenous, english) + return u"%s (%s)" % (indigenous, english) # fmt: off elif indigenous: return unicode(indigenous) # noqa: F821 elif english: return unicode(english) # noqa: F821 else: - return "No Name Given" + return u"No Name Given" # fmt: off def __str__(self): indigenous = self.indigenousplacename or "" diff --git a/TEKDB/explore/views.py b/TEKDB/explore/views.py index 3e3b3bad..41c625ec 100644 --- a/TEKDB/explore/views.py +++ b/TEKDB/explore/views.py @@ -153,7 +153,6 @@ def get_project_geography(): @login_required def get_by_model_id(request, model_type, id): - state = "?%s" % request.GET.urlencode() back_link = "%s%s" % ("/search/", state) models = get_model_by_type(model_type) @@ -546,7 +545,6 @@ def search(request): def getResults(keyword_string, categories): - if keyword_string is None: keyword_string = "" From 513a8a3e038ba98f7468403935d9433face17c06 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 12:03:50 -0700 Subject: [PATCH 26/27] include error msg in import_shp exception --- TEKDB/TEKDB/management/commands/import_shp.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/TEKDB/TEKDB/management/commands/import_shp.py b/TEKDB/TEKDB/management/commands/import_shp.py index bb304b38..cb4d836f 100644 --- a/TEKDB/TEKDB/management/commands/import_shp.py +++ b/TEKDB/TEKDB/management/commands/import_shp.py @@ -145,8 +145,11 @@ def handle(self, *args, **options): record.DigitizedDate = record_date record.save() - except: # noqa: E722 - print("Error editing %s record with ID: %s" % (model, str(pk))) + except Exception as e: + print( + "Error editing %s record with ID: %s; error msg: %s" + % (model, str(pk), e) + ) except Exception: print( From b66d00a46263a7ae3514e72ae9d6d285950203a1 Mon Sep 17 00:00:00 2001 From: Paige Williams Date: Fri, 31 Oct 2025 13:36:31 -0700 Subject: [PATCH 27/27] resolve noqa: E722 --- TEKDB/TEKDB/models.py | 2 +- TEKDB/TEKDB/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TEKDB/TEKDB/models.py b/TEKDB/TEKDB/models.py index 85d95221..a4b0e481 100644 --- a/TEKDB/TEKDB/models.py +++ b/TEKDB/TEKDB/models.py @@ -185,7 +185,7 @@ def format_data(self, data_set, fk_field_id, ignore_columns=[]): for ignore_column in ignore_columns: try: columns.pop(columns.index(ignore_column)) - except: # noqa: E722 + except Exception: pass for item in data_set: row = [item.pk] diff --git a/TEKDB/TEKDB/views.py b/TEKDB/TEKDB/views.py index 111453db..b711d571 100644 --- a/TEKDB/TEKDB/views.py +++ b/TEKDB/TEKDB/views.py @@ -38,7 +38,7 @@ def get_related(request, model_name, id): instance = model.objects.get(pk=id) if hasattr(instance, "get_related_objects"): data = json.dumps(instance.get_related_objects(id)) - except: # noqa: E722 + except Exception: pass return HttpResponse(data, content_type="application/json")