From 36252079d71e68c93a0b35449a07ff54c73c0466 Mon Sep 17 00:00:00 2001 From: Daniel Dupriest Date: Sun, 20 Jan 2019 14:39:11 -0800 Subject: [PATCH] Database models all implemented. Migrations made. --- back/Pipfile.lock | 16 ++- back/backend/migrations/0001_initial.py | 126 ++++++++++++++++++++++++ back/backend/migrations/__init__.py | 0 back/backend/models.py | 45 ++++++++- back/db.sqlite3 | Bin 135168 -> 208896 bytes back/manage.py | 2 +- 6 files changed, 183 insertions(+), 6 deletions(-) create mode 100644 back/backend/migrations/0001_initial.py create mode 100644 back/backend/migrations/__init__.py diff --git a/back/Pipfile.lock b/back/Pipfile.lock index fe77e7d..188dca4 100644 --- a/back/Pipfile.lock +++ b/back/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "6fedc9216775508baa2496b59b7cd7e991827db84bd68be0cada8c472f1adabf" + "sha256": "a46ef04ffac2e51c6fd60967adce8d1967758dcdfee3fb9804c0b929110c2a92" }, "pipfile-spec": 6, "requires": { @@ -24,12 +24,20 @@ "index": "pypi", "version": "==2.1.4" }, + "gunicorn": { + "hashes": [ + "sha256:723234ea1fa8dff370ab69830ba8bc37469a7cba13fd66055faeef24085e6530", + "sha256:813f6916d18a4c8e90efde72f419308b357692f81333cb1125f80013d22fb618" + ], + "index": "pypi", + "version": "==19.6.0" + }, "pytz": { "hashes": [ - "sha256:31cb35c89bd7d333cd32c5f278fca91b523b0834369e757f4c5641ea252236ca", - "sha256:8e0f8568c118d3077b46be7d654cc8167fa916092e28320cde048e54bfc9f1e6" + "sha256:32b0891edff07e28efe91284ed9c31e123d84bea3fd98e1f72be2508f43ef8d9", + "sha256:d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c" ], - "version": "==2018.7" + "version": "==2018.9" } }, "develop": {} diff --git a/back/backend/migrations/0001_initial.py b/back/backend/migrations/0001_initial.py new file mode 100644 index 0000000..69073ec --- /dev/null +++ b/back/backend/migrations/0001_initial.py @@ -0,0 +1,126 @@ +# Generated by Django 2.1.4 on 2019-01-20 22:35 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='DataBool', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.BooleanField()), + ], + ), + migrations.CreateModel( + name='DataDate', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.DateField()), + ], + ), + migrations.CreateModel( + name='DataDecimal', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.DecimalField(decimal_places=2, max_digits=9)), + ], + ), + migrations.CreateModel( + name='DataFile', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.FileField(upload_to='')), + ], + ), + migrations.CreateModel( + name='DataInteger', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.IntegerField()), + ], + ), + migrations.CreateModel( + name='DataString', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.TextField()), + ], + ), + migrations.CreateModel( + name='Field', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('label', models.CharField(max_length=256)), + ('number', models.IntegerField()), + ('type', models.CharField(max_length=128)), + ('completed', models.BooleanField()), + ], + ), + migrations.CreateModel( + name='Report', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=128)), + ('date_created', models.DateTimeField(verbose_name='date created')), + ('date_submitted', models.DateTimeField(verbose_name='date submitted')), + ('submitted', models.BooleanField()), + ('user_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Section', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('completed', models.BooleanField()), + ('title', models.CharField(max_length=256)), + ('html_description', models.TextField()), + ('number', models.IntegerField()), + ('report_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Report')), + ], + ), + migrations.AddField( + model_name='field', + name='section_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Section'), + ), + migrations.AddField( + model_name='datastring', + name='field_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Field'), + ), + migrations.AddField( + model_name='datainteger', + name='field_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Field'), + ), + migrations.AddField( + model_name='datafile', + name='field_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Field'), + ), + migrations.AddField( + model_name='datadecimal', + name='field_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Field'), + ), + migrations.AddField( + model_name='datadate', + name='field_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Field'), + ), + migrations.AddField( + model_name='databool', + name='field_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.Field'), + ), + ] diff --git a/back/backend/migrations/__init__.py b/back/backend/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/back/backend/models.py b/back/backend/models.py index b096caa..d44a8eb 100644 --- a/back/backend/models.py +++ b/back/backend/models.py @@ -1,4 +1,47 @@ from django.db import models +from django.contrib.auth.models import User -# Create your models here. +class Report(models.Model): + user_id = models.ForeignKey(User, on_delete=models.CASCADE) + title = models.CharField(max_length=128) + date_created = models.DateTimeField('date created') + date_submitted = models.DateTimeField('date submitted') + submitted = models.BooleanField() +class Section(models.Model): + report_id = models.ForeignKey(Report, on_delete=models.CASCADE) + completed = models.BooleanField() + title = models.CharField(max_length=256) + html_description = models.TextField() + number = models.IntegerField() + +class Field(models.Model): + section_id = models.ForeignKey(Section, on_delete=models.CASCADE) + label = models.CharField(max_length=256) + number = models.IntegerField() + type = models.CharField(max_length=128) + completed = models.BooleanField() + +class DataBool(models.Model): + field_id = models.ForeignKey(Field, on_delete=models.CASCADE) + data = models.BooleanField() + +class DataDecimal(models.Model): + field_id = models.ForeignKey(Field, on_delete=models.CASCADE) + data = models.DecimalField(max_digits=9,decimal_places=2) + +class DataDate(models.Model): + field_id = models.ForeignKey(Field, on_delete=models.CASCADE) + data = models.DateField() + +class DataFile(models.Model): + field_id = models.ForeignKey(Field, on_delete=models.CASCADE) + data = models.FileField() + +class DataString(models.Model): + field_id = models.ForeignKey(Field, on_delete=models.CASCADE) + data = models.TextField() + +class DataInteger(models.Model): + field_id = models.ForeignKey(Field, on_delete=models.CASCADE) + data = models.IntegerField() diff --git a/back/db.sqlite3 b/back/db.sqlite3 index f5449da7691616be71575d07dc8511c1a9fade3c..9019fc8c8751942ce6b2d7a4dcd86cf1ad87c61d 100644 GIT binary patch delta 6704 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 TPblWtMQ+K5|2DYepThqGyQMH4 delta 714 zcmZ8dT}V@582;Y#o$c(mcRGKDuG(NlGIcIzbC!x^&>xyNDTr*dO+9)xWt)1_g-6hf z{&1b*1QA)}T?K0wr-c;+Nz_G4h{!IopeQP%i>|!sOh!TP|MULv@jWx^rkO?ELUoCU z5aKL4sJSy;+i3NWdfPLNiU2p&NGfqNTM{~l`tmZf3en`ua+c3VR;_)~uj(D8UcaMZ zUyEu@zWQc=!0Y#Ao%VHVMTuxoVDKwGKmnI<4(BprA4-D9*29@hbf-Q%nHmXBCZh>_ zMM?{A{S&K}x?yWR5lzJSWRf3`+pUz==^~@y`0#iz9EtJqpfEnXbz@6+l+~33^+0hP zoR z$n9Mq$%ZayV$Bs~zwBLPn&tK*@LlB{mNVjgP*%IZQ{vIB5(^Q4d&Aka-7HTZQ8yEW zOGGfgH1E-^8RkuUP2Y@H4IhZNMoR)|@qp41gU5_=Ednm83>}17MsG0Wh^|1SVjG3q zAb;Yak=?dLKBh%iz3BIIm2Nl8?n;FRh3H`T)L1kg2^RBz&?z_EWh%I0SMC{wCQXV@ z2~qjR5LC&+9i|Fu