Skip to content

Commit 856dd52

Browse files
authored
Update unique datasets name constraint (#35)
1 parent f4c2b35 commit 856dd52

File tree

3 files changed

+56
-9
lines changed

3 files changed

+56
-9
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Generated by Django 5.2.5 on 2025-10-20 21:04
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
(
10+
"datasets",
11+
"0015_rasterdataset_description_tabulardataset_description_and_more",
12+
),
13+
]
14+
15+
operations = [
16+
migrations.AlterUniqueTogether(
17+
name="rasterdataset",
18+
unique_together={("name", "type", "cluster")},
19+
),
20+
migrations.AlterUniqueTogether(
21+
name="tabulardataset",
22+
unique_together={("name", "type", "cluster")},
23+
),
24+
migrations.AlterUniqueTogether(
25+
name="vectordataset",
26+
unique_together={("name", "type", "cluster")},
27+
),
28+
]

vbos/datasets/models.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,11 @@ class RasterDataset(models.Model):
9494
file = models.ForeignKey(RasterFile, on_delete=models.PROTECT)
9595

9696
def __str__(self):
97-
return self.name
97+
return f"{self.name} - {self.cluster} / {self.type}"
9898

9999
class Meta:
100100
ordering = ["id"]
101-
unique_together = ["name", "type"]
101+
unique_together = ["name", "type", "cluster"]
102102

103103

104104
class VectorDataset(models.Model):
@@ -114,11 +114,11 @@ class VectorDataset(models.Model):
114114
source = models.CharField(max_length=155, blank=True, null=True)
115115

116116
def __str__(self):
117-
return f"{self.name} ({self.type})"
117+
return f"{self.name} - {self.cluster} / {self.type}"
118118

119119
class Meta:
120120
ordering = ["id"]
121-
unique_together = ["name", "type"]
121+
unique_together = ["name", "type", "cluster"]
122122

123123

124124
class VectorItem(models.Model):
@@ -155,11 +155,11 @@ class TabularDataset(models.Model):
155155
unit = models.CharField(max_length=50, blank=True, null=True)
156156

157157
def __str__(self):
158-
return f"{self.name} ({self.type})"
158+
return f"{self.name} - {self.cluster} / {self.type}"
159159

160160
class Meta:
161161
ordering = ["id"]
162-
unique_together = ["name", "type"]
162+
unique_together = ["name", "type", "cluster"]
163163

164164

165165
class TabularItem(models.Model):

vbos/datasets/test/test_models.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def test_deletion(self):
6666

6767
RasterFile.objects.all().delete()
6868

69-
def test_unique_name_type(self):
69+
def test_unique_name_type_cluster(self):
7070
self.cluster = Cluster.objects.create(name="Administrative")
7171
r_2 = RasterFile.objects.create(
7272
name="Population Density COG", file="raster/pop.tiff"
@@ -84,6 +84,13 @@ def test_unique_name_type(self):
8484
file=r_2,
8585
type="estimated_damage",
8686
)
87+
RasterDataset.objects.create(
88+
name="Population",
89+
cluster=Cluster.objects.create(name="Education"),
90+
source="Government",
91+
file=r_2,
92+
type="estimated_damage",
93+
)
8794
with self.assertRaises(IntegrityError):
8895
RasterDataset.objects.create(
8996
name="Population",
@@ -94,7 +101,7 @@ def test_unique_name_type(self):
94101

95102

96103
class TestTabularDatasetModel(TestCase):
97-
def test_unique_name_type(self):
104+
def test_unique_name_type_cluster(self):
98105
self.cluster = Cluster.objects.create(name="Administrative")
99106
TabularDataset.objects.create(
100107
name="Population",
@@ -107,6 +114,12 @@ def test_unique_name_type(self):
107114
source="Government",
108115
type="estimated_damage",
109116
)
117+
TabularDataset.objects.create(
118+
name="Population",
119+
cluster=Cluster.objects.create(name="education"),
120+
source="Government",
121+
type="estimated_damage",
122+
)
110123
with self.assertRaises(IntegrityError):
111124
TabularDataset.objects.create(
112125
name="Population",
@@ -116,7 +129,7 @@ def test_unique_name_type(self):
116129

117130

118131
class TestVectorDatasetModel(TestCase):
119-
def test_unique_name_type(self):
132+
def test_unique_name_type_cluster(self):
120133
self.cluster = Cluster.objects.create(name="Administrative")
121134
VectorDataset.objects.create(
122135
name="Population",
@@ -129,6 +142,12 @@ def test_unique_name_type(self):
129142
source="Government",
130143
type="estimated_damage",
131144
)
145+
VectorDataset.objects.create(
146+
name="Population",
147+
cluster=Cluster.objects.create(name="education"),
148+
source="Government",
149+
type="estimated_damage",
150+
)
132151
with self.assertRaises(IntegrityError):
133152
VectorDataset.objects.create(
134153
name="Population",

0 commit comments

Comments
 (0)