simo 2.7.7__py3-none-any.whl → 2.7.9__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/automation/__pycache__/controllers.cpython-38.pyc +0 -0
- simo/core/__pycache__/tasks.cpython-38.pyc +0 -0
- simo/fleet/__pycache__/forms.cpython-38.pyc +0 -0
- simo/fleet/forms.py +3 -2
- simo/fleet/migrations/0044_auto_20241210_0707.py +31 -0
- simo/fleet/views.py +7 -5
- simo/generic/__pycache__/controllers.cpython-38.pyc +0 -0
- simo/generic/__pycache__/forms.cpython-38.pyc +0 -0
- simo/generic/__pycache__/gateways.cpython-38.pyc +0 -0
- simo/generic/controllers.py +8 -5
- simo/generic/gateways.py +13 -12
- simo/multimedia/controllers.py +38 -2
- simo/multimedia/templates/admin/controller_widgets/player.html +11 -0
- simo/notifications/utils.py +8 -1
- {simo-2.7.7.dist-info → simo-2.7.9.dist-info}/METADATA +1 -1
- {simo-2.7.7.dist-info → simo-2.7.9.dist-info}/RECORD +20 -18
- {simo-2.7.7.dist-info → simo-2.7.9.dist-info}/LICENSE.md +0 -0
- {simo-2.7.7.dist-info → simo-2.7.9.dist-info}/WHEEL +0 -0
- {simo-2.7.7.dist-info → simo-2.7.9.dist-info}/entry_points.txt +0 -0
- {simo-2.7.7.dist-info → simo-2.7.9.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
simo/fleet/forms.py
CHANGED
|
@@ -782,8 +782,9 @@ class ColonelPWMOutputConfigForm(ColonelComponentForm):
|
|
|
782
782
|
help_text="easeOutSine - offers most naturally looking effect."
|
|
783
783
|
)
|
|
784
784
|
on_value = forms.FloatField(
|
|
785
|
-
required=
|
|
786
|
-
help_text="ON value
|
|
785
|
+
required=False,
|
|
786
|
+
help_text="Static ON value used to turn the light on with physical controls. <br>"
|
|
787
|
+
"Leaving this field empty turns the light on to the last used value."
|
|
787
788
|
)
|
|
788
789
|
|
|
789
790
|
slaves = Select2ModelMultipleChoiceField(
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated by Django 4.2.10 on 2024-12-03 09:30
|
|
2
|
+
|
|
3
|
+
from django.db import migrations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def forwards_func(apps, schema_editor):
|
|
7
|
+
Component = apps.get_model("core", "Component")
|
|
8
|
+
|
|
9
|
+
for comp in Component.objects.filter(
|
|
10
|
+
controller_uid='simo.fleet.controllers.PWMOutput'
|
|
11
|
+
):
|
|
12
|
+
for ctrl in comp.config.get('controls'):
|
|
13
|
+
if ctrl.get('method') == 'momentary':
|
|
14
|
+
comp.config['on_value'] = None
|
|
15
|
+
comp.save()
|
|
16
|
+
break
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def reverse_func(apps, schema_editor):
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class Migration(migrations.Migration):
|
|
24
|
+
|
|
25
|
+
dependencies = [
|
|
26
|
+
('fleet', '0043_auto_20241203_0930'),
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
operations = [
|
|
30
|
+
migrations.RunPython(forwards_func, reverse_func, elidable=True),
|
|
31
|
+
]
|
simo/fleet/views.py
CHANGED
|
@@ -41,6 +41,12 @@ class PinsSelectAutocomplete(autocomplete.Select2QuerySetView):
|
|
|
41
41
|
if not instance:
|
|
42
42
|
return ColonelPin.objects.none()
|
|
43
43
|
|
|
44
|
+
if self.request.GET.get('value'):
|
|
45
|
+
return ColonelPin.objects.filter(
|
|
46
|
+
pk__in=self.request.GET['value'].split(','),
|
|
47
|
+
colonel__instance=instance
|
|
48
|
+
)
|
|
49
|
+
|
|
44
50
|
try:
|
|
45
51
|
colonel = Colonel.objects.get(
|
|
46
52
|
pk=self.forwarded.get("colonel"), instance=instance
|
|
@@ -62,11 +68,7 @@ class PinsSelectAutocomplete(autocomplete.Select2QuerySetView):
|
|
|
62
68
|
if self.forwarded.get('filters'):
|
|
63
69
|
qs = qs.filter(**self.forwarded.get('filters'))
|
|
64
70
|
|
|
65
|
-
|
|
66
|
-
if self.request.GET.get('value'):
|
|
67
|
-
qs = qs.filter(pk__in=self.request.GET['value'].split(','))
|
|
68
|
-
elif self.q:
|
|
69
|
-
qs = search_queryset(qs, self.q, ('label', ))
|
|
71
|
+
qs = search_queryset(qs, self.q, ('label', ))
|
|
70
72
|
|
|
71
73
|
return qs
|
|
72
74
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
simo/generic/controllers.py
CHANGED
|
@@ -1161,7 +1161,7 @@ class MainState(StateSelect):
|
|
|
1161
1161
|
return False
|
|
1162
1162
|
|
|
1163
1163
|
|
|
1164
|
-
def owner_phones_on_sleep(self):
|
|
1164
|
+
def owner_phones_on_sleep(self, all_phones=False):
|
|
1165
1165
|
sleeping_phones_hour = self.component.config.get('sleeping_phones_hour')
|
|
1166
1166
|
if sleeping_phones_hour is None:
|
|
1167
1167
|
return False
|
|
@@ -1171,6 +1171,7 @@ class MainState(StateSelect):
|
|
|
1171
1171
|
|
|
1172
1172
|
from simo.users.models import InstanceUser
|
|
1173
1173
|
|
|
1174
|
+
phones_on_charge = []
|
|
1174
1175
|
for iuser in InstanceUser.objects.filter(
|
|
1175
1176
|
is_active=True, role__is_owner=True,
|
|
1176
1177
|
instance=self.component.zone.instance
|
|
@@ -1178,11 +1179,13 @@ class MainState(StateSelect):
|
|
|
1178
1179
|
# skipping users that are not at home
|
|
1179
1180
|
if not iuser.at_home:
|
|
1180
1181
|
continue
|
|
1181
|
-
|
|
1182
|
-
# at least one user's phone is not yet on charge
|
|
1183
|
-
return False
|
|
1182
|
+
phones_on_charge.append(iuser.phone_on_charge)
|
|
1184
1183
|
|
|
1185
|
-
|
|
1184
|
+
|
|
1185
|
+
if all:
|
|
1186
|
+
return all(phones_on_charge)
|
|
1187
|
+
else:
|
|
1188
|
+
return any(phones_on_charge)
|
|
1186
1189
|
|
|
1187
1190
|
|
|
1188
1191
|
# ----------- Dummy controllers -----------------------------
|
simo/generic/gateways.py
CHANGED
|
@@ -379,18 +379,19 @@ class GenericGatewayHandler(BaseObjectCommandsGatewayHandler):
|
|
|
379
379
|
state.send(new_state)
|
|
380
380
|
|
|
381
381
|
if state.config.get('sleeping_phones_hour') is not None:
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
382
|
+
if state.value != 'sleep':
|
|
383
|
+
if state.owner_phones_on_sleep(True):
|
|
384
|
+
print(f"New main state of {state.zone.instance} - sleep")
|
|
385
|
+
state.send('sleep')
|
|
386
|
+
else:
|
|
387
|
+
if not state.owner_phones_on_sleep(False):
|
|
388
|
+
try:
|
|
389
|
+
new_state = state.get_day_evening_night_morning()
|
|
390
|
+
except:
|
|
391
|
+
new_state = 'day'
|
|
392
|
+
print(f"New main state of "
|
|
393
|
+
f"{state.zone.instance} - {new_state}")
|
|
394
|
+
state.send(new_state)
|
|
394
395
|
|
|
395
396
|
|
|
396
397
|
def watch_main_states(self):
|
simo/multimedia/controllers.py
CHANGED
|
@@ -4,6 +4,7 @@ from .app_widgets import AudioPlayerWidget, VideoPlayerWidget
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class BasePlayer(Switch):
|
|
7
|
+
admin_widget_template = 'admin/controller_widgets/player.html'
|
|
7
8
|
default_config = {
|
|
8
9
|
'has_volume_control': True,
|
|
9
10
|
}
|
|
@@ -50,19 +51,54 @@ class BasePlayer(Switch):
|
|
|
50
51
|
|
|
51
52
|
def set_volume(self, val):
|
|
52
53
|
assert 0 <= val <= 100
|
|
54
|
+
self.component.meta['volume'] = val
|
|
55
|
+
self.component.save()
|
|
53
56
|
self.send({'set_volume': val})
|
|
54
57
|
|
|
55
58
|
def get_volume(self):
|
|
56
59
|
return self.component.meta['volume']
|
|
57
60
|
|
|
58
61
|
def set_shuffle_play(self, val):
|
|
62
|
+
self.component.meta['shuffle'] = bool(val)
|
|
63
|
+
self.component.save()
|
|
59
64
|
self.send({'shuffle': bool(val)})
|
|
60
65
|
|
|
61
66
|
def set_loop_play(self, val):
|
|
67
|
+
self.component.meta['loop'] = bool(val)
|
|
68
|
+
self.component.save()
|
|
62
69
|
self.send({'loop': bool(val)})
|
|
63
70
|
|
|
64
|
-
def play_library_item(self,
|
|
65
|
-
|
|
71
|
+
def play_library_item(self, id, volume=None, fade_in=None):
|
|
72
|
+
'''
|
|
73
|
+
:param id: Library item ID
|
|
74
|
+
:param volume: Volume to play at. Current volume will be used if not provided
|
|
75
|
+
:param fade_in: number of seconds to fade in
|
|
76
|
+
:return:
|
|
77
|
+
'''
|
|
78
|
+
self.send({'play_from_library': id, 'volume': volume, 'fade_in': fade_in})
|
|
79
|
+
|
|
80
|
+
def play_uri(self, uri, volume=None):
|
|
81
|
+
'''
|
|
82
|
+
Replace que with this single uri and play it immediately
|
|
83
|
+
:param uri: playable uri or url
|
|
84
|
+
:param volume: volume at which to play
|
|
85
|
+
:return:
|
|
86
|
+
'''
|
|
87
|
+
if volume:
|
|
88
|
+
assert 0 <= volume <= 100
|
|
89
|
+
self.send({"play_uri": uri, 'volume': volume})
|
|
90
|
+
|
|
91
|
+
def play_alert(self, val, volume=None):
|
|
92
|
+
'''
|
|
93
|
+
Plays alert and goes back to whatever was playing initially
|
|
94
|
+
:param val: Sound.id or uri
|
|
95
|
+
:param volume: volume at which to play
|
|
96
|
+
:return:
|
|
97
|
+
'''
|
|
98
|
+
assert type(val) in (int, str)
|
|
99
|
+
if volume:
|
|
100
|
+
assert 0 <= volume <= 100
|
|
101
|
+
self.send({"alert": val, 'volume': volume})
|
|
66
102
|
|
|
67
103
|
def toggle(self):
|
|
68
104
|
if self.component.value == 'playing':
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div class="component-controller" data-ws_url="{{ obj.get_socket_url|default_if_none:"" }}">
|
|
2
|
+
{% if obj.value == 'playing' %}
|
|
3
|
+
<i class="fas fa-toggle-on fa-2x component_switch action"
|
|
4
|
+
data-method="pause"
|
|
5
|
+
></i>
|
|
6
|
+
{% else %}
|
|
7
|
+
<i class="fas fa-toggle-off fa-2x component_switch action"
|
|
8
|
+
data-method="play"
|
|
9
|
+
></i>
|
|
10
|
+
{% endif %}
|
|
11
|
+
</div>
|
simo/notifications/utils.py
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
from simo.core.middleware import
|
|
1
|
+
from simo.core.middleware import (
|
|
2
|
+
get_current_instance, drop_current_instance, introduce_instance
|
|
3
|
+
)
|
|
2
4
|
from .models import Notification, UserNotification
|
|
3
5
|
|
|
4
6
|
|
|
@@ -12,6 +14,7 @@ def notify_users(severity, title, body=None, component=None, instance_users=None
|
|
|
12
14
|
:param instance_users: List of instance users to receive this notification. All active instance users will receive the message if not specified.
|
|
13
15
|
:return:
|
|
14
16
|
'''
|
|
17
|
+
current_instance = get_current_instance()
|
|
15
18
|
if not instance:
|
|
16
19
|
if component:
|
|
17
20
|
instance = component.zone.instance
|
|
@@ -19,6 +22,7 @@ def notify_users(severity, title, body=None, component=None, instance_users=None
|
|
|
19
22
|
instance = get_current_instance()
|
|
20
23
|
if not instance:
|
|
21
24
|
return
|
|
25
|
+
drop_current_instance()
|
|
22
26
|
if component and component.zone.instance != instance:
|
|
23
27
|
# something is completely wrong!
|
|
24
28
|
return
|
|
@@ -45,3 +49,6 @@ def notify_users(severity, title, body=None, component=None, instance_users=None
|
|
|
45
49
|
user=iuser.user, notification=notification,
|
|
46
50
|
)
|
|
47
51
|
notification.dispatch()
|
|
52
|
+
if current_instance:
|
|
53
|
+
introduce_instance(current_instance)
|
|
54
|
+
|
|
@@ -22,7 +22,7 @@ simo/automation/serializers.py,sha256=PjyFrjdPK1mBsgbNhyqMi9SWzcymqTa742ipy0LhAN
|
|
|
22
22
|
simo/automation/state.py,sha256=aZZvNBae7unnux_zGHCIWCV2z47hVJc-DIL72Hqfkeo,600
|
|
23
23
|
simo/automation/__pycache__/__init__.cpython-38.pyc,sha256=YmP0xAD-mxpQHgdTZeC64sXChA8TriMZD1jckNYi3xg,164
|
|
24
24
|
simo/automation/__pycache__/app_widgets.cpython-38.pyc,sha256=7DfUA9V_1MiwrOe_ta-ts8dYY8xXb9UMg2_9A3XoRcs,523
|
|
25
|
-
simo/automation/__pycache__/controllers.cpython-38.pyc,sha256=
|
|
25
|
+
simo/automation/__pycache__/controllers.cpython-38.pyc,sha256=CL-0Tq9B4-E36fYfWT1XEBTq1dkq1W8003f6MrBnQU0,8391
|
|
26
26
|
simo/automation/__pycache__/forms.cpython-38.pyc,sha256=cpA5hA2Iz3JsPC0Dq01ki1I7S9c5DKRcXveHApI1dJo,7772
|
|
27
27
|
simo/automation/__pycache__/gateways.cpython-38.pyc,sha256=K8y3DNQFfcEQiLTgHl5p0Uk58R5QCuqFCluvbQ6I_9g,10652
|
|
28
28
|
simo/automation/__pycache__/helpers.cpython-38.pyc,sha256=4VSSarOFnUk_KExWwvDlx5dEhv8aHUCHMZDtGG--pUY,3627
|
|
@@ -120,7 +120,7 @@ simo/core/__pycache__/serializers.cpython-38.pyc,sha256=xegjaPbTp71RK9pfle_vgbHi
|
|
|
120
120
|
simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=v-qSKC9KX--aw9-vSNX8z8HXNFr0yOII0Aw8JxrYM0U,4920
|
|
121
121
|
simo/core/__pycache__/socket_consumers.cpython-38.pyc,sha256=KqbO1cOewodVPcy0-htVefyUjCuELKV0o7fOfYqfgPc,8490
|
|
122
122
|
simo/core/__pycache__/storage.cpython-38.pyc,sha256=9R1Xu0FJDflfRXUPsqEgt0SpwiP7FGk7HaR8s8XRyI8,721
|
|
123
|
-
simo/core/__pycache__/tasks.cpython-38.pyc,sha256
|
|
123
|
+
simo/core/__pycache__/tasks.cpython-38.pyc,sha256=-J2is-l5XsfhamreN2TPQDTK-Jw6XGYL81bcVfjXsU8,11213
|
|
124
124
|
simo/core/__pycache__/todos.cpython-38.pyc,sha256=lOqGZ58siHM3isoJV4r7sg8igrfE9fFd-jSfeBa0AQI,253
|
|
125
125
|
simo/core/__pycache__/views.cpython-38.pyc,sha256=IRjbX3MwKkAb10sMIJ3esKZH8W-tHwnuzm-mLIT_NWc,2584
|
|
126
126
|
simo/core/__pycache__/widgets.cpython-38.pyc,sha256=sR0ZeHCHrhnNDBJuRrxp3zUsfBp0xrtF0xrK2TkQv1o,3520
|
|
@@ -10259,7 +10259,7 @@ simo/fleet/auto_urls.py,sha256=vrfrooPyY4pDuQjya-eLxCgZldfhwbEeEiXa7diO_CY,847
|
|
|
10259
10259
|
simo/fleet/base_types.py,sha256=wL9RVkHr0gA7HI1wZq0pruGEIgvQqpfnCL4cC3ywsvw,102
|
|
10260
10260
|
simo/fleet/ble.py,sha256=eHA_9ABjbmH1vUVCv9hiPXQL2GZZSEVwfO0xyI1S0nI,1081
|
|
10261
10261
|
simo/fleet/controllers.py,sha256=PezfOT-1N_UONSsbyTXEIyGO6Po57KdEBRv4yzk_sw0,28605
|
|
10262
|
-
simo/fleet/forms.py,sha256=
|
|
10262
|
+
simo/fleet/forms.py,sha256=CHSmIz9bsdyukyTQnU5t554ggriWJjjwoBQe68l4FKI,67022
|
|
10263
10263
|
simo/fleet/gateways.py,sha256=C7dyapWDlJ5erYPNLkSoH50I8kj0lIXicSno0_CrdXc,5783
|
|
10264
10264
|
simo/fleet/managers.py,sha256=ZNeHFSkF5kzsl9E1DCBevOW6kXJlD6kw0LU4B-JMOG8,828
|
|
10265
10265
|
simo/fleet/models.py,sha256=zPplx_v64nfKBmb-nCb74aCVtEeY3m3SjEy-VhbnydU,17511
|
|
@@ -10268,7 +10268,7 @@ simo/fleet/serializers.py,sha256=PQnjp7LaEpMts-om2OPV5XOU9ut6KFWiePPDCXK0M98,267
|
|
|
10268
10268
|
simo/fleet/socket_consumers.py,sha256=3Ayry0PJgP5K2V7c-4a11QFOxfM8lOSXfIVhaBB8wTM,18820
|
|
10269
10269
|
simo/fleet/tasks.py,sha256=NX_opj-rbkK9eeQMeRNwHj_ZJ0LC4rYOZovMg9_r0kA,904
|
|
10270
10270
|
simo/fleet/utils.py,sha256=wNJvURzLP3-aho3D3rfg07N9kWCaMIw5gOsmeeO9Nlg,4740
|
|
10271
|
-
simo/fleet/views.py,sha256=
|
|
10271
|
+
simo/fleet/views.py,sha256=3F8im6BsSOaK3KEuBNESE4sDbS_dWHYaOdhTR4cCLjE,5189
|
|
10272
10272
|
simo/fleet/__pycache__/__init__.cpython-38.pyc,sha256=pIZE7EL6-cuJ3pQtaSwjKLrKLsTYelp1k9sRhXKLh6s,159
|
|
10273
10273
|
simo/fleet/__pycache__/admin.cpython-38.pyc,sha256=iweeu5AkaggBhQntP6-VF_eEodkNc6E7zKy0VjfwC2o,6652
|
|
10274
10274
|
simo/fleet/__pycache__/api.cpython-38.pyc,sha256=rZ1mkfkaMBEXhi9sw_jTKdk2CPJhBNxoImtjQ3Rf1VY,4016
|
|
@@ -10276,7 +10276,7 @@ simo/fleet/__pycache__/auto_urls.cpython-38.pyc,sha256=jHsvfwAumiBusr91QK1-qC-nm
|
|
|
10276
10276
|
simo/fleet/__pycache__/base_types.cpython-38.pyc,sha256=deyPwjpT6xZiFxBGFnj5b7R-lbdOTh2krgpJhrcGVhc,274
|
|
10277
10277
|
simo/fleet/__pycache__/ble.cpython-38.pyc,sha256=Nrof9w7cm4OlpFWHeVnmvvanh2_oF9oQ3TknJiV93-0,1267
|
|
10278
10278
|
simo/fleet/__pycache__/controllers.cpython-38.pyc,sha256=vH7mK1K4JBcLU9eKtqTJwbgB0SFMJ-s7WvO0qOsWjrg,24739
|
|
10279
|
-
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10279
|
+
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=NkchZIvx79WswYepd8IgWwI7Pu3hd4sPkhsWt79YOII,45304
|
|
10280
10280
|
simo/fleet/__pycache__/gateways.cpython-38.pyc,sha256=MIpXuGWitGNdsxJ99fWvMXJ6sVE96ac7iR4K4aM4Sds,5148
|
|
10281
10281
|
simo/fleet/__pycache__/managers.cpython-38.pyc,sha256=Vmm23zoQnS3-uS5_WJt2n3wtjhLiEhLWaYxXJCU6Gts,1339
|
|
10282
10282
|
simo/fleet/__pycache__/models.cpython-38.pyc,sha256=AXk1Q_nnHDXirHYgM3EW5pLsrR2CaPWk4EuvGCuDUpI,14131
|
|
@@ -10329,6 +10329,7 @@ simo/fleet/migrations/0040_alter_colonel_pwm_frequency.py,sha256=AiiYeLXEmBAFj1O
|
|
|
10329
10329
|
simo/fleet/migrations/0041_alter_colonel_instance_and_more.py,sha256=r3PzZERt4kM0ul_TFl-i7qS7n0ht0G8jS83nucMxZfQ,1181
|
|
10330
10330
|
simo/fleet/migrations/0042_auto_20241120_1028.py,sha256=nXyOXyTqhYfR2IDpIX0E3oIhKI7ShI7TGZ0Uf1CzR1U,715
|
|
10331
10331
|
simo/fleet/migrations/0043_auto_20241203_0930.py,sha256=wYfYEBurHB5pGOgL6M-z9EoOZGhW9glhT3BpNiMDoH4,651
|
|
10332
|
+
simo/fleet/migrations/0044_auto_20241210_0707.py,sha256=HJDLZWX84rlCN5vO3VGr8-TQLFIDT3pWmWwc-2BG67Q,746
|
|
10332
10333
|
simo/fleet/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10333
10334
|
simo/fleet/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=9kc1UyMEYkRNVnZ7iwZbiW1t3qWXROvWrI2G1BdzIaA,1250
|
|
10334
10335
|
simo/fleet/migrations/__pycache__/0002_auto_20220422_0743.cpython-38.pyc,sha256=8oxhGb7rL8QYKlBLU3pOYcd8aHeQWDB9I8awkK04mXg,841
|
|
@@ -10379,18 +10380,18 @@ simo/fleet/templates/fleet/controllers_info/ENS160AirQualitySensor.md,sha256=3LS
|
|
|
10379
10380
|
simo/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10380
10381
|
simo/generic/app_widgets.py,sha256=y8W3jR76Hh26O9pPQyg2SophMbYIOtAWD33MPKbB8Mg,856
|
|
10381
10382
|
simo/generic/base_types.py,sha256=u3SlfpNYaCwkVBwomWgso4ODzL71ay9MhiAW-bxgnDU,341
|
|
10382
|
-
simo/generic/controllers.py,sha256=
|
|
10383
|
+
simo/generic/controllers.py,sha256=Y-juxa7OSz24XYysFe785DCHPlbGeEurGTkK471S3iI,46123
|
|
10383
10384
|
simo/generic/forms.py,sha256=ikSwn6hg6m4XoaWyZNydw9e5aoFRHxbeM8tWsyYlen4,22993
|
|
10384
|
-
simo/generic/gateways.py,sha256=
|
|
10385
|
+
simo/generic/gateways.py,sha256=SBQPlcU2oNCWzRQ1H1XWQ11O2E3zWDNImXlWNDzKg-Y,15865
|
|
10385
10386
|
simo/generic/models.py,sha256=Adq7ipWK-renxJlNW-SZnAq2oGEOwKx8EdUWaKnfcVQ,7597
|
|
10386
10387
|
simo/generic/routing.py,sha256=elQVZmgnPiieEuti4sJ7zITk1hlRxpgbotcutJJgC60,228
|
|
10387
10388
|
simo/generic/socket_consumers.py,sha256=K2OjphIhKJH48BvfFfoCOyCQZ1NmXb_phs6y1IP-qaQ,1757
|
|
10388
10389
|
simo/generic/__pycache__/__init__.cpython-38.pyc,sha256=mLu54WS9KIl-pHwVCBKpsDFIlOqml--JsOVzAUHg6cU,161
|
|
10389
10390
|
simo/generic/__pycache__/app_widgets.cpython-38.pyc,sha256=D9b13pbMlirgHmjDnQhfLIDGSVINoSouHb4SWOeCRrs,1642
|
|
10390
10391
|
simo/generic/__pycache__/base_types.cpython-38.pyc,sha256=aV5NdIuvXR-ItKpI__MwcyPZHD6Z882TFdgYkPCkr1I,493
|
|
10391
|
-
simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=
|
|
10392
|
-
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10393
|
-
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=
|
|
10392
|
+
simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=tRYKQsZuWBBKXbfd32BGz3AsV4Jz4y-KsEkumoRP_T4,30195
|
|
10393
|
+
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=at1PQBgwr11YzSiTP92v3nyz1G59oKhu7vTa0sK0zUE,17289
|
|
10394
|
+
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=7Y190Iylo2X2AykcKrKzVllfDmW02B5suRMlcS0y6KQ,11712
|
|
10394
10395
|
simo/generic/__pycache__/models.cpython-38.pyc,sha256=MZpum7syAFxuulf47K7gtUlJJ7xRD-IBUBAwUM1ZRnw,5825
|
|
10395
10396
|
simo/generic/__pycache__/routing.cpython-38.pyc,sha256=xtxTUTBTdivzFyA5Wh7k-hUj1WDO_FiRq6HYXdbr9Ks,382
|
|
10396
10397
|
simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=qJO5kvQLWhsQDOr1AtAtsAybuRWioxSkQei3Pc7rdP0,1737
|
|
@@ -10430,7 +10431,7 @@ simo/multimedia/admin.py,sha256=GgXiKTLfi3omjBurU-bKgneJRK-tAeiR8o2jo3zD7zs,1002
|
|
|
10430
10431
|
simo/multimedia/api.py,sha256=mZ5BTggWdc_kL8P70JGC3rTCiZKPnxWYoyNcAQkFnX4,285
|
|
10431
10432
|
simo/multimedia/app_widgets.py,sha256=g_IPx5bNmIS6JbaXXDCzYZYV2KVKAiYvWjH4oI30lWM,331
|
|
10432
10433
|
simo/multimedia/base_types.py,sha256=dAP7_uh_b3A03yXBJZyQdRFucKIro4_RkIZ5yOaWXVE,151
|
|
10433
|
-
simo/multimedia/controllers.py,sha256=
|
|
10434
|
+
simo/multimedia/controllers.py,sha256=U8AuSW-jXYBwFm9960L9bYDlgmHswP7HKxcNd1Mt5NI,3304
|
|
10434
10435
|
simo/multimedia/forms.py,sha256=oMCVUXRNiESrY3w_uBLRRgjMjx8BrmNeVglzorA9QtY,239
|
|
10435
10436
|
simo/multimedia/models.py,sha256=5aWGLWDdCkekGAOGZIdanvX1l6ULnhgJN4JAvDZT4nQ,734
|
|
10436
10437
|
simo/multimedia/requirements.txt,sha256=QeIhjf1RfNGCYn_WZm3VuinPI2wK31WEJPbCxRWxssY,28
|
|
@@ -10454,12 +10455,13 @@ simo/multimedia/migrations/__pycache__/0002_sound_length.cpython-38.pyc,sha256=5
|
|
|
10454
10455
|
simo/multimedia/migrations/__pycache__/0003_alter_sound_length.cpython-38.pyc,sha256=dkdqLx_cWLAxxVCUxuuAX39iTv7G5kG-PhJ40HsPzx8,669
|
|
10455
10456
|
simo/multimedia/migrations/__pycache__/0004_auto_20231023_1055.cpython-38.pyc,sha256=tX6x1gNeVcUHcCFvisP9Z2jPBE029TJG632fvtvUjV8,892
|
|
10456
10457
|
simo/multimedia/migrations/__pycache__/__init__.cpython-38.pyc,sha256=mCgSiQBphL85imdWyTi9-4zBDYF6HfXbhB0ycSPVVuA,175
|
|
10458
|
+
simo/multimedia/templates/admin/controller_widgets/player.html,sha256=v4PFoL37-C7L6ILZI6yF5ff9iO3EnEs5kXbRayaHy0s,358
|
|
10457
10459
|
simo/notifications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10458
10460
|
simo/notifications/admin.py,sha256=WQbN_bd2KRxVjbOajeworNrV9QlDNSadQT58La0Nn2M,1174
|
|
10459
10461
|
simo/notifications/api.py,sha256=QrfFn5kBU0vlqi8X368w1-0iTmDGu_hmMxLW2R0OTTg,1765
|
|
10460
10462
|
simo/notifications/models.py,sha256=QGDLGAi5gk8OTcvd7ho5WNdctDymWGmGF1ZqN4-G_ZA,2443
|
|
10461
10463
|
simo/notifications/serializers.py,sha256=altDEAPWwOhxRcEzE9-34jL8EFpyf3vPoEdAPoVLfGc,523
|
|
10462
|
-
simo/notifications/utils.py,sha256=
|
|
10464
|
+
simo/notifications/utils.py,sha256=RnvwKFGZ6e34ishUWHfZq4m3H6XFxFbRF4NQCi2LT-E,2049
|
|
10463
10465
|
simo/notifications/__pycache__/__init__.cpython-38.pyc,sha256=YvucUfu98XFvEEg1LYFMlOZJpo_jSGxTVrM-ylAFLOg,167
|
|
10464
10466
|
simo/notifications/__pycache__/admin.cpython-38.pyc,sha256=MScNrtVM1wavefsPfxy0A7LVyXKcbvEkLH9GJkgNOl8,1945
|
|
10465
10467
|
simo/notifications/__pycache__/api.cpython-38.pyc,sha256=eQmCHwTnr4zQ3ZY_SKZVCryiSEnzmyIjHQM13pZ5LT0,2071
|
|
@@ -10606,9 +10608,9 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
10606
10608
|
simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10607
10609
|
simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10608
10610
|
simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10609
|
-
simo-2.7.
|
|
10610
|
-
simo-2.7.
|
|
10611
|
-
simo-2.7.
|
|
10612
|
-
simo-2.7.
|
|
10613
|
-
simo-2.7.
|
|
10614
|
-
simo-2.7.
|
|
10611
|
+
simo-2.7.9.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
|
|
10612
|
+
simo-2.7.9.dist-info/METADATA,sha256=jHAhp_0GQNyZhG5GjyR2Y60aZaxf0qFH5aFlP-qatmo,1952
|
|
10613
|
+
simo-2.7.9.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
10614
|
+
simo-2.7.9.dist-info/entry_points.txt,sha256=S9PwnUYmTSW7681GKDCxUbL0leRJIaRk6fDQIKgbZBA,135
|
|
10615
|
+
simo-2.7.9.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
|
|
10616
|
+
simo-2.7.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|