7155: Support creating directories in various scenarios

This commit is contained in:
Paul Franklin 2015-03-18 14:01:13 -07:00
parent c40ea85727
commit 64ef033724
2 changed files with 20 additions and 6 deletions

View File

@ -520,6 +520,7 @@ class ReportDialog(ManagedWindow):
# we will need to create the file/dir # we will need to create the file/dir
# need to make sure we can create in the parent dir # need to make sure we can create in the parent dir
parent_dir = os.path.dirname(os.path.normpath(self.target_path)) parent_dir = os.path.dirname(os.path.normpath(self.target_path))
if os.path.isdir(parent_dir):
if not os.access(parent_dir, os.W_OK): if not os.access(parent_dir, os.W_OK):
ErrorDialog(_('Permission problem'), ErrorDialog(_('Permission problem'),
_("You do not have permission to create " _("You do not have permission to create "
@ -528,6 +529,13 @@ class ReportDialog(ManagedWindow):
"the permissions.") % self.target_path, "the permissions.") % self.target_path,
parent=self.window) parent=self.window)
return None return None
else:
ErrorDialog(_('No directory'),
_('There is no directory %s.\n\n'
'Please select another directory '
'or create it.') % parent_dir,
parent=self.window)
return None
self.set_default_directory(os.path.dirname(self.target_path) + os.sep) self.set_default_directory(os.path.dirname(self.target_path) + os.sep)
self.options.handler.output = self.target_path self.options.handler.output = self.target_path

View File

@ -139,6 +139,12 @@ class GrampsXmlWriter(UpdateCallback):
"Please make sure you have write access to the " "Please make sure you have write access to the "
"directory and try again.")) "directory and try again."))
return 0 return 0
else:
raise DbWriteFailure(_('No directory'),
_('There is no directory %s.\n\n'
'Please select another directory '
'or create it.') % base )
return 0
if os.path.exists(filename): if os.path.exists(filename):
if not os.access(filename, os.W_OK): if not os.access(filename, os.W_OK):