From d6b172c744ba0b23c8b35493b1e5cfae680930da Mon Sep 17 00:00:00 2001 From: Ross Hendrickson Date: Sun, 30 Jun 2013 00:23:22 -0600 Subject: [PATCH] Implement basic CRUD around required first step Cura settings --- octoprint/cura/cura.py | 3 +++ octoprint/server.py | 23 +++++++++++++++++- octoprint/settings.py | 10 ++++---- octoprint/static/js/ui.js | 19 ++++++++------- octoprint/templates/settings.jinja2 | 37 +++++++++++++++-------------- 5 files changed, 59 insertions(+), 33 deletions(-) diff --git a/octoprint/cura/cura.py b/octoprint/cura/cura.py index ae5ab6e5..d5c7db9e 100644 --- a/octoprint/cura/cura.py +++ b/octoprint/cura/cura.py @@ -4,6 +4,9 @@ __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agp import logging import subprocess +APPNAME="OctoPrint" + + class CuraFactory(object): CURA_PATH = '/home/rosshendrickson/workspaces/opensource/CuraEngine/CuraEngine' diff --git a/octoprint/server.py b/octoprint/server.py index 4ede4edc..34df0b7a 100644 --- a/octoprint/server.py +++ b/octoprint/server.py @@ -452,7 +452,12 @@ def getSettings(): }, "system": { "actions": s.get(["system", "actions"]) - } + }, + "cura_engine": { + "cura_enabled": s.get(["cura_engine", "cura_enabled"]), + "cura_path": s.get(["cura_engine", "cura_path"]), + "cura_config": s.get(["cura_engine", "cura_config"]) + } }) @app.route(BASEURL + "settings", methods=["POST"]) @@ -499,6 +504,22 @@ def setSettings(): if "system" in data.keys(): if "actions" in data["system"].keys(): s.set(["system", "actions"], data["system"]["actions"]) + cura_engine = data.get("cura_engine", None) + + if cura_engine: + + cura_enabled = cura_engine.get("cura_enabled") + if cura_enabled: + s.setBoolean(["cura_engine", "cura_path"], cura_enabled) + + cura_path = cura_engine.get("cura_path") + if cura_path: + s.set(["cura_engine", "cura_path"], cura_path) + + cura_config = cura_engine.get("cura_config") + if cura_config: + s.set(["cura_engine", "cura_config"], cura_config) + s.save() return getSettings() diff --git a/octoprint/settings.py b/octoprint/settings.py index 53e82e34..458495a0 100644 --- a/octoprint/settings.py +++ b/octoprint/settings.py @@ -80,11 +80,11 @@ default_settings = { "userManager": "octoprint.users.FilebasedUserManager", "userfile": None }, - "curaEngine": { - "enabled": True, - "cura_path": "", - "cura_config": "" - } + "cura_engine": { + "cura_enabled": True, + "cura_path": "/something/wicked/this/way/comes/", + "cura_config": "/here/there/be/dragons" + } } valid_boolean_trues = ["true", "yes", "y", "1"] diff --git a/octoprint/static/js/ui.js b/octoprint/static/js/ui.js index 78bbac28..b521eac0 100644 --- a/octoprint/static/js/ui.js +++ b/octoprint/static/js/ui.js @@ -1340,9 +1340,10 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.folder_timelapse = ko.observable(undefined); self.folder_timelapseTmp = ko.observable(undefined); self.folder_logs = ko.observable(undefined); - - self.cura_engine_path = ko.observable(undefined); - self.cura_config_path = ko.observable(undefined); + + self.cura_enabled = ko.observable(undefined); + self.cura_path = ko.observable(undefined); + self.cura_config = ko.observable(undefined); self.temperature_profiles = ko.observableArray(undefined); @@ -1391,9 +1392,9 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.folder_timelapseTmp(response.folder.timelapseTmp); self.folder_logs(response.folder.logs); - self.cura_enabled(response.curaEngine.cura_enabled); - self.cura_engine_path(response.curaEngine.cura_path); - self.cura_config_path(response.curaEngine.config_path); + self.cura_enabled(response.cura_engine.cura_enabled); + self.cura_path(response.cura_engine.cura_path); + self.cura_config(response.cura_engine.config_path); self.temperature_profiles(response.temperature.profiles); @@ -1439,10 +1440,10 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { "system": { "actions": self.system_actions() }, - "curaEngine": { + "cura_engine": { "enabled": self.cura_enabled(), - "cura_path": self.cura_engine_path(), - "cura_config": self.cura_config_path() + "cura_path": self.cura_path(), + "cura_config": self.cura_config() } } diff --git a/octoprint/templates/settings.jinja2 b/octoprint/templates/settings.jinja2 index 5623cf4e..a8c8ab34 100644 --- a/octoprint/templates/settings.jinja2 +++ b/octoprint/templates/settings.jinja2 @@ -17,23 +17,6 @@
-
-
-
- -
- -
-
-
- -
- -
-
-
-
-
@@ -224,7 +207,25 @@
- +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
+ {% if enableAccessControl %}