From e43ed81638922c7b9b159216737abe1947d43533 Mon Sep 17 00:00:00 2001 From: Andros Fenollosa Date: Fri, 12 Nov 2021 13:21:37 +0100 Subject: [PATCH] Add fake data --- Makefile | 14 +++++++++----- TODO | 1 - scripts/create_categories.py | 9 +++++++++ scripts/create_talks.py | 31 +++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 scripts/create_categories.py create mode 100644 scripts/create_talks.py diff --git a/Makefile b/Makefile index 97e2be6..6942449 100644 --- a/Makefile +++ b/Makefile @@ -15,15 +15,19 @@ docker.recreate.django: ## Recreate Django image run.loaddata: ## Minimal load data # Remove database - docker-compose -f docker-compose.dev.yaml exec -T django bash -c "python3 manage.py flush --noinput" + docker-compose -f docker-compose.yaml exec -T django bash -c "python3 manage.py flush --noinput" # Remove media sudo rm -rf media # Migrate - docker-compose -f docker-compose.dev.yaml exec -T django bash -c "python3 manage.py migrate" - # Add provinces, towns and categories - docker-compose -f docker-compose.dev.yaml exec -T db bash -c "psql -h localhost -d kualitte -U postgres -p 5432 -a -q -f /usr/src/app/scripts/provincias.sql" + docker-compose -f docker-compose.yaml exec -T django bash -c "python3 manage.py migrate" + # Add categories + docker-compose -f docker-compose.yaml exec -T django bash -c "python3 manage.py runscript create_categories" + # Add profiles + docker-compose -f docker-compose.yaml exec -T django bash -c "python3 manage.py runscript create_profiles" + # Add talks + docker-compose -f docker-compose.yaml exec -T django bash -c "python3 manage.py runscript create_talks" run.server: # Run server - docker-compose -f docker-compose.dev.yaml up + docker-compose -f docker-compose.yaml up diff --git a/TODO b/TODO index ba3e4cd..0c23b3e 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,2 @@ -- Add script with fake data. - List talks. - Single talk. \ No newline at end of file diff --git a/scripts/create_categories.py b/scripts/create_categories.py new file mode 100644 index 0000000..c08928b --- /dev/null +++ b/scripts/create_categories.py @@ -0,0 +1,9 @@ +from app.website.models import Category +from faker import Faker + +def run(): + fake = Faker() + + # 5 categories + for word in [fake.unique.sentence(nb_words=1)[0:-1] for i in range(5)]: + Category(name=word).save() \ No newline at end of file diff --git a/scripts/create_talks.py b/scripts/create_talks.py new file mode 100644 index 0000000..500fb5f --- /dev/null +++ b/scripts/create_talks.py @@ -0,0 +1,31 @@ +from app.website.models import Category, Talk, Profile +from faker import Faker + +# Get random imagen from url +from django.core.files import File +import requests +import time +from tempfile import NamedTemporaryFile +from random import randint + +def run(): + fake = Faker() + + # 100 talks + for title in [fake.unique.sentence(nb_words=10)[0:-1] for i in range(100)]: + my_talk = Talk( + title=title, + category=Category.objects.order_by("?")[0], + author=Profile.objects.order_by("?")[0], + is_draft=False, + content=fake.text(max_nb_chars=1000), + ) + my_talk.save() + + # Add a image + url_random_imagen = f"https://cdn.jsdelivr.net/gh/tanrax/place-image-random/images/{randint(1, 1000)}.jpg" + r = requests.get(url_random_imagen) + img_temp = NamedTemporaryFile(delete=True) + img_temp.write(r.content) + img_temp.flush() + my_talk.image.save(f"random_{int(time.time() * 1000)}.jpg", File(img_temp)) \ No newline at end of file