mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 14:13:21 +00:00
fix family relations in generate_galaxy_test_data.py
This commit is contained in:
parent
aa07fa9207
commit
f1fa8d34bf
@ -128,7 +128,7 @@ class Command(BaseCommand):
|
|||||||
self.clubs.append(Club(unix_name=f"galaxy-club-{i}", name=f"club-{i}"))
|
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
|
# We don't need to create corresponding groups here, as the Galaxy doesn't care about them
|
||||||
Club.objects.bulk_create(self.clubs)
|
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):
|
def make_users(self):
|
||||||
"""
|
"""
|
||||||
@ -175,20 +175,22 @@ class Command(BaseCommand):
|
|||||||
Then it will take 14 other citizen among the previous 200
|
Then it will take 14 other citizen among the previous 200
|
||||||
(godfathers are usually older), and apply another
|
(godfathers are usually older), and apply another
|
||||||
heuristic to determine whether they should have a family link
|
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:
|
if self.users is None:
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
"The `make_users()` method must be called before `make_families()`"
|
"The `make_users()` method must be called before `make_families()`"
|
||||||
)
|
)
|
||||||
for i in range(200, self.NB_USERS):
|
|
||||||
godfathers = []
|
godfathers = []
|
||||||
|
for i in range(200, self.NB_USERS):
|
||||||
for j in range(i - 200, i, 14): # this will loop 14 times (14² = 196)
|
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]
|
u1 = self.users[i]
|
||||||
u2 = self.users[j]
|
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}")
|
self.logger.info(f"Making {u2} the godfather of {u1}")
|
||||||
godfathers.append(u2)
|
User.godfathers.through.objects.bulk_create(godfathers)
|
||||||
u1.godfathers.set(godfathers)
|
|
||||||
|
|
||||||
def make_club_memberships(self):
|
def make_club_memberships(self):
|
||||||
"""
|
"""
|
||||||
@ -295,7 +297,7 @@ class Command(BaseCommand):
|
|||||||
self.picts[i].compressed.name = self.picts[i].name
|
self.picts[i].compressed.name = self.picts[i].name
|
||||||
self.picts[i].thumbnail.name = self.picts[i].name
|
self.picts[i].thumbnail.name = self.picts[i].name
|
||||||
Picture.objects.bulk_create(self.picts)
|
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):
|
def make_pictures_memberships(self):
|
||||||
"""
|
"""
|
||||||
@ -377,8 +379,13 @@ class Command(BaseCommand):
|
|||||||
u1 = self.users[uid]
|
u1 = self.users[uid]
|
||||||
u2 = self.users[uid - 100]
|
u2 = self.users[uid - 100]
|
||||||
u3 = self.users[uid + 100]
|
u3 = self.users[uid + 100]
|
||||||
u1.godfathers.add(u2)
|
User.godfathers.through.objects.bulk_create(
|
||||||
u1.godchildren.add(u3)
|
[
|
||||||
|
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}")
|
self.logger.info(f"{u1} will be important and close to {u2} and {u3}")
|
||||||
pictures_tags = []
|
pictures_tags = []
|
||||||
for p in range(uid - 400, uid - 200):
|
for p in range(uid - 400, uid - 200):
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user