diff --git a/data/interests.json b/data/interests.json new file mode 100644 index 0000000..66337fb --- /dev/null +++ b/data/interests.json @@ -0,0 +1,55 @@ +[ + { + "name": "occupation", + "keywords": [ + {"keyword" : "ZAD NDDL"}, + {"keyword" : "Organiser un squat"}, + {"keyword" : "mobilisation et rassemblement"} + ], + "places": [ + {"place" : "Zad NDDL"}, + {"place" : "Zad Bure"} + ], + "websites": [ + {"website": "zad nadir"} + ], + "events": [ + {"event": "Rassemblement de soutien pour Bure"} + ] + }, + { + "name": "LGBT", + "keywords": [ + {"keyword" : "Discrimniation sexistes, quelles actions ?"}, + {"keyword" : "gender queer Paris"}, + {"keyword" : "Existrans Paris"} + ], + "places": [ + {"place" : "La Mutinerie"} + ], + "websites": [ + {"website": "emmaclit"}, + {"website": "paris-luttes info"} + ], + "events": [ + {"event": "Création d'un serveur mail"} + ] + }, + { + "name": "Anti pub", + "keywords": [ + {"keyword" : "Affichage JCDecaux"}, + {"keyword" : "Anti-pub"}, + {"keyword" : "Journée contre la publicité"} + ], + "places": [ + {"place" : "Centre Social Autogéré Vaydom"} + ], + "websites": [ + {"website": "paris-luttes info"} + ], + "events": [ + {"event": "Atelier Anti-Pub"} + ] + } +] diff --git a/profiles/management/commands/import_interests.py b/profiles/management/commands/import_interests.py new file mode 100644 index 0000000..1776c3d --- /dev/null +++ b/profiles/management/commands/import_interests.py @@ -0,0 +1,49 @@ +""" Small module that import interests into the database. +""" + +import json +from datetime import datetime +from django.core.management.base import BaseCommand +from django.db import models +from profiles.models import Keyword, Interest, Place, Website, Event + +def import_file(filename): + with open(filename, mode='r') as file: + data = json.load(file) + for interest in data: + import_interest(interest) + + +def import_interest(_interest): + keywords = [] + places = [] + websites = [] + for keyword in _interest.get("keywords", []): + if not Keyword.objects.get(keyword["keyword"]): + keywords.append( + Keyword( + text=keyword["keyword"] + ) + ) + print("New keyword %s" % new_keywords) + else: + keywords.append(Keyword.objects.get(text=keyword["keyword"])) + for place in _interest.get("places", []): + places.append(Place.objects.get(name=place["place"])) + for website in _interest.get("websites", []): + websites.append(Website.objects.get(name=website["website"])) + + interest = Interest( + name=_interest.get("name", ""), + ) + for keyword in keywords: + interest.keywords.add(keyword) + for place in places: + interest.places.add(place) + for website in websites: + interest.websites.add(website) + interest.save() + +class Command(BaseCommand): + def handle(self, *args, **kwargs): + import_file("data/events.json")