[TASK] Make ProjectManager work properly.
This commit is contained in:
parent
9e58a69285
commit
bc2ebea8de
|
@ -13,14 +13,13 @@ class Project():
|
||||||
self._is_open = False
|
self._is_open = False
|
||||||
self._is_error = False
|
self._is_error = False
|
||||||
self._sa = {} # Object namespace for sqlalchemy related objects
|
self._sa = {} # Object namespace for sqlalchemy related objects
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
""" Destructor to close the citavi file. """
|
""" Destructor to close the citavi file. """
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
def is_valid(self):
|
def is_valid(self):
|
||||||
""" This method returns False in case the given sqlite file is not a valid Citavi project. """
|
""" This method returns False in case the given sqlite file is not a valid Citavi project. """
|
||||||
self.open()
|
|
||||||
return self._is_open and not self._is_error
|
return self._is_open and not self._is_error
|
||||||
|
|
||||||
def get_persons(self):
|
def get_persons(self):
|
||||||
|
@ -32,7 +31,19 @@ class Project():
|
||||||
except:
|
except:
|
||||||
self._is_error = True
|
self._is_error = True
|
||||||
# TODO: better error handling!
|
# TODO: better error handling!
|
||||||
print "An error occured within a get_person call!"
|
print "An error occured within a get_persons call!"
|
||||||
|
return False
|
||||||
|
|
||||||
|
def get_person_by_uuid(self, uuid):
|
||||||
|
""" Returns a person from the Citavi project by their uuid. """
|
||||||
|
try:
|
||||||
|
person_class = self._sa_sqlite_autobase.classes.Person
|
||||||
|
citavi_person = self._sa_sqlite_session.query(person_class).filter('ID=\'' + str(uuid) + '\'').all()
|
||||||
|
return citavi_person[0]
|
||||||
|
except:
|
||||||
|
self._is_error = True
|
||||||
|
# TODO: better error handling!
|
||||||
|
print "An error occured within a get_person_by_uuid call!"
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def open(self):
|
def open(self):
|
||||||
|
@ -73,24 +84,35 @@ class Project():
|
||||||
self._is_open = True
|
self._is_open = True
|
||||||
|
|
||||||
|
|
||||||
|
class ProjectManager():
|
||||||
|
""" A backend to provide fast access to Citavi identity data. """
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class Mapper():
|
|
||||||
""" A class encapsulating the django models for mapping against Citavi projects. """
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
""" Constructor initializing dictionary for instances of Project. """
|
||||||
|
self._projects = {}
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
pass
|
""" Destructor making sure all Project instances are properly deconstructed. """
|
||||||
|
self._projects.clear()
|
||||||
|
|
||||||
|
|
||||||
|
def get_path_for_project_id(self, project_id):
|
||||||
|
return 'media/citavi/project_' + str(project_id) + '.ctt4'
|
||||||
|
|
||||||
|
def _add_project(self, project_id):
|
||||||
|
""" Internal method to add a Project instance if not existing. """
|
||||||
|
if project_id not in self._projects:
|
||||||
|
self._projects[project_id] = Project(self.get_path_for_project_id(project_id))
|
||||||
|
self._projects[project_id].open()
|
||||||
|
|
||||||
|
def get_person_by_uuid(self, project_id, uuid):
|
||||||
|
self._add_project(project_id)
|
||||||
|
return self._projects[project_id].get_person_by_uuid(uuid)
|
||||||
|
|
||||||
|
def get_persons_from_project(self, project_id):
|
||||||
|
self._add_project(project_id)
|
||||||
|
return self._projects[project_id].get_persons()
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def import_sqlite(project_id, sqlite_file):
|
def import_sqlite(project_id, sqlite_file):
|
||||||
print "This is import_sqlite speaking!"
|
print "This is import_sqlite speaking!"
|
||||||
print project_id
|
print project_id
|
||||||
|
|
Loading…
Reference in New Issue