Add interests
This commit is contained in:
parent
05a2e2ca3f
commit
4b19febdf6
55
data/interests.json
Normal file
55
data/interests.json
Normal file
|
@ -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"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
49
profiles/management/commands/import_interests.py
Normal file
49
profiles/management/commands/import_interests.py
Normal file
|
@ -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")
|
Loading…
Reference in a new issue