← Back to team overview

openlp-core team mailing list archive

[Bug 1624661] Re: Missing DB in unmounted disk results in Traceback

 

https://gist.github.com/anonymous/10c11792c0b37ec3693bf9494017a3aa

This code fixes the issue, but I can't make it work with:
QtWidgets.QMessageBox.No/Yes.

At this point I'm getting rather frustrated with this issue and would
gladly give it up for someone who's a better programmer.

\openlp\core\common\applocation.py

    @staticmethod
    def get_data_path():
        """
        Return the path OpenLP stores all its data under.
        """
        from openlp.core.lib.ui import critical_error_message_box
        from openlp.core.common import AppLocation, Settings, translate
        # Check if we have a different data location.
        if Settings().contains('advanced/data path'):
            path = Settings().value('advanced/data path')
            if not os.path.exists(path):
                critical_error_message_box(translate('OpenLP.Manager', 'Database Error'),
                                           translate('OpenLP.Manager',
                                                     'OpenLP cannot load your database.\n\nDatabase:'))
                Settings().remove('advanced/data path')
                path = AppLocation.get_directory(AppLocation.DataDir)
                check_directory_exists(path)
        else:
            path = AppLocation.get_directory(AppLocation.DataDir)
            check_directory_exists(path)
        return os.path.normpath(path)

-- 
You received this bug notification because you are a member of OpenLP
Core, which is subscribed to OpenLP.
https://bugs.launchpad.net/bugs/1624661

Title:
  Missing DB in unmounted disk results in Traceback

Status in OpenLP:
  In Progress

Bug description:
  When data folder was moved from E: to D:, the following traceback
  appears on startup after a few "Missing DB messages.

  This is probably happening because the drive E: was dismounted and no
  longer available. Changing the path in registry fixed this issue.

  Trunk 2696 | Win 10

  Traceback (most recent call last):
    File "openlp.py", line 44, in <module>
      main()
    File "D:\bzr\openlp\trunk\openlp\core\__init__.py", line 392, in main
      sys.exit(application.run(qt_args))
    File "D:\bzr\openlp\trunk\openlp\core\common\openlpmixin.py", line 59, in wrapped
      raise e
    File "D:\bzr\openlp\trunk\openlp\core\common\openlpmixin.py", line 54, in wrapped
      return func(*args, **kwargs)
    File "D:\bzr\openlp\trunk\openlp\core\__init__.py", line 142, in run
      Registry().execute('bootstrap_initialise')
    File "D:\bzr\openlp\trunk\openlp\core\common\registry.py", line 137, in execute
      result = function(*args, **kwargs)
    File "D:\bzr\openlp\trunk\openlp\core\common\openlpmixin.py", line 59, in wrapped
      raise e
    File "D:\bzr\openlp\trunk\openlp\core\common\openlpmixin.py", line 54, in wrapped
      return func(*args, **kwargs)
    File "D:\bzr\openlp\trunk\openlp\core\lib\pluginmanager.py", line 59, in bootstrap_initialise
      self.hook_media_manager()
    File "D:\bzr\openlp\trunk\openlp\core\common\openlpmixin.py", line 59, in wrapped
      raise e
    File "D:\bzr\openlp\trunk\openlp\core\common\openlpmixin.py", line 54, in wrapped
      return func(*args, **kwargs)
    File "D:\bzr\openlp\trunk\openlp\core\lib\pluginmanager.py", line 123, in hook_media_manager
      plugin.create_media_manager_item()
    File "D:\bzr\openlp\trunk\openlp\core\lib\plugin.py", line 203, in create_media_manager_item
      self.media_item = self.media_item_class(self.main_window.media_dock_manager.media_dock, self)
    File "D:\bzr\openlp\trunk\openlp\plugins\images\lib\mediaitem.py", line 55, in __init__
      super(ImageMediaItem, self).__init__(parent, plugin)
    File "D:\bzr\openlp\trunk\openlp\core\lib\mediamanageritem.py", line 83, in __init__
      self.setup_item()
    File "D:\bzr\openlp\trunk\openlp\plugins\images\lib\mediaitem.py", line 68, in setup_item
      self.fill_groups_combobox(self.choose_group_form.group_combobox)
    File "D:\bzr\openlp\trunk\openlp\plugins\images\lib\mediaitem.py", line 300, in fill_groups_combobox
      image_groups = self.manager.get_all_objects(ImageGroups, ImageGroups.parent_id == parent_group_id)
    File "D:\bzr\openlp\trunk\openlp\core\lib\db.py", line 368, in get_all_objects
      query = self.session.query(object_class)
  AttributeError: 'NoneType' object has no attribute 'query'

To manage notifications about this bug go to:
https://bugs.launchpad.net/openlp/+bug/1624661/+subscriptions


References