Skip to content

Commit b1fdcce

Browse files
authored
SW-1274 merge beta-rc into beta mrbeam#1485
SW-1245 release v0.11.0b0
2 parents c5c1b5e + afc5a98 commit b1fdcce

File tree

83 files changed

+6339
-491
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+6339
-491
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
octoprint_mrbeam/_version.py export-subst

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,4 @@ venv/
4040
tests/rsc/camera/debug/[^R]*
4141
tests/rsc/camera/out.jpg
4242
tests/logs/*.txt
43+
*pytest-logs.txt

MANIFEST.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
include README.md
2+
include versioneer.py
3+
include octoprint_mrbeam/_version.py
24
graft octoprint_mrbeam/templates
35
graft octoprint_mrbeam/static
46
graft octoprint_mrbeam/state
57
graft octoprint_mrbeam/translations
8+
graft octoprint_mrbeam/scripts

octoprint_mrbeam/__init__.py

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,15 @@
3131
from octoprint.settings import settings
3232
from octoprint.events import Events as OctoPrintEvents
3333

34+
from octoprint_mrbeam.rest_handler.update_handler import UpdateRestHandlerMixin
35+
from octoprint_mrbeam.util.connectivity_checker import ConnectivityChecker
36+
3437
IS_X86 = platform.machine() == "x86_64"
38+
from ._version import get_versions
39+
40+
__version__ = get_versions()["version"]
41+
del get_versions
3542

36-
from octoprint_mrbeam.__version import __version__
3743
from octoprint_mrbeam.iobeam.iobeam_handler import ioBeamHandler, IoBeamEvents
3844
from octoprint_mrbeam.iobeam.onebutton_handler import oneButtonHandler
3945
from octoprint_mrbeam.iobeam.interlock_handler import interLockHandler
@@ -43,6 +49,7 @@
4349
from octoprint_mrbeam.iobeam.hw_malfunction_handler import hwMalfunctionHandler
4450
from octoprint_mrbeam.iobeam.laserhead_handler import laserheadHandler
4551
from octoprint_mrbeam.iobeam.compressor_handler import compressor_handler
52+
from octoprint_mrbeam.jinja.filter_loader import FilterLoader
4653
from octoprint_mrbeam.user_notification_system import user_notification_system
4754
from octoprint_mrbeam.analytics.analytics_handler import analyticsHandler
4855
from octoprint_mrbeam.analytics.usage_handler import usageHandler
@@ -53,6 +60,10 @@
5360
from octoprint_mrbeam.mrb_logger import init_mrb_logger, mrb_logger
5461
from octoprint_mrbeam.migrate import migrate
5562
from octoprint_mrbeam.os_health_care import os_health_care
63+
from octoprint_mrbeam.rest_handler.docs_handler import DocsRestHandlerMixin
64+
from octoprint_mrbeam.services.settings_service import SettingsService
65+
from octoprint_mrbeam.services.burger_menu_service import BurgerMenuService
66+
from octoprint_mrbeam.services.document_service import DocumentService
5667
from octoprint_mrbeam.wizard_config import WizardConfig
5768
from octoprint_mrbeam.printing.profile import (
5869
laserCutterProfileManager,
@@ -64,10 +75,8 @@
6475
get_update_information,
6576
switch_software_channel,
6677
software_channels_available,
67-
SW_UPDATE_TIER_PROD,
68-
SW_UPDATE_TIER_BETA,
69-
SW_UPDATE_TIER_DEV,
7078
BEAMOS_LEGACY_DATE,
79+
SWUpdateTier,
7180
)
7281
from octoprint_mrbeam.support import check_support_mode, check_calibration_tool_mode
7382
from octoprint_mrbeam.cli import get_cli_commands
@@ -110,6 +119,8 @@ class MrBeamPlugin(
110119
octoprint.plugin.SlicerPlugin,
111120
octoprint.plugin.ShutdownPlugin,
112121
octoprint.plugin.EnvironmentDetectionPlugin,
122+
UpdateRestHandlerMixin,
123+
DocsRestHandlerMixin,
113124
):
114125
# CONSTANTS
115126
ENV_PROD = "PROD"
@@ -164,6 +175,7 @@ def __init__(self):
164175
self._serial_num = None
165176
self._mac_addrs = dict()
166177
self._model_id = None
178+
self._explicit_update_check = False
167179
self._grbl_version = None
168180
self._device_series = self._device_info.get_series()
169181
self.called_hosts = []
@@ -186,6 +198,9 @@ def __init__(self):
186198
# MrBeam Events needs to be registered in OctoPrint in order to be send to the frontend later on
187199
MrBeamEvents.register_with_octoprint()
188200

201+
# Jinja custom filters need to be loaded already on instance creation
202+
FilterLoader.load_custom_jinja_filters()
203+
189204
# inside initialize() OctoPrint is already loaded, not assured during __init__()!
190205
def initialize(self):
191206
self._plugin_version = __version__
@@ -243,10 +258,10 @@ def initialize(self):
243258
self.led_event_listener.set_fps(self._settings.get(["leds", "fps"]))
244259
# start iobeam socket only once other handlers are already initialized so that we can handle info message
245260
self.iobeam = ioBeamHandler(self)
246-
self.temperature_manager = temperatureManager(self)
247261
self.dust_manager = dustManager(self)
248262
self.hw_malfunction_handler = hwMalfunctionHandler(self)
249263
self.laserhead_handler = laserheadHandler(self)
264+
self.temperature_manager = temperatureManager(self)
250265
self.compressor_handler = compressor_handler(self)
251266
self.wizard_config = WizardConfig(self)
252267
self.job_time_estimation = JobTimeEstimation(self)
@@ -256,6 +271,10 @@ def initialize(self):
256271
self.mrbeam_plugin_initialized = True
257272
self.fire_event(MrBeamEvents.MRB_PLUGIN_INITIALIZED)
258273

274+
# move octoprints connectivity checker to a new var so we can use our abstraction
275+
self._octoprint_connectivity_checker = self._connectivity_checker
276+
self._connectivity_checker = ConnectivityChecker(self)
277+
259278
self._do_initial_log()
260279

261280
def _init_frontend_logger(self):
@@ -368,7 +387,7 @@ def get_settings_defaults(self):
368387
terminalMaxLines=2000,
369388
env=self.ENV_PROD,
370389
load_gremlins=False,
371-
software_tier=SW_UPDATE_TIER_PROD,
390+
software_tier=SWUpdateTier.STABLE.value,
372391
iobeam_disable_warnings=False, # for development on non-MrBeam devices
373392
suppress_migrations=False, # for development on non-MrBeam devices
374393
support_mode=False,
@@ -454,7 +473,9 @@ def on_settings_load(self):
454473
dev=dict(
455474
env=self.get_env(),
456475
software_tier=self._settings.get(["dev", "software_tier"]),
457-
software_tiers_available=software_channels_available(self),
476+
software_tiers_available=[
477+
channel for channel in software_channels_available(self)
478+
],
458479
terminalMaxLines=self._settings.get(["dev", "terminalMaxLines"]),
459480
),
460481
gcode_nextgen=dict(
@@ -694,7 +715,7 @@ def get_assets(self):
694715
"css/hopscotch.min.css",
695716
"css/wizard.css",
696717
"css/tab_messages.css",
697-
"css/software_update.css"
718+
"css/software_update.css",
698719
],
699720
less=["less/mrbeam.less"],
700721
)
@@ -718,6 +739,16 @@ def calibration_tool_mode(self):
718739
self._fixEmptyUserManager()
719740
return ret
720741

742+
@property
743+
def explicit_update_check(self):
744+
return self._explicit_update_check
745+
746+
def set_explicit_update_check(self):
747+
self._explicit_update_check = True
748+
749+
def clear_explicit_update_check(self):
750+
self._explicit_update_check = False
751+
721752
##~~ UiPlugin mixin
722753

723754
def will_handle_ui(self, request):
@@ -818,6 +849,10 @@ def on_ui_render(self, now, request, render_kwargs):
818849
terminalEnabled=self._settings.get(["terminal"]) or self.support_mode,
819850
lasersafety_confirmation_dialog_version=self.LASERSAFETY_CONFIRMATION_DIALOG_VERSION,
820851
lasersafety_confirmation_dialog_language=language,
852+
settings_model=SettingsService(self._logger, DocumentService(self._logger)).get_template_settings_model(
853+
self.get_model_id()),
854+
burger_menu_model=BurgerMenuService(self._logger, DocumentService(self._logger)).get_burger_menu_model(
855+
self.get_model_id()),
821856
)
822857
)
823858
r = make_response(render_template("mrbeam_ui_index.jinja2", **render_kwargs))
@@ -2957,10 +2992,10 @@ def __calc_time_ntp_offset(self, log_out_of_sync=False):
29572992
timer.start()
29582993

29592994
def is_beta_channel(self):
2960-
return self._settings.get(["dev", "software_tier"]) == SW_UPDATE_TIER_BETA
2995+
return self._settings.get(["dev", "software_tier"]) == SWUpdateTier.BETA
29612996

29622997
def is_develop_channel(self):
2963-
return self._settings.get(["dev", "software_tier"]) == SW_UPDATE_TIER_DEV
2998+
return self._settings.get(["dev", "software_tier"]) == SWUpdateTier.DEV
29642999

29653000
def _get_mac_addresses(self):
29663001
if not self._mac_addrs:

octoprint_mrbeam/__version.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)