simo 2.5.26__py3-none-any.whl → 2.5.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__/context.cpython-38.pyc +0 -0
- simo/core/__pycache__/events.cpython-38.pyc +0 -0
- simo/core/__pycache__/middleware.cpython-38.pyc +0 -0
- simo/core/__pycache__/signal_receivers.cpython-38.pyc +0 -0
- simo/core/__pycache__/tasks.cpython-38.pyc +0 -0
- simo/core/context.py +1 -1
- simo/core/events.py +3 -2
- simo/core/management/update.py +3 -2
- simo/core/middleware.py +2 -1
- simo/core/migrations/0044_alter_gateway_type.py +18 -0
- simo/core/migrations/__pycache__/0044_alter_gateway_type.cpython-38.pyc +0 -0
- simo/core/signal_receivers.py +0 -3
- simo/core/tasks.py +2 -6
- simo/fleet/__pycache__/forms.cpython-38.pyc +0 -0
- simo/fleet/__pycache__/models.cpython-38.pyc +0 -0
- simo/fleet/__pycache__/socket_consumers.cpython-38.pyc +0 -0
- simo/fleet/socket_consumers.py +2 -5
- simo/generic/__pycache__/forms.cpython-38.pyc +0 -0
- simo/generic/__pycache__/gateways.cpython-38.pyc +0 -0
- simo/generic/forms.py +1 -1
- simo/users/__pycache__/admin.cpython-38.pyc +0 -0
- simo/users/__pycache__/api.cpython-38.pyc +0 -0
- simo/users/__pycache__/auth_backends.cpython-38.pyc +0 -0
- simo/users/__pycache__/models.cpython-38.pyc +0 -0
- simo/users/admin.py +1 -1
- simo/users/api.py +16 -5
- simo/users/migrations/0038_userdevicereportlog_at_home_and_more.py +23 -0
- simo/users/migrations/0039_auto_20241117_1039.py +43 -0
- simo/users/migrations/__pycache__/0038_userdevicereportlog_at_home_and_more.cpython-38.pyc +0 -0
- simo/users/migrations/__pycache__/0039_auto_20241117_1039.cpython-38.pyc +0 -0
- simo/users/models.py +5 -2
- {simo-2.5.26.dist-info → simo-2.5.29.dist-info}/METADATA +2 -1
- {simo-2.5.26.dist-info → simo-2.5.29.dist-info}/RECORD +37 -31
- {simo-2.5.26.dist-info → simo-2.5.29.dist-info}/LICENSE.md +0 -0
- {simo-2.5.26.dist-info → simo-2.5.29.dist-info}/WHEEL +0 -0
- {simo-2.5.26.dist-info → simo-2.5.29.dist-info}/entry_points.txt +0 -0
- {simo-2.5.26.dist-info → simo-2.5.29.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
simo/core/context.py
CHANGED
simo/core/events.py
CHANGED
|
@@ -29,6 +29,7 @@ class ObjMqttAnnouncement:
|
|
|
29
29
|
def publish(self, retain=False):
|
|
30
30
|
assert isinstance(self.TOPIC, str)
|
|
31
31
|
assert self.data is not None
|
|
32
|
+
self.data['timestamp'] = timezone.now().timestamp()
|
|
32
33
|
mqtt_publish.single(
|
|
33
34
|
self.get_topic(), json.dumps(self.data, default=str),
|
|
34
35
|
retain=retain,
|
|
@@ -48,8 +49,7 @@ class ObjectChangeEvent(ObjMqttAnnouncement):
|
|
|
48
49
|
self.instance = instance
|
|
49
50
|
self.obj = obj
|
|
50
51
|
super().__init__(obj)
|
|
51
|
-
|
|
52
|
-
self.data[key] = val
|
|
52
|
+
self.data.update(**kwargs)
|
|
53
53
|
|
|
54
54
|
def get_topic(self):
|
|
55
55
|
return f"{self.TOPIC}/{self.instance.id if self.instance else 'global'}/" \
|
|
@@ -118,6 +118,7 @@ class OnChangeMixin:
|
|
|
118
118
|
for key, val in payload.get('dirty_fields', {}).items():
|
|
119
119
|
if key in self.on_change_fields:
|
|
120
120
|
has_changed = True
|
|
121
|
+
break
|
|
121
122
|
|
|
122
123
|
if not has_changed:
|
|
123
124
|
return
|
simo/core/management/update.py
CHANGED
|
@@ -55,12 +55,13 @@ def maybe_update():
|
|
|
55
55
|
print("Auto updates are disabled")
|
|
56
56
|
else:
|
|
57
57
|
try:
|
|
58
|
-
current = pkg_resources.get_distribution('simo')
|
|
58
|
+
current = pkg_resources.get_distribution('simo').version
|
|
59
59
|
except:
|
|
60
|
-
|
|
60
|
+
return
|
|
61
61
|
resp = requests.get("https://pypi.org/pypi/simo/json")
|
|
62
62
|
if resp.status_code != 200:
|
|
63
63
|
sys.exit("Bad response from PyPi")
|
|
64
|
+
return
|
|
64
65
|
latest = resp.json()['info']['version']
|
|
65
66
|
if current != latest:
|
|
66
67
|
print(f"Need to update! We are on {current} but {latest} is available!")
|
simo/core/middleware.py
CHANGED
|
@@ -39,7 +39,8 @@ def get_current_instance(request=None):
|
|
|
39
39
|
).first()
|
|
40
40
|
if not instance:
|
|
41
41
|
del request.session['instance_id']
|
|
42
|
-
|
|
42
|
+
else:
|
|
43
|
+
introduce_instance(instance, request)
|
|
43
44
|
|
|
44
45
|
instance = getattr(_thread_locals, 'instance', None)
|
|
45
46
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Generated by Django 4.2.10 on 2024-11-17 10:38
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('core', '0043_alter_category_instance_alter_instance_timezone_and_more'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AlterField(
|
|
14
|
+
model_name='gateway',
|
|
15
|
+
name='type',
|
|
16
|
+
field=models.CharField(choices=[('simo.generic.gateways.DummyGatewayHandler', 'Dummy'), ('simo.generic.gateways.GenericGatewayHandler', 'Generic'), ('simo_komfovent.gateways.KomfoventGatewayHandler', 'Komfovent'), ('simo.fleet.gateways.FleetGatewayHandler', 'SIMO.io Fleet'), ('simo_zwave.gateways.ZwaveGatewayHandler', 'Zwave')], db_index=True, max_length=200, unique=True),
|
|
17
|
+
),
|
|
18
|
+
]
|
|
Binary file
|
simo/core/signal_receivers.py
CHANGED
|
@@ -194,7 +194,6 @@ def post_save_change_events(sender, instance, created, **kwargs):
|
|
|
194
194
|
ObjectChangeEvent(
|
|
195
195
|
None, target,
|
|
196
196
|
dirty_fields=dirty_fields,
|
|
197
|
-
timestamp=timezone.now().timestamp()
|
|
198
197
|
).publish()
|
|
199
198
|
elif type(target) == Component:
|
|
200
199
|
data = {}
|
|
@@ -206,7 +205,6 @@ def post_save_change_events(sender, instance, created, **kwargs):
|
|
|
206
205
|
ObjectChangeEvent(
|
|
207
206
|
target.zone.instance, target,
|
|
208
207
|
dirty_fields=dirty_fields,
|
|
209
|
-
timestamp=timezone.now().timestamp(),
|
|
210
208
|
**data
|
|
211
209
|
).publish()
|
|
212
210
|
for master in target.masters.all():
|
|
@@ -219,7 +217,6 @@ def post_save_change_events(sender, instance, created, **kwargs):
|
|
|
219
217
|
ObjectChangeEvent(
|
|
220
218
|
master.zone.instance,
|
|
221
219
|
master, slave_id=target.id,
|
|
222
|
-
timestamp=timezone.now().timestamp(),
|
|
223
220
|
**data
|
|
224
221
|
).publish()
|
|
225
222
|
|
simo/core/tasks.py
CHANGED
|
@@ -120,7 +120,7 @@ def sync_with_remote():
|
|
|
120
120
|
mac = ''
|
|
121
121
|
|
|
122
122
|
try:
|
|
123
|
-
version = pkg_resources.get_distribution('simo').version
|
|
123
|
+
version = pkg_resources.get_distribution('simo').version
|
|
124
124
|
except:
|
|
125
125
|
version = 'dev'
|
|
126
126
|
|
|
@@ -231,7 +231,7 @@ def sync_with_remote():
|
|
|
231
231
|
weather_component.save()
|
|
232
232
|
|
|
233
233
|
if new_instance:
|
|
234
|
-
print(f"NEW INSTANCE:
|
|
234
|
+
print(f"NEW INSTANCE: {instance}")
|
|
235
235
|
print(f"Users data: {users_data}")
|
|
236
236
|
|
|
237
237
|
|
|
@@ -295,10 +295,6 @@ def sync_with_remote():
|
|
|
295
295
|
user.avatar_last_change = timezone.now()
|
|
296
296
|
user.save()
|
|
297
297
|
|
|
298
|
-
Instance.objects.all().exclude(
|
|
299
|
-
uid__in=instance_uids
|
|
300
|
-
).update(is_active=False)
|
|
301
|
-
|
|
302
298
|
|
|
303
299
|
|
|
304
300
|
@celery_app.task
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
simo/fleet/socket_consumers.py
CHANGED
|
@@ -13,7 +13,7 @@ import paho.mqtt.client as mqtt
|
|
|
13
13
|
from channels.generic.websocket import AsyncWebsocketConsumer
|
|
14
14
|
from asgiref.sync import sync_to_async
|
|
15
15
|
from simo.core.utils.model_helpers import get_log_file_path
|
|
16
|
-
from simo.core.middleware import introduce_instance
|
|
16
|
+
from simo.core.middleware import introduce_instance, drop_current_instance
|
|
17
17
|
from simo.core.utils.logs import capture_socket_errors
|
|
18
18
|
from simo.core.events import GatewayObjectCommand, get_event_obj
|
|
19
19
|
from simo.core.models import Gateway, Instance, Component
|
|
@@ -87,8 +87,6 @@ class FleetConsumer(AsyncWebsocketConsumer):
|
|
|
87
87
|
tz = await sync_to_async(get_tz, thread_sensitive=True)()
|
|
88
88
|
timezone.activate(tz)
|
|
89
89
|
|
|
90
|
-
introduce_instance(self.instance)
|
|
91
|
-
|
|
92
90
|
def get_colonel():
|
|
93
91
|
defaults={
|
|
94
92
|
'instance': self.instance,
|
|
@@ -240,7 +238,6 @@ class FleetConsumer(AsyncWebsocketConsumer):
|
|
|
240
238
|
}
|
|
241
239
|
|
|
242
240
|
def get_components(colonel):
|
|
243
|
-
introduce_instance(self.instance)
|
|
244
241
|
return list(
|
|
245
242
|
colonel.components.all().prefetch_related('slaves')
|
|
246
243
|
)
|
|
@@ -299,6 +296,7 @@ class FleetConsumer(AsyncWebsocketConsumer):
|
|
|
299
296
|
return config_data
|
|
300
297
|
|
|
301
298
|
def on_mqtt_message(self, client, userdata, msg):
|
|
299
|
+
drop_current_instance()
|
|
302
300
|
try:
|
|
303
301
|
payload = json.loads(msg.payload)
|
|
304
302
|
|
|
@@ -366,7 +364,6 @@ class FleetConsumer(AsyncWebsocketConsumer):
|
|
|
366
364
|
|
|
367
365
|
async def receive(self, text_data=None, bytes_data=None):
|
|
368
366
|
try:
|
|
369
|
-
introduce_instance(self.instance)
|
|
370
367
|
if text_data:
|
|
371
368
|
print(f"{self.colonel}: {text_data}")
|
|
372
369
|
data = json.loads(text_data)
|
|
Binary file
|
|
Binary file
|
simo/generic/forms.py
CHANGED
|
@@ -371,7 +371,7 @@ class ThermostatConfigForm(BaseComponentForm):
|
|
|
371
371
|
'temperature_sensor'
|
|
372
372
|
].base_type == MultiSensor.base_type else False
|
|
373
373
|
self.instance.config['user_config']['use_real_feel'] = \
|
|
374
|
-
self.cleaned_data
|
|
374
|
+
self.cleaned_data.get('use_real_feel', False)
|
|
375
375
|
return super().save(commit)
|
|
376
376
|
|
|
377
377
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
simo/users/admin.py
CHANGED
|
@@ -130,7 +130,7 @@ admin.site.unregister(Group)
|
|
|
130
130
|
class UserDeviceLog(admin.ModelAdmin):
|
|
131
131
|
model = UserDeviceReportLog
|
|
132
132
|
readonly_fields = (
|
|
133
|
-
'datetime', 'app_open', 'location', 'relay', 'users',
|
|
133
|
+
'datetime', 'app_open', 'at_home', 'location', 'relay', 'users',
|
|
134
134
|
'speed_kmh', 'phone_on_charge'
|
|
135
135
|
)
|
|
136
136
|
list_display = (
|
simo/users/api.py
CHANGED
|
@@ -222,13 +222,24 @@ class UserDeviceReport(InstanceMixin, viewsets.GenericViewSet):
|
|
|
222
222
|
if request.data.get('is_charging'):
|
|
223
223
|
phone_on_charge = True
|
|
224
224
|
speed_kmh = request.data.get('speed', 0) * 3.6
|
|
225
|
+
|
|
226
|
+
at_home = False
|
|
227
|
+
if not relay:
|
|
228
|
+
at_home = True
|
|
229
|
+
elif last_seen_location:
|
|
230
|
+
at_home = haversine_distance(
|
|
231
|
+
self.instance.location, last_seen_location
|
|
232
|
+
) < dynamic_settings['users__at_home_radius']
|
|
233
|
+
|
|
234
|
+
|
|
225
235
|
for iu in request.user.instance_roles.filter(is_active=True):
|
|
226
|
-
if
|
|
236
|
+
if not relay:
|
|
237
|
+
iu.at_home = True
|
|
238
|
+
elif location:
|
|
227
239
|
iu.at_home = haversine_distance(
|
|
228
240
|
iu.instance.location, last_seen_location
|
|
229
241
|
) < dynamic_settings['users__at_home_radius']
|
|
230
|
-
|
|
231
|
-
iu.at_home = True
|
|
242
|
+
|
|
232
243
|
|
|
233
244
|
iu.last_seen = user_device.last_seen
|
|
234
245
|
iu.last_seen_location = last_seen_location
|
|
@@ -239,9 +250,9 @@ class UserDeviceReport(InstanceMixin, viewsets.GenericViewSet):
|
|
|
239
250
|
UserDeviceReportLog.objects.create(
|
|
240
251
|
user_device=user_device, instance=self.instance,
|
|
241
252
|
app_open=request.data.get('app_open', False),
|
|
242
|
-
location=
|
|
253
|
+
location=last_seen_location,
|
|
243
254
|
relay=relay, speed_kmh=speed_kmh,
|
|
244
|
-
phone_on_charge=phone_on_charge
|
|
255
|
+
phone_on_charge=phone_on_charge, at_home=at_home
|
|
245
256
|
)
|
|
246
257
|
|
|
247
258
|
return RESTResponse({'status': 'success'})
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated by Django 4.2.10 on 2024-11-17 10:38
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('users', '0037_rename_last_seen_location_datetime_instanceuser_last_seen_and_more'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddField(
|
|
14
|
+
model_name='userdevicereportlog',
|
|
15
|
+
name='at_home',
|
|
16
|
+
field=models.BooleanField(default=False),
|
|
17
|
+
),
|
|
18
|
+
migrations.AlterField(
|
|
19
|
+
model_name='permissionsrole',
|
|
20
|
+
name='is_superuser',
|
|
21
|
+
field=models.BooleanField(default=False, help_text='Has 100% management control of an instance via mobile app.'),
|
|
22
|
+
),
|
|
23
|
+
]
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Generated by Django 4.2.10 on 2024-11-17 10:39
|
|
2
|
+
from tqdm import tqdm
|
|
3
|
+
from django.db import migrations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def forwards_func(apps, schema_editor):
|
|
7
|
+
from simo.generic.scripting.helpers import haversine_distance
|
|
8
|
+
UserDeviceReportLog = apps.get_model("users", "UserDeviceReportLog")
|
|
9
|
+
|
|
10
|
+
logs = UserDeviceReportLog.objects.all().select_related('instance')
|
|
11
|
+
|
|
12
|
+
print("Calculate at_home on UserDeviceReportLog's!")
|
|
13
|
+
|
|
14
|
+
bulk_update = []
|
|
15
|
+
for log in tqdm(logs, total=logs.count()):
|
|
16
|
+
log.at_home = False
|
|
17
|
+
if not log.relay:
|
|
18
|
+
log.at_home = True
|
|
19
|
+
elif log.location:
|
|
20
|
+
log.at_home = haversine_distance(
|
|
21
|
+
log.instance.location, log.location
|
|
22
|
+
) < 250
|
|
23
|
+
if log.at_home:
|
|
24
|
+
bulk_update.append(log)
|
|
25
|
+
if len(bulk_update) > 1000:
|
|
26
|
+
UserDeviceReportLog.objects.bulk_update(bulk_update, ["at_home"])
|
|
27
|
+
bulk_update = []
|
|
28
|
+
UserDeviceReportLog.objects.bulk_update(bulk_update, ["at_home"])
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def reverse_func(apps, schema_editor):
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class Migration(migrations.Migration):
|
|
36
|
+
|
|
37
|
+
dependencies = [
|
|
38
|
+
('users', '0038_userdevicereportlog_at_home_and_more'),
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
operations = [
|
|
42
|
+
migrations.RunPython(forwards_func, reverse_func, elidable=True),
|
|
43
|
+
]
|
|
Binary file
|
|
Binary file
|
simo/users/models.py
CHANGED
|
@@ -110,7 +110,9 @@ class InstanceUser(DirtyFieldsMixin, models.Model, OnChangeMixin):
|
|
|
110
110
|
|
|
111
111
|
objects = ActiveInstanceManager()
|
|
112
112
|
|
|
113
|
-
on_change_fields = (
|
|
113
|
+
on_change_fields = (
|
|
114
|
+
'is_active', 'last_seen', 'last_seen_location', 'phone_on_charge'
|
|
115
|
+
)
|
|
114
116
|
|
|
115
117
|
class Meta:
|
|
116
118
|
unique_together = 'user', 'instance'
|
|
@@ -134,7 +136,7 @@ def post_instance_user_save(sender, instance, created, **kwargs):
|
|
|
134
136
|
return
|
|
135
137
|
from simo.core.events import ObjectChangeEvent
|
|
136
138
|
dirty_fields = instance.get_dirty_fields()
|
|
137
|
-
if
|
|
139
|
+
if any([f in dirty_fields.keys() for f in InstanceUser.on_change_fields]):
|
|
138
140
|
def post_update():
|
|
139
141
|
if 'at_home' in dirty_fields:
|
|
140
142
|
if instance.at_home:
|
|
@@ -447,6 +449,7 @@ class UserDeviceReportLog(models.Model):
|
|
|
447
449
|
location = PlainLocationField(zoom=7, null=True, blank=True)
|
|
448
450
|
speed_kmh = models.FloatField(default=0)
|
|
449
451
|
phone_on_charge = models.BooleanField(default=False, db_index=True)
|
|
452
|
+
at_home = models.BooleanField(default=True)
|
|
450
453
|
|
|
451
454
|
class Meta:
|
|
452
455
|
ordering = '-datetime',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: simo
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.29
|
|
4
4
|
Summary: Smart Home on Steroids!
|
|
5
5
|
Author-email: Simanas Venčkauskas <simanas@simo.io>
|
|
6
6
|
Project-URL: Homepage, https://simo.io
|
|
@@ -50,4 +50,5 @@ Requires-Dist: django-activity-stream ==2.0.0
|
|
|
50
50
|
Requires-Dist: gunicorn ==23.0.0
|
|
51
51
|
Requires-Dist: python-crontab ==3.2.0
|
|
52
52
|
Requires-Dist: django-object-actions ==4.3.0
|
|
53
|
+
Requires-Dist: tqdm ==4.67.0
|
|
53
54
|
|
|
@@ -41,25 +41,25 @@ simo/core/apps.py,sha256=CsqpiQerhmrMsH-wGiG-gQgXd9qEkIi-LUaA9cXpKSw,425
|
|
|
41
41
|
simo/core/auto_urls.py,sha256=nNXEgLAAAQAhRWQDA9AbDtw-zcPKmu_pufJaSa8g818,1102
|
|
42
42
|
simo/core/autocomplete_views.py,sha256=l7DmpoeXcwjmBda--tT6zFQTNcyfYpgTaryWP-ghETU,3846
|
|
43
43
|
simo/core/base_types.py,sha256=WypW8hTfzveuTQtruGjLYAGQZIuczxTlW-SdRk3iQug,666
|
|
44
|
-
simo/core/context.py,sha256=
|
|
44
|
+
simo/core/context.py,sha256=LKw1I4iIRnlnzoTCuSLLqDX7crHdBnMo3hjqYvVmzFc,1557
|
|
45
45
|
simo/core/controllers.py,sha256=JvXdwXD7iotA7fIjZmBVshKLQGSt9Na48FMAyHRDh84,35615
|
|
46
46
|
simo/core/dynamic_settings.py,sha256=bUs58XEZOCIEhg1TigR3LmYggli13KMryBZ9pC7ugAQ,1872
|
|
47
|
-
simo/core/events.py,sha256=
|
|
47
|
+
simo/core/events.py,sha256=1_KIk5pJqdLPRQlCQ9xSyALst2Cn0b2lAEAJ3QjwIjE,4801
|
|
48
48
|
simo/core/filters.py,sha256=ghtOZcrwNAkIyF5_G9Sn73NkiI71mXv0NhwCk4IyMIM,411
|
|
49
49
|
simo/core/form_fields.py,sha256=wowWocYgxkKBr0WYzpKn4UvH4ScnImus56Tg2G8OPBc,2274
|
|
50
50
|
simo/core/forms.py,sha256=O40apPH7a4qX4WdCc10A1aoAaGWOpKqmjB8d-OhEKCo,21523
|
|
51
51
|
simo/core/gateways.py,sha256=m0eS3XjVe34Dge6xtoCq16kFWCKJcdQrT0JW0REqoq8,3715
|
|
52
52
|
simo/core/loggers.py,sha256=EBdq23gTQScVfQVH-xeP90-wII2DQFDjoROAW6ggUP4,1645
|
|
53
53
|
simo/core/managers.py,sha256=n-b3I4uXzfHKTeB1VMjSaMsDUxp8FegFJwnbV1IsWQ4,3019
|
|
54
|
-
simo/core/middleware.py,sha256=
|
|
54
|
+
simo/core/middleware.py,sha256=eUFf6iP-Snx_0TE3MoXsSwqrd5IjlukqZk2GQGStRCo,3385
|
|
55
55
|
simo/core/models.py,sha256=DXJXTtNdpn9yC4VArHp0yrhpRb7vGpwH2c-JvqLE56M,22784
|
|
56
56
|
simo/core/permissions.py,sha256=INQPrUAIM3WXCvd7e6cmYytKaak8fMEn7VooX-fIds0,3002
|
|
57
57
|
simo/core/routing.py,sha256=X1_IHxyA-_Q7hw1udDoviVP4_FSBDl8GYETTC2zWTbY,499
|
|
58
58
|
simo/core/serializers.py,sha256=WgksN1Ombv240nfQR_UtmKslTWM9vz9Y0yTdN5usiHU,21892
|
|
59
|
-
simo/core/signal_receivers.py,sha256=
|
|
59
|
+
simo/core/signal_receivers.py,sha256=2WfF3FI5ZmJM1S-oT_1w3TdnBUX6fjbI4Rpg-DKsuYA,8696
|
|
60
60
|
simo/core/socket_consumers.py,sha256=trRZvBGTJ7xIbfdmVvn7zoiWp_qssSkMZykDrI5YQyE,9783
|
|
61
61
|
simo/core/storage.py,sha256=_5igjaoWZAiExGWFEJMElxUw55DzJG1jqFty33xe8BE,342
|
|
62
|
-
simo/core/tasks.py,sha256=
|
|
62
|
+
simo/core/tasks.py,sha256=yrZORvMv7imfsyLIPn8TGDwo7oN7SDY1Uxv4C67Unfo,16406
|
|
63
63
|
simo/core/todos.py,sha256=eYVXfLGiapkxKK57XuviSNe3WsUYyIWZ0hgQJk7ThKo,665
|
|
64
64
|
simo/core/types.py,sha256=WJEq48mIbFi_5Alt4wxWMGXxNxUTXqfQU5koH7wqHHI,1108
|
|
65
65
|
simo/core/views.py,sha256=3SRZr00fyLQf8ja3U-9eekKt-ld5TvU1WQqUWprXfQ4,2390
|
|
@@ -74,25 +74,25 @@ simo/core/__pycache__/apps.cpython-38.pyc,sha256=JL0BEqgXcSQvMlcK48PBpPfyDEkPMdO
|
|
|
74
74
|
simo/core/__pycache__/auto_urls.cpython-38.pyc,sha256=Tyf8PYHq5YqSwTp25Joy-eura_Fm86fpX9zKLSklhvo,872
|
|
75
75
|
simo/core/__pycache__/autocomplete_views.cpython-38.pyc,sha256=YoF9mTXfQtZ0ZC4wIVvYe4RUUnfV8OlCkIDTVT0LwBw,3953
|
|
76
76
|
simo/core/__pycache__/base_types.cpython-38.pyc,sha256=CX-qlF7CefRi_mCE954wYa9rUFR88mOl6g7fybDRu7g,803
|
|
77
|
-
simo/core/__pycache__/context.cpython-38.pyc,sha256=
|
|
77
|
+
simo/core/__pycache__/context.cpython-38.pyc,sha256=NlTHt2GvXxA21AhBkeyOLfRFUuXw7wmwqyNhhcDl2cw,1373
|
|
78
78
|
simo/core/__pycache__/controllers.cpython-38.pyc,sha256=6Ts1BeGND9Uy5eeqC5dNeme1yYilEV_emRnjTjJ9WNw,30701
|
|
79
79
|
simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=wGpnscX1DxFpRl54MQURhjz2aD3NJohSzw9JCFnzh2Y,2384
|
|
80
|
-
simo/core/__pycache__/events.cpython-38.pyc,sha256=
|
|
80
|
+
simo/core/__pycache__/events.cpython-38.pyc,sha256=1y8YaZsiDkBOeIWzH7SQz4holmMG_RLlMWi8kuSZcoE,5280
|
|
81
81
|
simo/core/__pycache__/filters.cpython-38.pyc,sha256=VIMADCBiYhziIyRmxAyUDJluZvuZmiC4bNYWTRsGSao,721
|
|
82
82
|
simo/core/__pycache__/form_fields.cpython-38.pyc,sha256=phMdhDFRmaFDhJSnasAg8VKNP6PxkPjFqkLwEuWicIs,3465
|
|
83
83
|
simo/core/__pycache__/forms.cpython-38.pyc,sha256=vqU3No0S56V1q1RrY7y5otT-o0p-5qAiffvqECG2Gg8,17525
|
|
84
84
|
simo/core/__pycache__/gateways.cpython-38.pyc,sha256=D1ooHL-iSpQrxnD8uAl4xWFJmm-QWZfbkLiLlFOMtdU,4553
|
|
85
85
|
simo/core/__pycache__/loggers.cpython-38.pyc,sha256=Z-cdQnC6XlIonPV4Sl4E52tP4NMEdPAiHK0cFaIL7I8,1623
|
|
86
86
|
simo/core/__pycache__/managers.cpython-38.pyc,sha256=6RTIxyjOgpQGtAqcUyE2vFPS09w1V5Wmd_vOV7rHRRI,3370
|
|
87
|
-
simo/core/__pycache__/middleware.cpython-38.pyc,sha256=
|
|
87
|
+
simo/core/__pycache__/middleware.cpython-38.pyc,sha256=g3d4L2PwxFyRKIPMP9Hkdjk1PL9NarQd4hSHS55I8n8,2649
|
|
88
88
|
simo/core/__pycache__/models.cpython-38.pyc,sha256=HGL3TiaMy-0oobgCGGxH2nvDhh4RnOBeD00rwQsuklU,18591
|
|
89
89
|
simo/core/__pycache__/permissions.cpython-38.pyc,sha256=bO13B8uGCv4AiWNBoU2Gxt3mNuQ3gCxb7eKFihwFb5o,2974
|
|
90
90
|
simo/core/__pycache__/routing.cpython-38.pyc,sha256=3T3FPJ8Cn99xZCGvMyg2xjl7al-Shm9CelbSpkJtNP8,599
|
|
91
91
|
simo/core/__pycache__/serializers.cpython-38.pyc,sha256=d4wpUjFuo8GxaNWbin9GdHKik06IZN32uZL1SnXiL_s,19616
|
|
92
|
-
simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=
|
|
92
|
+
simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=Od1ejof2nHAFzTAG5vGGVjMA8WUJNVJ9o_KWGqRSR34,6669
|
|
93
93
|
simo/core/__pycache__/socket_consumers.cpython-38.pyc,sha256=KqbO1cOewodVPcy0-htVefyUjCuELKV0o7fOfYqfgPc,8490
|
|
94
94
|
simo/core/__pycache__/storage.cpython-38.pyc,sha256=9R1Xu0FJDflfRXUPsqEgt0SpwiP7FGk7HaR8s8XRyI8,721
|
|
95
|
-
simo/core/__pycache__/tasks.cpython-38.pyc,sha256=
|
|
95
|
+
simo/core/__pycache__/tasks.cpython-38.pyc,sha256=0cdIMWxwx8qkeseOvZcgIZ_BXrGbkhfijRUfpIa3s8s,10896
|
|
96
96
|
simo/core/__pycache__/todos.cpython-38.pyc,sha256=lOqGZ58siHM3isoJV4r7sg8igrfE9fFd-jSfeBa0AQI,253
|
|
97
97
|
simo/core/__pycache__/views.cpython-38.pyc,sha256=K_QM967bIJeU02DJu0Dm7j8RiFDKn_TLzX77YzNkA7c,2495
|
|
98
98
|
simo/core/__pycache__/widgets.cpython-38.pyc,sha256=sR0ZeHCHrhnNDBJuRrxp3zUsfBp0xrtF0xrK2TkQv1o,3520
|
|
@@ -146,7 +146,7 @@ simo/core/drf_braces/tests/serializers/test_enforce_validation_serializer.py,sha
|
|
|
146
146
|
simo/core/drf_braces/tests/serializers/test_form_serializer.py,sha256=IE2xQ1SzhSsOy2BFsBYw_Po-ujKBgIuNoTRxCzhyilE,12995
|
|
147
147
|
simo/core/drf_braces/tests/serializers/test_swapping.py,sha256=o-B5YV5HDxHCVrXYGODeF7lB3rPDGtafNgClx97d6w4,1220
|
|
148
148
|
simo/core/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
-
simo/core/management/update.py,sha256=
|
|
149
|
+
simo/core/management/update.py,sha256=XHkacZcwotUMJ6f1PEpVs3iIZr6wNZ4l_P6Kg_EF4IM,1982
|
|
150
150
|
simo/core/management/__pycache__/__init__.cpython-38.pyc,sha256=Ptf1WzljXMt3wP1tzOy6q3JfLERYDs66wSHBVdrzjHg,169
|
|
151
151
|
simo/core/management/_hub_template/hub/asgi.py,sha256=ElN_fdeSkf0Ysa7pS9rJVmZ1HmLhFxb8jFaMLqe1220,126
|
|
152
152
|
simo/core/management/_hub_template/hub/celeryc.py,sha256=3ksDXftIZKJ4Cq9WNKJERdZdQlDEnjTQXycweRFmsSQ,27
|
|
@@ -206,6 +206,7 @@ simo/core/migrations/0040_alter_instance_name.py,sha256=FqUq-NnO_eqMy3lg5Yl0uG3C
|
|
|
206
206
|
simo/core/migrations/0041_alter_instance_slug.py,sha256=MmuW0n5CCpF7NyKYINDcqChOU1DynSqQu_3wAYQypCo,401
|
|
207
207
|
simo/core/migrations/0042_alter_instance_timezone.py,sha256=5fLprOmoV06y37rh3uJWq8Fy4SjNmu86Imky6t7j13g,23334
|
|
208
208
|
simo/core/migrations/0043_alter_category_instance_alter_instance_timezone_and_more.py,sha256=TpJRZjwJu1iDYt1cCQr62jLOz14yy7yjrfbyHYgu9pM,23896
|
|
209
|
+
simo/core/migrations/0044_alter_gateway_type.py,sha256=xoQvOSz_JrWHECAAII83518tmhEEfLUHqxpIjoo4oLY,758
|
|
209
210
|
simo/core/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
210
211
|
simo/core/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=w6GiBXVxWj30Bg4Sn_pFVeA041d-pCrkaq8mR3KuF70,5381
|
|
211
212
|
simo/core/migrations/__pycache__/0002_load_icons.cpython-38.pyc,sha256=Nb9RrPjVYo_RpZ5PmzoaEIWGCeVt4kicpmGiKlBrpIw,2123
|
|
@@ -250,6 +251,7 @@ simo/core/migrations/__pycache__/0040_alter_instance_name.cpython-38.pyc,sha256=
|
|
|
250
251
|
simo/core/migrations/__pycache__/0041_alter_instance_slug.cpython-38.pyc,sha256=tVBd5-92gJPHR-I2yjUhsbtxwcykBMzxA6W3mvs8giE,620
|
|
251
252
|
simo/core/migrations/__pycache__/0042_alter_instance_timezone.cpython-38.pyc,sha256=_IdEOLCC0xgeVcKfCk7x0kKxVPu0iWuCxCg8aqkzeSI,16392
|
|
252
253
|
simo/core/migrations/__pycache__/0043_alter_category_instance_alter_instance_timezone_and_more.cpython-38.pyc,sha256=97_eFPQ_Iy-M1712Nad1w8t3ITBV4BF0eY1e8N-oOE4,16759
|
|
254
|
+
simo/core/migrations/__pycache__/0044_alter_gateway_type.cpython-38.pyc,sha256=KwqGKoo8C1wH9ZUhagpC3plTwheSMcWtwlCGcSPd5WQ,964
|
|
253
255
|
simo/core/migrations/__pycache__/__init__.cpython-38.pyc,sha256=VZmDQ57BTcebuM0KMhjiTOabgWZCBxQmSJzWZos9SO8,169
|
|
254
256
|
simo/core/static/ansi_styles.css,sha256=4ieJGrjZPKyPSago9FdB_gflHoGE1vxCHi8qVn5tY-Y,37352
|
|
255
257
|
simo/core/static/admin/Img/plus.svg,sha256=2NpSFPWqGIjpAQGFI7LDQHPKagEhYkJiJX95ufCoZaI,741
|
|
@@ -10230,7 +10232,7 @@ simo/fleet/managers.py,sha256=ZNeHFSkF5kzsl9E1DCBevOW6kXJlD6kw0LU4B-JMOG8,828
|
|
|
10230
10232
|
simo/fleet/models.py,sha256=zPplx_v64nfKBmb-nCb74aCVtEeY3m3SjEy-VhbnydU,17511
|
|
10231
10233
|
simo/fleet/routing.py,sha256=cofGsVWXMfPDwsJ6HM88xxtRxHwERhJ48Xyxc8mxg5o,149
|
|
10232
10234
|
simo/fleet/serializers.py,sha256=X2M0DFKVaxM6JFGDsdg3S2nJlLIcBvbujidZdfxD88w,2169
|
|
10233
|
-
simo/fleet/socket_consumers.py,sha256=
|
|
10235
|
+
simo/fleet/socket_consumers.py,sha256=PwxGOqstI5wzglBHTvxosa9mwg8n3tWDQEPLb1vbxlc,18354
|
|
10234
10236
|
simo/fleet/tasks.py,sha256=AGq9BXFNAqkhOANsPvId8yjEbDtVCB3MRsi_AKDpgIM,821
|
|
10235
10237
|
simo/fleet/utils.py,sha256=wNJvURzLP3-aho3D3rfg07N9kWCaMIw5gOsmeeO9Nlg,4740
|
|
10236
10238
|
simo/fleet/views.py,sha256=jT3GcGv_JEj3dqyfHH2whCnGqwT8YEAuFxRgIX4Dk9w,3237
|
|
@@ -10241,13 +10243,13 @@ simo/fleet/__pycache__/auto_urls.cpython-38.pyc,sha256=Tc6a6BCXHjijP8U2jE2ghlJwn
|
|
|
10241
10243
|
simo/fleet/__pycache__/base_types.cpython-38.pyc,sha256=deyPwjpT6xZiFxBGFnj5b7R-lbdOTh2krgpJhrcGVhc,274
|
|
10242
10244
|
simo/fleet/__pycache__/ble.cpython-38.pyc,sha256=Nrof9w7cm4OlpFWHeVnmvvanh2_oF9oQ3TknJiV93-0,1267
|
|
10243
10245
|
simo/fleet/__pycache__/controllers.cpython-38.pyc,sha256=jtFHr_uyjCCeuidL-o-hGaf21u0fnxK_O6hTRdY6lpc,24906
|
|
10244
|
-
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10246
|
+
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=09TcBfKorvkokHkLRua0gg8sVBamwjEhvCpoANRhPyg,42595
|
|
10245
10247
|
simo/fleet/__pycache__/gateways.cpython-38.pyc,sha256=0RKVn0ndreVKhsrukqeLPSdMnRrsQ_W7yeVeBkRLfIk,5058
|
|
10246
10248
|
simo/fleet/__pycache__/managers.cpython-38.pyc,sha256=Vmm23zoQnS3-uS5_WJt2n3wtjhLiEhLWaYxXJCU6Gts,1339
|
|
10247
|
-
simo/fleet/__pycache__/models.cpython-38.pyc,sha256=
|
|
10249
|
+
simo/fleet/__pycache__/models.cpython-38.pyc,sha256=WUahZgETWlem5rVXlJ_vINFRM7OZWp5xpWXGMoeBXsM,14131
|
|
10248
10250
|
simo/fleet/__pycache__/routing.cpython-38.pyc,sha256=aPrCmxFKVyB8R8ZbJDwdPdFfvT7CvobovvZeq_mqRgY,314
|
|
10249
10251
|
simo/fleet/__pycache__/serializers.cpython-38.pyc,sha256=gIWHJaSUbTe9H_xerD29Fz7BxIqXNzBI60GsIVXbNdY,3134
|
|
10250
|
-
simo/fleet/__pycache__/socket_consumers.cpython-38.pyc,sha256=
|
|
10252
|
+
simo/fleet/__pycache__/socket_consumers.cpython-38.pyc,sha256=Dmy99vvfoB-k-lLvr_BHit6JzbCAXiUUxTSCpdDrElU,14012
|
|
10251
10253
|
simo/fleet/__pycache__/tasks.cpython-38.pyc,sha256=RoNxL2WUiW67s9O9DjaYVVjCBSZu2nje0Qn9FJkWVS0,1116
|
|
10252
10254
|
simo/fleet/__pycache__/utils.cpython-38.pyc,sha256=obUd-X2Y-ybx4icqUWq_qwIxrP9yyarJjexWAfO4MTI,3344
|
|
10253
10255
|
simo/fleet/__pycache__/views.cpython-38.pyc,sha256=wilxSvZliSKQ5qC7JjWneYBSdbeZeTsF5uDrOQVmvms,3181
|
|
@@ -10341,7 +10343,7 @@ simo/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
10341
10343
|
simo/generic/app_widgets.py,sha256=TPRLj4hri2hBuY6mrdwBiv-01z2hDxZmsup-GDD9LrM,953
|
|
10342
10344
|
simo/generic/base_types.py,sha256=u3SlfpNYaCwkVBwomWgso4ODzL71ay9MhiAW-bxgnDU,341
|
|
10343
10345
|
simo/generic/controllers.py,sha256=i-xKQ5PrNKwCuO0dFaHHUaD5rF9lDnq18ziVSNBENao,50134
|
|
10344
|
-
simo/generic/forms.py,sha256=
|
|
10346
|
+
simo/generic/forms.py,sha256=tCbIZtbruBHjZRzulGXJQOjmxaGJ2uoKqjT1scScdDQ,29004
|
|
10345
10347
|
simo/generic/gateways.py,sha256=MxPQzgEnnXSG-t6rErHZQJACFWegCWGaME640UIGrA8,15783
|
|
10346
10348
|
simo/generic/models.py,sha256=Adq7ipWK-renxJlNW-SZnAq2oGEOwKx8EdUWaKnfcVQ,7597
|
|
10347
10349
|
simo/generic/routing.py,sha256=elQVZmgnPiieEuti4sJ7zITk1hlRxpgbotcutJJgC60,228
|
|
@@ -10350,8 +10352,8 @@ simo/generic/__pycache__/__init__.cpython-38.pyc,sha256=mLu54WS9KIl-pHwVCBKpsDFI
|
|
|
10350
10352
|
simo/generic/__pycache__/app_widgets.cpython-38.pyc,sha256=YZ5db6-FPynBi6ooPW5crK9lZ6ymRh2DlGN6FwxfX4M,1820
|
|
10351
10353
|
simo/generic/__pycache__/base_types.cpython-38.pyc,sha256=aV5NdIuvXR-ItKpI__MwcyPZHD6Z882TFdgYkPCkr1I,493
|
|
10352
10354
|
simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=-Y3fV0gbkye9WgWpdNY7qG9VvMWpFUT7Spl1eukztgQ,33352
|
|
10353
|
-
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10354
|
-
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=
|
|
10355
|
+
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=Dd-hgbRNdIFzUDjSZ4yQp7wwR-ILBYQFI8MCob_ZYwQ,21232
|
|
10356
|
+
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=aKjuAS278Gd_DneTpONP4xuaq51wQq_9lzZXPwwZ3i4,11851
|
|
10355
10357
|
simo/generic/__pycache__/models.cpython-38.pyc,sha256=MZpum7syAFxuulf47K7gtUlJJ7xRD-IBUBAwUM1ZRnw,5825
|
|
10356
10358
|
simo/generic/__pycache__/routing.cpython-38.pyc,sha256=xtxTUTBTdivzFyA5Wh7k-hUj1WDO_FiRq6HYXdbr9Ks,382
|
|
10357
10359
|
simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=qJO5kvQLWhsQDOr1AtAtsAybuRWioxSkQei3Pc7rdP0,1737
|
|
@@ -10442,15 +10444,15 @@ simo/notifications/migrations/__pycache__/0002_notification_instance.cpython-38.
|
|
|
10442
10444
|
simo/notifications/migrations/__pycache__/0003_alter_notification_instance.cpython-38.pyc,sha256=awhD1F9RyK_706zVNM5io3WT_konFkKQgL7D5MkONwk,851
|
|
10443
10445
|
simo/notifications/migrations/__pycache__/__init__.cpython-38.pyc,sha256=YMBRHVon2nWDtIUbghckjnC12sIg_ykPWhV5aM0tto4,178
|
|
10444
10446
|
simo/users/__init__.py,sha256=6a7uBpCWB_DR7p54rbHusc0xvi1qfT1ZCCQGb6TiBh8,52
|
|
10445
|
-
simo/users/admin.py,sha256=
|
|
10446
|
-
simo/users/api.py,sha256=
|
|
10447
|
+
simo/users/admin.py,sha256=WDNZLsOA86xMpqiL3x-rNGB9ankr8ep6NjDxB6fbxuY,6976
|
|
10448
|
+
simo/users/api.py,sha256=pWmP201jyz7_KCC_c8Fsrnh1R0HoCkcHfwu4LYCIRfg,12373
|
|
10447
10449
|
simo/users/apps.py,sha256=cq0A8-U1HALEwev0TicgFhr4CAu7Icz8rwq0HfOaL4E,207
|
|
10448
10450
|
simo/users/auth_backends.py,sha256=KIw2AdjCUKfm_7Lql6aC4qdE6JznP0ECIMA5MVMLeiM,4251
|
|
10449
10451
|
simo/users/auto_urls.py,sha256=lcJvteBsbHQMJieZpDz-63tDYejLApqsW3CUnDakd7k,272
|
|
10450
10452
|
simo/users/dynamic_settings.py,sha256=sEIsi4yJw3kH46Jq_aOkSuK7QTfQACGUE-lkyBogCaM,570
|
|
10451
10453
|
simo/users/managers.py,sha256=OHgEP85MBtdkdYxdstBd8RavTBT8F_2WyDxUJ9aCqqM,246
|
|
10452
10454
|
simo/users/middleware.py,sha256=GMCrnWSc_2qCleyQIkfQGdL-pU-UTEcSg1wPvIKZ9uk,1210
|
|
10453
|
-
simo/users/models.py,sha256=
|
|
10455
|
+
simo/users/models.py,sha256=EeIiEPJMS5wibbdYOvNzxTT1eGihFYERlNwERli5Uo8,19671
|
|
10454
10456
|
simo/users/permissions.py,sha256=IwtYS8yQdupWbYKR9VimSRDV3qCJ2jXP57Lyjpb2EQM,242
|
|
10455
10457
|
simo/users/serializers.py,sha256=zzw1KONTnaTNBaU0r4rNVxJ827KzD6Z5LuQt27ZsQ98,2516
|
|
10456
10458
|
simo/users/sso_urls.py,sha256=gQOaPvGMYFD0NCVSwyoWO-mTEHe5j9sbzV_RK7kdvp0,251
|
|
@@ -10459,15 +10461,15 @@ simo/users/tasks.py,sha256=HJAqiyWGsaN3wSfquU0UyQ20jL-njXeaaTOdDT3TQ3s,979
|
|
|
10459
10461
|
simo/users/utils.py,sha256=1HGSZyHRqQvdJ4RtAiZDg1juvgG8aOlrGXR7CcvsyQc,1886
|
|
10460
10462
|
simo/users/views.py,sha256=dOQVvmlHG7ihWKJLFUBcqKOA0UDctlMKR0pTc36JZqg,3487
|
|
10461
10463
|
simo/users/__pycache__/__init__.cpython-38.pyc,sha256=VFoDJE_SKKaPqqYaaBYd1Ndb1hjakkTo_u0EG_XJ1GM,211
|
|
10462
|
-
simo/users/__pycache__/admin.cpython-38.pyc,sha256=
|
|
10463
|
-
simo/users/__pycache__/api.cpython-38.pyc,sha256=
|
|
10464
|
+
simo/users/__pycache__/admin.cpython-38.pyc,sha256=aTiBtHF-lQYKy3NMoVhqju2bctC_aHWKZtq-kaMUiMQ,7942
|
|
10465
|
+
simo/users/__pycache__/api.cpython-38.pyc,sha256=4JQ61L-i0GXtnqlGgZfoHHQX9bd8xJc9kkEmvjHC_-Q,10172
|
|
10464
10466
|
simo/users/__pycache__/apps.cpython-38.pyc,sha256=dgbWL8CxzzISJQTmq_4IztPJ2UzykNVdqA2Ae1PmeGk,605
|
|
10465
|
-
simo/users/__pycache__/auth_backends.cpython-38.pyc,sha256=
|
|
10467
|
+
simo/users/__pycache__/auth_backends.cpython-38.pyc,sha256=jYS2hlbTZh_ZtPeWcN50pc0IpyfCSO7_MvIbuVwEp8M,3144
|
|
10466
10468
|
simo/users/__pycache__/auto_urls.cpython-38.pyc,sha256=K-3sz2h-cEitoflSmZk1t0eUg5mQMMGLNZFREVwG7_o,430
|
|
10467
10469
|
simo/users/__pycache__/dynamic_settings.cpython-38.pyc,sha256=6F8JBjZkHykySnmZjNEzjS0ijbmPdcp9yUAZ5kqq_Fo,864
|
|
10468
10470
|
simo/users/__pycache__/managers.cpython-38.pyc,sha256=O0Y8ABp42RAosrbODmYsPMaj9AyOPyJ-aqzuO0Qpi2s,679
|
|
10469
10471
|
simo/users/__pycache__/middleware.cpython-38.pyc,sha256=Tj4nVEAvxEW3xA63fBRiJWRJpz_M848ZOqbHioc_IPE,1149
|
|
10470
|
-
simo/users/__pycache__/models.cpython-38.pyc,sha256=
|
|
10472
|
+
simo/users/__pycache__/models.cpython-38.pyc,sha256=aFOdFfAu0XLxg4BOSE_Kj3e-Qr3b8dMH8mWiyM9Egew,17672
|
|
10471
10473
|
simo/users/__pycache__/permissions.cpython-38.pyc,sha256=ez5NxoL_JUeeH6GsKhvFreuA3FCBgGf9floSypdXUtM,633
|
|
10472
10474
|
simo/users/__pycache__/serializers.cpython-38.pyc,sha256=Dy8RAcwNkNSXoJHvLp8fozURyHCtucqpSPyqZtbnMZc,3732
|
|
10473
10475
|
simo/users/__pycache__/sso_urls.cpython-38.pyc,sha256=uAwDozpOmrhUald-8tOHANILXkH7-TI8fNYXOtPkSY8,402
|
|
@@ -10512,6 +10514,8 @@ simo/users/migrations/0034_instanceuser_last_seen_location_and_more.py,sha256=_W
|
|
|
10512
10514
|
simo/users/migrations/0035_instanceuser_last_seen_speed_kmh_and_more.py,sha256=lAtNHugmvm-ssNL3R82o2mKayxBU5K_wLXoWaxyr1XI,580
|
|
10513
10515
|
simo/users/migrations/0036_instanceuser_phone_on_charge_user_phone_on_charge.py,sha256=uHXLRmFAASdB9sPivYkRu7WV4rxZDI3RaEwl2i7U_xg,615
|
|
10514
10516
|
simo/users/migrations/0037_rename_last_seen_location_datetime_instanceuser_last_seen_and_more.py,sha256=8f_7fC7k0Dm-0gGVHMI9_490BbEC_SfuAPrAADrZ7BA,1543
|
|
10517
|
+
simo/users/migrations/0038_userdevicereportlog_at_home_and_more.py,sha256=qL1ZjUJDiSrJat59ToqpNBwnMMPb3Q5mwHq-qd1eFcI,691
|
|
10518
|
+
simo/users/migrations/0039_auto_20241117_1039.py,sha256=ycDT9Df-wwqA8kgurJKJvmgpOS8rVXGf-LyRny2reO8,1271
|
|
10515
10519
|
simo/users/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10516
10520
|
simo/users/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=e4XOKaYRb7l0P7cBnHHi5FQQJMlwjK0g7iqgM-xKmNI,4215
|
|
10517
10521
|
simo/users/migrations/__pycache__/0002_componentpermission.cpython-38.pyc,sha256=pknJnpic8p6Vdx9DX41FfODXNnvexDswJtUCmC5w1tg,995
|
|
@@ -10552,6 +10556,8 @@ simo/users/migrations/__pycache__/0034_instanceuser_last_seen_location_and_more.
|
|
|
10552
10556
|
simo/users/migrations/__pycache__/0035_instanceuser_last_seen_speed_kmh_and_more.cpython-38.pyc,sha256=EOQ0J-t-CMgyVCAl6NHBXyScx6D83MO-zISO9Z1aE-U,705
|
|
10553
10557
|
simo/users/migrations/__pycache__/0036_instanceuser_phone_on_charge_user_phone_on_charge.cpython-38.pyc,sha256=y1ZDJ8VM5_vJOxTPRERjwukiGXJ89UhDc4bHiHZwQ_w,723
|
|
10554
10558
|
simo/users/migrations/__pycache__/0037_rename_last_seen_location_datetime_instanceuser_last_seen_and_more.cpython-38.pyc,sha256=W4Rc6SRNNJ_yAYrEyoklD5LFmQPAL9mTDrXHMfP8R4I,1162
|
|
10559
|
+
simo/users/migrations/__pycache__/0038_userdevicereportlog_at_home_and_more.cpython-38.pyc,sha256=khDSeTH3-jJ4yO1D6-i3Pm_NekJkVwBSUJ-rAxu0cr4,836
|
|
10560
|
+
simo/users/migrations/__pycache__/0039_auto_20241117_1039.cpython-38.pyc,sha256=FPfaabra486XVaqIypzaxPDan5syNXDZQhZYw15-WBU,1342
|
|
10555
10561
|
simo/users/migrations/__pycache__/__init__.cpython-38.pyc,sha256=NKq7WLgktK8WV1oOqCPbAbdkrPV5GRGhYx4VxxI4dcs,170
|
|
10556
10562
|
simo/users/templates/conf/mosquitto.conf,sha256=1eIGNuRu4Y3hfAU6qiWix648eCRrw0oOT24PnyFI4ys,189
|
|
10557
10563
|
simo/users/templates/conf/mosquitto_acls.conf,sha256=ga44caTDNQE0CBKw55iM2jOuna6-9fKGwAhjyERZdRE,500
|
|
@@ -10561,9 +10567,9 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
10561
10567
|
simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10562
10568
|
simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10563
10569
|
simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10564
|
-
simo-2.5.
|
|
10565
|
-
simo-2.5.
|
|
10566
|
-
simo-2.5.
|
|
10567
|
-
simo-2.5.
|
|
10568
|
-
simo-2.5.
|
|
10569
|
-
simo-2.5.
|
|
10570
|
+
simo-2.5.29.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
|
|
10571
|
+
simo-2.5.29.dist-info/METADATA,sha256=Z7DMwy0BRw9tBIl7NKt_TkJXKq0vnQFBiPg_3h9Xk2w,1953
|
|
10572
|
+
simo-2.5.29.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
10573
|
+
simo-2.5.29.dist-info/entry_points.txt,sha256=S9PwnUYmTSW7681GKDCxUbL0leRJIaRk6fDQIKgbZBA,135
|
|
10574
|
+
simo-2.5.29.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
|
|
10575
|
+
simo-2.5.29.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|