def this_is_the_first_run(self, _) -> None: """ Called upon the very first GTG startup. This function is needed only in this backend, because it can be used as default one. The xml parameter is an object containing GTG default tasks. It will be saved to a file, and the backend will be set as default. @param xml: an xml object containing the default tasks. """ filepath = self.get_path() if versioning.is_required(filepath): log.warning('Found old file. Running versioning code.') old_path = os.path.join(DATA_DIR, 'gtg_tasks.xml') tree = versioning.convert(old_path, self.datastore) xml.save_file(filepath, tree) else: root = firstrun_tasks.generate() xml.create_dirs(self.get_path()) xml.save_file(self.get_path(), root) self._parameters[self.KEY_DEFAULT_BACKEND] = True # Load the newly created file self.data_tree = xml.open_file(self.get_path(), 'gtgData') self.task_tree = self.data_tree.find('tasklist') self.tag_tree = self.data_tree.find('taglist') xml.backup_used = None
def initialize(self): """ This is called when a backend is enabled """ super(Backend, self).initialize() filepath = self.get_path() if versioning.is_required(filepath): log.warning('Found old file. Running versioning code.') old_path = os.path.join(DATA_DIR, 'gtg_tasks.xml') tree = versioning.convert(old_path, self.datastore) xml.save_file(filepath, tree) elif not os.path.isfile(filepath): root = firstrun_tasks.generate() xml.create_dirs(self.get_path()) xml.save_file(self.get_path(), root) self.data_tree = xml.open_file(filepath, 'gtgData') self.task_tree = self.data_tree.find('tasklist') self.tag_tree = self.data_tree.find('taglist') self.search_tree = self.data_tree.find('searchlist') self.datastore.load_tag_tree(self.tag_tree) self.datastore.load_search_tree(self.search_tree) # Make safety daily backup after loading xml.save_file(self.get_path(), self.data_tree) xml.write_backups(self.get_path())