diff --git a/dashboard/templates/base.html b/dashboard/templates/base.html
index 5c92024..d2c1612 100644
--- a/dashboard/templates/base.html
+++ b/dashboard/templates/base.html
@@ -185,7 +185,17 @@
{% endblock messages %}
{{ breadcrumb }}
diff --git a/evidence/migrations/0001_initial.py b/evidence/migrations/0001_initial.py
index 1a621d0..9ffbf31 100644
--- a/evidence/migrations/0001_initial.py
+++ b/evidence/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 5.0.6 on 2024-10-07 11:38
+# Generated by Django 5.0.6 on 2024-10-10 09:46
import django.db.models.deletion
from django.conf import settings
diff --git a/evidence/migrations/0004_alter_annotation_owner.py b/evidence/migrations/0004_alter_annotation_owner.py
deleted file mode 100644
index 26c9bda..0000000
--- a/evidence/migrations/0004_alter_annotation_owner.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Generated by Django 5.0.6 on 2024-09-18 10:55
-
-import django.db.models.deletion
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ("evidence", "0003_alter_annotation_type"),
- ("user", "0001_initial"),
- ]
-
- operations = [
- migrations.AlterField(
- model_name="annotation",
- name="owner",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="user.institution"
- ),
- ),
- ]
diff --git a/lot/migrations/0001_initial.py b/lot/migrations/0001_initial.py
index 28b3e8e..538ba90 100644
--- a/lot/migrations/0001_initial.py
+++ b/lot/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 5.0.6 on 2024-07-27 16:23
+# Generated by Django 5.0.6 on 2024-10-10 10:14
import django.db.models.deletion
from django.conf import settings
@@ -10,6 +10,7 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
+ ("user", "0001_initial"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
@@ -36,6 +37,15 @@ class Migration(migrations.Migration):
"owner",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
+ to="user.institution",
+ ),
+ ),
+ (
+ "user",
+ models.ForeignKey(
+ blank=True,
+ null=True,
+ on_delete=django.db.models.deletion.SET_NULL,
to=settings.AUTH_USER_MODEL,
),
),
@@ -62,6 +72,51 @@ class Migration(migrations.Migration):
),
],
),
+ migrations.CreateModel(
+ name="LotAnnotation",
+ fields=[
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("created", models.DateTimeField(auto_now_add=True)),
+ (
+ "type",
+ models.SmallIntegerField(
+ choices=[(0, "System"), (1, "User"), (2, "Document")]
+ ),
+ ),
+ ("key", models.CharField(max_length=256)),
+ ("value", models.CharField(max_length=256)),
+ (
+ "lot",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE, to="lot.lot"
+ ),
+ ),
+ (
+ "owner",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ to="user.institution",
+ ),
+ ),
+ (
+ "user",
+ models.ForeignKey(
+ blank=True,
+ null=True,
+ on_delete=django.db.models.deletion.SET_NULL,
+ to=settings.AUTH_USER_MODEL,
+ ),
+ ),
+ ],
+ ),
migrations.CreateModel(
name="LotTag",
fields=[
@@ -79,6 +134,15 @@ class Migration(migrations.Migration):
"owner",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
+ to="user.institution",
+ ),
+ ),
+ (
+ "user",
+ models.ForeignKey(
+ blank=True,
+ null=True,
+ on_delete=django.db.models.deletion.SET_NULL,
to=settings.AUTH_USER_MODEL,
),
),
diff --git a/lot/migrations/0002_lotannotation.py b/lot/migrations/0002_lotannotation.py
deleted file mode 100644
index aca7de1..0000000
--- a/lot/migrations/0002_lotannotation.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Generated by Django 5.0.6 on 2024-07-29 15:37
-
-import django.db.models.deletion
-from django.conf import settings
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ("lot", "0001_initial"),
- migrations.swappable_dependency(settings.AUTH_USER_MODEL),
- ]
-
- operations = [
- migrations.CreateModel(
- name="LotAnnotation",
- fields=[
- (
- "id",
- models.BigAutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("created", models.DateTimeField(auto_now_add=True)),
- (
- "type",
- models.SmallIntegerField(
- choices=[(0, "System"), (1, "User"), (2, "Document")]
- ),
- ),
- ("key", models.CharField(max_length=256)),
- ("value", models.CharField(max_length=256)),
- (
- "lot",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="lot.lot"
- ),
- ),
- (
- "owner",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- ],
- ),
- ]
diff --git a/lot/migrations/0003_alter_lot_owner_alter_lotannotation_owner_and_more.py b/lot/migrations/0003_alter_lot_owner_alter_lotannotation_owner_and_more.py
deleted file mode 100644
index 806c6f1..0000000
--- a/lot/migrations/0003_alter_lot_owner_alter_lotannotation_owner_and_more.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Generated by Django 5.0.6 on 2024-09-18 10:55
-
-import django.db.models.deletion
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ("lot", "0002_lotannotation"),
- ("user", "0001_initial"),
- ]
-
- operations = [
- migrations.AlterField(
- model_name="lot",
- name="owner",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="user.institution"
- ),
- ),
- migrations.AlterField(
- model_name="lotannotation",
- name="owner",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="user.institution"
- ),
- ),
- migrations.AlterField(
- model_name="lottag",
- name="owner",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="user.institution"
- ),
- ),
- ]
diff --git a/lot/models.py b/lot/models.py
index 3926f29..764e134 100644
--- a/lot/models.py
+++ b/lot/models.py
@@ -6,7 +6,7 @@ from utils.constants import (
STR_EXTEND_SIZE,
)
-from user.models import Institution
+from user.models import User, Institution
# from device.models import Device
# from evidence.models import Annotation
@@ -14,6 +14,7 @@ from user.models import Institution
class LotTag(models.Model):
name = models.CharField(max_length=STR_SIZE, blank=False, null=False)
owner = models.ForeignKey(Institution, on_delete=models.CASCADE)
+ user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
def __str__(self):
return self.name
@@ -32,6 +33,7 @@ class Lot(models.Model):
description = models.CharField(max_length=STR_SIZE, blank=True, null=True)
closed = models.BooleanField(default=True)
owner = models.ForeignKey(Institution, on_delete=models.CASCADE)
+ user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
type = models.ForeignKey(LotTag, on_delete=models.CASCADE)
def add(self, v):
@@ -53,6 +55,7 @@ class LotAnnotation(models.Model):
created = models.DateTimeField(auto_now_add=True)
lot = models.ForeignKey(Lot, on_delete=models.CASCADE)
owner = models.ForeignKey(Institution, on_delete=models.CASCADE)
+ user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
type = models.SmallIntegerField(choices=Type)
key = models.CharField(max_length=STR_EXTEND_SIZE)
value = models.CharField(max_length=STR_EXTEND_SIZE)
diff --git a/user/management/commands/add_user.py b/user/management/commands/add_user.py
index d6d3bd8..73385d8 100644
--- a/user/management/commands/add_user.py
+++ b/user/management/commands/add_user.py
@@ -1,6 +1,7 @@
from django.core.management.base import BaseCommand
from django.contrib.auth import get_user_model
from user.models import Institution
+from lot.models import LotTag
User = get_user_model()
@@ -21,7 +22,6 @@ class Command(BaseCommand):
is_admin = kwargs['is_admin']
institution = Institution.objects.get(name=kwargs['institution'])
self.create_user(institution, email, password, is_admin)
- self.create_lot_tags()
def create_user(self, institution, email, password, is_admin):
self.u = User.objects.create(
@@ -30,5 +30,5 @@ class Command(BaseCommand):
password=password,
is_admin=is_admin,
)
- self.u.set_password(self.password)
+ self.u.set_password(password)
self.u.save()