From 5ad2ffc57b3ab24b52bc480f03dd316ba961a081 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Wed, 17 Jul 2019 13:40:36 +0200
Subject: [PATCH] Add management command for import.

---
 .../apps/untis/management/commands/__init__.py    |  0
 .../untis/management/commands/untis_import.py     | 15 +++++++++++++++
 biscuit/apps/untis/util.py                        |  2 +-
 setup.py                                          |  3 ++-
 4 files changed, 18 insertions(+), 2 deletions(-)
 create mode 100644 biscuit/apps/untis/management/commands/__init__.py
 create mode 100644 biscuit/apps/untis/management/commands/untis_import.py

diff --git a/biscuit/apps/untis/management/commands/__init__.py b/biscuit/apps/untis/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/biscuit/apps/untis/management/commands/untis_import.py b/biscuit/apps/untis/management/commands/untis_import.py
new file mode 100644
index 0000000..f065c9e
--- /dev/null
+++ b/biscuit/apps/untis/management/commands/untis_import.py
@@ -0,0 +1,15 @@
+from django.core.management.base import BaseCommand
+from django.utils.translation import gettext as _
+
+from ...util import untis_import_xml
+
+
+class Command(BaseCommand):
+    def add_arguments(self, parser):
+        parser.add_argument('untis_xml_path', help=_(
+            'Path to Untis XML export file'))
+
+    def handle(self, *args, **options):
+        untis_xml = open(options['untis_xml_path'], 'rb')
+
+        untis_import_xml(None, untis_xml)
diff --git a/biscuit/apps/untis/util.py b/biscuit/apps/untis/util.py
index 8ec19df..f9288ce 100644
--- a/biscuit/apps/untis/util.py
+++ b/biscuit/apps/untis/util.py
@@ -1,12 +1,12 @@
 from datetime import date, time
 from xml.dom import minidom
 
-from django.contrib import messages
 from django.utils.translation import ugettext_lazy as _
 
 from biscuit.apps.cambro.models import Room
 from biscuit.apps.chronos.models import Subject, TimePeriod, Lesson
 from biscuit.core.models import Group, Person
+from biscuit.core.util import messages
 
 
 def get_child_node_text(node, tag):
diff --git a/setup.py b/setup.py
index f030cb2..984527b 100755
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,8 @@ setup(
     author="Teckids e.V.",
     author_email="verein@teckids.org",
     packages=[
-        'biscuit.apps.untis'
+        'biscuit.apps.untis',
+        'biscuit.apps.untis.management.commands'
     ],
     namespace_packages=[
         'biscuit',
-- 
GitLab