summaryrefslogtreecommitdiff
path: root/ishtar_common/management/commands/ishtar_import.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2016-01-10 15:35:51 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2016-01-10 15:35:51 +0100
commit9de20f503852855b5dda8723693c5d156232d16d (patch)
tree8d8e7c09faf179b2fed07878d1cf450a245a78d0 /ishtar_common/management/commands/ishtar_import.py
parent5e0b683ccc3851a4092e4d459a43fb557299d47e (diff)
parent23622f70dc4b6b544dcd99994e46ea20ff309777 (diff)
downloadIshtar-9de20f503852855b5dda8723693c5d156232d16d.tar.bz2
Ishtar-9de20f503852855b5dda8723693c5d156232d16d.zip
Merge branch 'master' into master-land-planner-2999
Diffstat (limited to 'ishtar_common/management/commands/ishtar_import.py')
-rw-r--r--ishtar_common/management/commands/ishtar_import.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/ishtar_common/management/commands/ishtar_import.py b/ishtar_common/management/commands/ishtar_import.py
new file mode 100644
index 000000000..aba1e45d5
--- /dev/null
+++ b/ishtar_common/management/commands/ishtar_import.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from django.core.management.base import BaseCommand, CommandError
+
+from ishtar_common import models
+
+
+class Command(BaseCommand):
+ help = "./manage.py ishtar_import <command> <import_id>\n\n"\
+ "Launch the importation a configured import.\n"\
+ "<command> must be: \"analyse\", \"import\" or \"archive\"."
+
+ def handle(self, *args, **options):
+ if not args or len(args) < 2:
+ raise CommandError("<command> and <import_id> are mandatory")
+ command = args[0]
+ if args[0] not in ["analyse", "import", "archive"]:
+ raise CommandError(
+ "<command> must be: \"analyse\", \"import\" or \"archive\"."
+ )
+ try:
+ imp = models.Import.objects.get(pk=args[1])
+ except (ValueError, models.Import.DoesNotExist):
+ raise CommandError("{} is not a valid import ID".format(args[0]))
+ if command == 'analyse':
+ imp.initialize()
+ self.stdout.write("* {} analysed\n".format(imp))
+ self.stdout.flush()
+ elif command == 'import':
+ self.stdout.write("* import {}\n".format(imp))
+ imp.importation()
+ self.stdout.write("* {} imported\n".format(imp))
+ self.stdout.flush()
+ elif command == 'archive':
+ imp.archive()
+ self.stdout.write("*{} archived\n".format(imp))
+ self.stdout.flush()