Skip to content

Commit 68382f9

Browse files
committed
add last updated scene object date to scene details page
1 parent 535943d commit 68382f9

File tree

2 files changed

+38
-6
lines changed

2 files changed

+38
-6
lines changed

users/templates/users/scene_perm_detail.html

+19-4
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,19 @@ <h1>Edit Scene Permissions</h1>
2727
<tr>
2828
<td><b>Editors:</b></td>
2929
{% if namespace_editors %}
30-
<td>{{ form.editors }}<br><small style="color: grey">Includes namespace Editors: {{ namespace_editors|join:", " }}</small></td>
30+
<td>{{ form.editors }}<br><small style="color: grey">Includes namespace Editors:
31+
{{ namespace_editors|join:", " }}</small></td>
3132
{% else %}
3233
<td>{{ form.editors }}</td>
3334
{% endif %}
34-
<td>Add/remove additional Editors (default: None). Editors can change scene objects and permissions. Includes Editor permissions.</td>
35+
<td>Add/remove additional Editors (default: None). Editors can change scene objects and
36+
permissions. Includes Editor permissions.</td>
3537
</tr>
3638
<tr>
3739
<td><b>Viewers:</b></td>
3840
{% if namespace_viewers %}
39-
<td>{{ form.viewers }}<br><small style="color: grey">Includes namespace Viewers: {{ namespace_viewers|join:", " }}</small></td>
41+
<td>{{ form.viewers }}<br><small style="color: grey">Includes namespace Viewers:
42+
{{ namespace_viewers|join:", " }}</small></td>
4043
{% else %}
4144
<td>{{ form.viewers }}</td>
4245
{% endif %}
@@ -68,12 +71,24 @@ <h1>Edit Scene Permissions</h1>
6871
<td>{{ form.video_conference }}</td>
6972
<td>Allow users to video conference (default: on).</td>
7073
</tr>
74+
<tr>
75+
<td><b>Scene Objects:</b></td>
76+
<td>{{ objects_length }}</td>
77+
<td>
78+
{% if objects_updated %}
79+
Last scene object updated {{ objects_updated }}.
80+
{% else %}
81+
No scene objects stored.
82+
{% endif %}
83+
</td>
84+
</tr>
7185
</table>
7286
<button type="submit" class="btn btn-secondary btn-sm" name="save">Save</button>
7387
<a href="{{request.scheme}}://{{request.get_host}}/build/?scene={{ scene.name }}"
7488
class="btn btn-secondary btn-sm">Edit Scene Objects</a>
7589
<hr />
76-
<input type="button" class="btn btn-danger btn-sm" onclick="clickDelete(this);" value="Delete Objects and Permissions" />
90+
<input type="button" class="btn btn-danger btn-sm" onclick="clickDelete(this);"
91+
value="Delete Objects and Permissions" />
7792
</form>
7893

7994
</div>

users/views.py

+19-2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
delete_scene_objects,
5454
get_persist_scenes_all,
5555
get_persist_scenes_ns,
56+
get_scene_objects,
5657
)
5758
from .serializers import (
5859
NamespaceNameSerializer,
@@ -206,6 +207,8 @@ def namespace_perm_detail(request, pk):
206207
Handle Namespace Permissions Edit page, get page load and post submit requests.
207208
- Handles namespace permissions changes and deletes.
208209
"""
210+
version = TOPIC_SUPPORTED_API_VERSIONS[0] # TODO (mwfarb): resolve missing request.version
211+
209212
if not namespace_edit_permission(user=request.user, namespace=pk):
210213
messages.error(request, f"User does not have permission for: {pk}.")
211214
return redirect("users:user_profile")
@@ -244,6 +247,8 @@ def scene_perm_detail(request, pk):
244247
Handle Scene Permissions Edit page, get page load and post submit requests.
245248
- Handles scene permissions changes and deletes.
246249
"""
250+
version = TOPIC_SUPPORTED_API_VERSIONS[0] # TODO (mwfarb): resolve missing request.version
251+
247252
if not scene_edit_permission(user=request.user, scene=pk):
248253
messages.error(request, f"User does not have permission for: {pk}.")
249254
return redirect("users:user_profile")
@@ -267,7 +272,7 @@ def scene_perm_detail(request, pk):
267272
user=request.user,
268273
username=request.user.username,
269274
ids={"userclient": f"{request.user.username}-objects-delete"},
270-
version=request.version,
275+
version=version,
271276
)
272277
# delete account scene data
273278
scene.delete()
@@ -282,6 +287,14 @@ def scene_perm_detail(request, pk):
282287
else:
283288
form = SceneForm(instance=scene)
284289

290+
token = all_scenes_read_token(version)
291+
objects = get_scene_objects(token, pk)
292+
objects_updated = None
293+
if len(objects) > 0:
294+
updated_ts = sorted(objects, reverse=True, key=itemgetter("updatedAt"))[0]["updatedAt"]
295+
updated_dt = datetime.datetime.fromisoformat(updated_ts.replace("Z", "+00:00"))
296+
objects_updated = f"{updated_dt.strftime('%B %d, %Y, %H:%M:%S')} UTC"
297+
285298
return render(
286299
request=request,
287300
template_name="users/scene_perm_detail.html",
@@ -290,6 +303,8 @@ def scene_perm_detail(request, pk):
290303
"owners": owners,
291304
"namespace_editors": namespace_editors,
292305
"namespace_viewers": namespace_viewers,
306+
"objects_length": len(objects),
307+
"objects_updated": objects_updated,
293308
"form": form,
294309
},
295310
)
@@ -300,6 +315,8 @@ def device_perm_detail(request, pk):
300315
Handle Device Permissions Edit page, get page load and post submit requests.
301316
- Handles device permissions changes and deletes.
302317
"""
318+
version = TOPIC_SUPPORTED_API_VERSIONS[0] # TODO (mwfarb): resolve missing request.version
319+
303320
if not device_edit_permission(user=request.user, device=pk):
304321
messages.error(request, f"User does not have permission for: {pk}.")
305322
return redirect("users:user_profile")
@@ -327,7 +344,7 @@ def device_perm_detail(request, pk):
327344
username=request.user.username,
328345
ns_device=device.name,
329346
duration=datetime.timedelta(days=30),
330-
version=request.version,
347+
version=version,
331348
)
332349

333350
form = DeviceForm(instance=device)

0 commit comments

Comments
 (0)