From 6b9da6ffb6ff5ba3ee14cd4c4dded59f9af9c0e9 Mon Sep 17 00:00:00 2001 From: Seth Ladygo Date: Tue, 23 Apr 2019 14:43:43 -0700 Subject: [PATCH] add procat2 catalog, region, and season models --- procat2/migrations/0003_auto_20190423_2203.py | 60 +++++++++++++++++++ procat2/models.py | 33 ++++++++++ 2 files changed, 93 insertions(+) create mode 100644 procat2/migrations/0003_auto_20190423_2203.py create mode 100644 procat2/models.py diff --git a/procat2/migrations/0003_auto_20190423_2203.py b/procat2/migrations/0003_auto_20190423_2203.py new file mode 100644 index 0000000..2fbb3ae --- /dev/null +++ b/procat2/migrations/0003_auto_20190423_2203.py @@ -0,0 +1,60 @@ +# Generated by Django 2.1.7 on 2019-04-23 22:03 + +from django.conf import settings +import django.contrib.postgres.fields.jsonb +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), + ('procat2', '0002_site_changes'), + ] + + operations = [ + migrations.CreateModel( + name='Catalog', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('name', models.CharField(max_length=300)), + ('public', models.BooleanField(default=False)), + ('pages', models.PositiveIntegerField(default=0)), + ('sections', models.PositiveIntegerField(default=0)), + ('materials', models.PositiveIntegerField(default=0)), + ('data', django.contrib.postgres.fields.jsonb.JSONField(null=True)), + ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Region', + fields=[ + ('id', models.CharField(max_length=30, primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ('ordering', models.PositiveIntegerField(default=1000, unique=True)), + ], + ), + migrations.CreateModel( + name='Season', + fields=[ + ('id', models.CharField(max_length=30, primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ('ordering', models.PositiveIntegerField(default=1000, unique=True)), + ], + ), + migrations.AddField( + model_name='catalog', + name='region', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='procat2.Region'), + ), + migrations.AddField( + model_name='catalog', + name='season', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='procat2.Season'), + ), + ] diff --git a/procat2/models.py b/procat2/models.py new file mode 100644 index 0000000..bca73d6 --- /dev/null +++ b/procat2/models.py @@ -0,0 +1,33 @@ +from django.db import models +from django.conf import settings +from django.contrib.postgres.fields import JSONField + + +class Season(models.Model): + id = models.CharField(max_length=30, primary_key=True) + name = models.CharField(max_length=100) + ordering = models.PositiveIntegerField(unique=True, default=1000) + + +class Region(models.Model): + id = models.CharField(max_length=30, primary_key=True) + name = models.CharField(max_length=100) + ordering = models.PositiveIntegerField(unique=True, default=1000) + + +class Catalog(models.Model): + owner = models.ForeignKey(settings.AUTH_USER_MODEL, + on_delete=models.CASCADE) + season = models.ForeignKey(Season, on_delete=models.PROTECT) + region = models.ForeignKey(Region, on_delete=models.PROTECT) + created = models.DateTimeField(auto_now_add=True) + updated = models.DateTimeField(auto_now=True) + name = models.CharField(max_length=300) + public = models.BooleanField(default=False) + pages = models.PositiveIntegerField(default=0) + sections = models.PositiveIntegerField(default=0) + materials = models.PositiveIntegerField(default=0) + data = JSONField(null=True) + + # JSONField docs: + # https://docs.djangoproject.com/en/2.2/ref/contrib/postgres/fields/#jsonfield