From 3f1910b7accc1060a3a6cdf4275b17a3e0678d72 Mon Sep 17 00:00:00 2001 From: Paul Schweigert Date: Fri, 19 Jan 2024 09:27:08 -0500 Subject: [PATCH] Add catalog entry model (#1172) * add catalog entry model Signed-off-by: Paul S. Schweigert * lint Signed-off-by: Paul S. Schweigert * drop unnecessary field Signed-off-by: Paul S. Schweigert --------- Signed-off-by: Paul S. Schweigert --- .../0013_program_groups_catalogentry.py | 41 +++++++++++++++++++ gateway/api/models.py | 11 +++++ 2 files changed, 52 insertions(+) create mode 100644 gateway/api/migrations/0013_program_groups_catalogentry.py diff --git a/gateway/api/migrations/0013_program_groups_catalogentry.py b/gateway/api/migrations/0013_program_groups_catalogentry.py new file mode 100644 index 000000000..1070b9433 --- /dev/null +++ b/gateway/api/migrations/0013_program_groups_catalogentry.py @@ -0,0 +1,41 @@ +# Generated by Django 4.2.9 on 2024-01-18 20:39 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ("api", "0012_jobconfig_python_version"), + ] + + operations = [ + migrations.CreateModel( + name="CatalogEntry", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("title", models.CharField(max_length=255)), + ("description", models.TextField()), + ("tags", models.TextField(blank=True, default="[]")), + ("created", models.DateTimeField(auto_now_add=True)), + ("updated", models.DateTimeField(auto_now=True, null=True)), + ( + "program", + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="api.program", + ), + ), + ], + ), + ] diff --git a/gateway/api/models.py b/gateway/api/models.py index c1e4d0166..a30a7f97d 100644 --- a/gateway/api/models.py +++ b/gateway/api/models.py @@ -161,3 +161,14 @@ def __str__(self): def in_terminal_state(self): """Returns true if job is in terminal state.""" return self.status in self.TERMINAL_STATES + + +class CatalogEntry(models.Model): + """Catalog Entry model.""" + + title = models.CharField(max_length=255) + description = models.TextField() + tags = models.TextField(null=False, blank=True, default="[]") + created = models.DateTimeField(auto_now_add=True) + updated = models.DateTimeField(auto_now=True, null=True) + program = models.ForeignKey(to=Program, on_delete=models.SET_NULL, null=True)