Add CSV govplan importer
This commit is contained in:
parent
df92fa5c27
commit
a0447d7a15
4 changed files with 121 additions and 0 deletions
0
froide_govplan/management/commands/__init__.py
Normal file
0
froide_govplan/management/commands/__init__.py
Normal file
31
froide_govplan/management/commands/import_govplan.py
Normal file
31
froide_govplan/management/commands/import_govplan.py
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
import csv
|
||||
import json
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from ...models import Government
|
||||
from ...utils import PlanImporter
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Loads public bodies"
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument("government", type=str)
|
||||
parser.add_argument("json_mapping", type=str)
|
||||
parser.add_argument("filename", type=str)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
government = Government.objects.get(slug=options["government"])
|
||||
|
||||
with open(options["json_mapping"]) as f:
|
||||
col_mapping = json.load(f)
|
||||
|
||||
importer = PlanImporter(government, col_mapping=col_mapping)
|
||||
|
||||
filename = options["filename"]
|
||||
with open(filename) as csv_file:
|
||||
reader = csv.DictReader(csv_file)
|
||||
importer.import_rows(reader)
|
||||
|
||||
self.stdout.write("Import done.\n")
|
||||
Loading…
Add table
Add a link
Reference in a new issue