def child_indexation(self, context, _factory=IndexationPageFactory(IndexationPage)): alertMsg = "" context.remember(self.querier, IQuerier) INDEXER_CONFIG.load_from_files() # TODO: check if the added folders are valid # Actions (add/remove) on private folders addPrivateFolder = context.arg('addPrivateFolder', 0) if addPrivateFolder: if _is_valid_directory(addPrivateFolder): INDEXER_CONFIG.private_dir.append(addPrivateFolder) INDEXER_CONFIG.save() else: alertMsg = "\\'%s\\' is not a valid folder" % addPrivateFolder removePrivateFolder = context.arg('removePrivateFolder', 0) if removePrivateFolder: try: INDEXER_CONFIG.private_dir.remove(removePrivateFolder) INDEXER_CONFIG.save() except ValueError: print "Folder '%s' not in the private directory list" # Actions (add/remove) on public folders addPublicFolder = context.arg('addPublicFolder', 0) if addPublicFolder: if _is_valid_directory(addPublicFolder): INDEXER_CONFIG.public_dir.append(addPublicFolder) INDEXER_CONFIG.save() else: alertMsg = "\\'%s\\' is not a valid folder" % addPublicFolder removePublicFolder = context.arg('removePublicFolder', 0) if removePublicFolder: try: INDEXER_CONFIG.public_dir.remove(removePublicFolder) INDEXER_CONFIG.save() except ValueError: print "Folder '%s' not in the private directory list" # Actions (add/remove) on skipped folders addSkippedFolder = context.arg('addSkippedFolder', 0) if addSkippedFolder: if _is_valid_directory(addSkippedFolder): INDEXER_CONFIG.skip_dir.append(addSkippedFolder) INDEXER_CONFIG.save() else: alertMsg = "\\'%s\\' is not a valid folder" % addSkippedFolder removeSkippedFolder = context.arg('removeSkippedFolder', 0) if removeSkippedFolder: try: INDEXER_CONFIG.skip_dir.remove(removeSkippedFolder) INDEXER_CONFIG.save() except ValueError: print "Folder '%s' not in the private directory list" start = int(context.arg('start', 0)) indexationPage = _factory.clientFactory(context) if start == 0: if indexer.is_running(): msg = "Indexer running" else: msg = "Indexer not running" else: if indexer.is_running(): msg = "Indexer already running" else: msg = "Indexer started" nodeConfig = INodeConfiguration(context) indexer.start_as_thread(nodeConfig, _factory) indexationPage.msg = msg indexationPage.alertmessage = alertMsg return indexationPage