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)
Beispiel #2
0
 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
Beispiel #6
0
 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