fix family relations in generate_galaxy_test_data.py

This commit is contained in:
thomas girod committed 2024-07-04 14:39:12 +02:00
1 parent aa07fa9207
commit f1fa8d34bf
2 files changed
+16 -9

No files matched your search

@@ -128,7 +128,7 @@ class Command(BaseCommand):
self.clubs.append(Club(unix_name=f"galaxy-club-{i}", name=f"club-{i}"))
# We don't need to create corresponding groups here, as the Galaxy doesn't care about them
Club.objects.bulk_create(self.clubs)
self.clubs = Club.objects.filter(unix_name__startswith="galaxy-").all()
self.clubs = list(Club.objects.filter(unix_name__startswith="galaxy-").all())
def make_users(self):
"""
@@ -175,20 +175,22 @@ class Command(BaseCommand):
Then it will take 14 other citizen among the previous 200
(godfathers are usually older), and apply another
heuristic to determine whether they should have a family link
It will result in approximately 40% of users having at least one godchild
and 70% having at least one godfather.
"""
if self.users is None:
raise RuntimeError(
"The `make_users()` method must be called before `make_families()`"
)
godfathers = []
for i in range(200, self.NB_USERS):
godfathers = []
for j in range(i - 200, i, 14): # this will loop 14 times (14² = 196)
if (i / 10) % 10 == (i + j) % 10:
if (i // 10) % 10 == (i + j) % 10:
u1 = self.users[i]
u2 = self.users[j]
godfathers.append(User.godfathers.through(from_user=u1, to_user=u2))
self.logger.info(f"Making {u2} the godfather of {u1}")
godfathers.append(u2)
u1.godfathers.set(godfathers)
User.godfathers.through.objects.bulk_create(godfathers)
def make_club_memberships(self):
"""
@@ -295,7 +297,7 @@ class Command(BaseCommand):
self.picts[i].compressed.name = self.picts[i].name
self.picts[i].thumbnail.name = self.picts[i].name
Picture.objects.bulk_create(self.picts)
self.picts = Picture.objects.filter(name__startswith="galaxy-").all()
self.picts = list(Picture.objects.filter(name__startswith="galaxy-").all())
def make_pictures_memberships(self):
"""
@@ -377,8 +379,13 @@ class Command(BaseCommand):
u1 = self.users[uid]
u2 = self.users[uid - 100]
u3 = self.users[uid + 100]
u1.godfathers.add(u2)
u1.godchildren.add(u3)
User.godfathers.through.objects.bulk_create(
[
User.godfathers.through(from_user=u1, to_user=u2),
User.godfathers.through(from_user=u3, to_user=u2),
],
ignore_conflicts=True, # in case a relationship has already been created
)
self.logger.info(f"{u1} will be important and close to {u2} and {u3}")
pictures_tags = []
for p in range(uid - 400, uid - 200):
+1 -1
View File
@@ -1 +1 @@
{"nodes": [{"id": 215, "name": "Citizen n\u00b0202", "mass": 5}, {"id": 219, "name": "Citizen n\u00b0206", "mass": 5}, {"id": 221, "name": "Citizen n\u00b0208", "mass": 5}, {"id": 225, "name": "Citizen n\u00b0212", "mass": 5}, {"id": 227, "name": "Citizen n\u00b0214", "mass": 5}, {"id": 228, "name": "Citizen n\u00b0215", "mass": 5}, {"id": 231, "name": "Citizen n\u00b0218", "mass": 5}, {"id": 233, "name": "Citizen n\u00b0220", "mass": 5}, {"id": 243, "name": "Citizen n\u00b0230", "mass": 5}, {"id": 245, "name": "Citizen n\u00b0232", "mass": 5}, {"id": 248, "name": "Citizen n\u00b0235", "mass": 5}, {"id": 249, "name": "Citizen n\u00b0236", "mass": 5}, {"id": 251, "name": "Citizen n\u00b0238", "mass": 5}, {"id": 255, "name": "Citizen n\u00b0242", "mass": 5}, {"id": 257, "name": "Citizen n\u00b0244", "mass": 5}, {"id": 261, "name": "Citizen n\u00b0248", "mass": 5}, {"id": 263, "name": "Citizen n\u00b0250", "mass": 5}, {"id": 273, "name": "Citizen n\u00b0260", "mass": 6}, {"id": 275, "name": "Citizen n\u00b0262", "mass": 5}, {"id": 278, "name": "Citizen n\u00b0265", "mass": 5}, {"id": 279, "name": "Citizen n\u00b0266", "mass": 5}, {"id": 281, "name": "Citizen n\u00b0268", "mass": 5}, {"id": 285, "name": "Citizen n\u00b0272", "mass": 5}, {"id": 287, "name": "Citizen n\u00b0274", "mass": 5}, {"id": 291, "name": "Citizen n\u00b0278", "mass": 5}, {"id": 293, "name": "Citizen n\u00b0280", "mass": 6}, {"id": 303, "name": "Citizen n\u00b0290", "mass": 6}, {"id": 305, "name": "Citizen n\u00b0292", "mass": 5}, {"id": 309, "name": "Citizen n\u00b0296", "mass": 5}, {"id": 311, "name": "Citizen n\u00b0298", "mass": 5}, {"id": 315, "name": "Citizen n\u00b0302", "mass": 5}, {"id": 317, "name": "Citizen n\u00b0304", "mass": 5}, {"id": 321, "name": "Citizen n\u00b0308", "mass": 5}, {"id": 323, "name": "Citizen n\u00b0310", "mass": 6}, {"id": 333, "name": "Citizen n\u00b0320", "mass": 5}, {"id": 335, "name": "Citizen n\u00b0322", "mass": 5}, {"id": 339, "name": "Citizen n\u00b0326", "mass": 5}, {"id": 341, "name": "Citizen n\u00b0328", "mass": 5}, {"id": 345, "name": "Citizen n\u00b0332", "mass": 5}, {"id": 347, "name": "Citizen n\u00b0334", "mass": 5}, {"id": 348, "name": "Citizen n\u00b0335", "mass": 5}, {"id": 351, "name": "Citizen n\u00b0338", "mass": 5}, {"id": 353, "name": "Citizen n\u00b0340", "mass": 6}, {"id": 363, "name": "Citizen n\u00b0350", "mass": 5}, {"id": 365, "name": "Citizen n\u00b0352", "mass": 5}, {"id": 369, "name": "Citizen n\u00b0356", "mass": 5}, {"id": 371, "name": "Citizen n\u00b0358", "mass": 5}, {"id": 375, "name": "Citizen n\u00b0362", "mass": 5}, {"id": 377, "name": "Citizen n\u00b0364", "mass": 5}, {"id": 378, "name": "Citizen n\u00b0365", "mass": 5}, {"id": 381, "name": "Citizen n\u00b0368", "mass": 5}, {"id": 383, "name": "Citizen n\u00b0370", "mass": 5}, {"id": 393, "name": "Citizen n\u00b0380", "mass": 5}, {"id": 395, "name": "Citizen n\u00b0382", "mass": 5}, {"id": 398, "name": "Citizen n\u00b0385", "mass": 5}, {"id": 399, "name": "Citizen n\u00b0386", "mass": 5}, {"id": 401, "name": "Citizen n\u00b0388", "mass": 5}, {"id": 405, "name": "Citizen n\u00b0392", "mass": 5}, {"id": 407, "name": "Citizen n\u00b0394", "mass": 5}, {"id": 411, "name": "Citizen n\u00b0398", "mass": 5}, {"id": 413, "name": "Citizen n\u00b0400", "mass": 10}, {"id": 423, "name": "Citizen n\u00b0410", "mass": 6}, {"id": 425, "name": "Citizen n\u00b0412", "mass": 5}, {"id": 428, "name": "Citizen n\u00b0415", "mass": 5}, {"id": 429, "name": "Citizen n\u00b0416", "mass": 5}, {"id": 431, "name": "Citizen n\u00b0418", "mass": 5}, {"id": 435, "name": "Citizen n\u00b0422", "mass": 5}, {"id": 437, "name": "Citizen n\u00b0424", "mass": 5}, {"id": 441, "name": "Citizen n\u00b0428", "mass": 5}, {"id": 443, "name": "Citizen n\u00b0430", "mass": 5}, {"id": 453, "name": "Citizen n\u00b0440", "mass": 6}, {"id": 455, "name": "Citizen n\u00b0442", "mass": 5}, {"id": 459, "name": "Citizen n\u00b0446", "mass": 5}, {"id": 461, "name": "Citizen n\u00b0448", "mass": 5}, {"id": 465, "name": "Citizen n\u00b0452", "mass": 5}, {"id": 467, "name": "Citizen n\u00b0454", "mass": 5}, {"id": 471, "name": "Citizen n\u00b0458", "mass": 5}, {"id": 473, "name": "Citizen n\u00b0460", "mass": 6}, {"id": 483, "name": "Citizen n\u00b0470", "mass": 5}, {"id": 485, "name": "Citizen n\u00b0472", "mass": 5}, {"id": 489, "name": "Citizen n\u00b0476", "mass": 5}, {"id": 491, "name": "Citizen n\u00b0478", "mass": 5}, {"id": 495, "name": "Citizen n\u00b0482", "mass": 5}, {"id": 497, "name": "Citizen n\u00b0484", "mass": 5}, {"id": 498, "name": "Citizen n\u00b0485", "mass": 5}, {"id": 501, "name": "Citizen n\u00b0488", "mass": 5}, {"id": 503, "name": "Citizen n\u00b0490", "mass": 6}, {"id": 513, "name": "Citizen n\u00b0500", "mass": 10}, {"id": 515, "name": "Citizen n\u00b0502", "mass": 5}, {"id": 519, "name": "Citizen n\u00b0506", "mass": 5}, {"id": 521, "name": "Citizen n\u00b0508", "mass": 5}, {"id": 525, "name": "Citizen n\u00b0512", "mass": 5}, {"id": 527, "name"Line truncated
{"nodes": [{"id": 215, "name": "Citizen n\u00b0202", "mass": 10}, {"id": 219, "name": "Citizen n\u00b0206", "mass": 10}, {"id": 221, "name": "Citizen n\u00b0208", "mass": 11}, {"id": 225, "name": "Citizen n\u00b0212", "mass": 9}, {"id": 227, "name": "Citizen n\u00b0214", "mass": 5}, {"id": 228, "name": "Citizen n\u00b0215", "mass": 8}, {"id": 231, "name": "Citizen n\u00b0218", "mass": 5}, {"id": 233, "name": "Citizen n\u00b0220", "mass": 10}, {"id": 243, "name": "Citizen n\u00b0230", "mass": 8}, {"id": 245, "name": "Citizen n\u00b0232", "mass": 9}, {"id": 248, "name": "Citizen n\u00b0235", "mass": 5}, {"id": 249, "name": "Citizen n\u00b0236", "mass": 8}, {"id": 251, "name": "Citizen n\u00b0238", "mass": 9}, {"id": 255, "name": "Citizen n\u00b0242", "mass": 10}, {"id": 257, "name": "Citizen n\u00b0244", "mass": 10}, {"id": 261, "name": "Citizen n\u00b0248", "mass": 10}, {"id": 263, "name": "Citizen n\u00b0250", "mass": 9}, {"id": 273, "name": "Citizen n\u00b0260", "mass": 10}, {"id": 275, "name": "Citizen n\u00b0262", "mass": 11}, {"id": 278, "name": "Citizen n\u00b0265", "mass": 10}, {"id": 279, "name": "Citizen n\u00b0266", "mass": 10}, {"id": 281, "name": "Citizen n\u00b0268", "mass": 10}, {"id": 285, "name": "Citizen n\u00b0272", "mass": 5}, {"id": 287, "name": "Citizen n\u00b0274", "mass": 9}, {"id": 291, "name": "Citizen n\u00b0278", "mass": 9}, {"id": 293, "name": "Citizen n\u00b0280", "mass": 10}, {"id": 303, "name": "Citizen n\u00b0290", "mass": 8}, {"id": 305, "name": "Citizen n\u00b0292", "mass": 9}, {"id": 309, "name": "Citizen n\u00b0296", "mass": 9}, {"id": 311, "name": "Citizen n\u00b0298", "mass": 8}, {"id": 315, "name": "Citizen n\u00b0302", "mass": 10}, {"id": 317, "name": "Citizen n\u00b0304", "mass": 10}, {"id": 321, "name": "Citizen n\u00b0308", "mass": 11}, {"id": 323, "name": "Citizen n\u00b0310", "mass": 6}, {"id": 333, "name": "Citizen n\u00b0320", "mass": 10}, {"id": 335, "name": "Citizen n\u00b0322", "mass": 10}, {"id": 339, "name": "Citizen n\u00b0326", "mass": 10}, {"id": 341, "name": "Citizen n\u00b0328", "mass": 10}, {"id": 345, "name": "Citizen n\u00b0332", "mass": 9}, {"id": 347, "name": "Citizen n\u00b0334", "mass": 8}, {"id": 348, "name": "Citizen n\u00b0335", "mass": 5}, {"id": 351, "name": "Citizen n\u00b0338", "mass": 9}, {"id": 353, "name": "Citizen n\u00b0340", "mass": 10}, {"id": 363, "name": "Citizen n\u00b0350", "mass": 9}, {"id": 365, "name": "Citizen n\u00b0352", "mass": 5}, {"id": 369, "name": "Citizen n\u00b0356", "mass": 8}, {"id": 371, "name": "Citizen n\u00b0358", "mass": 9}, {"id": 375, "name": "Citizen n\u00b0362", "mass": 11}, {"id": 377, "name": "Citizen n\u00b0364", "mass": 10}, {"id": 378, "name": "Citizen n\u00b0365", "mass": 10}, {"id": 381, "name": "Citizen n\u00b0368", "mass": 10}, {"id": 383, "name": "Citizen n\u00b0370", "mass": 10}, {"id": 393, "name": "Citizen n\u00b0380", "mass": 10}, {"id": 395, "name": "Citizen n\u00b0382", "mass": 10}, {"id": 398, "name": "Citizen n\u00b0385", "mass": 10}, {"id": 399, "name": "Citizen n\u00b0386", "mass": 10}, {"id": 401, "name": "Citizen n\u00b0388", "mass": 10}, {"id": 405, "name": "Citizen n\u00b0392", "mass": 9}, {"id": 407, "name": "Citizen n\u00b0394", "mass": 8}, {"id": 411, "name": "Citizen n\u00b0398", "mass": 8}, {"id": 413, "name": "Citizen n\u00b0400", "mass": 11}, {"id": 423, "name": "Citizen n\u00b0410", "mass": 6}, {"id": 425, "name": "Citizen n\u00b0412", "mass": 9}, {"id": 428, "name": "Citizen n\u00b0415", "mass": 8}, {"id": 429, "name": "Citizen n\u00b0416", "mass": 10}, {"id": 431, "name": "Citizen n\u00b0418", "mass": 5}, {"id": 435, "name": "Citizen n\u00b0422", "mass": 10}, {"id": 437, "name": "Citizen n\u00b0424", "mass": 11}, {"id": 441, "name": "Citizen n\u00b0428", "mass": 10}, {"id": 443, "name": "Citizen n\u00b0430", "mass": 8}, {"id": 453, "name": "Citizen n\u00b0440", "mass": 10}, {"id": 455, "name": "Citizen n\u00b0442", "mass": 10}, {"id": 459, "name": "Citizen n\u00b0446", "mass": 10}, {"id": 461, "name": "Citizen n\u00b0448", "mass": 10}, {"id": 465, "name": "Citizen n\u00b0452", "mass": 5}, {"id": 467, "name": "Citizen n\u00b0454", "mass": 10}, {"id": 471, "name": "Citizen n\u00b0458", "mass": 9}, {"id": 473, "name": "Citizen n\u00b0460", "mass": 10}, {"id": 483, "name": "Citizen n\u00b0470", "mass": 10}, {"id": 485, "name": "Citizen n\u00b0472", "mass": 5}, {"id": 489, "name": "Citizen n\u00b0476", "mass": 8}, {"id": 491, "name": "Citizen n\u00b0478", "mass": 9}, {"id": 495, "name": "Citizen n\u00b0482", "mass": 10}, {"id": 497, "name": "Citizen n\u00b0484", "mass": 10}, {"id": 498, "name": "Citizen n\u00b0485", "mass": 10}, {"id": 501, "name": "Citizen n\u00b0488", "mass": 10}, {"id": 503, "name": "Citizen n\u00b0490", "mass": 8}, {"id": 513, "name": "Citizen n\u00b0500", "mass": 11}, {"id": 515, "name": "Citizen n\u00b0502", "mass": 10}, {"id": 519, "name": "Citizen n\u00b0506", "mass": 10}, {"id": 521, "name": "Citizen n\u00b0508", "mass": 11}, {"id": 525, "name": "CiLine truncated