agenda_culturel/src/scripts/create_fake_events.py

46 lines
1.7 KiB
Python

from djipsum.faker import FakerModel
from agenda_culturel.models import Event
import random
from datetime import datetime, timedelta
def run():
tags = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
tags = [w for w in tags.replace(",", "").replace(".", "").split() if len(w) >= 3]
faker = FakerModel(app="agenda_culturel", model="Event")
def random_hour():
m = random.randint(0, 59)
h = random.randint(0, 23)
s = random.randint(0, 59)
return f"{h}:{m}:{s}"
for j in range(20):
sday = datetime.now() + timedelta(days=random.randint(0, 40))
fields = {
"title": faker.fake.text(max_nb_chars=100),
"status": Event.STATUS.PUBLISHED,
"category": faker.fake_relations(type="fk", field_name="category"),
"start_day": sday.date(),
"location": faker.fake.text(max_nb_chars=100),
"description": " ".join(faker.fake.paragraphs()),
"image": faker.fake.url(),
"image_alt": faker.fake.text(max_nb_chars=100),
"reference_urls": [
faker.fake.url() for i in range(0, random.randint(0, 5))
],
"tags": [
tags[random.randint(0, len(tags) - 1)]
for i in range(0, random.randint(0, 10))
],
}
if random.randint(0, 1) == 1:
fields["start_time"] = random_hour()
else:
if random.randint(0, 5) == 1:
fields["end_day"] = (sday + timedelta(days=random.randint(0, 6))).date()
if random.randint(0, 1) == 1:
fields["end_time"] = random_hour()
faker.create(fields)