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.drawings
import troggle.parsers.logbooks
import troggle.parsers.QMs
import troggle.parsers.scans 

'''Master data import.
Used only by databaseReset.py and online controlpanel.
'''

def import_caves():
    print("-- Importing Caves to ",end="")
    print(django.db.connections.databases['default']['NAME'])
    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.load_people_expos()

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

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
    print("-- Importing Survex and Entrance Positions")
    with transaction.atomic():
        import troggle.parsers.survex 
    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.drawings.load_drawings_files()