From 3ebc6f0f1d8936426aa4837a10e19bf902786870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Fri, 24 Apr 2015 12:05:38 +0200 Subject: [PATCH] Fix: Reselect current printer profile if it was updated and deny deleting the current printer profile --- src/octoprint/printer/profile.py | 4 ++++ src/octoprint/server/api/printer_profiles.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/octoprint/printer/profile.py b/src/octoprint/printer/profile.py index 5487a661..e34e0048 100644 --- a/src/octoprint/printer/profile.py +++ b/src/octoprint/printer/profile.py @@ -200,6 +200,8 @@ class PrinterProfileManager(object): def remove(self, identifier): if identifier == "_default": return False + if self._current is not None and self._current["id"] == identifier: + return False return self._remove_from_path(self._get_profile_path(identifier)) def save(self, profile, allow_overwrite=False, make_default=False): @@ -227,6 +229,8 @@ class PrinterProfileManager(object): if make_default: settings().set(["printerProfiles", "default"], identifier) + if self._current is not None and self._current["id"] == identifier: + self.select(identifier) return self.get(identifier) def get_default(self): diff --git a/src/octoprint/server/api/printer_profiles.py b/src/octoprint/server/api/printer_profiles.py index 5c8ecc9d..628de096 100644 --- a/src/octoprint/server/api/printer_profiles.py +++ b/src/octoprint/server/api/printer_profiles.py @@ -80,6 +80,8 @@ def printerProfilesGet(identifier): @api.route("/printerprofiles/", methods=["DELETE"]) @restricted_access def printerProfilesDelete(identifier): + if printerProfileManager.get_current_or_default()["id"] == identifier: + return make_response("Cannot delete currently selected profile: %s" % identifier, 409) printerProfileManager.remove(identifier) return NO_CONTENT