parent
cd3e3d39cc
commit
737299c719
@ -0,0 +1,13 @@
|
||||
FROM python:3.11.6-slim-bookworm
|
||||
RUN useradd dwgstatus
|
||||
EXPOSE 8000
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PORT=8000
|
||||
RUN pip install "gunicorn"
|
||||
COPY requirements.txt /
|
||||
RUN pip install -r /requirements.txt
|
||||
WORKDIR /app
|
||||
RUN chown dwgstatus:dwgstatus /app
|
||||
COPY --chown=dwgstatus:dwgstatus . .
|
||||
USER dwgstatus
|
||||
CMD set -xe; gunicorn --reload dwgstatus.wsgi:application
|
@ -0,0 +1,23 @@
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
volumes:
|
||||
- .:/app
|
||||
depends_on:
|
||||
- db
|
||||
restart: always
|
||||
db:
|
||||
image: "postgres"
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_PASSWORD: postpass
|
||||
nginx:
|
||||
image: "nginx"
|
||||
restart: always
|
||||
ports:
|
||||
- 8000:80
|
||||
volumes:
|
||||
- ./nginx:/etc/nginx/conf.d
|
||||
- ./static:/static
|
||||
depends_on:
|
||||
- web
|
@ -1,616 +1,234 @@
|
||||
# Generated by Django 4.1.4 on 2023-03-14 17:16
|
||||
# Generated by Django 4.2.4 on 2024-01-10 15:28
|
||||
|
||||
import django.contrib.auth.models
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.db.models.manager
|
||||
import phonenumber_field.modelfields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = []
|
||||
dependencies = [
|
||||
('auth', '0012_alter_user_first_name_max_length'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Address",
|
||||
name='Address',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(default="Jobsite", max_length=100)),
|
||||
("street_address", models.CharField(max_length=100)),
|
||||
("street_address2", models.CharField(blank=True, max_length=100)),
|
||||
("city", models.CharField(max_length=100)),
|
||||
(
|
||||
"state",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("AL", "Alabama"),
|
||||
("AK", "Alaska"),
|
||||
("AS", "American Samoa"),
|
||||
("AZ", "Arizona"),
|
||||
("AR", "Arkansas"),
|
||||
("AA", "Armed Forces Americas"),
|
||||
("AE", "Armed Forces Europe"),
|
||||
("AP", "Armed Forces Pacific"),
|
||||
("CA", "California"),
|
||||
("CO", "Colorado"),
|
||||
("CT", "Connecticut"),
|
||||
("DE", "Delaware"),
|
||||
("DC", "District of Columbia"),
|
||||
("FL", "Florida"),
|
||||
("GA", "Georgia"),
|
||||
("GU", "Guam"),
|
||||
("HI", "Hawaii"),
|
||||
("ID", "Idaho"),
|
||||
("IL", "Illinois"),
|
||||
("IN", "Indiana"),
|
||||
("IA", "Iowa"),
|
||||
("KS", "Kansas"),
|
||||
("KY", "Kentucky"),
|
||||
("LA", "Louisiana"),
|
||||
("ME", "Maine"),
|
||||
("MD", "Maryland"),
|
||||
("MA", "Massachusetts"),
|
||||
("MI", "Michigan"),
|
||||
("MN", "Minnesota"),
|
||||
("MS", "Mississippi"),
|
||||
("MO", "Missouri"),
|
||||
("MT", "Montana"),
|
||||
("NE", "Nebraska"),
|
||||
("NV", "Nevada"),
|
||||
("NH", "New Hampshire"),
|
||||
("NJ", "New Jersey"),
|
||||
("NM", "New Mexico"),
|
||||
("NY", "New York"),
|
||||
("NC", "North Carolina"),
|
||||
("ND", "North Dakota"),
|
||||
("MP", "Northern Mariana Islands"),
|
||||
("OH", "Ohio"),
|
||||
("OK", "Oklahoma"),
|
||||
("OR", "Oregon"),
|
||||
("PA", "Pennsylvania"),
|
||||
("PR", "Puerto Rico"),
|
||||
("RI", "Rhode Island"),
|
||||
("SC", "South Carolina"),
|
||||
("SD", "South Dakota"),
|
||||
("TN", "Tennessee"),
|
||||
("TX", "Texas"),
|
||||
("UT", "Utah"),
|
||||
("VT", "Vermont"),
|
||||
("VI", "Virgin Islands"),
|
||||
("VA", "Virginia"),
|
||||
("WA", "Washington"),
|
||||
("WV", "West Virginia"),
|
||||
("WI", "Wisconsin"),
|
||||
("WY", "Wyoming"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
("zip_code", models.CharField(max_length=5)),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(default='Jobsite', max_length=100)),
|
||||
('street_address', models.CharField(max_length=100)),
|
||||
('city', models.CharField(max_length=100)),
|
||||
('state', models.CharField(choices=[('AK', 'Alaska'), ('AL', 'Alabama'), ('AR', 'Arkansas'), ('AZ', 'Arizona'), ('CA', 'California'), ('CO', 'Colorado'), ('CT', 'Connecticut'), ('DC', 'District of Columbia'), ('DE', 'Delaware'), ('FL', 'Florida'), ('GA', 'Georgia'), ('HI', 'Hawaii'), ('IA', 'Iowa'), ('ID', 'Idaho'), ('IL', 'Illinois'), ('IN', 'Indiana'), ('KS', 'Kansas'), ('KY', 'Kentucky'), ('LA', 'Louisiana'), ('MA', 'Massachusetts'), ('MD', 'Maryland'), ('ME', 'Maine'), ('MI', 'Michigan'), ('MN', 'Minnesota'), ('MO', 'Missouri'), ('MS', 'Mississippi'), ('MT', 'Montana'), ('NC', 'North Carolina'), ('ND', 'North Dakota'), ('NE', 'Nebraska'), ('NH', 'New Hampshire'), ('NJ', 'New Jersey'), ('NM', 'New Mexico'), ('NV', 'Nevada'), ('NY', 'New York'), ('OH', 'Ohio'), ('OK', 'Oklahoma'), ('OR', 'Oregon'), ('PA', 'Pennsylvania'), ('RI', 'Rhode Island'), ('SC', 'South Carolina'), ('SD', 'South Dakota'), ('TN', 'Tennessee'), ('TX', 'Texas'), ('UT', 'Utah'), ('VA', 'Virginia'), ('VT', 'Vermont'), ('WA', 'Washington'), ('WI', 'Wisconsin'), ('WV', 'West Virginia'), ('WY', 'Wyoming')], max_length=2)),
|
||||
('zip_code', models.CharField(max_length=5)),
|
||||
],
|
||||
options={
|
||||
"verbose_name_plural": "addresses",
|
||||
"ordering": ["state", "zip_code", "street_address", "street_address2"],
|
||||
"unique_together": {
|
||||
("street_address", "street_address2", "city", "state", "zip_code")
|
||||
},
|
||||
'verbose_name_plural': 'addresses',
|
||||
'ordering': ['state', 'zip_code', 'street_address'],
|
||||
'unique_together': {('street_address', 'city', 'state', 'zip_code')},
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Company",
|
||||
name='Company',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=100)),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=100)),
|
||||
],
|
||||
options={
|
||||
"verbose_name_plural": "companies",
|
||||
"ordering": ["name"],
|
||||
'verbose_name_plural': 'companies',
|
||||
'ordering': ['name'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Contact",
|
||||
name='Contact',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=100)),
|
||||
("email", models.EmailField(blank=True, max_length=254)),
|
||||
(
|
||||
"company",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.PROTECT, to="jobs.company"
|
||||
),
|
||||
),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('email', models.EmailField(blank=True, max_length=254)),
|
||||
('phone', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, null=True, region=None)),
|
||||
('job_title', models.CharField(blank=True, max_length=200, null=True)),
|
||||
('company', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='jobs.company')),
|
||||
],
|
||||
options={
|
||||
"ordering": ["name"],
|
||||
"abstract": False,
|
||||
'ordering': ['name'],
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Detailer",
|
||||
name='Job',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=100)),
|
||||
("email", models.EmailField(blank=True, max_length=254)),
|
||||
('number', models.IntegerField(primary_key=True, serialize=False)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('award_date', models.DateField()),
|
||||
('modeling', models.BooleanField(default=False, verbose_name='3D modeling included')),
|
||||
('model_upload', models.CharField(blank=True, max_length=200, verbose_name='3D model upload link')),
|
||||
('archived', models.BooleanField(default=False)),
|
||||
('addresses', models.ManyToManyField(blank=True, to='jobs.address')),
|
||||
('architect', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='architect_jobs', to='jobs.company')),
|
||||
('contacts', models.ManyToManyField(blank=True, to='jobs.contact')),
|
||||
('contractor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='contractor_jobs', to='jobs.company')),
|
||||
('customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='customer_jobs', to='jobs.company')),
|
||||
('engineers', models.ManyToManyField(blank=True, related_name='engineer_jobs', to='jobs.company')),
|
||||
('eor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='eor_jobs', to='jobs.company', verbose_name='engineer of record')),
|
||||
('installers', models.ManyToManyField(blank=True, related_name='installer_jobs', to='jobs.company')),
|
||||
],
|
||||
options={
|
||||
"ordering": ["name"],
|
||||
"abstract": False,
|
||||
'ordering': ['-number'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Job",
|
||||
name='ProjectManager',
|
||||
fields=[
|
||||
("number", models.IntegerField(primary_key=True, serialize=False)),
|
||||
("name", models.CharField(max_length=100)),
|
||||
("award_date", models.DateField()),
|
||||
("modeling", models.BooleanField(verbose_name="3D modeling included")),
|
||||
(
|
||||
"model_upload",
|
||||
models.CharField(
|
||||
blank=True, max_length=200, verbose_name="3D model upload link"
|
||||
),
|
||||
),
|
||||
("addresses", models.ManyToManyField(blank=True, to="jobs.address")),
|
||||
(
|
||||
"architect",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
related_name="architect_jobs",
|
||||
to="jobs.company",
|
||||
),
|
||||
),
|
||||
("contacts", models.ManyToManyField(blank=True, to="jobs.contact")),
|
||||
(
|
||||
"contractor",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
related_name="contractor_jobs",
|
||||
to="jobs.company",
|
||||
),
|
||||
),
|
||||
(
|
||||
"customer",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
related_name="customer_jobs",
|
||||
to="jobs.company",
|
||||
),
|
||||
),
|
||||
(
|
||||
"engineers",
|
||||
models.ManyToManyField(
|
||||
blank=True, related_name="engineer_jobs", to="jobs.company"
|
||||
),
|
||||
),
|
||||
(
|
||||
"eor",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
related_name="eor_jobs",
|
||||
to="jobs.company",
|
||||
verbose_name="engineer of record",
|
||||
),
|
||||
),
|
||||
(
|
||||
"fab_detailers",
|
||||
models.ManyToManyField(
|
||||
blank=True, related_name="fab_jobs", to="jobs.detailer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"installers",
|
||||
models.ManyToManyField(
|
||||
blank=True, related_name="installer_jobs", to="jobs.company"
|
||||
),
|
||||
),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('email', models.EmailField(blank=True, max_length=254)),
|
||||
],
|
||||
options={
|
||||
"ordering": ["number"],
|
||||
'ordering': ['name'],
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="ProjectManager",
|
||||
name='Stair',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=100)),
|
||||
("email", models.EmailField(blank=True, max_length=254)),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('alt_name', models.CharField(blank=True, max_length=100, null=True)),
|
||||
('grid', models.CharField(blank=True, max_length=100)),
|
||||
('levels', models.CharField(blank=True, max_length=100)),
|
||||
('flights', models.IntegerField(default=0)),
|
||||
('stringer_type', models.CharField(choices=[('C', 'C Channel'), ('MC', 'MC Channel'), ('PL', 'Plate'), ('CU', 'Custom')], default='PL', max_length=2)),
|
||||
('stringer_custom', models.CharField(blank=True, max_length=50)),
|
||||
('stair_con', models.CharField(choices=[('PF', 'Pan-filled'), ('CP', 'Checker'), ('PC', 'Precast'), ('GT', 'Grating'), ('CU', 'Custom'), ('BO', 'By other')], default='PF', max_length=2, verbose_name='stair construction')),
|
||||
('stair_con_custom', models.CharField(blank=True, max_length=50, verbose_name='custom stair construction')),
|
||||
('stair_qt', models.BooleanField(default=False, verbose_name='stair quiet tread')),
|
||||
('landings', models.IntegerField(default=0)),
|
||||
('land_con', models.CharField(choices=[('PF', 'Pan-filled'), ('CP', 'Checker'), ('PC', 'Precast'), ('GT', 'Grating'), ('CU', 'Custom'), ('BO', 'By other')], default='PF', max_length=2, verbose_name='landing construction')),
|
||||
('land_con_custom', models.CharField(blank=True, max_length=50, verbose_name='custom landing construction')),
|
||||
('land_qt', models.BooleanField(default=False, verbose_name='landing quiet tread')),
|
||||
('rail_type', models.CharField(choices=[('1', '100 Pipe'), ('2', '200 Pipe'), ('3', '300 Rec Tube'), ('4', '400 Picket'), ('5', '500 Mesh'), ('6', '600 Cable'), ('7', '700 Rod'), ('8', '800 Glass'), ('W', 'Wall rail only'), ('C', 'Custom'), ('B', 'By other')], default='2', max_length=1)),
|
||||
('rail_type_custom', models.CharField(blank=True, max_length=50)),
|
||||
('stn', models.CharField(blank=True, max_length=50, verbose_name='STN')),
|
||||
('stn_note', models.CharField(blank=True, max_length=200, null=True, verbose_name='STN note')),
|
||||
('finish', models.CharField(choices=[('rodda red oxide', 'Rodda Red Oxide'), ('rodda black', 'Rodda Black'), ('rodda grey', 'Rodda Grey'), ('rodda high solids red oxide', 'Rodda High Solids Red Oxide'), ('rodda high solids black', 'Rodda High Solids Black'), ('rodda high solids grey', 'Rodda High Solids Grey'), ('galvanized', 'Galvanized'), ('custom', 'Custom')], default='rodda red oxide', max_length=50)),
|
||||
('finish_custom', models.CharField(blank=True, max_length=50)),
|
||||
('stair_fabs', models.DateField(blank=True, help_text='N/A when 0 flights or flights B/O', null=True, verbose_name='stair fabs done')),
|
||||
('land_fabs', models.DateField(blank=True, help_text='N/A when 0 lands or lands B/O', null=True, verbose_name='land fabs done')),
|
||||
('rail_fabs', models.DateField(blank=True, help_text='N/A when rails B/O', null=True, verbose_name='rail fabs done')),
|
||||
('stairs_shop', models.DateField(blank=True, help_text='N/A when 0 flights or flights B/O', null=True, verbose_name='stairs to shop')),
|
||||
('lands_shop', models.DateField(blank=True, help_text='N/A when 0 lands or lands B/O', null=True, verbose_name='lands to shop')),
|
||||
('rails_shop', models.DateField(blank=True, help_text='N/A when rails B/O', null=True, verbose_name='rails to shop')),
|
||||
('embeds_shop', models.DateField(blank=True, null=True, verbose_name='embeds to shop')),
|
||||
('embeds_na', models.BooleanField(default=False, verbose_name='Embeds not applicable')),
|
||||
('on_hold', models.BooleanField(default=False)),
|
||||
('on_hold_note', models.CharField(blank=True, max_length=200, null=True)),
|
||||
],
|
||||
options={
|
||||
"ordering": ["name"],
|
||||
"abstract": False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Submittal",
|
||||
name='Transmittal',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("number", models.IntegerField()),
|
||||
(
|
||||
"job",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.job"
|
||||
),
|
||||
),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('description', models.CharField(max_length=200)),
|
||||
('to_engr', models.DateField(verbose_name='sent to engineer')),
|
||||
('due_from_engr', models.DateField(blank=True, null=True, verbose_name='due from engineer')),
|
||||
('rec_from_engr', models.DateField(blank=True, null=True, verbose_name='received from engineer')),
|
||||
('submitted', models.DateField(blank=True, null=True, verbose_name='submitted')),
|
||||
('rec_from_cust', models.DateField(blank=True, null=True, verbose_name='received from customer')),
|
||||
('response', models.CharField(blank=True, choices=[('NC', 'Approved'), ('AN', 'Approved as noted'), ('RR', 'Revise and resubmit'), ('U', 'Update')], max_length=2)),
|
||||
('for_record', models.BooleanField(default=False)),
|
||||
('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.job')),
|
||||
('stairs', models.ManyToManyField(to='jobs.stair')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="PhoneNumber",
|
||||
name='Detailer',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(default="Main", max_length=100)),
|
||||
("number", models.CharField(max_length=25)),
|
||||
(
|
||||
"owner",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.contact"
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
'ordering': ['first_name'],
|
||||
'proxy': True,
|
||||
'indexes': [],
|
||||
'constraints': [],
|
||||
},
|
||||
bases=('auth.user',),
|
||||
managers=[
|
||||
('objects', django.contrib.auth.models.UserManager()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="JobNote",
|
||||
name='TransmittalOverride',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("date", models.DateTimeField(auto_now=True)),
|
||||
("note", models.TextField(max_length=1000)),
|
||||
(
|
||||
"job",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.job"
|
||||
),
|
||||
),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('response', models.CharField(choices=[('NC', 'Approved'), ('AN', 'Approved as noted'), ('RR', 'Revise and resubmit'), ('U', 'Update')], max_length=2)),
|
||||
('stairs', models.ManyToManyField(to='jobs.stair')),
|
||||
('transmittal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.transmittal')),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="job",
|
||||
name="project_manager",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
to="jobs.projectmanager",
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Task',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('description', models.CharField(blank=True, max_length=100, null=True)),
|
||||
('stage', models.CharField(choices=[('SUB', 'Submittal'), ('FAB', 'Fab')], max_length=3)),
|
||||
('due', models.DateField(blank=True, null=True)),
|
||||
('done', models.BooleanField(default=False)),
|
||||
('detailer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='jobs.detailer')),
|
||||
('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.job')),
|
||||
('stairs', models.ManyToManyField(to='jobs.stair')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['done', 'due', '-id'],
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="job",
|
||||
name="sub_detailers",
|
||||
field=models.ManyToManyField(
|
||||
blank=True, related_name="sub_jobs", to="jobs.detailer"
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Submittal',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('number', models.IntegerField(default=1)),
|
||||
('name', models.CharField(blank=True, max_length=100, null=True)),
|
||||
('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.job')),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="job",
|
||||
name="archived",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="job",
|
||||
options={"ordering": ["-number"]},
|
||||
model_name='stair',
|
||||
name='submittal',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.submittal'),
|
||||
),
|
||||
migrations.AlterModelManagers(
|
||||
name="job",
|
||||
managers=[
|
||||
("current", django.db.models.manager.Manager()),
|
||||
migrations.CreateModel(
|
||||
name='JobNote',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('date', models.DateTimeField(auto_now=True)),
|
||||
('note', models.TextField(max_length=1000)),
|
||||
('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.job')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="SubRevision",
|
||||
name='JobDate',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("number", models.PositiveIntegerField()),
|
||||
(
|
||||
"to_engr",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="sent to engineer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"due_from_engr",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="due from engineer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"rec_from_engr",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="received from engineer"
|
||||
),
|
||||
),
|
||||
("submitted", models.DateField(blank=True, null=True)),
|
||||
(
|
||||
"rec_from_cust",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="received from customer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"status",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("NS", "Not started"),
|
||||
("IP", "In progress"),
|
||||
("SU", "Submitted"),
|
||||
("RT", "Returned"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"response",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
choices=[
|
||||
("NC", "Approved"),
|
||||
("AN", "Approved as noted"),
|
||||
("RR", "Revise and resubmit"),
|
||||
("U", "Update"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"sub",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.PROTECT, to="jobs.submittal"
|
||||
),
|
||||
),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('date', models.DateField()),
|
||||
('description', models.CharField(max_length=200)),
|
||||
('note', models.CharField(blank=True, max_length=200, null=True)),
|
||||
('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.job')),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='job',
|
||||
name='project_manager',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='jobs.projectmanager'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Stair",
|
||||
name='Construction',
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=100)),
|
||||
("grid", models.CharField(blank=True, max_length=100)),
|
||||
("levels", models.CharField(max_length=100)),
|
||||
("flights", models.IntegerField()),
|
||||
(
|
||||
"stringer_type",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("C", "C Channel"),
|
||||
("MC", "MC Channel"),
|
||||
("PL", "Plate"),
|
||||
("CU", "Custom"),
|
||||
],
|
||||
default="PL",
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
("stringer_custom", models.CharField(blank=True, max_length=50)),
|
||||
(
|
||||
"stair_con",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("PF", "Pan-filled"),
|
||||
("CP", "Checker"),
|
||||
("PC", "Precast"),
|
||||
("GT", "Grating"),
|
||||
("CU", "Custom"),
|
||||
("BO", "By other"),
|
||||
],
|
||||
default="PF",
|
||||
max_length=2,
|
||||
verbose_name="stair construction",
|
||||
),
|
||||
),
|
||||
(
|
||||
"stair_con_custom",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
max_length=50,
|
||||
verbose_name="custom stair construction",
|
||||
),
|
||||
),
|
||||
("stair_qt", models.BooleanField(verbose_name="stair quiet tread")),
|
||||
("landings", models.IntegerField()),
|
||||
(
|
||||
"land_con",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("PF", "Pan-filled"),
|
||||
("CP", "Checker"),
|
||||
("PC", "Precast"),
|
||||
("GT", "Grating"),
|
||||
("CU", "Custom"),
|
||||
("BO", "By other"),
|
||||
],
|
||||
default="PF",
|
||||
max_length=2,
|
||||
verbose_name="landing construction",
|
||||
),
|
||||
),
|
||||
(
|
||||
"land_con_custom",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
max_length=50,
|
||||
verbose_name="custom landing construction",
|
||||
),
|
||||
),
|
||||
("land_qt", models.BooleanField(verbose_name="landing quiet tread")),
|
||||
(
|
||||
"rail_type",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("1", "100 Pipe"),
|
||||
("2", "200 Pipe"),
|
||||
("3", "300 Rec Tube"),
|
||||
("4", "400 Picket"),
|
||||
("5", "500 Mesh"),
|
||||
("6", "600 Cable"),
|
||||
("7", "700 Rod"),
|
||||
("8", "800 Glass"),
|
||||
("C", "Custom"),
|
||||
("B", "By other"),
|
||||
],
|
||||
default="2",
|
||||
max_length=1,
|
||||
),
|
||||
),
|
||||
("rail_type_custom", models.CharField(blank=True, max_length=50)),
|
||||
(
|
||||
"stn",
|
||||
models.CharField(blank=True, max_length=50, verbose_name="STN"),
|
||||
),
|
||||
(
|
||||
"submittal",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.submittal"
|
||||
),
|
||||
),
|
||||
(
|
||||
"finish",
|
||||
models.IntegerField(
|
||||
choices=[
|
||||
(1, "Rodda Red Oxide"),
|
||||
(2, "Rodda Black"),
|
||||
(3, "Rodda Grey"),
|
||||
(4, "Rodda High Solids Red Oxide"),
|
||||
(5, "Rodda High Solids Black"),
|
||||
(6, "Rodda High Solids Grey"),
|
||||
(7, "Galvanized"),
|
||||
(8, "Custom"),
|
||||
],
|
||||
default=1,
|
||||
),
|
||||
),
|
||||
("finish_custom", models.CharField(blank=True, max_length=50)),
|
||||
(
|
||||
"embeds_shop",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="embeds to shop"
|
||||
),
|
||||
),
|
||||
(
|
||||
"land_fabs",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="land fabs done"
|
||||
),
|
||||
),
|
||||
(
|
||||
"lands_shop",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="lands to shop"
|
||||
),
|
||||
),
|
||||
(
|
||||
"rail_fabs",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="rail fabs done"
|
||||
),
|
||||
),
|
||||
(
|
||||
"rails_shop",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="rails to shop"
|
||||
),
|
||||
),
|
||||
(
|
||||
"stair_fabs",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="stair fabs done"
|
||||
),
|
||||
),
|
||||
(
|
||||
"stairs_shop",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="stairs to shop"
|
||||
),
|
||||
),
|
||||
(
|
||||
"for_const",
|
||||
models.DateField(blank=True, null=True, verbose_name="to customer"),
|
||||
),
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('style', models.CharField(choices=[('concrete', 'Concrete'), ('steel', 'Steel'), ('wood', 'Wood'), ('custom', 'Custom')], max_length=20)),
|
||||
('style_custom', models.CharField(blank=True, max_length=100, null=True)),
|
||||
('scope', models.CharField(blank=True, max_length=100, null=True)),
|
||||
('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobs.job')),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
@ -1,83 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-18 17:06
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelManagers(
|
||||
name="job",
|
||||
managers=[],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="due_from_engr",
|
||||
field=models.DateField(
|
||||
blank=True, null=True, verbose_name="due from engineer"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="rec_from_cust",
|
||||
field=models.DateField(
|
||||
blank=True, null=True, verbose_name="received from customer"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="rec_from_engr",
|
||||
field=models.DateField(
|
||||
blank=True, null=True, verbose_name="received from engineer"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="response",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
choices=[
|
||||
("NC", "Approved"),
|
||||
("AN", "Approved as noted"),
|
||||
("RR", "Revise and resubmit"),
|
||||
("U", "Update"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="status",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("NS", "Not started"),
|
||||
("IP", "In progress"),
|
||||
("EN", "At engineering"),
|
||||
("SU", "Submitted"),
|
||||
("RT", "Returned"),
|
||||
],
|
||||
default="NS",
|
||||
max_length=2,
|
||||
),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="submitted",
|
||||
field=models.DateField(blank=True, null=True, verbose_name="submitted"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="to_engr",
|
||||
field=models.DateField(
|
||||
blank=True, null=True, verbose_name="sent to engineer"
|
||||
),
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name="SubRevision",
|
||||
),
|
||||
]
|
@ -1,104 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-21 23:08
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0002_alter_job_managers_stair_due_from_engr_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="due_from_engr",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="rec_from_cust",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="rec_from_engr",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="response",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="submitted",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="to_engr",
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Transmittal",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"description",
|
||||
models.CharField(blank=True, max_length=250, null=True),
|
||||
),
|
||||
(
|
||||
"to_engr",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="sent to engineer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"due_from_engr",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="due from engineer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"rec_from_engr",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="received from engineer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"submitted",
|
||||
models.DateField(blank=True, null=True, verbose_name="submitted"),
|
||||
),
|
||||
(
|
||||
"rec_from_cust",
|
||||
models.DateField(
|
||||
blank=True, null=True, verbose_name="received from customer"
|
||||
),
|
||||
),
|
||||
(
|
||||
"response",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
choices=[
|
||||
("NC", "Approved"),
|
||||
("AN", "Approved as noted"),
|
||||
("RR", "Revise and resubmit"),
|
||||
("U", "Update"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"job",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.job"
|
||||
),
|
||||
),
|
||||
("stairs", models.ManyToManyField(to="jobs.stair")),
|
||||
],
|
||||
),
|
||||
]
|
@ -1,21 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-22 17:49
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0003_remove_stair_due_from_engr_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="for_const",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="transmittal",
|
||||
name="description",
|
||||
),
|
||||
]
|
@ -1,48 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-22 18:21
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0004_remove_stair_for_const_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="TransmittalOverride",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"response",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("NC", "Approved"),
|
||||
("AN", "Approved as noted"),
|
||||
("RR", "Revise and resubmit"),
|
||||
("U", "Update"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
("stairs", models.ManyToManyField(to="jobs.stair")),
|
||||
(
|
||||
"transmittal",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="jobs.transmittal",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
]
|
@ -1,36 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-22 21:44
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0005_transmittaloverride"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="JobDate",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("date", models.DateField()),
|
||||
("desc", models.CharField(max_length=200)),
|
||||
(
|
||||
"job",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.job"
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
]
|
@ -1,22 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-22 22:36
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0006_jobdate"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="transmittal",
|
||||
name="due_from_engr",
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="transmittal",
|
||||
name="to_engr",
|
||||
field=models.DateField(verbose_name="sent to engineer"),
|
||||
),
|
||||
]
|
@ -1,103 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-23 18:38
|
||||
|
||||
import django.contrib.auth.models
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("auth", "0012_alter_user_first_name_max_length"),
|
||||
("jobs", "0007_remove_transmittal_due_from_engr_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Task",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("done", models.BooleanField()),
|
||||
("notes", models.CharField(blank=True, max_length=100, null=True)),
|
||||
(
|
||||
"stage",
|
||||
models.CharField(
|
||||
choices=[("SUB", "Submittal"), ("FAB", "Fab")], max_length=3
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="phonenumber",
|
||||
name="owner",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="job",
|
||||
name="fab_detailers",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="job",
|
||||
name="sub_detailers",
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="status",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("NS", "Not started"),
|
||||
("IP", "In progress"),
|
||||
("EN", "Engineering"),
|
||||
("SU", "Submitted"),
|
||||
("RT", "Returned"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name="Detailer",
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name="PhoneNumber",
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="job",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.job"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="stairs",
|
||||
field=models.ManyToManyField(to="jobs.stair"),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Detailer",
|
||||
fields=[],
|
||||
options={
|
||||
"ordering": ["first_name"],
|
||||
"proxy": True,
|
||||
"indexes": [],
|
||||
"constraints": [],
|
||||
},
|
||||
bases=("auth.user",),
|
||||
managers=[
|
||||
("objects", django.contrib.auth.models.UserManager()),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="detailer",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.PROTECT, to="jobs.detailer"
|
||||
),
|
||||
),
|
||||
]
|
@ -1,22 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-23 19:56
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0008_task_remove_phonenumber_owner_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="task",
|
||||
options={"ordering": ["-id"]},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="due",
|
||||
field=models.DateField(null=True),
|
||||
),
|
||||
]
|
@ -1,27 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-23 20:00
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0009_alter_task_options_task_due"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="task",
|
||||
options={"ordering": ["due", "-id"]},
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name="task",
|
||||
old_name="notes",
|
||||
new_name="desc",
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="task",
|
||||
name="due",
|
||||
field=models.DateField(blank=True, null=True),
|
||||
),
|
||||
]
|
@ -1,22 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-23 20:09
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0010_alter_task_options_rename_notes_task_desc_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="task",
|
||||
name="done",
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="completed",
|
||||
field=models.DateField(blank=True, null=True),
|
||||
),
|
||||
]
|
@ -1,17 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-23 23:08
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0011_remove_task_done_task_completed"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="task",
|
||||
options={"ordering": ["completed", "due", "-id"]},
|
||||
),
|
||||
]
|
@ -1,36 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-24 15:09
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0012_alter_task_options"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="task",
|
||||
options={"ordering": ["priority", "-id"]},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="task",
|
||||
name="completed",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="task",
|
||||
name="due",
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="done",
|
||||
field=models.BooleanField(default=False),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="priority",
|
||||
field=models.IntegerField(blank=True, null=True),
|
||||
),
|
||||
]
|
@ -1,28 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-24 16:10
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0013_alter_task_options_remove_task_completed_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="address",
|
||||
options={
|
||||
"ordering": ["state", "zip_code", "street_address"],
|
||||
"verbose_name_plural": "addresses",
|
||||
},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name="address",
|
||||
unique_together={("street_address", "city", "state", "zip_code")},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="address",
|
||||
name="street_address2",
|
||||
),
|
||||
]
|
@ -1,24 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-24 21:38
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0014_alter_address_options_alter_address_unique_together_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="on_hold",
|
||||
field=models.BooleanField(default=False),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="on_hold_note",
|
||||
field=models.CharField(blank=True, max_length=200, null=True),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-24 21:54
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0015_stair_on_hold_stair_on_hold_note"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="alt_name",
|
||||
field=models.CharField(blank=True, max_length=100, null=True),
|
||||
),
|
||||
]
|
@ -1,26 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-24 22:56
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0016_stair_alt_name"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="task",
|
||||
options={"ordering": ["-due", "-id"]},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="task",
|
||||
name="priority",
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="task",
|
||||
name="due",
|
||||
field=models.DateField(blank=True, null=True),
|
||||
),
|
||||
]
|
@ -1,38 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-25 02:33
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jobs', '0017_alter_task_options_remove_task_priority_task_due'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='task',
|
||||
options={'ordering': ['done', 'due', '-id']},
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='jobdate',
|
||||
old_name='desc',
|
||||
new_name='description',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='task',
|
||||
old_name='desc',
|
||||
new_name='description',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='transmittal',
|
||||
name='description',
|
||||
field=models.CharField(default='', max_length=200),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='address',
|
||||
name='state',
|
||||
field=models.CharField(choices=[('AK', 'Alaska'), ('AL', 'Alabama'), ('AR', 'Arkansas'), ('AZ', 'Arizona'), ('CA', 'California'), ('CO', 'Colorado'), ('CT', 'Connecticut'), ('DC', 'District of Columbia'), ('DE', 'Delaware'), ('FL', 'Florida'), ('GA', 'Georgia'), ('HI', 'Hawaii'), ('IA', 'Iowa'), ('ID', 'Idaho'), ('IL', 'Illinois'), ('IN', 'Indiana'), ('KS', 'Kansas'), ('KY', 'Kentucky'), ('LA', 'Louisiana'), ('MA', 'Massachusetts'), ('MD', 'Maryland'), ('ME', 'Maine'), ('MI', 'Michigan'), ('MN', 'Minnesota'), ('MO', 'Missouri'), ('MS', 'Mississippi'), ('MT', 'Montana'), ('NC', 'North Carolina'), ('ND', 'North Dakota'), ('NE', 'Nebraska'), ('NH', 'New Hampshire'), ('NJ', 'New Jersey'), ('NM', 'New Mexico'), ('NV', 'Nevada'), ('NY', 'New York'), ('OH', 'Ohio'), ('OK', 'Oklahoma'), ('OR', 'Oregon'), ('PA', 'Pennsylvania'), ('RI', 'Rhode Island'), ('SC', 'South Carolina'), ('SD', 'South Dakota'), ('TN', 'Tennessee'), ('TX', 'Texas'), ('UT', 'Utah'), ('VA', 'Virginia'), ('VT', 'Vermont'), ('WA', 'Washington'), ('WI', 'Wisconsin'), ('WV', 'West Virginia'), ('WY', 'Wyoming')], max_length=2),
|
||||
),
|
||||
]
|
@ -1,86 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-25 15:47
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0018_alter_task_options_rename_desc_jobdate_description_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="jobdate",
|
||||
name="note",
|
||||
field=models.CharField(blank=True, max_length=200, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="address",
|
||||
name="state",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("AL", "Alabama"),
|
||||
("AK", "Alaska"),
|
||||
("AS", "American Samoa"),
|
||||
("AZ", "Arizona"),
|
||||
("AR", "Arkansas"),
|
||||
("AA", "Armed Forces Americas"),
|
||||
("AE", "Armed Forces Europe"),
|
||||
("AP", "Armed Forces Pacific"),
|
||||
("CA", "California"),
|
||||
("CO", "Colorado"),
|
||||
("CT", "Connecticut"),
|
||||
("DE", "Delaware"),
|
||||
("DC", "District of Columbia"),
|
||||
("FL", "Florida"),
|
||||
("GA", "Georgia"),
|
||||
("GU", "Guam"),
|
||||
("HI", "Hawaii"),
|
||||
("ID", "Idaho"),
|
||||
("IL", "Illinois"),
|
||||
("IN", "Indiana"),
|
||||
("IA", "Iowa"),
|
||||
("KS", "Kansas"),
|
||||
("KY", "Kentucky"),
|
||||
("LA", "Louisiana"),
|
||||
("ME", "Maine"),
|
||||
("MD", "Maryland"),
|
||||
("MA", "Massachusetts"),
|
||||
("MI", "Michigan"),
|
||||
("MN", "Minnesota"),
|
||||
("MS", "Mississippi"),
|
||||
("MO", "Missouri"),
|
||||
("MT", "Montana"),
|
||||
("NE", "Nebraska"),
|
||||
("NV", "Nevada"),
|
||||
("NH", "New Hampshire"),
|
||||
("NJ", "New Jersey"),
|
||||
("NM", "New Mexico"),
|
||||
("NY", "New York"),
|
||||
("NC", "North Carolina"),
|
||||
("ND", "North Dakota"),
|
||||
("MP", "Northern Mariana Islands"),
|
||||
("OH", "Ohio"),
|
||||
("OK", "Oklahoma"),
|
||||
("OR", "Oregon"),
|
||||
("PA", "Pennsylvania"),
|
||||
("PR", "Puerto Rico"),
|
||||
("RI", "Rhode Island"),
|
||||
("SC", "South Carolina"),
|
||||
("SD", "South Dakota"),
|
||||
("TN", "Tennessee"),
|
||||
("TX", "Texas"),
|
||||
("UT", "Utah"),
|
||||
("VT", "Vermont"),
|
||||
("VI", "Virgin Islands"),
|
||||
("VA", "Virginia"),
|
||||
("WA", "Washington"),
|
||||
("WV", "West Virginia"),
|
||||
("WI", "Wisconsin"),
|
||||
("WY", "Wyoming"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
]
|
@ -1,51 +0,0 @@
|
||||
# Generated by Django 4.1.4 on 2023-08-25 19:24
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0019_jobdate_note_alter_address_state"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Construction",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"style",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("CONC", "Concrete"),
|
||||
("STL", "Steel"),
|
||||
("WOOD", "Wood"),
|
||||
("CU", "Custom"),
|
||||
],
|
||||
max_length=4,
|
||||
),
|
||||
),
|
||||
(
|
||||
"style_custom",
|
||||
models.CharField(blank=True, max_length=100, null=True),
|
||||
),
|
||||
("scope", models.CharField(blank=True, max_length=100, null=True)),
|
||||
(
|
||||
"job",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="jobs.job"
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
]
|
@ -1,73 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-28 18:21
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0020_construction"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="address",
|
||||
name="state",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("AK", "Alaska"),
|
||||
("AL", "Alabama"),
|
||||
("AR", "Arkansas"),
|
||||
("AZ", "Arizona"),
|
||||
("CA", "California"),
|
||||
("CO", "Colorado"),
|
||||
("CT", "Connecticut"),
|
||||
("DC", "District of Columbia"),
|
||||
("DE", "Delaware"),
|
||||
("FL", "Florida"),
|
||||
("GA", "Georgia"),
|
||||
("HI", "Hawaii"),
|
||||
("IA", "Iowa"),
|
||||
("ID", "Idaho"),
|
||||
("IL", "Illinois"),
|
||||
("IN", "Indiana"),
|
||||
("KS", "Kansas"),
|
||||
("KY", "Kentucky"),
|
||||
("LA", "Louisiana"),
|
||||
("MA", "Massachusetts"),
|
||||
("MD", "Maryland"),
|
||||
("ME", "Maine"),
|
||||
("MI", "Michigan"),
|
||||
("MN", "Minnesota"),
|
||||
("MO", "Missouri"),
|
||||
("MS", "Mississippi"),
|
||||
("MT", "Montana"),
|
||||
("NC", "North Carolina"),
|
||||
("ND", "North Dakota"),
|
||||
("NE", "Nebraska"),
|
||||
("NH", "New Hampshire"),
|
||||
("NJ", "New Jersey"),
|
||||
("NM", "New Mexico"),
|
||||
("NV", "Nevada"),
|
||||
("NY", "New York"),
|
||||
("OH", "Ohio"),
|
||||
("OK", "Oklahoma"),
|
||||
("OR", "Oregon"),
|
||||
("PA", "Pennsylvania"),
|
||||
("RI", "Rhode Island"),
|
||||
("SC", "South Carolina"),
|
||||
("SD", "South Dakota"),
|
||||
("TN", "Tennessee"),
|
||||
("TX", "Texas"),
|
||||
("UT", "Utah"),
|
||||
("VA", "Virginia"),
|
||||
("VT", "Vermont"),
|
||||
("WA", "Washington"),
|
||||
("WI", "Wisconsin"),
|
||||
("WV", "West Virginia"),
|
||||
("WY", "Wyoming"),
|
||||
],
|
||||
max_length=2,
|
||||
),
|
||||
),
|
||||
]
|
@ -1,39 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-29 15:33
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0021_alter_address_state"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="submittal",
|
||||
name="name",
|
||||
field=models.CharField(blank=True, max_length=100, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="rail_type",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("1", "100 Pipe"),
|
||||
("2", "200 Pipe"),
|
||||
("3", "300 Rec Tube"),
|
||||
("4", "400 Picket"),
|
||||
("5", "500 Mesh"),
|
||||
("6", "600 Cable"),
|
||||
("7", "700 Rod"),
|
||||
("8", "800 Glass"),
|
||||
("W", "Wall rail only"),
|
||||
("C", "Custom"),
|
||||
("B", "By other"),
|
||||
],
|
||||
default="2",
|
||||
max_length=1,
|
||||
),
|
||||
),
|
||||
]
|
@ -1,19 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-29 15:55
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0022_submittal_name_alter_stair_rail_type"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="transmittal",
|
||||
name="for_record",
|
||||
field=models.BooleanField(default=False),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
@ -1,20 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-29 17:53
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0023_transmittal_for_record"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="stn_note",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=200, null=True, verbose_name="STN note"
|
||||
),
|
||||
),
|
||||
]
|
@ -1,52 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-29 21:22
|
||||
|
||||
from django.db import migrations, models
|
||||
from jobs.models import Construction
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0024_stair_stn_note"),
|
||||
]
|
||||
|
||||
def up(apps, schema_editor):
|
||||
for c in Construction.objects.all():
|
||||
if c.style == 'CONC':
|
||||
c.style = 'concrete'
|
||||
elif c.style == 'STL':
|
||||
c.style = 'steel'
|
||||
elif c.style == 'WOOD':
|
||||
c.style = 'wood'
|
||||
elif c.style == 'CU':
|
||||
c.style = 'custom'
|
||||
c.save()
|
||||
|
||||
def dn(apps, schema_editor):
|
||||
for c in Construction.objects.all():
|
||||
if c.style == 'concrete':
|
||||
c.style = 'CONC'
|
||||
elif c.style == 'steel':
|
||||
c.style = 'STL'
|
||||
elif c.style == 'wood':
|
||||
c.style = 'WOOD'
|
||||
elif c.style == 'custom':
|
||||
c.style = 'CU'
|
||||
c.save()
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="construction",
|
||||
name="style",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("concrete", "Concrete"),
|
||||
("steel", "Steel"),
|
||||
("wood", "Wood"),
|
||||
("custom", "Custom"),
|
||||
],
|
||||
max_length=20,
|
||||
),
|
||||
),
|
||||
migrations.RunPython(up, dn),
|
||||
]
|
@ -1,79 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-29 21:40
|
||||
|
||||
from django.db import migrations, models
|
||||
from jobs.models import Stair
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0025_alter_construction_style"),
|
||||
]
|
||||
|
||||
def collect_stairs(_apps, _schema):
|
||||
Migration.stairs = [(s.pk, s.finish) for s in Stair.objects.all()]
|
||||
|
||||
def int_to_char(_apps, _schema):
|
||||
for (pk, finish) in Migration.stairs:
|
||||
s = Stair.objects.get(pk=pk)
|
||||
if finish == 1:
|
||||
s.finish = 'rodda red oxide'
|
||||
elif finish == 2:
|
||||
s.finish = 'rodda black'
|
||||
elif finish == 3:
|
||||
s.finish = 'rodda grey'
|
||||
elif finish == 4:
|
||||
s.finish = 'rodda high solids red oxide'
|
||||
elif finish == 5:
|
||||
s.finish = 'rodda high solids black'
|
||||
elif finish == 6:
|
||||
s.finish = 'rodda high solids grey'
|
||||
elif finish == 7:
|
||||
s.finish = 'galvanized'
|
||||
elif finish == 8:
|
||||
s.finish = 'custom'
|
||||
s.save()
|
||||
|
||||
def char_to_int(_apps, _schema):
|
||||
for (pk, finish) in Migration.stairs:
|
||||
s = Stair.objects.get(pk=pk)
|
||||
if finish == 'rodda red oxide':
|
||||
s.finish = 1
|
||||
elif finish == 'rodda black':
|
||||
s.finish = 2
|
||||
elif finish == 'rodda grey':
|
||||
s.finish = 3
|
||||
elif finish == 'rodda high solids red oxide':
|
||||
s.finish = 4
|
||||
elif finish == 'rodda high solids black':
|
||||
s.finish = 5
|
||||
elif finish == 'rodda high solids grey':
|
||||
s.finish = 6
|
||||
elif finish == 'galvanized':
|
||||
s.finish = 7
|
||||
elif finish == 'custom':
|
||||
s.finish = 8
|
||||
s.save()
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(collect_stairs),
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="finish",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("rodda red oxide", "Rodda Red Oxide"),
|
||||
("rodda black", "Rodda Black"),
|
||||
("rodda grey", "Rodda Grey"),
|
||||
("rodda high solids red oxide", "Rodda High Solids Red Oxide"),
|
||||
("rodda high solids black", "Rodda High Solids Black"),
|
||||
("rodda high solids grey", "Rodda High Solids Grey"),
|
||||
("galvanized", "Galvanized"),
|
||||
("custom", "Custom"),
|
||||
],
|
||||
default="rodda red oxide",
|
||||
max_length=50,
|
||||
),
|
||||
),
|
||||
migrations.RunPython(int_to_char, char_to_int),
|
||||
]
|
@ -1,17 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-08-29 22:11
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0026_alter_stair_finish"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="stair",
|
||||
name="status",
|
||||
),
|
||||
]
|
@ -1,20 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-09-14 21:22
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0027_remove_stair_status"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="transmittal",
|
||||
name="due_from_engr",
|
||||
field=models.DateField(
|
||||
blank=True, null=True, verbose_name="due from engineer"
|
||||
),
|
||||
),
|
||||
]
|
@ -1,21 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-10-03 15:35
|
||||
|
||||
from django.db import migrations
|
||||
import phonenumber_field.modelfields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0028_transmittal_due_from_engr"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="contact",
|
||||
name="phone",
|
||||
field=phonenumber_field.modelfields.PhoneNumberField(
|
||||
blank=True, max_length=128, null=True, region=None
|
||||
),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-10-05 15:36
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0029_contact_phone"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="contact",
|
||||
name="job_title",
|
||||
field=models.CharField(blank=True, max_length=200, null=True),
|
||||
),
|
||||
]
|
@ -1,47 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-11-28 15:32
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0030_contact_job_title"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="job",
|
||||
name="modeling",
|
||||
field=models.BooleanField(
|
||||
default=False, verbose_name="3D modeling included"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="land_qt",
|
||||
field=models.BooleanField(
|
||||
default=False, verbose_name="landing quiet tread"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="on_hold",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="stair_qt",
|
||||
field=models.BooleanField(default=False, verbose_name="stair quiet tread"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="task",
|
||||
name="done",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="transmittal",
|
||||
name="for_record",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
@ -1,28 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-11-28 15:42
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0031_alter_job_modeling_alter_stair_land_qt_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="flights",
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="landings",
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="submittal",
|
||||
name="number",
|
||||
field=models.IntegerField(default=1),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-11-28 15:52
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0032_alter_stair_flights_alter_stair_landings_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="stair",
|
||||
name="levels",
|
||||
field=models.CharField(blank=True, max_length=100),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2024-01-04 15:47
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("jobs", "0033_alter_stair_levels"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="stair",
|
||||
name="embeds_na",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
@ -1,22 +0,0 @@
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
server_name _;
|
||||
|
||||
location /p/ {
|
||||
root /mnt;
|
||||
autoindex on;
|
||||
autoindex_format xml;
|
||||
xslt_stylesheet /var/www/autoindex.xslt;
|
||||
}
|
||||
|
||||
location /static/ {
|
||||
root /home/dwgstatus/dwgstatus;
|
||||
}
|
||||
|
||||
location / {
|
||||
uwsgi_pass unix:///tmp/dwgstatus.sock;
|
||||
include uwsgi_params;
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
upstream gunicorn {
|
||||
server web:8000;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
location /static/ {
|
||||
root /;
|
||||
}
|
||||
|
||||
location / {
|
||||
# everything is passed to Gunicorn
|
||||
proxy_pass http://gunicorn;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_redirect off;
|
||||
}
|
||||
}
|
||||
|
||||
# server {
|
||||
# listen 80 default_server;
|
||||
# listen [::]:80 default_server;
|
||||
|
||||
# server_name _;
|
||||
|
||||
# location /p/ {
|
||||
# root /mnt;
|
||||
# autoindex on;
|
||||
# autoindex_format xml;
|
||||
# xslt_stylesheet /var/www/autoindex.xslt;
|
||||
# }
|
||||
|
||||
# location /static/ {
|
||||
# root /home/dwgstatus/dwgstatus;
|
||||
# }
|
||||
|
||||
# location / {
|
||||
# uwsgi_pass unix:///tmp/dwgstatus.sock;
|
||||
# include uwsgi_params;
|
||||
# }
|
||||
# }
|
Loading…
Reference in new issue