simo 2.7.10__py3-none-any.whl → 2.7.12__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__/gateways.cpython-38.pyc +0 -0
- simo/automation/__pycache__/helpers.cpython-38.pyc +0 -0
- simo/automation/__pycache__/models.cpython-38.pyc +0 -0
- simo/automation/__pycache__/serializers.cpython-38.pyc +0 -0
- simo/automation/gateways.py +45 -25
- simo/core/__pycache__/admin.cpython-38.pyc +0 -0
- simo/core/__pycache__/api_meta.cpython-38.pyc +0 -0
- simo/core/__pycache__/auto_urls.cpython-38.pyc +0 -0
- simo/core/__pycache__/form_fields.cpython-38.pyc +0 -0
- simo/core/__pycache__/forms.cpython-38.pyc +0 -0
- simo/core/__pycache__/models.cpython-38.pyc +0 -0
- simo/core/__pycache__/serializers.cpython-38.pyc +0 -0
- simo/core/__pycache__/signal_receivers.cpython-38.pyc +0 -0
- simo/core/__pycache__/socket_consumers.cpython-38.pyc +0 -0
- simo/core/__pycache__/views.cpython-38.pyc +0 -0
- simo/core/api_meta.py +3 -1
- simo/core/auto_urls.py +3 -2
- simo/core/form_fields.py +7 -1
- simo/core/forms.py +13 -5
- simo/core/migrations/0047_alter_component_value_translation.py +18 -0
- simo/core/migrations/0048_publicfile_privatefile.py +35 -0
- simo/core/migrations/__pycache__/0047_alter_component_value_translation.cpython-38.pyc +0 -0
- simo/core/migrations/__pycache__/0048_publicfile_privatefile.cpython-38.pyc +0 -0
- simo/core/models.py +32 -0
- simo/core/serializers.py +7 -1
- simo/core/signal_receivers.py +13 -2
- simo/core/templates/admin/wizard/wizard_add.html +1 -1
- simo/core/views.py +16 -2
- simo/fleet/__pycache__/forms.cpython-38.pyc +0 -0
- simo/fleet/__pycache__/socket_consumers.cpython-38.pyc +0 -0
- simo/fleet/__pycache__/views.cpython-38.pyc +0 -0
- simo/fleet/migrations/__pycache__/0044_auto_20241210_0707.cpython-38.pyc +0 -0
- 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/__pycache__/socket_consumers.cpython-38.pyc +0 -0
- simo/generic/controllers.py +10 -1
- simo/generic/forms.py +75 -1
- simo/generic/gateways.py +50 -9
- simo/multimedia/__pycache__/admin.cpython-38.pyc +0 -0
- simo/multimedia/__pycache__/auto_urls.cpython-38.pyc +0 -0
- simo/multimedia/__pycache__/controllers.cpython-38.pyc +0 -0
- simo/multimedia/__pycache__/models.cpython-38.pyc +0 -0
- simo/multimedia/__pycache__/views.cpython-38.pyc +0 -0
- simo/multimedia/admin.py +4 -4
- simo/multimedia/auto_urls.py +10 -0
- simo/multimedia/controllers.py +12 -4
- simo/multimedia/migrations/0005_remove_sound_slug_sound_date_uploaded.py +24 -0
- simo/multimedia/migrations/__pycache__/0005_remove_sound_slug_sound_date_uploaded.cpython-38.pyc +0 -0
- simo/multimedia/models.py +16 -2
- simo/multimedia/views.py +19 -0
- simo/notifications/__pycache__/utils.cpython-38.pyc +0 -0
- simo/users/__pycache__/models.cpython-38.pyc +0 -0
- {simo-2.7.10.dist-info → simo-2.7.12.dist-info}/METADATA +1 -1
- {simo-2.7.10.dist-info → simo-2.7.12.dist-info}/RECORD +59 -49
- simo/multimedia/requirements.txt +0 -2
- {simo-2.7.10.dist-info → simo-2.7.12.dist-info}/LICENSE.md +0 -0
- {simo-2.7.10.dist-info → simo-2.7.12.dist-info}/WHEEL +0 -0
- {simo-2.7.10.dist-info → simo-2.7.12.dist-info}/entry_points.txt +0 -0
- {simo-2.7.10.dist-info → simo-2.7.12.dist-info}/top_level.txt +0 -0
simo/generic/gateways.py
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import logging
|
|
3
2
|
import pytz
|
|
4
3
|
import json
|
|
5
4
|
import time
|
|
6
|
-
import multiprocessing
|
|
7
5
|
import threading
|
|
8
6
|
import traceback
|
|
9
7
|
from django.conf import settings
|
|
10
8
|
from django.utils import timezone
|
|
11
|
-
from django.db import connection as db_connection
|
|
12
|
-
from django.db.models import Q
|
|
13
9
|
import paho.mqtt.client as mqtt
|
|
14
|
-
from simo.core.
|
|
10
|
+
from simo.core.utils.helpers import get_self_ip
|
|
11
|
+
from simo.core.models import Component, PublicFile
|
|
15
12
|
from simo.core.middleware import introduce_instance, drop_current_instance
|
|
16
13
|
from simo.core.gateways import BaseObjectCommandsGatewayHandler
|
|
17
14
|
from simo.core.forms import BaseGatewayForm
|
|
18
|
-
from simo.core.utils.logs import StreamToLogger
|
|
19
15
|
from simo.core.events import GatewayObjectCommand, get_event_obj
|
|
20
16
|
from simo.core.loggers import get_gw_logger, get_component_logger
|
|
21
17
|
|
|
@@ -134,8 +130,50 @@ class GroupButtonsHandler:
|
|
|
134
130
|
group.toggle()
|
|
135
131
|
|
|
136
132
|
|
|
133
|
+
class AudioAlertsHandler:
|
|
137
134
|
|
|
138
|
-
|
|
135
|
+
def control_audio_alert(self, component, val):
|
|
136
|
+
if val:
|
|
137
|
+
public_file = PublicFile.objects.filter(
|
|
138
|
+
component=component
|
|
139
|
+
).first()
|
|
140
|
+
if not public_file:
|
|
141
|
+
return
|
|
142
|
+
uri = f"http://{get_self_ip()}{public_file.get_absolute_url()}"
|
|
143
|
+
loop = component.config.get('loop', False)
|
|
144
|
+
for pl_id in component.config.get('players', []):
|
|
145
|
+
player = Component.objects.filter(
|
|
146
|
+
id=pl_id, base_type='audio-player'
|
|
147
|
+
).first()
|
|
148
|
+
if not player:
|
|
149
|
+
continue
|
|
150
|
+
player.play_alert(
|
|
151
|
+
uri,
|
|
152
|
+
component.config.get('loop', False),
|
|
153
|
+
component.config.get('volume', 50)
|
|
154
|
+
)
|
|
155
|
+
if not loop:
|
|
156
|
+
def set_done(comp):
|
|
157
|
+
comp.set(False)
|
|
158
|
+
threading.Timer(
|
|
159
|
+
component.config.get('duration', 1),
|
|
160
|
+
set_done, args=[component]
|
|
161
|
+
)
|
|
162
|
+
component.set(True)
|
|
163
|
+
else:
|
|
164
|
+
for pl_id in component.config.get('players', []):
|
|
165
|
+
player = Component.objects.filter(
|
|
166
|
+
id=pl_id, base_type='audio-player'
|
|
167
|
+
).first()
|
|
168
|
+
if not player:
|
|
169
|
+
continue
|
|
170
|
+
player.cancel_alert()
|
|
171
|
+
component.set(False)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class GenericGatewayHandler(
|
|
175
|
+
BaseObjectCommandsGatewayHandler, GroupButtonsHandler, AudioAlertsHandler
|
|
176
|
+
):
|
|
139
177
|
name = "Generic"
|
|
140
178
|
config_form = BaseGatewayForm
|
|
141
179
|
info = "Provides generic type components which use other components to operate like " \
|
|
@@ -149,7 +187,8 @@ class GenericGatewayHandler(BaseObjectCommandsGatewayHandler):
|
|
|
149
187
|
('watch_watering', 60),
|
|
150
188
|
('watch_alarm_events', 1),
|
|
151
189
|
('watch_timers', 1),
|
|
152
|
-
('watch_main_states', 60)
|
|
190
|
+
('watch_main_states', 60),
|
|
191
|
+
('watch_groups', 60)
|
|
153
192
|
)
|
|
154
193
|
|
|
155
194
|
def __init__(self, *args, **kwargs):
|
|
@@ -229,7 +268,7 @@ class GenericGatewayHandler(BaseObjectCommandsGatewayHandler):
|
|
|
229
268
|
|
|
230
269
|
def on_mqtt_message(self, client, userdata, msg):
|
|
231
270
|
print("Mqtt message: ", msg.payload)
|
|
232
|
-
from simo.generic.controllers import AlarmGroup
|
|
271
|
+
from simo.generic.controllers import AlarmGroup, AudioAlert
|
|
233
272
|
|
|
234
273
|
payload = json.loads(msg.payload)
|
|
235
274
|
drop_current_instance()
|
|
@@ -239,6 +278,8 @@ class GenericGatewayHandler(BaseObjectCommandsGatewayHandler):
|
|
|
239
278
|
try:
|
|
240
279
|
if component.controller_uid == AlarmGroup.uid:
|
|
241
280
|
self.control_alarm_group(component, payload.get('set_val'))
|
|
281
|
+
elif component.controller_uid == AudioAlert.uid:
|
|
282
|
+
self.control_audio_alert(component, payload.get('set_val'))
|
|
242
283
|
else:
|
|
243
284
|
component.controller.set(payload.get('set_val'))
|
|
244
285
|
except Exception:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
simo/multimedia/admin.py
CHANGED
|
@@ -7,10 +7,9 @@ from .forms import SoundModelForm
|
|
|
7
7
|
|
|
8
8
|
@admin.register(Sound)
|
|
9
9
|
class SoundAdmin(admin.ModelAdmin):
|
|
10
|
-
list_display = 'id', 'name', '
|
|
11
|
-
search_fields = 'name', '
|
|
12
|
-
|
|
13
|
-
list_display_links = 'id', 'name', 'slug'
|
|
10
|
+
list_display = 'id', 'name', 'file', 'length_display', 'date_uploaded'
|
|
11
|
+
search_fields = 'name', 'file'
|
|
12
|
+
list_display_links = 'id', 'name',
|
|
14
13
|
form = SoundModelForm
|
|
15
14
|
readonly_fields = 'length_display',
|
|
16
15
|
|
|
@@ -22,6 +21,7 @@ class SoundAdmin(admin.ModelAdmin):
|
|
|
22
21
|
|
|
23
22
|
def save_model(self, request, obj, form, change):
|
|
24
23
|
super().save_model(request, obj, form, change)
|
|
24
|
+
# need to keep it here as using admin interface skips post_save signals
|
|
25
25
|
try:
|
|
26
26
|
obj.length = int(
|
|
27
27
|
librosa.core.get_duration(
|
simo/multimedia/controllers.py
CHANGED
|
@@ -89,17 +89,22 @@ class BasePlayer(Switch):
|
|
|
89
89
|
assert 0 <= volume <= 100
|
|
90
90
|
self.send({"play_uri": uri, 'volume': volume})
|
|
91
91
|
|
|
92
|
-
def play_alert(self, val, volume=None):
|
|
92
|
+
def play_alert(self, val, loop=False, volume=None):
|
|
93
93
|
'''
|
|
94
94
|
Plays alert and goes back to whatever was playing initially
|
|
95
|
-
:param val:
|
|
95
|
+
:param val: uri
|
|
96
|
+
:param loop: Repeat infinitely
|
|
96
97
|
:param volume: volume at which to play
|
|
97
98
|
:return:
|
|
98
99
|
'''
|
|
99
|
-
assert type(val)
|
|
100
|
+
assert type(val) == str
|
|
100
101
|
if volume:
|
|
101
102
|
assert 0 <= volume <= 100
|
|
102
|
-
self.send({"alert": val, 'volume': volume})
|
|
103
|
+
self.send({"alert": val, 'loop': loop, 'volume': volume})
|
|
104
|
+
|
|
105
|
+
def cancel_alert(self):
|
|
106
|
+
'''Cancel alert if it's currently playing'''
|
|
107
|
+
self.send({"alert": None})
|
|
103
108
|
|
|
104
109
|
def toggle(self):
|
|
105
110
|
if self.component.value == 'playing':
|
|
@@ -120,3 +125,6 @@ class BaseVideoPlayer(BasePlayer):
|
|
|
120
125
|
name = _("Video Player")
|
|
121
126
|
base_type = 'video-player'
|
|
122
127
|
app_widget = VideoPlayerWidget
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Generated by Django 4.2.10 on 2024-12-11 14:14
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.utils.timezone
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('multimedia', '0004_auto_20231023_1055'),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.RemoveField(
|
|
15
|
+
model_name='sound',
|
|
16
|
+
name='slug',
|
|
17
|
+
),
|
|
18
|
+
migrations.AddField(
|
|
19
|
+
model_name='sound',
|
|
20
|
+
name='date_uploaded',
|
|
21
|
+
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
|
|
22
|
+
preserve_default=False,
|
|
23
|
+
),
|
|
24
|
+
]
|
simo/multimedia/migrations/__pycache__/0005_remove_sound_slug_sound_date_uploaded.cpython-38.pyc
ADDED
|
Binary file
|
simo/multimedia/models.py
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import os
|
|
1
|
+
import os, librosa
|
|
2
2
|
from django.db import models
|
|
3
|
+
from django.db.models.signals import post_save, post_delete
|
|
4
|
+
from django.dispatch import receiver
|
|
3
5
|
from django.core.files.storage import FileSystemStorage
|
|
4
6
|
from django.conf import settings
|
|
5
7
|
|
|
6
8
|
|
|
7
9
|
class Sound(models.Model):
|
|
8
10
|
name = models.CharField(max_length=100, db_index=True)
|
|
9
|
-
slug = models.SlugField()
|
|
10
11
|
file = models.FileField(
|
|
11
12
|
upload_to='sounds', storage=FileSystemStorage(
|
|
12
13
|
location=os.path.join(settings.VAR_DIR, 'public_media'),
|
|
@@ -17,9 +18,22 @@ class Sound(models.Model):
|
|
|
17
18
|
length = models.PositiveIntegerField(
|
|
18
19
|
editable=False, default=0, help_text='Sound length in seconds'
|
|
19
20
|
)
|
|
21
|
+
date_uploaded = models.DateTimeField(auto_now_add=True)
|
|
20
22
|
|
|
21
23
|
def __str__(self):
|
|
22
24
|
return self.name
|
|
23
25
|
|
|
24
26
|
def get_absolute_url(self):
|
|
25
27
|
return self.file.url
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@receiver(post_save, sender=Sound)
|
|
31
|
+
def determine_duration(sender, instance, created, **kwargs):
|
|
32
|
+
if not instance.length:
|
|
33
|
+
instance.length = int(
|
|
34
|
+
librosa.core.get_duration(
|
|
35
|
+
sr=22050, filename=instance.file.path
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
instance.save()
|
|
39
|
+
|
simo/multimedia/views.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from django.http import Http404
|
|
2
|
+
from dal import autocomplete
|
|
3
|
+
from simo.core.utils.helpers import search_queryset
|
|
4
|
+
from .models import Sound
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class SoundAutocomplete(autocomplete.Select2QuerySetView):
|
|
8
|
+
|
|
9
|
+
def get_queryset(self):
|
|
10
|
+
if not self.request.user.is_authenticated:
|
|
11
|
+
raise Http404()
|
|
12
|
+
|
|
13
|
+
qs = Sound.objects.all()
|
|
14
|
+
|
|
15
|
+
if self.request.GET.get('value'):
|
|
16
|
+
qs = qs.filter(pk__in=self.request.GET['value'].split(','))
|
|
17
|
+
elif self.q:
|
|
18
|
+
qs = search_queryset(qs, self.q, ('name', 'slug'))
|
|
19
|
+
return qs
|
|
Binary file
|
|
Binary file
|
|
@@ -15,7 +15,7 @@ simo/automation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
15
15
|
simo/automation/app_widgets.py,sha256=gaqImMZjuMHm7nIb9a4D-Y3qipz_WhSPAHXcwGx4Uzs,199
|
|
16
16
|
simo/automation/controllers.py,sha256=Ow8xG9hkdyMRZbrNPX5uZloYM9jZqa9mgCh4k6FeoJw,11492
|
|
17
17
|
simo/automation/forms.py,sha256=UWnkxw8pILPK0smRPTo4SLgsZl78zOySx7JIc30Bgtk,10228
|
|
18
|
-
simo/automation/gateways.py,sha256=
|
|
18
|
+
simo/automation/gateways.py,sha256=dTrx4r3aoUynWQCHHXZFKkoHhKbC3-UMZIY755C-sdI,15470
|
|
19
19
|
simo/automation/helpers.py,sha256=iP-fxxB8HsFQy3k2CjFubu86aMqvWgmh-p24DiyOrek,4330
|
|
20
20
|
simo/automation/models.py,sha256=l45FHgeKGsfpLtd1X1PVFpIjB5JI4BlvKkodpcxm6aE,927
|
|
21
21
|
simo/automation/serializers.py,sha256=PjyFrjdPK1mBsgbNhyqMi9SWzcymqTa742ipy0LhAN4,1996
|
|
@@ -24,10 +24,10 @@ simo/automation/__pycache__/__init__.cpython-38.pyc,sha256=YmP0xAD-mxpQHgdTZeC64
|
|
|
24
24
|
simo/automation/__pycache__/app_widgets.cpython-38.pyc,sha256=7DfUA9V_1MiwrOe_ta-ts8dYY8xXb9UMg2_9A3XoRcs,523
|
|
25
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
|
-
simo/automation/__pycache__/gateways.cpython-38.pyc,sha256=
|
|
28
|
-
simo/automation/__pycache__/helpers.cpython-38.pyc,sha256=
|
|
29
|
-
simo/automation/__pycache__/models.cpython-38.pyc,sha256=
|
|
30
|
-
simo/automation/__pycache__/serializers.cpython-38.pyc,sha256=
|
|
27
|
+
simo/automation/__pycache__/gateways.cpython-38.pyc,sha256=F4zO0G15gGMSaQaB_fW13qtcBHQ3KYlDqZ4_Ch0YW70,10956
|
|
28
|
+
simo/automation/__pycache__/helpers.cpython-38.pyc,sha256=fNjSyn4Mfq7-JQx-bdsnj-rSxgu20dVJ9-5ZEMT6yiM,3627
|
|
29
|
+
simo/automation/__pycache__/models.cpython-38.pyc,sha256=VeQNAygVr0AXPlF5LEYk90Tq8zuCVPfsA2r1NBjrkxU,1230
|
|
30
|
+
simo/automation/__pycache__/serializers.cpython-38.pyc,sha256=9Te21FW5-Tki1a-tq3gt0rme0afBA8o-7V249b4muFk,3405
|
|
31
31
|
simo/automation/__pycache__/state.cpython-38.pyc,sha256=TO2IM6h2hbGVlOUcoMwHkDUF4V-54d_KVhcebMgNtCk,784
|
|
32
32
|
simo/automation/migrations/0001_initial.py,sha256=VB6WIK1RlUdtqlWYCEhtnVE24odp2dfUvOVcxUZPpQ4,990
|
|
33
33
|
simo/automation/migrations/0002_update_helpers_in_scripts.py,sha256=GHtc8ibfURDVoWHw17UxaaA0sEy4tIklIjP6GEMLjhs,714
|
|
@@ -63,10 +63,10 @@ simo/core/__init__.py,sha256=_s2TjJfQImsMrTIxqLAx9AZie1Ojmm6sCHASdl3WLGU,50
|
|
|
63
63
|
simo/core/admin.py,sha256=j07Dy3IsW7SRRsAJ2XXGzE0MTxmfY87CEEbT22kLlS4,18550
|
|
64
64
|
simo/core/api.py,sha256=D5FBWvhYpQeM9wVfapzRvBi_ypOtXBt9tmmCaUxpGjI,29992
|
|
65
65
|
simo/core/api_auth.py,sha256=vCxvczA8aWNcW0VyKs5WlC_ytlqeGP_H_hkKUNVkCwM,1247
|
|
66
|
-
simo/core/api_meta.py,sha256=
|
|
66
|
+
simo/core/api_meta.py,sha256=Bh-UOzANXl9Bg3FadFf7biM_olAr9GgjNJXu55SO6Og,5290
|
|
67
67
|
simo/core/app_widgets.py,sha256=VxZzapuc-a29wBH7JzpvNF2SK1ECrgNUySId5ke1ffc,2509
|
|
68
68
|
simo/core/apps.py,sha256=CsqpiQerhmrMsH-wGiG-gQgXd9qEkIi-LUaA9cXpKSw,425
|
|
69
|
-
simo/core/auto_urls.py,sha256=
|
|
69
|
+
simo/core/auto_urls.py,sha256=FqKhH0fF7cGO6P2YrjblwG4JA2UkVXj3lreJUOB2Jq4,1194
|
|
70
70
|
simo/core/autocomplete_views.py,sha256=x3MKOZvXYS3xVQ-V1S7Liv_U5bxr-uc0gePa85wv5nA,4561
|
|
71
71
|
simo/core/base_types.py,sha256=WypW8hTfzveuTQtruGjLYAGQZIuczxTlW-SdRk3iQug,666
|
|
72
72
|
simo/core/context.py,sha256=LKw1I4iIRnlnzoTCuSLLqDX7crHdBnMo3hjqYvVmzFc,1557
|
|
@@ -74,32 +74,32 @@ simo/core/controllers.py,sha256=gVwQHYkJ6GNTHaKTSjf4H2VVykQbvKh4_fSe_MdAVi4,3741
|
|
|
74
74
|
simo/core/dynamic_settings.py,sha256=bUs58XEZOCIEhg1TigR3LmYggli13KMryBZ9pC7ugAQ,1872
|
|
75
75
|
simo/core/events.py,sha256=1_KIk5pJqdLPRQlCQ9xSyALst2Cn0b2lAEAJ3QjwIjE,4801
|
|
76
76
|
simo/core/filters.py,sha256=6wbn8C2WvKTTjtfMwwLBp2Fib1V0-DMpS4iqJd6jJQo,2540
|
|
77
|
-
simo/core/form_fields.py,sha256=
|
|
78
|
-
simo/core/forms.py,sha256=
|
|
77
|
+
simo/core/form_fields.py,sha256=Os4bLhEt6fQpQ5JWPThs5XxMI2429kQNgr7SgDDr_y0,5063
|
|
78
|
+
simo/core/forms.py,sha256=osrwzw1nV-ObvFx7OMJaolqGU4xeZAOuhQRtirFjq6Q,22016
|
|
79
79
|
simo/core/gateways.py,sha256=Y2BME6zSyeUq_e-hzEUF6gErCUCP6nFxedkLZKiLVOo,4141
|
|
80
80
|
simo/core/loggers.py,sha256=EBdq23gTQScVfQVH-xeP90-wII2DQFDjoROAW6ggUP4,1645
|
|
81
81
|
simo/core/managers.py,sha256=n-b3I4uXzfHKTeB1VMjSaMsDUxp8FegFJwnbV1IsWQ4,3019
|
|
82
82
|
simo/core/middleware.py,sha256=eUFf6iP-Snx_0TE3MoXsSwqrd5IjlukqZk2GQGStRCo,3385
|
|
83
|
-
simo/core/models.py,sha256
|
|
83
|
+
simo/core/models.py,sha256=i7FT-y4wdvwwMbvxxDO3F9VSwLXBVcjlSFawb-V7N8w,23709
|
|
84
84
|
simo/core/permissions.py,sha256=2YNRot2qoHjHKWPGOpO4PBseecctPbTlUQpepnFkCRs,3027
|
|
85
85
|
simo/core/routing.py,sha256=X1_IHxyA-_Q7hw1udDoviVP4_FSBDl8GYETTC2zWTbY,499
|
|
86
|
-
simo/core/serializers.py,sha256=
|
|
87
|
-
simo/core/signal_receivers.py,sha256=
|
|
86
|
+
simo/core/serializers.py,sha256=b_38QV6LXsHZ7KfzX-h6N_-RjyV94ZDAyR6tok9lCbs,22664
|
|
87
|
+
simo/core/signal_receivers.py,sha256=5qp607PdNlRHyw88YOXu7rSznHm3upEpWLxB0lmEa0s,6527
|
|
88
88
|
simo/core/socket_consumers.py,sha256=Es_NmacQGZjsncBXDTEXR2yZbRs7mf2FKOBJjbZRGac,9607
|
|
89
89
|
simo/core/storage.py,sha256=_5igjaoWZAiExGWFEJMElxUw55DzJG1jqFty33xe8BE,342
|
|
90
90
|
simo/core/tasks.py,sha256=LMTkZQDGFus5L2Q8AGzYegjpnZKf9Klgo3V9BT5L2ng,16904
|
|
91
91
|
simo/core/todos.py,sha256=eYVXfLGiapkxKK57XuviSNe3WsUYyIWZ0hgQJk7ThKo,665
|
|
92
92
|
simo/core/types.py,sha256=WJEq48mIbFi_5Alt4wxWMGXxNxUTXqfQU5koH7wqHHI,1108
|
|
93
|
-
simo/core/views.py,sha256=
|
|
93
|
+
simo/core/views.py,sha256=08H4Bm7KrHxB3p3ZKx1vrFR4d0DjCqMbqQosEsRWpkY,2841
|
|
94
94
|
simo/core/widgets.py,sha256=J9e06C6I22F6xKic3VMgG7WeX07glAcl-4bF2Mg180A,2827
|
|
95
95
|
simo/core/__pycache__/__init__.cpython-38.pyc,sha256=ZJFM_XN0RmJMULQulgA_wFiOnEtsMoedcOWnXjH-Y8o,208
|
|
96
|
-
simo/core/__pycache__/admin.cpython-38.pyc,sha256=
|
|
96
|
+
simo/core/__pycache__/admin.cpython-38.pyc,sha256=zdegA3IsH3QhT7Hm6Aj08F2sv-3h1X7VBcwN05fhVis,14155
|
|
97
97
|
simo/core/__pycache__/api.cpython-38.pyc,sha256=JXCs5U9MPyZTdO4_j-ytpH1_Fo9-w36zs1eHXZ-czwo,22925
|
|
98
98
|
simo/core/__pycache__/api_auth.cpython-38.pyc,sha256=mi3mu5qEKio_PvfQEvr3Q6AhdPLAHxzxAxrMbAz_pKU,1712
|
|
99
|
-
simo/core/__pycache__/api_meta.cpython-38.pyc,sha256=
|
|
99
|
+
simo/core/__pycache__/api_meta.cpython-38.pyc,sha256=euP2EQsfTVCdvMT9NY10bK7xrz2dQouqQKZP0efN1ss,3906
|
|
100
100
|
simo/core/__pycache__/app_widgets.cpython-38.pyc,sha256=oN657XMMZ6GYN9nblv7fX3kdnTEzSP9XV6PXM6Z0wl4,4358
|
|
101
101
|
simo/core/__pycache__/apps.cpython-38.pyc,sha256=JL0BEqgXcSQvMlcK48PBpPfyDEkPMdO1Y0teqMRGirs,713
|
|
102
|
-
simo/core/__pycache__/auto_urls.cpython-38.pyc,sha256=
|
|
102
|
+
simo/core/__pycache__/auto_urls.cpython-38.pyc,sha256=mwS1N-R5kcT5uoDAGraKG9MWZpCM8_SA4L4eyZsVpYk,949
|
|
103
103
|
simo/core/__pycache__/autocomplete_views.cpython-38.pyc,sha256=rZzjrxAir0HzN9uKPoXIY753f1CSdFWaSW7QBDen3qc,4448
|
|
104
104
|
simo/core/__pycache__/base_types.cpython-38.pyc,sha256=CX-qlF7CefRi_mCE954wYa9rUFR88mOl6g7fybDRu7g,803
|
|
105
105
|
simo/core/__pycache__/context.cpython-38.pyc,sha256=NlTHt2GvXxA21AhBkeyOLfRFUuXw7wmwqyNhhcDl2cw,1373
|
|
@@ -107,22 +107,22 @@ simo/core/__pycache__/controllers.cpython-38.pyc,sha256=LtrQQ8egOIOuQbAckeM-z8Of
|
|
|
107
107
|
simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=wGpnscX1DxFpRl54MQURhjz2aD3NJohSzw9JCFnzh2Y,2384
|
|
108
108
|
simo/core/__pycache__/events.cpython-38.pyc,sha256=1y8YaZsiDkBOeIWzH7SQz4holmMG_RLlMWi8kuSZcoE,5280
|
|
109
109
|
simo/core/__pycache__/filters.cpython-38.pyc,sha256=WBBDwcDQwOmgbrRhyUxenSN80rU4Eq9jQ6RcrRGCP_o,2440
|
|
110
|
-
simo/core/__pycache__/form_fields.cpython-38.pyc,sha256=
|
|
111
|
-
simo/core/__pycache__/forms.cpython-38.pyc,sha256=
|
|
110
|
+
simo/core/__pycache__/form_fields.cpython-38.pyc,sha256=WJgjOqvl5BZoVAGVtxGeDOOW-jn3_fdJwVYBx1IRJlY,5886
|
|
111
|
+
simo/core/__pycache__/forms.cpython-38.pyc,sha256=frvM1b9KRqsjh4YbUlV1CW8yupUyXJTb2R4sVgwy2K0,17827
|
|
112
112
|
simo/core/__pycache__/gateways.cpython-38.pyc,sha256=-_ugqnUOA1Cl6VfMqpV96n7ekVOEwYg_jNvoaZEcx9I,4815
|
|
113
113
|
simo/core/__pycache__/loggers.cpython-38.pyc,sha256=Z-cdQnC6XlIonPV4Sl4E52tP4NMEdPAiHK0cFaIL7I8,1623
|
|
114
114
|
simo/core/__pycache__/managers.cpython-38.pyc,sha256=6RTIxyjOgpQGtAqcUyE2vFPS09w1V5Wmd_vOV7rHRRI,3370
|
|
115
115
|
simo/core/__pycache__/middleware.cpython-38.pyc,sha256=SgTLFNkKxvJ62hevSAVNZHgHdG_u2p7AZBhrj-jfFPs,2649
|
|
116
|
-
simo/core/__pycache__/models.cpython-38.pyc,sha256=
|
|
116
|
+
simo/core/__pycache__/models.cpython-38.pyc,sha256=EG1RJ-kaOFupzHcrZnii6JQUuoQ1gbt6LN9xUMfHFo4,19610
|
|
117
117
|
simo/core/__pycache__/permissions.cpython-38.pyc,sha256=UdtxCTXPEbe99vgZOfRz9wfKSYvUn9hSRbpIV9CJSyI,2988
|
|
118
118
|
simo/core/__pycache__/routing.cpython-38.pyc,sha256=3T3FPJ8Cn99xZCGvMyg2xjl7al-Shm9CelbSpkJtNP8,599
|
|
119
|
-
simo/core/__pycache__/serializers.cpython-38.pyc,sha256=
|
|
120
|
-
simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=
|
|
121
|
-
simo/core/__pycache__/socket_consumers.cpython-38.pyc,sha256=
|
|
119
|
+
simo/core/__pycache__/serializers.cpython-38.pyc,sha256=ciWQe19lrr5ImXByMZJI8JM47IlqmyAo1XcXfnVrU80,20018
|
|
120
|
+
simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=R_h1GHkoZXR-nrwiRJWQ9xE69JB1R_mP_fNYIBX4lrE,5165
|
|
121
|
+
simo/core/__pycache__/socket_consumers.cpython-38.pyc,sha256=Mr1-x-vGjBNffbz0S6AKpJCuzHJgRm8kXefv3qVVY_E,8397
|
|
122
122
|
simo/core/__pycache__/storage.cpython-38.pyc,sha256=9R1Xu0FJDflfRXUPsqEgt0SpwiP7FGk7HaR8s8XRyI8,721
|
|
123
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
|
-
simo/core/__pycache__/views.cpython-38.pyc,sha256=
|
|
125
|
+
simo/core/__pycache__/views.cpython-38.pyc,sha256=kYKvEcyKicdkTcN0iEJ4pT101-KHiZfXWkidiu82Evw,2925
|
|
126
126
|
simo/core/__pycache__/widgets.cpython-38.pyc,sha256=sR0ZeHCHrhnNDBJuRrxp3zUsfBp0xrtF0xrK2TkQv1o,3520
|
|
127
127
|
simo/core/db_backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
128
|
simo/core/db_backend/base.py,sha256=wY5jsZ8hQpwot3o-7JNtDe33xy-vlfMLXa011htDojI,601
|
|
@@ -237,6 +237,8 @@ simo/core/migrations/0043_alter_category_instance_alter_instance_timezone_and_mo
|
|
|
237
237
|
simo/core/migrations/0044_alter_gateway_type.py,sha256=xoQvOSz_JrWHECAAII83518tmhEEfLUHqxpIjoo4oLY,758
|
|
238
238
|
simo/core/migrations/0045_alter_instance_device_report_history_days_and_more.py,sha256=saR7gEbTDfXTcKnT1R193Aboqlg32HvDRI_JAvZ97TY,1360
|
|
239
239
|
simo/core/migrations/0046_component_value_translation_alter_gateway_type.py,sha256=SUybDSLRCGevVS9mCQGvozO8LA43tKze3R5rCf1TQ4E,1282
|
|
240
|
+
simo/core/migrations/0047_alter_component_value_translation.py,sha256=3GAgUBkZKUwWJMbDJxJJLBicC8eKkQ2ZJA__-xYpBCo,733
|
|
241
|
+
simo/core/migrations/0048_publicfile_privatefile.py,sha256=3NAP6f1ep66-CHJ7olSYOnXXeN7fTAg76lEjTJE1rL8,1601
|
|
240
242
|
simo/core/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
241
243
|
simo/core/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=w6GiBXVxWj30Bg4Sn_pFVeA041d-pCrkaq8mR3KuF70,5381
|
|
242
244
|
simo/core/migrations/__pycache__/0002_load_icons.cpython-38.pyc,sha256=Nb9RrPjVYo_RpZ5PmzoaEIWGCeVt4kicpmGiKlBrpIw,2123
|
|
@@ -284,6 +286,8 @@ simo/core/migrations/__pycache__/0043_alter_category_instance_alter_instance_tim
|
|
|
284
286
|
simo/core/migrations/__pycache__/0044_alter_gateway_type.cpython-38.pyc,sha256=KwqGKoo8C1wH9ZUhagpC3plTwheSMcWtwlCGcSPd5WQ,964
|
|
285
287
|
simo/core/migrations/__pycache__/0045_alter_instance_device_report_history_days_and_more.cpython-38.pyc,sha256=e1_hKjdokggnPndFkoBWrHQ18IkBi2W7WahcSjAbvKo,1278
|
|
286
288
|
simo/core/migrations/__pycache__/0046_component_value_translation_alter_gateway_type.cpython-38.pyc,sha256=0WowsGpjyPX7Z341bhU4bXErZqqFZaL1gtiusabrD0I,1445
|
|
289
|
+
simo/core/migrations/__pycache__/0047_alter_component_value_translation.cpython-38.pyc,sha256=ucmaVOjI3q78vBTiEC7Aq76CklWq3fsC24EiH-mIzGc,961
|
|
290
|
+
simo/core/migrations/__pycache__/0048_publicfile_privatefile.cpython-38.pyc,sha256=Xtycj-4jvkB8UjVdgZZRzTgYl68Cr-Jj9WqCAho1Ggk,1346
|
|
287
291
|
simo/core/migrations/__pycache__/__init__.cpython-38.pyc,sha256=VZmDQ57BTcebuM0KMhjiTOabgWZCBxQmSJzWZos9SO8,169
|
|
288
292
|
simo/core/static/ansi_styles.css,sha256=4ieJGrjZPKyPSago9FdB_gflHoGE1vxCHi8qVn5tY-Y,37352
|
|
289
293
|
simo/core/static/admin/Img/plus.svg,sha256=2NpSFPWqGIjpAQGFI7LDQHPKagEhYkJiJX95ufCoZaI,741
|
|
@@ -10201,7 +10205,7 @@ simo/core/templates/admin/gateway_control/widget_internals.html,sha256=6UsVKQtHW
|
|
|
10201
10205
|
simo/core/templates/admin/users/qr_code.html,sha256=kE4WNSVsPUvNUFnSUAY8jiD9JCvc6YasIS9vLuw0cbI,125
|
|
10202
10206
|
simo/core/templates/admin/wizard/discovery.html,sha256=xpAiXgKneT0d53c7h1MyAjoOFdXc_lDaH9TdelrggVU,6608
|
|
10203
10207
|
simo/core/templates/admin/wizard/field.html,sha256=ZbgzAUMs6RdJDH44yQ3-rmAkPmBdsIvBTk1RAQaENAs,413
|
|
10204
|
-
simo/core/templates/admin/wizard/wizard_add.html,sha256=
|
|
10208
|
+
simo/core/templates/admin/wizard/wizard_add.html,sha256=ULT1Bj--YnMJ2uVs4zfI6hGZ4zNWTVLLnbADL4ATtLk,4093
|
|
10205
10209
|
simo/core/templates/core/icon_acutocomplete_select_item.html,sha256=D7aWefAJjrDqyMcwt4vtuwkruklJ1aSjCTi99HLrQUY,768
|
|
10206
10210
|
simo/core/templates/core/object_acutocomplete_select_item.html,sha256=pS8APlv1IdhfttONh3npzQNfrOhj63YC7837tnOfSHk,465
|
|
10207
10211
|
simo/core/templates/core/openvpn_client.conf,sha256=z1838G8v8vmIiQKyfE8URCCMpLsges5jbX3hDJkztF4,249
|
|
@@ -10276,16 +10280,16 @@ simo/fleet/__pycache__/auto_urls.cpython-38.pyc,sha256=jHsvfwAumiBusr91QK1-qC-nm
|
|
|
10276
10280
|
simo/fleet/__pycache__/base_types.cpython-38.pyc,sha256=deyPwjpT6xZiFxBGFnj5b7R-lbdOTh2krgpJhrcGVhc,274
|
|
10277
10281
|
simo/fleet/__pycache__/ble.cpython-38.pyc,sha256=Nrof9w7cm4OlpFWHeVnmvvanh2_oF9oQ3TknJiV93-0,1267
|
|
10278
10282
|
simo/fleet/__pycache__/controllers.cpython-38.pyc,sha256=vH7mK1K4JBcLU9eKtqTJwbgB0SFMJ-s7WvO0qOsWjrg,24739
|
|
10279
|
-
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10283
|
+
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=hrNfyGm2NfoNG1II-OqeHzR2TkkAWp3igvHGs6X0iIM,45252
|
|
10280
10284
|
simo/fleet/__pycache__/gateways.cpython-38.pyc,sha256=MIpXuGWitGNdsxJ99fWvMXJ6sVE96ac7iR4K4aM4Sds,5148
|
|
10281
10285
|
simo/fleet/__pycache__/managers.cpython-38.pyc,sha256=Vmm23zoQnS3-uS5_WJt2n3wtjhLiEhLWaYxXJCU6Gts,1339
|
|
10282
10286
|
simo/fleet/__pycache__/models.cpython-38.pyc,sha256=AXk1Q_nnHDXirHYgM3EW5pLsrR2CaPWk4EuvGCuDUpI,14131
|
|
10283
10287
|
simo/fleet/__pycache__/routing.cpython-38.pyc,sha256=aPrCmxFKVyB8R8ZbJDwdPdFfvT7CvobovvZeq_mqRgY,314
|
|
10284
10288
|
simo/fleet/__pycache__/serializers.cpython-38.pyc,sha256=l_FzORWCM1hcSZV0AaGRO-p0CMTcEfqnLGgbn2IVvI0,3648
|
|
10285
|
-
simo/fleet/__pycache__/socket_consumers.cpython-38.pyc,sha256=
|
|
10289
|
+
simo/fleet/__pycache__/socket_consumers.cpython-38.pyc,sha256=lEC1SkY_KgRY0QoBUMPjnbFwSa7qmCf-4eNQ45hAy68,14141
|
|
10286
10290
|
simo/fleet/__pycache__/tasks.cpython-38.pyc,sha256=RoNxL2WUiW67s9O9DjaYVVjCBSZu2nje0Qn9FJkWVS0,1116
|
|
10287
10291
|
simo/fleet/__pycache__/utils.cpython-38.pyc,sha256=obUd-X2Y-ybx4icqUWq_qwIxrP9yyarJjexWAfO4MTI,3344
|
|
10288
|
-
simo/fleet/__pycache__/views.cpython-38.pyc,sha256=
|
|
10292
|
+
simo/fleet/__pycache__/views.cpython-38.pyc,sha256=awPe_fz7V5DgknQGEyHqbOFhX6iBhK7Y5TIa7zcO-so,4342
|
|
10289
10293
|
simo/fleet/migrations/0001_initial.py,sha256=lce8nkD8Sz6pYr-XJSpDm4CMDuB6TA__WtnHpIp-eA4,1326
|
|
10290
10294
|
simo/fleet/migrations/0002_auto_20220422_0743.py,sha256=sFOfAjnQOzcJjE8lHrrHgTaGilJNYswMdXphgVzUZqY,825
|
|
10291
10295
|
simo/fleet/migrations/0003_auto_20220422_0752.py,sha256=VcH7DyMAniEwT76hDVofS8FTNpM3nxz_J9AC2zKHDSA,543
|
|
@@ -10374,27 +10378,28 @@ simo/fleet/migrations/__pycache__/0040_alter_colonel_pwm_frequency.cpython-38.py
|
|
|
10374
10378
|
simo/fleet/migrations/__pycache__/0041_alter_colonel_instance_and_more.cpython-38.pyc,sha256=76yu9gz3pcAq5IYbNeZIoOSgdi0HVqTvc3EdXLGriQI,1178
|
|
10375
10379
|
simo/fleet/migrations/__pycache__/0042_auto_20241120_1028.cpython-38.pyc,sha256=yK2HRc7MYMc4i9ev7FaguBdnXUnUmpFn8E8JOP_yluA,1030
|
|
10376
10380
|
simo/fleet/migrations/__pycache__/0043_auto_20241203_0930.cpython-38.pyc,sha256=0QWVIvorcCuhfuGFu0fMdu5vkxcQSosxjt8KT6Ld07E,980
|
|
10381
|
+
simo/fleet/migrations/__pycache__/0044_auto_20241210_0707.cpython-38.pyc,sha256=M99PMBDgOdS_0KIEhlUamHWeTVCTdIHFXIvYTRX15Z8,1029
|
|
10377
10382
|
simo/fleet/migrations/__pycache__/__init__.cpython-38.pyc,sha256=5k1KW0jeSDzw6RnVPRq4CaO13Lg7M0F-pxA_gqqZ6Mg,170
|
|
10378
10383
|
simo/fleet/templates/fleet/controllers_info/Button.md,sha256=GIuxqG617174NEtpPeCGVocxO4YMe7-CacgVSu_L5-E,739
|
|
10379
10384
|
simo/fleet/templates/fleet/controllers_info/ENS160AirQualitySensor.md,sha256=3LSTY9YPFuVPIbVsYCAifcotrXJcOXl2k774_vo6nAE,770
|
|
10380
10385
|
simo/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10381
10386
|
simo/generic/app_widgets.py,sha256=y8W3jR76Hh26O9pPQyg2SophMbYIOtAWD33MPKbB8Mg,856
|
|
10382
10387
|
simo/generic/base_types.py,sha256=u3SlfpNYaCwkVBwomWgso4ODzL71ay9MhiAW-bxgnDU,341
|
|
10383
|
-
simo/generic/controllers.py,sha256=
|
|
10384
|
-
simo/generic/forms.py,sha256=
|
|
10385
|
-
simo/generic/gateways.py,sha256=
|
|
10388
|
+
simo/generic/controllers.py,sha256=gqL1Evt-8Cq8MeHG-eV8aCtQ4St_gylE52wnXwOQUWU,46285
|
|
10389
|
+
simo/generic/forms.py,sha256=fjin6h3JyVH7dP-YQ_snPnfP3djAR_abXBH4FqD0Y7M,25734
|
|
10390
|
+
simo/generic/gateways.py,sha256=04FKHgg3_cWjhu-bxexgRFpKRavW6_StgugFcDYwkiQ,17471
|
|
10386
10391
|
simo/generic/models.py,sha256=Adq7ipWK-renxJlNW-SZnAq2oGEOwKx8EdUWaKnfcVQ,7597
|
|
10387
10392
|
simo/generic/routing.py,sha256=elQVZmgnPiieEuti4sJ7zITk1hlRxpgbotcutJJgC60,228
|
|
10388
10393
|
simo/generic/socket_consumers.py,sha256=pyiqzfGxSKBNqfrfEJ_kCU0UbSC28XnvDn6QjKkbqyY,1767
|
|
10389
10394
|
simo/generic/__pycache__/__init__.cpython-38.pyc,sha256=mLu54WS9KIl-pHwVCBKpsDFIlOqml--JsOVzAUHg6cU,161
|
|
10390
10395
|
simo/generic/__pycache__/app_widgets.cpython-38.pyc,sha256=D9b13pbMlirgHmjDnQhfLIDGSVINoSouHb4SWOeCRrs,1642
|
|
10391
10396
|
simo/generic/__pycache__/base_types.cpython-38.pyc,sha256=aV5NdIuvXR-ItKpI__MwcyPZHD6Z882TFdgYkPCkr1I,493
|
|
10392
|
-
simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=
|
|
10393
|
-
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10394
|
-
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=
|
|
10397
|
+
simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=jJjwKVaDYyazrRGNjUFoY74nr_jX_DEnsC9KjyxZCgc,30427
|
|
10398
|
+
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=mCyRaYSqXVZxDFlEF4t0CPUe48ZbPGLcjsVVS4wbCM8,19321
|
|
10399
|
+
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=GIeMT51oZU2OCFD4eUDFdSRRYE0Qf14AcOr_gdUqG94,12705
|
|
10395
10400
|
simo/generic/__pycache__/models.cpython-38.pyc,sha256=MZpum7syAFxuulf47K7gtUlJJ7xRD-IBUBAwUM1ZRnw,5825
|
|
10396
10401
|
simo/generic/__pycache__/routing.cpython-38.pyc,sha256=xtxTUTBTdivzFyA5Wh7k-hUj1WDO_FiRq6HYXdbr9Ks,382
|
|
10397
|
-
simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=
|
|
10402
|
+
simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=FaVCf_uJI2uwj1Zz-jwsOXou65oV9gFCIB8e-YKquRk,1662
|
|
10398
10403
|
simo/generic/migrations/0001_initial.py,sha256=7FpPcfpRU5ya0b8s2KbxR5a3npf92YruvZltUybjzys,676
|
|
10399
10404
|
simo/generic/migrations/0002_auto_20241126_0726.py,sha256=SX38JwP732QooOm5HM1Xo7Th_Mv_6YZloT3eozULOhs,922
|
|
10400
10405
|
simo/generic/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -10427,33 +10432,38 @@ simo/generic/templates/admin/controller_widgets/weather.html,sha256=84SESQBhhzNU
|
|
|
10427
10432
|
simo/generic/templates/generic/controllers_info/dummy.md,sha256=DcdkpYXpK7sroINukZZPUQs9uekN9kkE7p5hfnArgFo,147
|
|
10428
10433
|
simo/generic/templates/generic/controllers_info/stateselect.md,sha256=T0w3vJg02W3RMSsljN1EPRnkVaeRW5acSZaSq9FYvZw,135
|
|
10429
10434
|
simo/multimedia/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10430
|
-
simo/multimedia/admin.py,sha256=
|
|
10435
|
+
simo/multimedia/admin.py,sha256=S7WYYTwsd73WVU60MDVsheyRH9bDnsMZezV_kPJhYZ0,1031
|
|
10431
10436
|
simo/multimedia/api.py,sha256=mZ5BTggWdc_kL8P70JGC3rTCiZKPnxWYoyNcAQkFnX4,285
|
|
10432
10437
|
simo/multimedia/app_widgets.py,sha256=g_IPx5bNmIS6JbaXXDCzYZYV2KVKAiYvWjH4oI30lWM,331
|
|
10438
|
+
simo/multimedia/auto_urls.py,sha256=9FUwlifvAM-AJbAVK6ZCjsQdAZfREuf_sf-kSYjMu7I,204
|
|
10433
10439
|
simo/multimedia/base_types.py,sha256=dAP7_uh_b3A03yXBJZyQdRFucKIro4_RkIZ5yOaWXVE,151
|
|
10434
|
-
simo/multimedia/controllers.py,sha256=
|
|
10440
|
+
simo/multimedia/controllers.py,sha256=hEPdzVqnwzJXMYjuEsxKIYcaHK3asg3ur8m4XeEjEAA,3534
|
|
10435
10441
|
simo/multimedia/forms.py,sha256=oMCVUXRNiESrY3w_uBLRRgjMjx8BrmNeVglzorA9QtY,239
|
|
10436
|
-
simo/multimedia/models.py,sha256=
|
|
10437
|
-
simo/multimedia/requirements.txt,sha256=QeIhjf1RfNGCYn_WZm3VuinPI2wK31WEJPbCxRWxssY,28
|
|
10442
|
+
simo/multimedia/models.py,sha256=qUQaADxFegVMbcEdjyP72UCq5kkqJ5ZSe2lu9qyoom8,1169
|
|
10438
10443
|
simo/multimedia/serializers.py,sha256=9DRGsJVJLKdqmOLiVHMY06bTTYxpABhDy1JB_klzsBw,383
|
|
10444
|
+
simo/multimedia/views.py,sha256=oFhtJQJT5-XRtzoIKo7SWqLydCB9AWzcj2a-kQ5P7dw,558
|
|
10439
10445
|
simo/multimedia/__pycache__/__init__.cpython-38.pyc,sha256=BOLHOifu6r_MuWjddGcQVsYkqYlkmHvPQIcx3selLIk,164
|
|
10440
|
-
simo/multimedia/__pycache__/admin.cpython-38.pyc,sha256=
|
|
10446
|
+
simo/multimedia/__pycache__/admin.cpython-38.pyc,sha256=xIax_AtzQlJiQmEBG5xuhJz2-Ztf40e26AQs5oBISfw,1309
|
|
10441
10447
|
simo/multimedia/__pycache__/api.cpython-38.pyc,sha256=lFGEB74vgyEM98B42wwcN9WvH8FAupIiSY0SwEBd5Dw,605
|
|
10442
10448
|
simo/multimedia/__pycache__/app_widgets.cpython-38.pyc,sha256=6pr3fz21tQ5ReC9SJ8VzheUZ0hpxDIClB0SA8YCwcPk,730
|
|
10449
|
+
simo/multimedia/__pycache__/auto_urls.cpython-38.pyc,sha256=JNI3pZNFC3NoJV4cxsy-Oe6Vc6TA9fpPU63hjlXWINE,357
|
|
10443
10450
|
simo/multimedia/__pycache__/base_types.cpython-38.pyc,sha256=c4nmNziLs4RB3MAnxltn3W5XNW6PM5_vK_mm3Yvy42Y,324
|
|
10444
|
-
simo/multimedia/__pycache__/controllers.cpython-38.pyc,sha256=
|
|
10451
|
+
simo/multimedia/__pycache__/controllers.cpython-38.pyc,sha256=sbWvA-ro93qWxV6Qk8Pv_WPsq91tqlnFPIvCeQ0tvLA,4997
|
|
10445
10452
|
simo/multimedia/__pycache__/forms.cpython-38.pyc,sha256=99h7Yj2jim3QOrqej00wiPufrCF3F--RoYvwa6lzhPI,697
|
|
10446
|
-
simo/multimedia/__pycache__/models.cpython-38.pyc,sha256=
|
|
10453
|
+
simo/multimedia/__pycache__/models.cpython-38.pyc,sha256=LmQ_XMA--wvLq11xYp24nU-y-kbx17iEZ10y9twCMJ0,1662
|
|
10447
10454
|
simo/multimedia/__pycache__/serializers.cpython-38.pyc,sha256=n86txYSrkmN0Xlrr8dMwKSY7rEzMc1iovepCZi_Fcw8,886
|
|
10455
|
+
simo/multimedia/__pycache__/views.cpython-38.pyc,sha256=yq5Hi2HrbSNr8MP4uUZO7_GMeVgqg21R6yFe85zNNhM,899
|
|
10448
10456
|
simo/multimedia/migrations/0001_initial.py,sha256=YxTbmI-aF9OZUkFPnCNqV3t3r5nSJg59pKcTvm-ZYbU,610
|
|
10449
10457
|
simo/multimedia/migrations/0002_sound_length.py,sha256=XpPemInQwL1QsiqhUPkdBPBYI2E5gDPyC_1vhyImq5M,471
|
|
10450
10458
|
simo/multimedia/migrations/0003_alter_sound_length.py,sha256=tt1OJVkrCo6Ybws1mGobdvTP5o68P3-cHZdGG_PeZwU,442
|
|
10451
10459
|
simo/multimedia/migrations/0004_auto_20231023_1055.py,sha256=ilH1o_wxkK5QDjcPEEDhoHWx2GcjZWLG6XjlUfQRmhI,718
|
|
10460
|
+
simo/multimedia/migrations/0005_remove_sound_slug_sound_date_uploaded.py,sha256=SzkgIhCIEVMSmxVwGHQfggdsX4wWybvskqVx-vVp2Qs,602
|
|
10452
10461
|
simo/multimedia/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10453
10462
|
simo/multimedia/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=slsqUkj8A11Oj5bYJ1s5dS60Qx4H9k_oRZ3HaAhuho4,760
|
|
10454
10463
|
simo/multimedia/migrations/__pycache__/0002_sound_length.cpython-38.pyc,sha256=5Qh_yhupAkn6xcxP_T6KhA2__l6FdQmQb2Y0dzqq33s,678
|
|
10455
10464
|
simo/multimedia/migrations/__pycache__/0003_alter_sound_length.cpython-38.pyc,sha256=dkdqLx_cWLAxxVCUxuuAX39iTv7G5kG-PhJ40HsPzx8,669
|
|
10456
10465
|
simo/multimedia/migrations/__pycache__/0004_auto_20231023_1055.cpython-38.pyc,sha256=tX6x1gNeVcUHcCFvisP9Z2jPBE029TJG632fvtvUjV8,892
|
|
10466
|
+
simo/multimedia/migrations/__pycache__/0005_remove_sound_slug_sound_date_uploaded.cpython-38.pyc,sha256=vpu4EfpVp5rYRKYEVn4vDylgpeasD31ZV62sNR_HXhY,801
|
|
10457
10467
|
simo/multimedia/migrations/__pycache__/__init__.cpython-38.pyc,sha256=mCgSiQBphL85imdWyTi9-4zBDYF6HfXbhB0ycSPVVuA,175
|
|
10458
10468
|
simo/multimedia/templates/admin/controller_widgets/player.html,sha256=v4PFoL37-C7L6ILZI6yF5ff9iO3EnEs5kXbRayaHy0s,358
|
|
10459
10469
|
simo/notifications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -10467,7 +10477,7 @@ simo/notifications/__pycache__/admin.cpython-38.pyc,sha256=MScNrtVM1wavefsPfxy0A
|
|
|
10467
10477
|
simo/notifications/__pycache__/api.cpython-38.pyc,sha256=eQmCHwTnr4zQ3ZY_SKZVCryiSEnzmyIjHQM13pZ5LT0,2071
|
|
10468
10478
|
simo/notifications/__pycache__/models.cpython-38.pyc,sha256=PoqLuOnlaAWQQ-20AtqhvAlLSkakPmdn7J7wGvHNW3g,2449
|
|
10469
10479
|
simo/notifications/__pycache__/serializers.cpython-38.pyc,sha256=7-eRGKYuQ4g1SpKOMpz17SIiu1HmaMoYv-cJbaO9QGA,1028
|
|
10470
|
-
simo/notifications/__pycache__/utils.cpython-38.pyc,sha256=
|
|
10480
|
+
simo/notifications/__pycache__/utils.cpython-38.pyc,sha256=4ZnI-pmWji84EXBkPrl4ir1kGjfanO4bH5--bLNRxCA,1648
|
|
10471
10481
|
simo/notifications/migrations/0001_initial.py,sha256=Zh69AQ-EKlQKfqfnMDVRcxvo1MxRY-TFLCdnNcgqi6g,2003
|
|
10472
10482
|
simo/notifications/migrations/0002_notification_instance.py,sha256=B3msbMeKvsuq-V7gvRADRjj5PFLayhi3pQvHZjqzO5g,563
|
|
10473
10483
|
simo/notifications/migrations/0003_alter_notification_instance.py,sha256=CXrOkdbXYwlEK5O8iEjDzrocAP5WQ9fQ-0_TcT4VgEA,609
|
|
@@ -10502,7 +10512,7 @@ simo/users/__pycache__/auto_urls.cpython-38.pyc,sha256=bc6BOgghLdMzUroGMj7eB6YX9
|
|
|
10502
10512
|
simo/users/__pycache__/dynamic_settings.cpython-38.pyc,sha256=6F8JBjZkHykySnmZjNEzjS0ijbmPdcp9yUAZ5kqq_Fo,864
|
|
10503
10513
|
simo/users/__pycache__/managers.cpython-38.pyc,sha256=O0Y8ABp42RAosrbODmYsPMaj9AyOPyJ-aqzuO0Qpi2s,679
|
|
10504
10514
|
simo/users/__pycache__/middleware.cpython-38.pyc,sha256=Tj4nVEAvxEW3xA63fBRiJWRJpz_M848ZOqbHioc_IPE,1149
|
|
10505
|
-
simo/users/__pycache__/models.cpython-38.pyc,sha256=
|
|
10515
|
+
simo/users/__pycache__/models.cpython-38.pyc,sha256=qNtAn_eWVmRTWhTxN8GtCc549dcJsTdaF7Uk19yNMgg,18330
|
|
10506
10516
|
simo/users/__pycache__/permissions.cpython-38.pyc,sha256=ez5NxoL_JUeeH6GsKhvFreuA3FCBgGf9floSypdXUtM,633
|
|
10507
10517
|
simo/users/__pycache__/serializers.cpython-38.pyc,sha256=Dy8RAcwNkNSXoJHvLp8fozURyHCtucqpSPyqZtbnMZc,3732
|
|
10508
10518
|
simo/users/__pycache__/sso_urls.cpython-38.pyc,sha256=uAwDozpOmrhUald-8tOHANILXkH7-TI8fNYXOtPkSY8,402
|
|
@@ -10608,9 +10618,9 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
10608
10618
|
simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10609
10619
|
simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10610
10620
|
simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10611
|
-
simo-2.7.
|
|
10612
|
-
simo-2.7.
|
|
10613
|
-
simo-2.7.
|
|
10614
|
-
simo-2.7.
|
|
10615
|
-
simo-2.7.
|
|
10616
|
-
simo-2.7.
|
|
10621
|
+
simo-2.7.12.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
|
|
10622
|
+
simo-2.7.12.dist-info/METADATA,sha256=DsdrTocx2YvL8_tIlq78umIwnESf0aQd0q8l2fEybgA,1953
|
|
10623
|
+
simo-2.7.12.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
10624
|
+
simo-2.7.12.dist-info/entry_points.txt,sha256=S9PwnUYmTSW7681GKDCxUbL0leRJIaRk6fDQIKgbZBA,135
|
|
10625
|
+
simo-2.7.12.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
|
|
10626
|
+
simo-2.7.12.dist-info/RECORD,,
|
simo/multimedia/requirements.txt
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|