def _process_book(self, metadata): generated_uuid = str(uuid4()) sc_metadata = get_sc_metadata() user = sc_metadata.get('operator') scanningcenter = sc_metadata.get('scanningcenter') scanner = sc_metadata.get('scanner') boxid = self.current_boxid Logger.info('Creating dummy book {}'.format(generated_uuid)) book = self.library.new_book(generated_uuid, operator=user, scanner=scanner, scanningcenter=scanningcenter, boxid=boxid) book.initialze_metaxml() slip_metadata = metadata slip_metadata['boxid'] = boxid slip_metadata['datetime'] = datetime.now() slip_metadata['reason'] = 'Duplicate' slip_metadata['comment'] = 'BOXED' # This is necessary to tell rejection tracker to put this event in a separate itemset slip_metadata['boxed'] = True slip_metadata['operator'] = book.operator book.set_slip_metadata(REJECTED_DO_NOT_WANT_SLIP, slip_metadata.copy()) # This is mostly a placeholder to demonstrate we can tell the user what to do on screen. self.banner_message = 'Put this book in box {}'.format( metadata.get('keep_dupe_status_code')) task_handler = self._reject_and_print_slip(book, slip_metadata) \ if self.print_slip \ else self._reject_without_printing_slip(book) task_handler.task.fbind('on_end', self._on_task_end) self.task_scheduler.schedule(task_handler.task)
def _launch_test(self): Logger.info('Creating Network Test task') task_handler = GenericUIHandler( task_type=NetworkCheckTask, scheduling_callback=self.task_scheduler.schedule, increment_callback=self._test_result_handler, ) self.task_scheduler.schedule(task_handler.task)
def _load_task_result_handler(self, ui_handler, task): Logger.info('LOAD TASK: Was task completed successfully? {}'.format(task.error)) if not task.error: book = ui_handler.book book.reload_metadata() Logger.info('Now printing slip for {}'.format(book)) task_handler = self._prepare_slip_print_task(book) self.task_scheduler.schedule(task_handler.task)
def _load_book(self, identifier): Logger.info('Creating dummy book {}'.format(identifier)) generated_uuid = str(uuid4()) book = self.library.new_book(generated_uuid) Logger.info('Creating Load task') task_handler = LiteMetadataViaIdentifierTaskUIHandler( identifier = identifier, book = book, end_handler=self._load_task_result_handler, ) self.task_scheduler.schedule(task_handler.task)
def _prepare_slip_print_task(self, book): Logger.info('Now printing slip for {}'.format(book)) slip_metadata = {} slip_type = SCANNED_SLIP if ('title' in book.metadata and 'creator' in book.metadata) \ else SCANNED_NO_MARC_SLIP slip_metadata['identifier'] = book.identifier slip_metadata['datetime'] = datetime.now() task = GenerateAndPrintSlipUIHandler( type=slip_type, book=book, slip_metadata=slip_metadata, end_handler= self._print_task_result_handler) return task
def start_test(self, *args): Logger.info('Starting test') self._log('Test started...') self._launch_test()
def load_identifier(self, identifier): Logger.info('User wants to load {}'.format(identifier)) self._load_book(identifier)
def _load_book(self, identifier): Logger.info('Creating Load task') task_handler = GenericUIHandler(task_type=DownloadBookTask, library=self.library, identifier=identifier) self.task_scheduler.schedule(task_handler.task)
def _print_task_result_handler(self, ui_handler, task): Logger.info('PRINT TASK: Was task completed successfully? {}'.format(task.error)) Logger.info('Deleting dummy book {}'.format(task._book)) task._book.do_move_to_trash() task._book.do_delete_anyway()
__credits__ = [ 'Raj Kumar', 'Giovani Damiola', 'Filip Radovic', 'Wester De Weerdt' ] __maintainer__ = 'Davide Semenzin' __email__ = '*****@*****.**' __status__ = scribe_globals.release_status __date__ = scribe_globals.release_date __version__ = scribe_globals.release_version # Override environment variables environ['KIVY_CLIPBOARD'] = 'sdl2' environ['KIVY_GL_BACKEND'] = 'gl' # Log app's build number from ia_scribe.logger import Logger Logger.info('Scribe3App: v{}'.format(scribe_globals.BUILD_NUMBER)) # Override Kivy 1.10 default font because Scribe app does not use it. # This enables us to remove Roboto font from distribution from kivy.config import Config Config.set('kivy', 'default_font', scribe_globals.DEFAULT_FONT_FILES) # Add resources paths from kivy.resources import resource_add_path if getattr(sys, 'frozen', False): resource_add_path(scribe_globals.APP_WORKING_DIR) resource_add_path(scribe_globals.ASSETS_DIR) resource_add_path(scribe_globals.IMAGES_DIR) resource_add_path(scribe_globals.SOUNDS_DIR) # Register app's fonts