@ -1,4 +1,4 @@
# Generated by Django 4.2.6 on 2023-11-1 5 19:33
# Generated by Django 4.2.6 on 2023-11-1 6 16:01
from django . conf import settings
from django . db import migrations , models
@ -13,9 +13,9 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
migrations . swappable_dependency ( settings . AUTH_USER_MODEL ) ,
( ' wagtailimages ' , ' 0025_alter_image_file_alter_rendition_file ' ) ,
( ' wagtailcore ' , ' 0089_log_entry_data_json_null_to_object ' ) ,
migrations . swappable_dependency ( settings . AUTH_USER_MODEL ) ,
]
operations = [
@ -35,11 +35,12 @@ class Migration(migrations.Migration):
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' legacy_id ' , models . IntegerField ( ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 , help_text = ' Lower numbers sort earlier ' ) ) ,
] ,
options = {
' verbose_name_plural ' : ' finishes ' ,
' ordering ' : [ ' name ' ] ,
' ordering ' : [ ' sort_order ' , ' name ' ] ,
' abstract ' : False ,
} ,
) ,
migrations . CreateModel (
@ -56,8 +57,8 @@ class Migration(migrations.Migration):
name = ' LandingProduct ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 , help_text = ' Lower numbers sort earlier ' ) ) ,
( ' description ' , models . TextField ( blank = True , null = True ) ) ,
] ,
options = {
@ -87,8 +88,8 @@ class Migration(migrations.Migration):
name = ' MiscProduct ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 , help_text = ' Lower numbers sort earlier ' ) ) ,
( ' description ' , models . TextField ( blank = True , null = True ) ) ,
] ,
options = {
@ -97,29 +98,42 @@ class Migration(migrations.Migration):
} ,
) ,
migrations . CreateModel (
name = ' NosingProdu ct' ,
name = ' Proje ct' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 ) ) ,
( ' legacy_id ' , models . IntegerField ( blank = True , null = True ) ) ,
( ' number ' , models . IntegerField ( unique = True ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' description ' , models . TextField ( blank = True , null = True ) ) ,
( ' link ' , models . CharField ( max_length = 255 ) ) ,
( ' status ' , models . CharField ( choices = [ ( ' Awarded ' , ' Awarded ' ) , ( ' Ongoing ' , ' Ongoing ' ) , ( ' Complete ' , ' Complete ' ) , ( ' On Hold ' , ' On Hold ' ) , ( ' Canceled ' , ' Canceled ' ) ] , max_length = 255 , null = True ) ) ,
( ' award_date ' , models . DateField ( blank = True , null = True ) ) ,
( ' complete_date ' , models . DateField ( blank = True , null = True ) ) ,
( ' bid_number ' , models . CharField ( blank = True , max_length = 255 , null = True ) ) ,
( ' contract_amount ' , models . DecimalField ( blank = True , decimal_places = 2 , max_digits = 15 , null = True ) ) ,
( ' actual_amount ' , models . DecimalField ( blank = True , decimal_places = 2 , max_digits = 15 , null = True , verbose_name = ' closeout amount ' ) ) ,
( ' client_job_number ' , models . CharField ( blank = True , max_length = 255 , null = True ) ) ,
( ' client_contract_no ' , models . CharField ( blank = True , max_length = 255 , null = True , verbose_name = ' client contract number ' ) ) ,
( ' building_code ' , models . CharField ( blank = True , max_length = 255 , null = True ) ) ,
( ' notes ' , models . TextField ( blank = True , null = True ) ) ,
( ' address ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , to = ' core.location ' ) ) ,
( ' architect ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' architect_projects ' , to = ' core.company ' ) ) ,
] ,
options = {
' ordering ' : [ ' sort_order ' , ' name ' ] ,
' abstract ' : False ,
' ordering ' : [ ' -number ' ] ,
} ,
bases = ( wagtail . search . index . Indexed , models . Model ) ,
) ,
migrations . CreateModel (
name = ' ProjectCategory ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' legacy_id ' , models . IntegerField ( ) ) ,
( ' description ' , models . CharField ( max_length = 255 ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 , help_text = ' Lower numbers sort earlier ' ) ) ,
( ' legacy_id ' , models . IntegerField ( blank = True , null = True ) ) ,
] ,
options = {
' verbose_name_plural ' : ' project categories ' ,
' ordering ' : [ ' description ' ] ,
' ordering ' : [ ' sort_order ' , ' name ' ] ,
' abstract ' : False ,
} ,
) ,
migrations . CreateModel (
@ -136,8 +150,8 @@ class Migration(migrations.Migration):
name = ' RailProduct ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 , help_text = ' Lower numbers sort earlier ' ) ) ,
( ' description ' , models . TextField ( blank = True , null = True ) ) ,
] ,
options = {
@ -149,8 +163,8 @@ class Migration(migrations.Migration):
name = ' StairProduct ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 , help_text = ' Lower numbers sort earlier ' ) ) ,
( ' description ' , models . TextField ( blank = True , null = True ) ) ,
] ,
options = {
@ -158,54 +172,88 @@ class Migration(migrations.Migration):
' abstract ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' StringerMaterial ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
] ,
) ,
migrations . CreateModel (
name = ' StringerSize ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' material' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' sizes ' , to = ' core.stringermaterial ' ) ) ,
( ' sort_order ' , models . IntegerField ( default = 0 , help_text = ' Lower numbers sort earlier ' ) ) ,
] ,
options = {
' ordering ' : [ ' sort_order ' , ' name ' ] ,
' abstract ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' Project ' ,
name = ' Scope ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False , verbose_name = ' ID ' ) ) ,
( ' legacy_id ' , models . IntegerField ( blank = True , null = True ) ) ,
( ' number ' , models . IntegerField ( unique = True ) ) ,
( ' name ' , models . CharField ( max_length = 255 ) ) ,
( ' status ' , models . CharField ( choices = [ ( ' Awarded ' , ' Awarded ' ) , ( ' Ongoing ' , ' Ongoing ' ) , ( ' Complete ' , ' Complete ' ) , ( ' On Hold ' , ' On Hold ' ) , ( ' Canceled ' , ' Canceled ' ) ] , max_length = 255 , null = True ) ) ,
( ' award_date ' , models . DateField ( blank = True , null = True ) ) ,
( ' complete_date ' , models . DateField ( blank = True , null = True ) ) ,
( ' bid_number ' , models . CharField ( blank = True , max_length = 255 , null = True ) ) ,
( ' contract_amount ' , models . DecimalField ( blank = True , decimal_places = 2 , max_digits = 15 , null = True ) ) ,
( ' actual_amount ' , models . DecimalField ( blank = True , decimal_places = 2 , max_digits = 15 , null = True , verbose_name = ' closeout amount ' ) ) ,
( ' client_job_number ' , models . CharField ( blank = True , max_length = 255 , null = True ) ) ,
( ' client_contract_no ' , models . CharField ( blank = True , max_length = 255 , null = True , verbose_name = ' client contract number ' ) ) ,
( ' building_code ' , models . CharField ( blank = True , max_length = 255 , null = True ) ) ,
( ' sort_order ' , models . IntegerField ( blank = True , editable = False , null = True ) ) ,
( ' name ' , models . CharField ( help_text = ' e.g. " Stair 1 " or " Machine Room Stair " ' , max_length = 255 ) ) ,
( ' alt_name ' , models . CharField ( blank = True , help_text = ' Stair name in client documents, if different ' , max_length = 255 , null = True ) ) ,
( ' grid ' , models . CharField ( blank = True , max_length = 16 , null = True ) ) ,
( ' levels ' , models . CharField ( blank = True , max_length = 64 , null = True ) ) ,
( ' notes ' , models . TextField ( blank = True , null = True ) ) ,
( ' address ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , to = ' core.location ' ) ) ,
( ' architect ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' architect_projects ' , to = ' core.company ' ) ) ,
( ' categories ' , models . ManyToManyField ( to = ' core.projectcategory ' ) ) ,
( ' client ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' client_projects ' , to = ' core.company ' ) ) ,
( ' engineer ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' engineer_projects ' , to = ' core.company ' , verbose_name = ' engineer of record ' ) ) ,
( ' general_contractor ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' contractor_projects ' , to = ' core.company ' ) ) ,
( ' lender ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' lender_projects ' , to = ' core.company ' ) ) ,
( ' mail_address ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' mail_address ' , to = ' core.location ' ) ) ,
( ' owner ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' owner_projects ' , to = ' core.company ' ) ) ,
( ' project_manager ' , models . ForeignKey ( blank = True , limit_choices_to = { ' groups__name__in ' : [ ' staff project manager ' ] } , null = True , on_delete = django . db . models . deletion . SET_NULL , to = settings . AUTH_USER_MODEL ) ) ,
( ' ship_address ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' ship_address ' , to = ' core.location ' ) ) ,
( ' flight_count ' , models . IntegerField ( default = 0 ) ) ,
( ' mid_landing_count ' , models . IntegerField ( default = 0 ) ) ,
( ' floor_landing_count ' , models . IntegerField ( default = 0 ) ) ,
( ' finishes ' , modelcluster . fields . ParentalManyToManyField ( blank = True , to = ' core.finish ' ) ) ,
( ' land_prods ' , modelcluster . fields . ParentalManyToManyField ( blank = True , to = ' core.landingproduct ' , verbose_name = ' landing products ' ) ) ,
( ' misc_prods ' , modelcluster . fields . ParentalManyToManyField ( blank = True , to = ' core.miscproduct ' , verbose_name = ' misc products ' ) ) ,
( ' project ' , modelcluster . fields . ParentalKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' scopes ' , to = ' core.project ' ) ) ,
( ' rail_prods ' , modelcluster . fields . ParentalManyToManyField ( blank = True , to = ' core.railproduct ' , verbose_name = ' rail products ' ) ) ,
( ' stair_prods ' , modelcluster . fields . ParentalManyToManyField ( blank = True , to = ' core.stairproduct ' , verbose_name = ' stair products ' ) ) ,
( ' stringer_sizes ' , modelcluster . fields . ParentalManyToManyField ( blank = True , to = ' core.stringersize ' ) ) ,
] ,
options = {
' ordering ' : [ ' -number ' ] ,
' ordering ' : [ ' sort_order ' ] ,
' abstract ' : False ,
} ,
bases = ( wagtail . search . index . Indexed , models . Model ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' categories ' ,
field = models . ManyToManyField ( to = ' core.projectcategory ' ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' client ' ,
field = models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' client_projects ' , to = ' core.company ' ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' engineer ' ,
field = models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' engineer_projects ' , to = ' core.company ' , verbose_name = ' engineer of record ' ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' general_contractor ' ,
field = models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' contractor_projects ' , to = ' core.company ' ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' lender ' ,
field = models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' lender_projects ' , to = ' core.company ' ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' mail_address ' ,
field = models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' mail_address ' , to = ' core.location ' ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' owner ' ,
field = models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' owner_projects ' , to = ' core.company ' ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' project_manager ' ,
field = models . ForeignKey ( blank = True , limit_choices_to = { ' groups__name__in ' : [ ' staff project manager ' ] } , null = True , on_delete = django . db . models . deletion . SET_NULL , to = settings . AUTH_USER_MODEL ) ,
) ,
migrations . AddField (
model_name = ' project ' ,
name = ' ship_address ' ,
field = models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' ship_address ' , to = ' core.location ' ) ,
) ,
migrations . CreateModel (
name = ' LandingPageImage ' ,