Fix temporary project not cleanup with save as

This commit is contained in:
Julien Duponchelle committed 2015-05-04 14:04:57 +02:00
1 parent 0dea63c9ea
commit d2d91ebdea
3 files changed
+19 -6

No files matched your search

+2 -1
View File
@@ -81,13 +81,14 @@ class ProjectHandler:
pm = ProjectManager.instance()
project = pm.get_project(request.match_info["project_id"])
project.temporary = request.json.get("temporary", project.temporary)
project.name = request.json.get("name", project.name)
project_path = request.json.get("path", project.path)
if project_path != project.path:
project.path = project_path
for module in MODULES:
yield from module.instance().project_moved(project)
# Very important we need to remove temporary flag after moving the project
project.temporary = request.json.get("temporary", project.temporary)
response.json(project)
@classmethod
+13
View File
@@ -139,9 +139,22 @@ class Project:
if path != self._path and self.is_local() is False:
raise aiohttp.web.HTTPForbidden(text="You are not allowed to modify the project directory location")
old_path = None
if hasattr(self, "_path"):
old_path = self._path
self._path = path
self._update_temporary_file()
# The order of operation is important because we want to avoid losing
# data
if old_path:
try:
shutil.rmtree(old_path)
except OSError as e:
raise aiohttp.web.HTTPConflict("Can't remove temporary directory {}: {}".format(old_path ,e))
@property
def name(self):