simo 2.3.2__py3-none-any.whl → 2.3.4__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/__pycache__/asgi.cpython-38.pyc +0 -0
- simo/__pycache__/settings.cpython-38.pyc +0 -0
- simo/backups/__init__.py +0 -0
- simo/backups/__pycache__/__init__.cpython-38.pyc +0 -0
- simo/backups/__pycache__/admin.cpython-38.pyc +0 -0
- simo/backups/__pycache__/dynamic_settings.cpython-38.pyc +0 -0
- simo/backups/__pycache__/models.cpython-38.pyc +0 -0
- simo/backups/admin.py +19 -0
- simo/backups/dynamic_settings.py +21 -0
- simo/backups/migrations/0001_initial.py +27 -0
- simo/backups/migrations/__init__.py +0 -0
- simo/backups/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
- simo/backups/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- simo/backups/models.py +18 -0
- simo/backups/tasks.py +272 -0
- simo/core/__pycache__/context.cpython-38.pyc +0 -0
- simo/core/__pycache__/dynamic_settings.cpython-38.pyc +0 -0
- simo/core/__pycache__/middleware.cpython-38.pyc +0 -0
- simo/core/__pycache__/serializers.cpython-38.pyc +0 -0
- simo/core/__pycache__/tasks.cpython-38.pyc +0 -0
- simo/core/context.py +2 -2
- simo/core/management/commands/on_http_start.py +1 -2
- simo/core/management/update.py +0 -19
- simo/core/middleware.py +16 -0
- simo/core/serializers.py +3 -1
- simo/core/tasks.py +0 -2
- simo/fleet/__pycache__/controllers.cpython-38.pyc +0 -0
- simo/fleet/__pycache__/forms.cpython-38.pyc +0 -0
- simo/fleet/controllers.py +1 -2
- simo/fleet/forms.py +6 -0
- simo/generic/__pycache__/forms.cpython-38.pyc +0 -0
- simo/generic/__pycache__/socket_consumers.cpython-38.pyc +0 -0
- simo/generic/forms.py +4 -2
- simo/settings.py +1 -0
- simo/users/__pycache__/admin.cpython-38.pyc +0 -0
- simo/users/__pycache__/models.cpython-38.pyc +0 -0
- simo/users/admin.py +14 -15
- simo/users/models.py +22 -20
- {simo-2.3.2.dist-info → simo-2.3.4.dist-info}/METADATA +1 -1
- {simo-2.3.2.dist-info → simo-2.3.4.dist-info}/RECORD +44 -34
- simo/core/templates/admin/formset_widget_old.html +0 -122
- simo/core/templates/setup_wizard/clearable_easy_thumbnails_widget.html +0 -15
- simo/core/templates/setup_wizard/form.html +0 -225
- {simo-2.3.2.dist-info → simo-2.3.4.dist-info}/LICENSE.md +0 -0
- {simo-2.3.2.dist-info → simo-2.3.4.dist-info}/WHEEL +0 -0
- {simo-2.3.2.dist-info → simo-2.3.4.dist-info}/entry_points.txt +0 -0
- {simo-2.3.2.dist-info → simo-2.3.4.dist-info}/top_level.txt +0 -0
simo/users/admin.py
CHANGED
|
@@ -25,16 +25,20 @@ class ComponentPermissionInline(admin.TabularInline):
|
|
|
25
25
|
|
|
26
26
|
@admin.register(PermissionsRole)
|
|
27
27
|
class PermissionsRoleAdmin(admin.ModelAdmin):
|
|
28
|
-
list_display = 'name', '
|
|
28
|
+
list_display = 'name', 'is_superuser', 'is_default'
|
|
29
29
|
search_fields = 'name',
|
|
30
|
-
list_filter = 'instance',
|
|
31
30
|
inlines = ComponentPermissionInline,
|
|
32
31
|
|
|
33
32
|
def get_queryset(self, request):
|
|
34
33
|
qs = super().get_queryset(request)
|
|
35
34
|
if request.user.is_master:
|
|
36
35
|
return qs
|
|
37
|
-
return qs.filter(
|
|
36
|
+
return qs.filter(instance=request.instance)
|
|
37
|
+
|
|
38
|
+
def save_model(self, request, obj, form, change):
|
|
39
|
+
if not obj.id:
|
|
40
|
+
obj.instance = request.instance
|
|
41
|
+
obj.save()
|
|
38
42
|
|
|
39
43
|
def get_fields(self, request, obj=None):
|
|
40
44
|
if request.user.is_master:
|
|
@@ -49,7 +53,7 @@ class PermissionsRoleAdmin(admin.ModelAdmin):
|
|
|
49
53
|
class InstanceUserInline(admin.TabularInline):
|
|
50
54
|
model = InstanceUser
|
|
51
55
|
extra = 0
|
|
52
|
-
readonly_fields = '
|
|
56
|
+
readonly_fields = 'at_home',
|
|
53
57
|
|
|
54
58
|
|
|
55
59
|
@admin.register(User)
|
|
@@ -102,7 +106,7 @@ class UserAdmin(OrgUserAdmin):
|
|
|
102
106
|
qs = super().get_queryset(request)
|
|
103
107
|
if request.user.is_master:
|
|
104
108
|
return qs
|
|
105
|
-
return qs.filter(
|
|
109
|
+
return qs.filter(instance_roles__instance=request.instance)
|
|
106
110
|
|
|
107
111
|
|
|
108
112
|
from django.contrib.auth.models import Group
|
|
@@ -127,11 +131,9 @@ class UserDeviceLogInline(admin.ModelAdmin):
|
|
|
127
131
|
|
|
128
132
|
def get_queryset(self, request):
|
|
129
133
|
qs = super().get_queryset(request)
|
|
130
|
-
if request.user.is_master:
|
|
131
|
-
return qs
|
|
132
134
|
return qs.filter(
|
|
133
|
-
|
|
134
|
-
)
|
|
135
|
+
user_device__users__roles__instance=request.instance
|
|
136
|
+
).distinct()
|
|
135
137
|
|
|
136
138
|
|
|
137
139
|
@admin.register(UserDevice)
|
|
@@ -144,9 +146,7 @@ class UserDeviceAdmin(admin.ModelAdmin):
|
|
|
144
146
|
|
|
145
147
|
def get_queryset(self, request):
|
|
146
148
|
qs = super().get_queryset(request)
|
|
147
|
-
|
|
148
|
-
return qs
|
|
149
|
-
return qs.filter(user__role__instance__in=request.user.instances)
|
|
149
|
+
return qs.filter(users__roles__instance=request.instance).distinct()
|
|
150
150
|
|
|
151
151
|
def users_display(self, obj):
|
|
152
152
|
return ', '.join([str(u) for u in obj.users.all()])
|
|
@@ -157,13 +157,12 @@ class UserDeviceAdmin(admin.ModelAdmin):
|
|
|
157
157
|
@admin.register(InstanceInvitation)
|
|
158
158
|
class InstanceInvitationAdmin(admin.ModelAdmin):
|
|
159
159
|
list_display = (
|
|
160
|
-
'token', '
|
|
160
|
+
'token', 'from_user', 'to_email', 'role',
|
|
161
161
|
'issue_date', 'taken_by', 'taken_date'
|
|
162
162
|
)
|
|
163
163
|
readonly_fields = (
|
|
164
164
|
'token', 'issue_date', 'from_user', 'taken_by', 'taken_date'
|
|
165
165
|
)
|
|
166
|
-
list_filter = 'instance',
|
|
167
166
|
|
|
168
167
|
actions = ['send', ]
|
|
169
168
|
|
|
@@ -171,7 +170,7 @@ class InstanceInvitationAdmin(admin.ModelAdmin):
|
|
|
171
170
|
qs = super().get_queryset(request)
|
|
172
171
|
if request.user.is_master:
|
|
173
172
|
return qs
|
|
174
|
-
return qs.filter(
|
|
173
|
+
return qs.filter(instance=request.instance)
|
|
175
174
|
|
|
176
175
|
def send(self, request, queryset):
|
|
177
176
|
invitations_sent = 0
|
simo/users/models.py
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
import requests
|
|
3
3
|
import subprocess
|
|
4
|
-
from django.utils.functional import cached_property
|
|
5
4
|
from django.urls import reverse
|
|
6
5
|
from django.utils.translation import gettext_lazy as _
|
|
7
6
|
from django.db import models
|
|
8
7
|
from django.db import transaction
|
|
9
8
|
from django.db.models.signals import post_save, post_delete, m2m_changed
|
|
10
9
|
from django.dispatch import receiver
|
|
10
|
+
from django.core.cache import cache
|
|
11
11
|
from dirtyfields import DirtyFieldsMixin
|
|
12
12
|
from django.contrib.gis.geos import Point
|
|
13
13
|
from geopy.distance import distance
|
|
@@ -182,9 +182,7 @@ class User(AbstractBaseUser, SimoAdminMixin):
|
|
|
182
182
|
USERNAME_FIELD = 'email'
|
|
183
183
|
REQUIRED_FIELDS = ['name']
|
|
184
184
|
|
|
185
|
-
_instances = None
|
|
186
185
|
_instance = None
|
|
187
|
-
_instance_roles = {}
|
|
188
186
|
|
|
189
187
|
class Meta:
|
|
190
188
|
verbose_name = _('user')
|
|
@@ -235,13 +233,16 @@ class User(AbstractBaseUser, SimoAdminMixin):
|
|
|
235
233
|
return self.is_active and self.ssh_key and self.is_master
|
|
236
234
|
|
|
237
235
|
def get_role(self, instance):
|
|
238
|
-
|
|
239
|
-
|
|
236
|
+
cache_key = f'user-{self.id}_instance-{instance.id}_role'
|
|
237
|
+
role = cache.get(cache_key, 'expired')
|
|
238
|
+
if role == 'expired':
|
|
239
|
+
role = self.roles.filter(
|
|
240
240
|
instance=instance
|
|
241
241
|
).prefetch_related(
|
|
242
242
|
'component_permissions', 'component_permissions__component'
|
|
243
243
|
).first()
|
|
244
|
-
|
|
244
|
+
cache.set(cache_key, role, 20)
|
|
245
|
+
return role
|
|
245
246
|
|
|
246
247
|
def set_instance(self, instance):
|
|
247
248
|
self._instance = instance
|
|
@@ -274,22 +275,23 @@ class User(AbstractBaseUser, SimoAdminMixin):
|
|
|
274
275
|
|
|
275
276
|
@property
|
|
276
277
|
def instances(self):
|
|
277
|
-
if self._instances != None:
|
|
278
|
-
return self._instances
|
|
279
278
|
from simo.core.models import Instance
|
|
280
|
-
|
|
281
|
-
self._instances = set()
|
|
282
279
|
if not self.is_active:
|
|
283
|
-
return
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
280
|
+
return Instance.objects.none()
|
|
281
|
+
cache_key = f'user-{self.id}_instances'
|
|
282
|
+
instances = cache.get(cache_key, 'expired')
|
|
283
|
+
if instances == 'expired':
|
|
284
|
+
if self.is_master:
|
|
285
|
+
instances = Instance.objects.all()
|
|
286
|
+
else:
|
|
287
|
+
instances = Instance.objects.filter(id__in=[
|
|
288
|
+
r.instance.id for r in self.instance_roles.filter(
|
|
289
|
+
is_active=True, instance__isnull=False
|
|
290
|
+
)
|
|
291
|
+
])
|
|
292
|
+
cache.set(cache_key, instances, 10)
|
|
293
|
+
print("INSTANCES: ", instances)
|
|
294
|
+
return instances
|
|
293
295
|
|
|
294
296
|
@property
|
|
295
297
|
def component_permissions(self):
|
|
@@ -3,15 +3,28 @@ simo/asgi.py,sha256=L8CUVZLM32IMzWDZ4IShdDN-m69t7oxAUeHods4-xNM,822
|
|
|
3
3
|
simo/celeryc.py,sha256=eab7_e9rw0c__DCeoUFUh_tjAGVlulxVrk75BaJf57Q,1512
|
|
4
4
|
simo/conf.py,sha256=H2BhXAV8MEDVXF8AbkaLSfR4ULd-9_bS4bnhE5sE5fg,112
|
|
5
5
|
simo/scripting.py,sha256=PVIkGsiMDWj4CNTbOM3rq7pJ6ruavuns-ZMU7VudLa4,923
|
|
6
|
-
simo/settings.py,sha256=
|
|
6
|
+
simo/settings.py,sha256=bwri9NuM9wjCacmUxzB1joy79Bu64tO0jEBZlJUeakc,6933
|
|
7
7
|
simo/urls.py,sha256=fRmAsNQ_pzFloimLmxNeDcR6hHRJ3rOoZ3kGy8zOQ_A,2402
|
|
8
8
|
simo/__pycache__/__init__.cpython-38.pyc,sha256=j81de0BqHMr6bs0C7cuYrXl7HwtK_vv8hDEtAdSwDJc,153
|
|
9
|
-
simo/__pycache__/asgi.cpython-38.pyc,sha256=
|
|
9
|
+
simo/__pycache__/asgi.cpython-38.pyc,sha256=5W_YSKOIrRd6NQQuJDuA3Yuj688GzirXVVOyLe8wJIQ,845
|
|
10
10
|
simo/__pycache__/celeryc.cpython-38.pyc,sha256=eSRoaKwfYlxVaxAiwqpQ2ndEcx7W-VpZtbxRFSV8UYg,1653
|
|
11
11
|
simo/__pycache__/conf.cpython-38.pyc,sha256=MYP2yk3ULxiYwZsZR6tCLjKnU-z03A3avzQzIn66y3k,273
|
|
12
|
-
simo/__pycache__/settings.cpython-38.pyc,sha256=
|
|
12
|
+
simo/__pycache__/settings.cpython-38.pyc,sha256=NdG2wtrRDI5YO1CfMzJuSGRARls5OnNJs7_XpLxGOQI,6083
|
|
13
13
|
simo/__pycache__/urls.cpython-38.pyc,sha256=u0x6EqT8S1YfDOSPgbI8Kf-RDlveY9OV-EDXMYKAQ7w,2125
|
|
14
14
|
simo/__pycache__/wsgi.cpython-38.pyc,sha256=TpRxO7VM_ql31hbKphVdanydC5RI1nHB4l0QA2pdWxo,322
|
|
15
|
+
simo/backups/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
+
simo/backups/admin.py,sha256=doPMTahbMtWHBpYDW2xh3tz2bkb6KqJXfH2cAeHUalM,533
|
|
17
|
+
simo/backups/dynamic_settings.py,sha256=MrXECAxnpQjBf8yWug6qusSAyxRCtzBuQxfhFX8uV-c,560
|
|
18
|
+
simo/backups/models.py,sha256=wjXvb8uXWGk_iqmbMBnX8owp5AYpj1WS0KteW4a0Fbk,463
|
|
19
|
+
simo/backups/tasks.py,sha256=GueIJLZazeUZTfupe24k1m2IiflceSE610bL6KTXuAo,8496
|
|
20
|
+
simo/backups/__pycache__/__init__.cpython-38.pyc,sha256=vzOf-JIMeZ6P85FyvTpYev3mscFosUy-SJTshcQbOHU,161
|
|
21
|
+
simo/backups/__pycache__/admin.cpython-38.pyc,sha256=yT_AJOT6ypJl2iCQqphioMw2h0qm7N8IxDzEVF9RJWw,1027
|
|
22
|
+
simo/backups/__pycache__/dynamic_settings.cpython-38.pyc,sha256=Ko0le9M96_zv4jv4zUsGUZTjEzNFQxr7NNjEwp2FRqU,900
|
|
23
|
+
simo/backups/__pycache__/models.cpython-38.pyc,sha256=ifXK00chQNJZQL9QohBMTwH343Kt_CqVWUkuUQjnUX4,922
|
|
24
|
+
simo/backups/migrations/0001_initial.py,sha256=0LzCusTUyYf61ksiepdnqXIuYYNTNd_djh_Wa484HA0,770
|
|
25
|
+
simo/backups/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
simo/backups/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=jumm0xjwRhiYPOAXi4o-AGpcRi-GVOj5bSJkOTYtT7w,834
|
|
27
|
+
simo/backups/migrations/__pycache__/__init__.cpython-38.pyc,sha256=Lz1fs6V05h2AoxTOLNye0do9bEMnyuaXB_hHOjG5-HU,172
|
|
15
28
|
simo/core/__init__.py,sha256=_s2TjJfQImsMrTIxqLAx9AZie1Ojmm6sCHASdl3WLGU,50
|
|
16
29
|
simo/core/admin.py,sha256=hoJ0OhfWL9T0d6JCY6_Gm3GR-nrgtDR2UQM67rMsjiE,18141
|
|
17
30
|
simo/core/api.py,sha256=laWtqQUL0ngjTtdDGqcUH42WYzWd9WYJwcKL3yCsDk4,27952
|
|
@@ -22,7 +35,7 @@ simo/core/apps.py,sha256=CsqpiQerhmrMsH-wGiG-gQgXd9qEkIi-LUaA9cXpKSw,425
|
|
|
22
35
|
simo/core/auto_urls.py,sha256=nNXEgLAAAQAhRWQDA9AbDtw-zcPKmu_pufJaSa8g818,1102
|
|
23
36
|
simo/core/autocomplete_views.py,sha256=JT5LA2_Wtr60XYSAIqaXFKFYPjrmkEf6yunXD9y2zco,4022
|
|
24
37
|
simo/core/base_types.py,sha256=qVh6MrXZEfN7bFOyFftC7u0yyz0PkvpsjllLBc6SCp4,616
|
|
25
|
-
simo/core/context.py,sha256=
|
|
38
|
+
simo/core/context.py,sha256=x8ejZuyQsCRkbtlAyk2rLZ95RuI_5VPSWLolkfNOAf8,1360
|
|
26
39
|
simo/core/controllers.py,sha256=rLgJqnEMzRC0GpZnQb0m_Cz43Gp2zaYbODU7UUxE5oA,29602
|
|
27
40
|
simo/core/dynamic_settings.py,sha256=bUs58XEZOCIEhg1TigR3LmYggli13KMryBZ9pC7ugAQ,1872
|
|
28
41
|
simo/core/events.py,sha256=LvtonJGNyCb6HLozs4EG0WZItnDwNdtnGQ4vTcnKvUs,4438
|
|
@@ -32,15 +45,15 @@ simo/core/forms.py,sha256=sFVz8tENhi4QSudORu_e5tlGEC0aXumy6wzJqQNYBPk,21904
|
|
|
32
45
|
simo/core/gateways.py,sha256=m0eS3XjVe34Dge6xtoCq16kFWCKJcdQrT0JW0REqoq8,3715
|
|
33
46
|
simo/core/loggers.py,sha256=EBdq23gTQScVfQVH-xeP90-wII2DQFDjoROAW6ggUP4,1645
|
|
34
47
|
simo/core/managers.py,sha256=n-b3I4uXzfHKTeB1VMjSaMsDUxp8FegFJwnbV1IsWQ4,3019
|
|
35
|
-
simo/core/middleware.py,sha256=
|
|
48
|
+
simo/core/middleware.py,sha256=v8i_7W_-ozucJXNm8beIhMGqEqMy8Xmtmj4AjdEnkQs,2720
|
|
36
49
|
simo/core/models.py,sha256=hQA8SeAPtGRSs4gk-bci2Ni3ZANtS62V-IDgCyJh2qE,21563
|
|
37
50
|
simo/core/permissions.py,sha256=v0iJM4LOeYoEfMiw3OLPYio272G1aUEAg_z9Wd1q5m0,2993
|
|
38
51
|
simo/core/routing.py,sha256=X1_IHxyA-_Q7hw1udDoviVP4_FSBDl8GYETTC2zWTbY,499
|
|
39
|
-
simo/core/serializers.py,sha256=
|
|
52
|
+
simo/core/serializers.py,sha256=1hcCnLnItw8T3jLWivKBjSAt7kwqjcOYE0vaepw55Z0,20966
|
|
40
53
|
simo/core/signal_receivers.py,sha256=9-qFCCeSLcMFEMg6QUtKOVgUsoNoqhzGoI98nuNSTEo,6228
|
|
41
54
|
simo/core/socket_consumers.py,sha256=n7VE2Fvqt4iEAYLTRbTPOcI-7tszMAADu7gimBxB-Fg,9635
|
|
42
55
|
simo/core/storage.py,sha256=_5igjaoWZAiExGWFEJMElxUw55DzJG1jqFty33xe8BE,342
|
|
43
|
-
simo/core/tasks.py,sha256=
|
|
56
|
+
simo/core/tasks.py,sha256=SMrs1vjVgsHO9-QBLg4hTyTrd6gAUMchPXY6zHHkqOs,14205
|
|
44
57
|
simo/core/todos.py,sha256=eYVXfLGiapkxKK57XuviSNe3WsUYyIWZ0hgQJk7ThKo,665
|
|
45
58
|
simo/core/types.py,sha256=WJEq48mIbFi_5Alt4wxWMGXxNxUTXqfQU5koH7wqHHI,1108
|
|
46
59
|
simo/core/views.py,sha256=VVqfEPzK0EdbVMMarkG8rd7cODG5QHpXnr3e8UdrTQE,2600
|
|
@@ -55,9 +68,9 @@ simo/core/__pycache__/apps.cpython-38.pyc,sha256=JL0BEqgXcSQvMlcK48PBpPfyDEkPMdO
|
|
|
55
68
|
simo/core/__pycache__/auto_urls.cpython-38.pyc,sha256=Tyf8PYHq5YqSwTp25Joy-eura_Fm86fpX9zKLSklhvo,872
|
|
56
69
|
simo/core/__pycache__/autocomplete_views.cpython-38.pyc,sha256=hJ6JILI1LqrAtpQMvxnLvljGdW1v1gpvBsD79vFkZ58,3972
|
|
57
70
|
simo/core/__pycache__/base_types.cpython-38.pyc,sha256=hmq22vvGyCmhbYyuV6bFAOOSIupspgW5yq_VzqWd-vY,759
|
|
58
|
-
simo/core/__pycache__/context.cpython-38.pyc,sha256=
|
|
71
|
+
simo/core/__pycache__/context.cpython-38.pyc,sha256=EbjtX2vOdl7-NA02zEwp_iUMKI2SSs-NZ-sHryo0GGY,1278
|
|
59
72
|
simo/core/__pycache__/controllers.cpython-38.pyc,sha256=LA5Bnzev4kS3S8Ta0nfaVHQMIPfUDPYDL1GvfgHtIWg,26584
|
|
60
|
-
simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=
|
|
73
|
+
simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=wGpnscX1DxFpRl54MQURhjz2aD3NJohSzw9JCFnzh2Y,2384
|
|
61
74
|
simo/core/__pycache__/events.cpython-38.pyc,sha256=A1Axx-qftd1r7st7wkO3DkvTdt9-RkcJe5KJhpzJVk8,5109
|
|
62
75
|
simo/core/__pycache__/filters.cpython-38.pyc,sha256=VIMADCBiYhziIyRmxAyUDJluZvuZmiC4bNYWTRsGSao,721
|
|
63
76
|
simo/core/__pycache__/form_fields.cpython-38.pyc,sha256=u0voKXkA64xbH6LY_-jMBHQS4mOJZZeuB9WTvtv9JWE,3433
|
|
@@ -65,15 +78,15 @@ simo/core/__pycache__/forms.cpython-38.pyc,sha256=JDCNYJQrZHUaMb4qZ6A0f1JptoCHQK
|
|
|
65
78
|
simo/core/__pycache__/gateways.cpython-38.pyc,sha256=D1ooHL-iSpQrxnD8uAl4xWFJmm-QWZfbkLiLlFOMtdU,4553
|
|
66
79
|
simo/core/__pycache__/loggers.cpython-38.pyc,sha256=Z-cdQnC6XlIonPV4Sl4E52tP4NMEdPAiHK0cFaIL7I8,1623
|
|
67
80
|
simo/core/__pycache__/managers.cpython-38.pyc,sha256=6RTIxyjOgpQGtAqcUyE2vFPS09w1V5Wmd_vOV7rHRRI,3370
|
|
68
|
-
simo/core/__pycache__/middleware.cpython-38.pyc,sha256=
|
|
81
|
+
simo/core/__pycache__/middleware.cpython-38.pyc,sha256=50q5tTJN_miDAlon_RElJ5dt6A1AlQS0W7CFA35WKKc,2404
|
|
69
82
|
simo/core/__pycache__/models.cpython-38.pyc,sha256=h_neN4zzReOTuou4NX9RbgVJ8T47z0tLqSr37Fm1iHU,17874
|
|
70
83
|
simo/core/__pycache__/permissions.cpython-38.pyc,sha256=fH4iyqd9DdzRLEu2b621-FeM-napR0M7hzBUTHo9Q3g,2972
|
|
71
84
|
simo/core/__pycache__/routing.cpython-38.pyc,sha256=3T3FPJ8Cn99xZCGvMyg2xjl7al-Shm9CelbSpkJtNP8,599
|
|
72
|
-
simo/core/__pycache__/serializers.cpython-38.pyc,sha256=
|
|
85
|
+
simo/core/__pycache__/serializers.cpython-38.pyc,sha256=xsGMcx9ISHmvY_PzWqosUdkWRBNqYKOtVkFDYNEHc1A,19479
|
|
73
86
|
simo/core/__pycache__/signal_receivers.cpython-38.pyc,sha256=3Bt9S47DR_ZFS3O-crElFgLLXPIYyDgPIc2ibwEkaic,4904
|
|
74
87
|
simo/core/__pycache__/socket_consumers.cpython-38.pyc,sha256=NJUr7nRyHFvmAumxxWpsod5wzVVZM99rCEuJs1utHA4,8432
|
|
75
88
|
simo/core/__pycache__/storage.cpython-38.pyc,sha256=9R1Xu0FJDflfRXUPsqEgt0SpwiP7FGk7HaR8s8XRyI8,721
|
|
76
|
-
simo/core/__pycache__/tasks.cpython-38.pyc,sha256=
|
|
89
|
+
simo/core/__pycache__/tasks.cpython-38.pyc,sha256=arMCRz9NTDmE13KLvE4MCGwknvmmhYjTTqDpjZS93FI,9767
|
|
77
90
|
simo/core/__pycache__/todos.cpython-38.pyc,sha256=lOqGZ58siHM3isoJV4r7sg8igrfE9fFd-jSfeBa0AQI,253
|
|
78
91
|
simo/core/__pycache__/views.cpython-38.pyc,sha256=D7X_fFxYySe-mKNB4bEnIt9ubYM7CbbRcIpX52Ou4RE,2809
|
|
79
92
|
simo/core/__pycache__/widgets.cpython-38.pyc,sha256=sR0ZeHCHrhnNDBJuRrxp3zUsfBp0xrtF0xrK2TkQv1o,3520
|
|
@@ -127,7 +140,7 @@ simo/core/drf_braces/tests/serializers/test_enforce_validation_serializer.py,sha
|
|
|
127
140
|
simo/core/drf_braces/tests/serializers/test_form_serializer.py,sha256=IE2xQ1SzhSsOy2BFsBYw_Po-ujKBgIuNoTRxCzhyilE,12995
|
|
128
141
|
simo/core/drf_braces/tests/serializers/test_swapping.py,sha256=o-B5YV5HDxHCVrXYGODeF7lB3rPDGtafNgClx97d6w4,1220
|
|
129
142
|
simo/core/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
130
|
-
simo/core/management/update.py,sha256=
|
|
143
|
+
simo/core/management/update.py,sha256=Fj7-Zm4kvngPAE2NaUG21GOQfg86lKVtW79ZRH2sZD8,1795
|
|
131
144
|
simo/core/management/__pycache__/__init__.cpython-38.pyc,sha256=Ptf1WzljXMt3wP1tzOy6q3JfLERYDs66wSHBVdrzjHg,169
|
|
132
145
|
simo/core/management/_hub_template/hub/asgi.py,sha256=ElN_fdeSkf0Ysa7pS9rJVmZ1HmLhFxb8jFaMLqe1220,126
|
|
133
146
|
simo/core/management/_hub_template/hub/celeryc.py,sha256=3ksDXftIZKJ4Cq9WNKJERdZdQlDEnjTQXycweRFmsSQ,27
|
|
@@ -139,7 +152,7 @@ simo/core/management/_hub_template/hub/urls.py,sha256=Ydm-1BkYAzWeEF-MKSDIFf-7aE
|
|
|
139
152
|
simo/core/management/_hub_template/hub/wsgi.py,sha256=Lo-huLHnMDTxSmMBOodVFMWBls9poddrV2KRzXU0xGo,280
|
|
140
153
|
simo/core/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
154
|
simo/core/management/commands/gateways_manager.py,sha256=a_JmUG1SPJhbhPh5QdViCT5DL0YvKQH-KsO8ptLhB34,6970
|
|
142
|
-
simo/core/management/commands/on_http_start.py,sha256=
|
|
155
|
+
simo/core/management/commands/on_http_start.py,sha256=A2V40pyGY7AfONhtnxiGATOkqd0i9FUvRRxkwyAJF9k,2252
|
|
143
156
|
simo/core/management/commands/run_gateway.py,sha256=bp0FQQoBeOSoxjHCCMicDL1fxPZZGyLgnq2QKht3bJo,645
|
|
144
157
|
simo/core/management/commands/__pycache__/__init__.cpython-38.pyc,sha256=WKpfZZpAB9D7U4X6oWQIrU_H-6rUmq8Gl9fj9XaY2fw,178
|
|
145
158
|
simo/core/management/commands/__pycache__/gateways_manager.cpython-38.pyc,sha256=pgEJdchhOcqKCpjdRMeF0_QKJfMmfSkl_W4TUwcgS9o,6031
|
|
@@ -10124,7 +10137,6 @@ simo/core/templates/admin/clearable_easy_thumbnails_widget.html,sha256=Gh0z_KIEt
|
|
|
10124
10137
|
simo/core/templates/admin/component_change_list.html,sha256=N3seVjTkIRXIXKGsleB7oWUnPlMRXDIqOPqfEyq4PNE,3320
|
|
10125
10138
|
simo/core/templates/admin/component_history.html,sha256=xiACt0w7EPrdmTOsi5XO07O-8LcL_XpCu9pSynmNNpI,541
|
|
10126
10139
|
simo/core/templates/admin/formset_widget.html,sha256=NAonHNLyicsoE4Iir3My4AlVSz4Q7-1OA19zgsIOjJA,3563
|
|
10127
|
-
simo/core/templates/admin/formset_widget_old.html,sha256=rehM_tXl54d93vH0zbIv0QDJZb9rwmBqm5yiiHG31oM,4085
|
|
10128
10140
|
simo/core/templates/admin/index.html,sha256=AJpt1FA4g6IAFQA99-3glJ88RmoWJ0YXBIz_DUt-R14,4015
|
|
10129
10141
|
simo/core/templates/admin/item_name_display.html,sha256=Y3zk-rc-y8_6dC6_WrSy6tx6Z-6IZzZ5w3a1hMxlpz4,357
|
|
10130
10142
|
simo/core/templates/admin/msg_page.html,sha256=C1T9fniV7cIiSBQXRFcSAsbt5Y_fshf6T6ZAE1e8hNw,738
|
|
@@ -10151,8 +10163,6 @@ simo/core/templates/core/object_acutocomplete_select_item.html,sha256=pS8APlv1Id
|
|
|
10151
10163
|
simo/core/templates/core/openvpn_client.conf,sha256=z1838G8v8vmIiQKyfE8URCCMpLsges5jbX3hDJkztF4,249
|
|
10152
10164
|
simo/core/templates/gis/my-openlayers-osm.html,sha256=ze4Gcl4fjrkKS1lONZHgpD-ybdI_N4zZcWBsBeyL4-A,1790
|
|
10153
10165
|
simo/core/templates/gis/js/OLMapWidget.js,sha256=QOOHCR4CyAljFTtXTP_MNKN5RTplp3lvDKxHJj3J4KY,8813
|
|
10154
|
-
simo/core/templates/setup_wizard/clearable_easy_thumbnails_widget.html,sha256=DaN-86hqYMgi9j0zNFKEoqKMLsylrsJjj5FfUlhud4M,719
|
|
10155
|
-
simo/core/templates/setup_wizard/form.html,sha256=gBPXeB5d4e38iUguyEJi5CIIJWNPeb8tVVLEjuTRb8I,6630
|
|
10156
10166
|
simo/core/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10157
10167
|
simo/core/templatetags/components_list.py,sha256=dcwXEgVrP2xuRpGpv1yQ_DHvmitsuF93PhDa9y69F2M,18540
|
|
10158
10168
|
simo/core/templatetags/__pycache__/__init__.cpython-38.pyc,sha256=cvoEO0D7kCdN58Rztay2GihwqCVH0-FA8XRoFiQBSmk,171
|
|
@@ -10201,8 +10211,8 @@ simo/fleet/api.py,sha256=Hxn84xI-Q77HxjINgRbjSJQOv9jii4OL20LxK0VSrS8,2499
|
|
|
10201
10211
|
simo/fleet/auto_urls.py,sha256=UX66eR2ykMqFgfIllW-RTdjup5-FieCWl_BVm3CcXKg,702
|
|
10202
10212
|
simo/fleet/base_types.py,sha256=wL9RVkHr0gA7HI1wZq0pruGEIgvQqpfnCL4cC3ywsvw,102
|
|
10203
10213
|
simo/fleet/ble.py,sha256=eHA_9ABjbmH1vUVCv9hiPXQL2GZZSEVwfO0xyI1S0nI,1081
|
|
10204
|
-
simo/fleet/controllers.py,sha256=
|
|
10205
|
-
simo/fleet/forms.py,sha256=
|
|
10214
|
+
simo/fleet/controllers.py,sha256=A9Bawj9x9JOjd_u8lmNhnWbGlZgqIIS7kbAuO0cNR6c,30506
|
|
10215
|
+
simo/fleet/forms.py,sha256=EG0QkxCePDMTTD6GPxj1TAwcUYEGyybsitUTx7CPiFM,57917
|
|
10206
10216
|
simo/fleet/gateways.py,sha256=lKEJW0MgaOEiNnijH50DNSVChvaUT3TA3UurcI57P8k,5677
|
|
10207
10217
|
simo/fleet/managers.py,sha256=XOpDOA9L-f_550TNSyXnJbun2EmtGz1TenVTMlUSb8E,807
|
|
10208
10218
|
simo/fleet/models.py,sha256=dJYDTHBz1OizzP51G0fdKHSuW98CsqBX-NhgjcVqYHY,16518
|
|
@@ -10218,8 +10228,8 @@ simo/fleet/__pycache__/api.cpython-38.pyc,sha256=rL9fb7cCQatyFvXyKmlNOKmxVo8vHYe
|
|
|
10218
10228
|
simo/fleet/__pycache__/auto_urls.cpython-38.pyc,sha256=Tc6a6BCXHjijP8U2jE2ghlJwnSNrGm59-hW5t-80wF0,689
|
|
10219
10229
|
simo/fleet/__pycache__/base_types.cpython-38.pyc,sha256=deyPwjpT6xZiFxBGFnj5b7R-lbdOTh2krgpJhrcGVhc,274
|
|
10220
10230
|
simo/fleet/__pycache__/ble.cpython-38.pyc,sha256=Nrof9w7cm4OlpFWHeVnmvvanh2_oF9oQ3TknJiV93-0,1267
|
|
10221
|
-
simo/fleet/__pycache__/controllers.cpython-38.pyc,sha256=
|
|
10222
|
-
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10231
|
+
simo/fleet/__pycache__/controllers.cpython-38.pyc,sha256=7_GWIGJ2cNjrct6Vu3tSTjvxx6kNJDtTdyTTwsQ1k_8,25373
|
|
10232
|
+
simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=8LoC9PAnEEpQ2cVWT4REYvKcLKh7WPsHrJjNNogYgik,39202
|
|
10223
10233
|
simo/fleet/__pycache__/gateways.cpython-38.pyc,sha256=0RKVn0ndreVKhsrukqeLPSdMnRrsQ_W7yeVeBkRLfIk,5058
|
|
10224
10234
|
simo/fleet/__pycache__/managers.cpython-38.pyc,sha256=8uz-xpUiqbGDgXIZ_XRZtFb-Tju6NGxflGg-Ee4Yo6k,1310
|
|
10225
10235
|
simo/fleet/__pycache__/models.cpython-38.pyc,sha256=pEiMWANjJpKXSR60PosKCUQOKpo6tSvCeWX4VP-0Lns,13796
|
|
@@ -10311,7 +10321,7 @@ simo/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
10311
10321
|
simo/generic/app_widgets.py,sha256=E_pnpA1hxMIhenRCrHoQ5cik06jm2BAHCkl_eo-OudU,1264
|
|
10312
10322
|
simo/generic/base_types.py,sha256=djymox_boXTHX1BTTCLXrCH7ED-uAsV_idhaDOc3OLI,409
|
|
10313
10323
|
simo/generic/controllers.py,sha256=tVI0Gz35dcHt3_5xlkAaXOy3fxlmtZ8L7ODQBtBumV0,58275
|
|
10314
|
-
simo/generic/forms.py,sha256=
|
|
10324
|
+
simo/generic/forms.py,sha256=qS7BDI2_w01XsgBKjisGE6XNSMNpmdrdxCEJqorapwA,29481
|
|
10315
10325
|
simo/generic/gateways.py,sha256=cc_q_g2HsI2_rWmr8yZ3spnMPwsgoYS5ApWRimc11wU,18831
|
|
10316
10326
|
simo/generic/models.py,sha256=flpK2jsBFghrvRHzl6IKT-t3WZ-hNOj4ZP2vmBzx0K8,7657
|
|
10317
10327
|
simo/generic/routing.py,sha256=elQVZmgnPiieEuti4sJ7zITk1hlRxpgbotcutJJgC60,228
|
|
@@ -10320,11 +10330,11 @@ simo/generic/__pycache__/__init__.cpython-38.pyc,sha256=mLu54WS9KIl-pHwVCBKpsDFI
|
|
|
10320
10330
|
simo/generic/__pycache__/app_widgets.cpython-38.pyc,sha256=0IoKRG9n1tkNRRkrqAeOQwWBPd_33u98JBcVtMVVCio,2374
|
|
10321
10331
|
simo/generic/__pycache__/base_types.cpython-38.pyc,sha256=ptw6axyAqemZA35oa6vzr7EihzvbhW9w7Y-G6kfDedU,555
|
|
10322
10332
|
simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=I9sGJNnAm9UOnnEoK5KR6IJ9q442El31AiY2hBnx1pI,36480
|
|
10323
|
-
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=
|
|
10333
|
+
simo/generic/__pycache__/forms.cpython-38.pyc,sha256=bbuuS_Q7q7232hYrAPu-pn0WrGpKoMZSiGArOkQfHpc,21103
|
|
10324
10334
|
simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=8NbsLVDww3Ov5DKF--LKgyrgnrn8yVcKrY21cdvV5aA,13979
|
|
10325
10335
|
simo/generic/__pycache__/models.cpython-38.pyc,sha256=n3FeTMJYh4B6nCPiPKeXiWsUOOWkLHca7qTvfTK6Iik,5844
|
|
10326
10336
|
simo/generic/__pycache__/routing.cpython-38.pyc,sha256=xtxTUTBTdivzFyA5Wh7k-hUj1WDO_FiRq6HYXdbr9Ks,382
|
|
10327
|
-
simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=
|
|
10337
|
+
simo/generic/__pycache__/socket_consumers.cpython-38.pyc,sha256=qJO5kvQLWhsQDOr1AtAtsAybuRWioxSkQei3Pc7rdP0,1737
|
|
10328
10338
|
simo/generic/static/weather_icons/01d@2x.png,sha256=TZfWi6Rfddb2P-oldWWcjUiuCHiU9Yrc5hyrQAhF26I,948
|
|
10329
10339
|
simo/generic/static/weather_icons/01n@2x.png,sha256=e9RleTa0T7To9Wi2wJ-9waeTbfHOsUB_xGwkx-89eEg,945
|
|
10330
10340
|
simo/generic/static/weather_icons/02d@2x.png,sha256=ex522OxNzNNpSRGGzh7EmsBZi_MOFY-1IkQXTOMLL3I,1628
|
|
@@ -10398,7 +10408,7 @@ simo/notifications/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=YnO
|
|
|
10398
10408
|
simo/notifications/migrations/__pycache__/0002_notification_instance.cpython-38.pyc,sha256=Gkb3Qwr_zglGibQg9g5ekIgxtGapS4ENXVWQVHqM56I,794
|
|
10399
10409
|
simo/notifications/migrations/__pycache__/__init__.cpython-38.pyc,sha256=YMBRHVon2nWDtIUbghckjnC12sIg_ykPWhV5aM0tto4,178
|
|
10400
10410
|
simo/users/__init__.py,sha256=6a7uBpCWB_DR7p54rbHusc0xvi1qfT1ZCCQGb6TiBh8,52
|
|
10401
|
-
simo/users/admin.py,sha256=
|
|
10411
|
+
simo/users/admin.py,sha256=oaLFTrjDaruKC_l79BB0etru4p8nP8eJFV3F4TSYGp4,6305
|
|
10402
10412
|
simo/users/api.py,sha256=kUcdHm-WUn6z_AnFEXHnjYu8YX2MW1Z-NlAysRmSdLI,10333
|
|
10403
10413
|
simo/users/apps.py,sha256=cq0A8-U1HALEwev0TicgFhr4CAu7Icz8rwq0HfOaL4E,207
|
|
10404
10414
|
simo/users/auth_backends.py,sha256=bBSNXQJ88TRXaQxyh1aETfmOIfiDr08Jnj8rSY9sHDk,4074
|
|
@@ -10406,7 +10416,7 @@ simo/users/auto_urls.py,sha256=lcJvteBsbHQMJieZpDz-63tDYejLApqsW3CUnDakd7k,272
|
|
|
10406
10416
|
simo/users/dynamic_settings.py,sha256=sEIsi4yJw3kH46Jq_aOkSuK7QTfQACGUE-lkyBogCaM,570
|
|
10407
10417
|
simo/users/managers.py,sha256=M_51bk9z4jn8e2Ci3pJfIqbf6cRNqfQNSOAg0vPl6Vo,175
|
|
10408
10418
|
simo/users/middleware.py,sha256=GMCrnWSc_2qCleyQIkfQGdL-pU-UTEcSg1wPvIKZ9uk,1210
|
|
10409
|
-
simo/users/models.py,sha256=
|
|
10419
|
+
simo/users/models.py,sha256=0KGZZjXdzNHPRuS6uYo8PE3DBZDw6N9TU3zxiLpCQxs,19370
|
|
10410
10420
|
simo/users/permissions.py,sha256=IwtYS8yQdupWbYKR9VimSRDV3qCJ2jXP57Lyjpb2EQM,242
|
|
10411
10421
|
simo/users/serializers.py,sha256=a4R408ZgWVbF7OFw4bBfN33Wnn8ljqS8iFcsqmllkWU,2552
|
|
10412
10422
|
simo/users/sso_urls.py,sha256=gQOaPvGMYFD0NCVSwyoWO-mTEHe5j9sbzV_RK7kdvp0,251
|
|
@@ -10415,7 +10425,7 @@ simo/users/tasks.py,sha256=HJAqiyWGsaN3wSfquU0UyQ20jL-njXeaaTOdDT3TQ3s,979
|
|
|
10415
10425
|
simo/users/utils.py,sha256=7gU_TDnAOsDYqJM0CFo8efPah2bTXfGpXxRqzD5RiSs,1270
|
|
10416
10426
|
simo/users/views.py,sha256=dOQVvmlHG7ihWKJLFUBcqKOA0UDctlMKR0pTc36JZqg,3487
|
|
10417
10427
|
simo/users/__pycache__/__init__.cpython-38.pyc,sha256=VFoDJE_SKKaPqqYaaBYd1Ndb1hjakkTo_u0EG_XJ1GM,211
|
|
10418
|
-
simo/users/__pycache__/admin.cpython-38.pyc,sha256=
|
|
10428
|
+
simo/users/__pycache__/admin.cpython-38.pyc,sha256=UgkqzfrSQU8Hyqig03Z5Qq29434wU27ttufxtvGEJYw,7433
|
|
10419
10429
|
simo/users/__pycache__/api.cpython-38.pyc,sha256=25he7r5DHfcLYveXWhn6gQDV2R6YnpKbUVBNInR1q_s,8714
|
|
10420
10430
|
simo/users/__pycache__/apps.cpython-38.pyc,sha256=dgbWL8CxzzISJQTmq_4IztPJ2UzykNVdqA2Ae1PmeGk,605
|
|
10421
10431
|
simo/users/__pycache__/auth_backends.cpython-38.pyc,sha256=n5nx2QSXNj2idzRcGE6bAagMN-8qxoCs580H1EFZXls,3105
|
|
@@ -10423,7 +10433,7 @@ simo/users/__pycache__/auto_urls.cpython-38.pyc,sha256=K-3sz2h-cEitoflSmZk1t0eUg
|
|
|
10423
10433
|
simo/users/__pycache__/dynamic_settings.cpython-38.pyc,sha256=6F8JBjZkHykySnmZjNEzjS0ijbmPdcp9yUAZ5kqq_Fo,864
|
|
10424
10434
|
simo/users/__pycache__/managers.cpython-38.pyc,sha256=C5-diljm874RAFMTkZdcfzPhkHzlUGPAhz2gTvqkDy8,604
|
|
10425
10435
|
simo/users/__pycache__/middleware.cpython-38.pyc,sha256=Tj4nVEAvxEW3xA63fBRiJWRJpz_M848ZOqbHioc_IPE,1149
|
|
10426
|
-
simo/users/__pycache__/models.cpython-38.pyc,sha256=
|
|
10436
|
+
simo/users/__pycache__/models.cpython-38.pyc,sha256=MMCLklK0yVxhSsl2m8Z2xnAmnxSSCpFJcnXzx5TdQQM,18096
|
|
10427
10437
|
simo/users/__pycache__/permissions.cpython-38.pyc,sha256=ez5NxoL_JUeeH6GsKhvFreuA3FCBgGf9floSypdXUtM,633
|
|
10428
10438
|
simo/users/__pycache__/serializers.cpython-38.pyc,sha256=PuMy6H0PhEhq89RFmdnFH4pMHB0N3w7opJEFS90JUCY,3477
|
|
10429
10439
|
simo/users/__pycache__/sso_urls.cpython-38.pyc,sha256=uAwDozpOmrhUald-8tOHANILXkH7-TI8fNYXOtPkSY8,402
|
|
@@ -10507,9 +10517,9 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
10507
10517
|
simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10508
10518
|
simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10509
10519
|
simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10510
|
-
simo-2.3.
|
|
10511
|
-
simo-2.3.
|
|
10512
|
-
simo-2.3.
|
|
10513
|
-
simo-2.3.
|
|
10514
|
-
simo-2.3.
|
|
10515
|
-
simo-2.3.
|
|
10520
|
+
simo-2.3.4.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
|
|
10521
|
+
simo-2.3.4.dist-info/METADATA,sha256=9MnCb5wAiFArxz8ran42PeM_agigRqWcpJ7HYGH3VOY,1878
|
|
10522
|
+
simo-2.3.4.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
10523
|
+
simo-2.3.4.dist-info/entry_points.txt,sha256=S9PwnUYmTSW7681GKDCxUbL0leRJIaRk6fDQIKgbZBA,135
|
|
10524
|
+
simo-2.3.4.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
|
|
10525
|
+
simo-2.3.4.dist-info/RECORD,,
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
{% load i18n admin_urls static admin_modify %}
|
|
2
|
-
<style>
|
|
3
|
-
.formset-table th, .formset-table th .label{
|
|
4
|
-
font-weight: normal;
|
|
5
|
-
color: var(--body-quiet-color);
|
|
6
|
-
}
|
|
7
|
-
.formset-table .label.required{
|
|
8
|
-
font-weight: bold;
|
|
9
|
-
}
|
|
10
|
-
form .aligned .formset-table ul{
|
|
11
|
-
margin-left:0;
|
|
12
|
-
}
|
|
13
|
-
.errors .formset-table input, .errors .formset-table select,
|
|
14
|
-
.errors .formset-table textarea{
|
|
15
|
-
border: 1px solid var(--border-color);
|
|
16
|
-
}
|
|
17
|
-
.errors .formset-table .select2-selection{
|
|
18
|
-
border-color: #aaa;
|
|
19
|
-
}
|
|
20
|
-
.formset-table td.errors input, .formset-table td.errors select,
|
|
21
|
-
.formset-table td.errors textarea{
|
|
22
|
-
border: 1px solid var(--error-fg);
|
|
23
|
-
}
|
|
24
|
-
.formset-table td.errors .select2-selection{
|
|
25
|
-
border-color: var(--error-fg);
|
|
26
|
-
}
|
|
27
|
-
.formset-table td.drag {
|
|
28
|
-
cursor: pointer;
|
|
29
|
-
background-image: url(/static/adminsortable2/icons/drag.png);
|
|
30
|
-
background-repeat: repeat;
|
|
31
|
-
width: 20px;
|
|
32
|
-
}
|
|
33
|
-
.formset-table .inline-deletelink{
|
|
34
|
-
float: left
|
|
35
|
-
}
|
|
36
|
-
</style>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class="inline-group sortable" id="{{ formset.prefix }}-group">
|
|
40
|
-
<div class="tabular inline-related">
|
|
41
|
-
{{ formset.management_form }}
|
|
42
|
-
<fieldset class="module">
|
|
43
|
-
{{ formset.non_form_errors }}
|
|
44
|
-
<table class="formset-table">
|
|
45
|
-
<thead><tr>
|
|
46
|
-
<th>{% trans "Sort" %}</th>
|
|
47
|
-
{% for field in empty_form %}
|
|
48
|
-
{% if not field.is_hidden and not field.name == 'DELETE' %}
|
|
49
|
-
<th{% if field.required %} class="required"{% endif %}>{{ field.label|capfirst }}
|
|
50
|
-
{% if field.help_text %} <img src="{% static "admin/img/icon-unknown.svg" %}" class="help help-tooltip" width="10" height="10" alt="({{ field.help_text|striptags }})" title="{{ field.help_text|striptags }}" />{% endif %}
|
|
51
|
-
</th>
|
|
52
|
-
{% endif %}
|
|
53
|
-
{% endfor %}
|
|
54
|
-
{% if formset.can_delete %}<th>{% trans "Delete?" %}</th>{% endif %}
|
|
55
|
-
</tr></thead>
|
|
56
|
-
|
|
57
|
-
<tbody>
|
|
58
|
-
{% for form in formset %}
|
|
59
|
-
{% if form.non_field_errors %}
|
|
60
|
-
<tr><td colspan="{{ total_org_forms }}">{{ form.non_field_errors }}</td></tr>
|
|
61
|
-
{% endif %}
|
|
62
|
-
|
|
63
|
-
<tr class="form-row has_original" id="{{ formset.prefix }}-{{ forloop.counter0 }}">
|
|
64
|
-
<td class="drag"> </td>
|
|
65
|
-
<td class="original hidden">
|
|
66
|
-
{% for field in form %}
|
|
67
|
-
{% if field.is_hidden %} {{ field }} {% endif %}
|
|
68
|
-
{% endfor %}
|
|
69
|
-
</td>
|
|
70
|
-
|
|
71
|
-
{% for field in form %}
|
|
72
|
-
{% if not field.is_hidden and not field.name == 'DELETE' %}
|
|
73
|
-
<td{% if field.name %} class="field-{{ field.name }}"{% endif %}>
|
|
74
|
-
{{ field }}
|
|
75
|
-
{{ field.errors.as_ul }}
|
|
76
|
-
</td>
|
|
77
|
-
{% endif %}
|
|
78
|
-
{% endfor %}
|
|
79
|
-
|
|
80
|
-
{% if formset.can_delete %}
|
|
81
|
-
<td class="delete">{% if total_org_forms >= forloop.counter0 %}{{ form.DELETE }}{% endif %}</td>
|
|
82
|
-
{% endif %}
|
|
83
|
-
</tr>
|
|
84
|
-
|
|
85
|
-
{% endfor %}
|
|
86
|
-
|
|
87
|
-
<tr class="form-row empty-form" id="{{ formset.prefix }}-empty">
|
|
88
|
-
<td class="drag"> </td>
|
|
89
|
-
<td class="original hidden">
|
|
90
|
-
{% for field in empty_form %}
|
|
91
|
-
{% if field.is_hidden %} {{ field }} {% endif %}
|
|
92
|
-
{% endfor %}
|
|
93
|
-
</td>
|
|
94
|
-
|
|
95
|
-
{% for field in empty_form %}
|
|
96
|
-
{% if not field.is_hidden and not field.name == 'DELETE' %}
|
|
97
|
-
<td{% if field.name %} class="field-{{ field.name }}"{% endif %}>
|
|
98
|
-
{{ field }}
|
|
99
|
-
{{ field.errors.as_ul }}
|
|
100
|
-
</td>
|
|
101
|
-
{% endif %}
|
|
102
|
-
{% endfor %}
|
|
103
|
-
|
|
104
|
-
{% if formset.can_delete %}
|
|
105
|
-
<td class="delete"></td>
|
|
106
|
-
{% endif %}
|
|
107
|
-
</tr>
|
|
108
|
-
|
|
109
|
-
</tbody>
|
|
110
|
-
</table>
|
|
111
|
-
</fieldset>
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
|
|
115
|
-
<script type="application/json" class="inline-tabular-config">
|
|
116
|
-
{
|
|
117
|
-
"prefix": "{{ formset.prefix|escapejs }}",
|
|
118
|
-
"addText": "{% filter escapejs %}Add another{% endfilter %}",
|
|
119
|
-
"deleteText": "{% filter escapejs %}{% trans 'Remove' %}{% endfilter %}"
|
|
120
|
-
}
|
|
121
|
-
</script>
|
|
122
|
-
<div class="default_order_field" default_order_field="ORDER" default_order_direction=""></div>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{% if widget.is_initial %}
|
|
2
|
-
|
|
3
|
-
<img style="width:100%; max-width:500px; margin-top: -20px; margin-bottom: 20px;" src="{{ widget.value.url }}">
|
|
4
|
-
{% if not widget.required %}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}"{% if widget.attrs.disabled %} disabled{% endif %}>
|
|
8
|
-
<span for="{{ widget.checkbox_id }}">{{ widget.clear_checkbox_label }}</span>
|
|
9
|
-
|
|
10
|
-
{% endif %}<br><br>
|
|
11
|
-
|
|
12
|
-
{% comment %} <span class="text-muted">{{ widget.input_text }}:</span> {% endcomment %}
|
|
13
|
-
{% endif %}
|
|
14
|
-
|
|
15
|
-
<input style="margin-top: -20px;" class="btn btn-secondary" type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>
|