import sys
import os

import django
from django.core import management
from django.db import connection, close_old_connections, connections
from django.contrib.auth.models import User
from django.http import HttpResponse
from django.db import transaction

import troggle.settings
import troggle.parsers.caves
import troggle.parsers.people
import troggle.parsers.surveys
import troggle.parsers.logbooks
import troggle.parsers.QMs

def import_caves():
    print("-- Importing Caves to ",end="")
    print(django.db.connections.databases['default']['NAME'])
    # wrap the entire import in a transaction
    with transaction.atomic():
        troggle.parsers.caves.readcaves()

def import_people():
    print("-- Importing People (folk.csv) to ",end="")
    print(django.db.connections.databases['default']['NAME'])
    with transaction.atomic():
        troggle.parsers.people.LoadPersonsExpos()

def import_surveyscans():
    print("-- Importing Survey Scans")
    with transaction.atomic():
        troggle.parsers.surveys.LoadListScans()

def import_logbooks():
    print("-- Importing Logbooks")
    with transaction.atomic():
        troggle.parsers.logbooks.LoadLogbooks()

def import_QMs():
    print("-- Importing old QMs for 161, 204, 234 from CSV files")
    with transaction.atomic():
        troggle.parsers.QMs.Load_QMs()

def import_survex():
    # when this import is moved to the top with the rest it all crashes horribly
    with transaction.atomic():
        import troggle.parsers.survex 
    print("-- Importing Survex and Entrance Positions")
    print(" - Survex Blocks")
    with transaction.atomic():
        troggle.parsers.survex.LoadSurvexBlocks()
    print(" - Survex entrances x/y/z Positions")
    with transaction.atomic():
        troggle.parsers.survex.LoadPositions()

def import_loadpos():
    # when this import is moved to the top with the rest it all crashes horribly
    import troggle.parsers.survex 
    print(" - Survex entrances x/y/z Positions")
    with transaction.atomic():
        troggle.parsers.survex.LoadPositions()

def import_drawingsfiles():
    print("-- Importing Drawings files")
    with transaction.atomic():
        troggle.parsers.surveys.LoadDrawingFiles()