simo 2.0.28__py3-none-any.whl → 2.0.29__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of simo might be problematic. Click here for more details.
- simo/core/__pycache__/forms.cpython-38.pyc +0 -0
- simo/core/__pycache__/serializers.cpython-38.pyc +0 -0
- simo/core/__pycache__/tasks.cpython-38.pyc +0 -0
- simo/core/forms.py +2 -6
- simo/core/serializers.py +1 -0
- simo/core/tasks.py +2 -1
- simo/generic/__pycache__/forms.cpython-38.pyc +0 -0
- simo/generic/__pycache__/gateways.cpython-38.pyc +0 -0
- simo/generic/forms.py +6 -1
- simo/generic/gateways.py +1 -1
- {simo-2.0.28.dist-info → simo-2.0.29.dist-info}/METADATA +1 -1
- {simo-2.0.28.dist-info → simo-2.0.29.dist-info}/RECORD +15 -15
- {simo-2.0.28.dist-info → simo-2.0.29.dist-info}/LICENSE.md +0 -0
- {simo-2.0.28.dist-info → simo-2.0.29.dist-info}/WHEEL +0 -0
- {simo-2.0.28.dist-info → simo-2.0.29.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
simo/core/forms.py
CHANGED
|
@@ -287,15 +287,11 @@ class ComponentAdminForm(forms.ModelForm):
|
|
|
287
287
|
|
|
288
288
|
# fields that can be edited via SIMO.io app by instance owners.
|
|
289
289
|
# Users who have is_owner enabled on their user role.
|
|
290
|
-
basic_fields = ['name', 'icon', 'zone', 'category']
|
|
290
|
+
basic_fields = ['name', 'icon', 'zone', 'category', 'show_in_app']
|
|
291
291
|
|
|
292
292
|
class Meta:
|
|
293
293
|
model = Component
|
|
294
|
-
fields = '
|
|
295
|
-
exclude = (
|
|
296
|
-
'gateway', 'controller_uid', 'base_type', 'instance_methods',
|
|
297
|
-
'alive', 'value_type', 'value', 'arm_status', 'slaves',
|
|
298
|
-
)
|
|
294
|
+
fields = 'name', 'icon', 'zone', 'category', 'show_in_app', 'notes'
|
|
299
295
|
widgets = {
|
|
300
296
|
'icon': autocomplete.ModelSelect2(
|
|
301
297
|
url='autocomplete-icon', attrs={'data-html': True}
|
simo/core/serializers.py
CHANGED
|
@@ -236,6 +236,7 @@ class ComponentSerializer(FormSerializer):
|
|
|
236
236
|
app_widget = serializers.SerializerMethodField()
|
|
237
237
|
slaves = serializers.SerializerMethodField()
|
|
238
238
|
base_type = ObjectSerializerMethodField()
|
|
239
|
+
show_in_app = ObjectSerializerMethodField()
|
|
239
240
|
controller_uid = ObjectSerializerMethodField()
|
|
240
241
|
alive = ObjectSerializerMethodField()
|
|
241
242
|
value = ObjectSerializerMethodField()
|
simo/core/tasks.py
CHANGED
|
@@ -344,7 +344,8 @@ def low_battery_notifications():
|
|
|
344
344
|
battery_level__isnull=False, battery_level__lt=20
|
|
345
345
|
):
|
|
346
346
|
users = User.objects.filter(
|
|
347
|
-
roles__is_owner=True, roles__instance=comp.zone.instance
|
|
347
|
+
roles__is_owner=True, roles__instance=comp.zone.instance,
|
|
348
|
+
instance_roles__is_active=True
|
|
348
349
|
).distinct()
|
|
349
350
|
if users:
|
|
350
351
|
notify_users(
|
|
Binary file
|
|
Binary file
|
simo/generic/forms.py
CHANGED
|
@@ -29,7 +29,11 @@ ACTION_METHODS = (
|
|
|
29
29
|
class ScriptConfigForm(BaseComponentForm):
|
|
30
30
|
autostart = forms.BooleanField(
|
|
31
31
|
initial=True, required=False,
|
|
32
|
-
help_text="
|
|
32
|
+
help_text="Start automatically on system boot."
|
|
33
|
+
)
|
|
34
|
+
keep_alive = forms.BooleanField(
|
|
35
|
+
initial=True, required=False,
|
|
36
|
+
help_text="Wake up every 10s if not running."
|
|
33
37
|
)
|
|
34
38
|
code = forms.CharField(widget=PythonCode)
|
|
35
39
|
log = forms.CharField(
|
|
@@ -38,6 +42,7 @@ class ScriptConfigForm(BaseComponentForm):
|
|
|
38
42
|
|
|
39
43
|
def __init__(self, *args, **kwargs):
|
|
40
44
|
super().__init__(*args, **kwargs)
|
|
45
|
+
self.basic_fields.extend(['autostart', 'keep_alive'])
|
|
41
46
|
if self.instance.pk:
|
|
42
47
|
prefix = get_script_prefix()
|
|
43
48
|
if prefix == '/':
|
simo/generic/gateways.py
CHANGED
|
@@ -215,7 +215,7 @@ class GenericGatewayHandler(BaseObjectCommandsGatewayHandler):
|
|
|
215
215
|
from simo.generic.controllers import Script
|
|
216
216
|
for script in Component.objects.filter(
|
|
217
217
|
controller_uid=Script.uid,
|
|
218
|
-
|
|
218
|
+
config__keep_alive=True
|
|
219
219
|
).exclude(value='running'):
|
|
220
220
|
self.start_script(script)
|
|
221
221
|
|
|
@@ -38,7 +38,7 @@ simo/core/controllers.py,sha256=iJ7cIGv2WhSGjyxCFfK49pZXuEMfSe75bMEAkRN8G4g,2710
|
|
|
38
38
|
simo/core/dynamic_settings.py,sha256=U2WNL96JzVXdZh0EqMPWrxqO6BaRR2Eo5KTDqz7MC4o,1943
|
|
39
39
|
simo/core/events.py,sha256=LvtonJGNyCb6HLozs4EG0WZItnDwNdtnGQ4vTcnKvUs,4438
|
|
40
40
|
simo/core/filters.py,sha256=ghtOZcrwNAkIyF5_G9Sn73NkiI71mXv0NhwCk4IyMIM,411
|
|
41
|
-
simo/core/forms.py,sha256=
|
|
41
|
+
simo/core/forms.py,sha256=2IvhlJ_mSePd3cAQULfaYMQ0JRBHZCDKZBUpcQn1EL8,23678
|
|
42
42
|
simo/core/gateways.py,sha256=s_c2W0v2_te89i6LS4Nj7F2wn9UwjZXPT7pfy6SToVo,3714
|
|
43
43
|
simo/core/loggers.py,sha256=EBdq23gTQScVfQVH-xeP90-wII2DQFDjoROAW6ggUP4,1645
|
|
44
44
|
simo/core/managers.py,sha256=WoQ4OX3akIvoroSYji-nLVqXBSJzCiC1u_IiWkKbKmA,2413
|
|
@@ -46,11 +46,11 @@ simo/core/middleware.py,sha256=pO52hQOJV_JRmNyUe7zfufSnJFlRITOWX6jwkoPWJhk,2052
|
|
|
46
46
|
simo/core/models.py,sha256=PAVuRYldy4qw7KTsU3ClkEHY7UVvW7CPGGqM3frtvz4,19755
|
|
47
47
|
simo/core/permissions.py,sha256=yqVXq6SNZccSKcOoGdb0oh-WHsyTTtI9ovJdJyhjv28,2707
|
|
48
48
|
simo/core/routing.py,sha256=X1_IHxyA-_Q7hw1udDoviVP4_FSBDl8GYETTC2zWTbY,499
|
|
49
|
-
simo/core/serializers.py,sha256=
|
|
49
|
+
simo/core/serializers.py,sha256=uc6LfrDNQ4rrbTFjXTe764wOKcgnu65j_tmDqy9wodw,18227
|
|
50
50
|
simo/core/signal_receivers.py,sha256=EZ8NSYZxUgSaLS16YZdK7T__l8dl0joMRllOxx5PUt4,2809
|
|
51
51
|
simo/core/socket_consumers.py,sha256=n7VE2Fvqt4iEAYLTRbTPOcI-7tszMAADu7gimBxB-Fg,9635
|
|
52
52
|
simo/core/storage.py,sha256=YlxmdRs-zhShWtFKgpJ0qp2NDBuIkJGYC1OJzqkbttQ,572
|
|
53
|
-
simo/core/tasks.py,sha256=
|
|
53
|
+
simo/core/tasks.py,sha256=ZbFRo4DecbB1kPG75d9tl6nt_QDQobJnq24zxMfFW2Y,12276
|
|
54
54
|
simo/core/todos.py,sha256=eYVXfLGiapkxKK57XuviSNe3WsUYyIWZ0hgQJk7ThKo,665
|
|
55
55
|
simo/core/types.py,sha256=WJEq48mIbFi_5Alt4wxWMGXxNxUTXqfQU5koH7wqHHI,1108
|
|
56
56
|
simo/core/views.py,sha256=hlAKpAbCbqI3a-uL5tDp532T2oLFiF0MBzKUJ_SNzo0,5833
|
|
@@ -69,7 +69,7 @@ simo/core/__pycache__/controllers.cpython-38.pyc,sha256=40wJ3mu0CnzexxDzXyDIlSxa
|
|
|
69
69
|
simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=ELu06Hub4DOidja71ybvD3ZM4HdXiyZjNJrZfnXZXNA,2476
|
|
70
70
|
simo/core/__pycache__/events.cpython-38.pyc,sha256=A1Axx-qftd1r7st7wkO3DkvTdt9-RkcJe5KJhpzJVk8,5109
|
|
71
71
|
simo/core/__pycache__/filters.cpython-38.pyc,sha256=VIMADCBiYhziIyRmxAyUDJluZvuZmiC4bNYWTRsGSao,721
|
|
72
|
-
simo/core/__pycache__/forms.cpython-38.pyc,sha256=
|
|
72
|
+
simo/core/__pycache__/forms.cpython-38.pyc,sha256=_Fpn-nG_lwHaMaOHwPofkz9O56bw6UjV6xkhXVhtFqs,19956
|
|
73
73
|
simo/core/__pycache__/gateways.cpython-38.pyc,sha256=XBiwMfBkjoQ2re6jvADJOwK0_0Aav-crzie9qtfqT9U,4599
|
|
74
74
|
simo/core/__pycache__/loggers.cpython-38.pyc,sha256=Z-cdQnC6XlIonPV4Sl4E52tP4NMEdPAiHK0cFaIL7I8,1623
|
|
75
75
|
simo/core/__pycache__/managers.cpython-38.pyc,sha256=5vstOMfm997CZBBkaSiaS7EojhLTWZlbeA_EQ8u-yfg,2554
|
|
@@ -77,11 +77,11 @@ simo/core/__pycache__/middleware.cpython-38.pyc,sha256=ESR5JPtITo9flczO0672sfzYU
|
|
|
77
77
|
simo/core/__pycache__/models.cpython-38.pyc,sha256=Meg9pm3gCMVgE1a37nEsCtqONMNFeG9R4oPON4CQgcw,17231
|
|
78
78
|
simo/core/__pycache__/permissions.cpython-38.pyc,sha256=flJOCh94U8mFhE0XWzUD0sGR6Xe1HlfG4hQtNSnAGZ4,2788
|
|
79
79
|
simo/core/__pycache__/routing.cpython-38.pyc,sha256=3T3FPJ8Cn99xZCGvMyg2xjl7al-Shm9CelbSpkJtNP8,599
|
|
80
|
-
simo/core/__pycache__/serializers.cpython-38.pyc,sha256=
|
|
80
|
+
simo/core/__pycache__/serializers.cpython-38.pyc,sha256=vaaIbfOd-n0pRX5QtHBy8Hmc87o5RH7LulUE6YOTJlg,17206
|
|
81
81
|
simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=sgjH_wv-1U99auH5uHb3or0qettPeHAlsz8P7B03ajY,2430
|
|
82
82
|
simo/core/__pycache__/socket_consumers.cpython-38.pyc,sha256=NJUr7nRyHFvmAumxxWpsod5wzVVZM99rCEuJs1utHA4,8432
|
|
83
83
|
simo/core/__pycache__/storage.cpython-38.pyc,sha256=BTkYH8QQyjqI0WOtJC8fHNtgu0YA1vjqZclXjC2vCVI,1116
|
|
84
|
-
simo/core/__pycache__/tasks.cpython-38.pyc,sha256=
|
|
84
|
+
simo/core/__pycache__/tasks.cpython-38.pyc,sha256=7ai1mcn4C4jouM2TFsOAdusr9egDDvx5ZMUZwSIJUeM,9165
|
|
85
85
|
simo/core/__pycache__/todos.cpython-38.pyc,sha256=lOqGZ58siHM3isoJV4r7sg8igrfE9fFd-jSfeBa0AQI,253
|
|
86
86
|
simo/core/__pycache__/views.cpython-38.pyc,sha256=YrKRZPaV_JM4VGpdhVhsK-90UwUTOqp-V-Yj0SRGZgs,4212
|
|
87
87
|
simo/core/__pycache__/widgets.cpython-38.pyc,sha256=sR0ZeHCHrhnNDBJuRrxp3zUsfBp0xrtF0xrK2TkQv1o,3520
|
|
@@ -10276,8 +10276,8 @@ simo/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
10276
10276
|
simo/generic/app_widgets.py,sha256=E_pnpA1hxMIhenRCrHoQ5cik06jm2BAHCkl_eo-OudU,1264
|
|
10277
10277
|
simo/generic/base_types.py,sha256=djymox_boXTHX1BTTCLXrCH7ED-uAsV_idhaDOc3OLI,409
|
|
10278
10278
|
simo/generic/controllers.py,sha256=WYuOUzDWvkYRaTvlbdGy_qmwp1o_ohqKDfV7OrOq2QU,52218
|
|
10279
|
-
simo/generic/forms.py,sha256=
|
|
10280
|
-
simo/generic/gateways.py,sha256=
|
|
10279
|
+
simo/generic/forms.py,sha256=PcYe6emum8wEvnhUxXpEo2hXNZA6dk2YL2TYUN2YOxs,24249
|
|
10280
|
+
simo/generic/gateways.py,sha256=LYCOOO6TffOiLvHYvJcMt6t_lkunlKfUNjhYghEKI2Q,17035
|
|
10281
10281
|
simo/generic/models.py,sha256=92TACMhJHadAg0TT9GnARO_R3_Sl6i-GGjhG_x7YdFI,7391
|
|
10282
10282
|
simo/generic/routing.py,sha256=elQVZmgnPiieEuti4sJ7zITk1hlRxpgbotcutJJgC60,228
|
|
10283
10283
|
simo/generic/socket_consumers.py,sha256=NfTQGYtVAc864IoogZRxf_0xpDPM0eMCWn0SlKA5P7Y,1751
|
|
@@ -10285,8 +10285,8 @@ simo/generic/__pycache__/__init__.cpython-38.pyc,sha256=mLu54WS9KIl-pHwVCBKpsDFI
|
|
|
10285
10285
|
simo/generic/__pycache__/app_widgets.cpython-38.pyc,sha256=0IoKRG9n1tkNRRkrqAeOQwWBPd_33u98JBcVtMVVCio,2374
|
|
10286
10286
|
simo/generic/__pycache__/base_types.cpython-38.pyc,sha256=ptw6axyAqemZA35oa6vzr7EihzvbhW9w7Y-G6kfDedU,555
|
|
10287
10287
|
simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=e0bvgyePgJbIs1omBq0TRPlVSKar2sK_JbUKqDRj7mY,33235
|
|
10288
|
-
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10289
|
-
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=
|
|
10288
|
+
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=oUFqYD3Tlm9AE1HMMlfnyWCnhtMY5hrF2U6rBgzYpU4,17911
|
|
10289
|
+
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=e9_y6PdY05SDZkBT2u1V9jQUowC0hjqsquzWK2YXBjI,12695
|
|
10290
10290
|
simo/generic/__pycache__/models.cpython-38.pyc,sha256=PzlZsM1jxo3FVb7QDm3bny8UFwTsGrMQe4mj4tJ06eQ,5675
|
|
10291
10291
|
simo/generic/__pycache__/routing.cpython-38.pyc,sha256=xtxTUTBTdivzFyA5Wh7k-hUj1WDO_FiRq6HYXdbr9Ks,382
|
|
10292
10292
|
simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=piFHces0J9QuXu_CNBCQCYjoZEeoaxyVjLfJ9KaR8C8,1898
|
|
@@ -10456,8 +10456,8 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
10456
10456
|
simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10457
10457
|
simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10458
10458
|
simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10459
|
-
simo-2.0.
|
|
10460
|
-
simo-2.0.
|
|
10461
|
-
simo-2.0.
|
|
10462
|
-
simo-2.0.
|
|
10463
|
-
simo-2.0.
|
|
10459
|
+
simo-2.0.29.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
|
|
10460
|
+
simo-2.0.29.dist-info/METADATA,sha256=-QXL9LMFmWhxr7ZZhTuZPEjsl3pr_dKvmNqpWXM9-ok,1730
|
|
10461
|
+
simo-2.0.29.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
10462
|
+
simo-2.0.29.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
|
|
10463
|
+
simo-2.0.29.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|