loading up status events

full_example
Mark Cotton 2023-07-14 08:26:06 -05:00
parent aab2168f92
commit cbae8caf66
5 changed files with 48 additions and 4 deletions

View File

@ -476,7 +476,7 @@ class EagleEyev3():
if found_camera == None: if found_camera == None:
camera = Camera() camera = Camera()
logging.info(f"returning camera {camera} for search query {esn}") logging.debug(f"returning camera {camera} for search query {esn}")
return camera return camera
@ -541,6 +541,7 @@ class Camera(Device):
""" """
if start_timestamp == None or end_timestamp == None: if start_timestamp == None or end_timestamp == None:
logging.debug(f"get_list_of_events called without timestamp")
return { return {
"success": False, "success": False,
"response_http_status": None, "response_http_status": None,
@ -578,6 +579,7 @@ class Camera(Device):
else: else:
success = False success = False
return { return {
"success": success, "success": success,
"response_http_status": response.status_code, "response_http_status": response.status_code,

4
app.py
View File

@ -114,11 +114,13 @@ def camera_detail(esn=None):
een = EagleEyev3() een = EagleEyev3()
camera = een.get_camera_by_id(esn) camera = een.get_camera_by_id(esn)
camera.get_list_of_events(end_timestamp=een.time_before(ts=een.time_now(), hours=0), \
start_timestamp=een.time_before(ts=een.time_now(), hours=6) )
values = { values = {
"current_user": een.current_user, "current_user": een.current_user,
"camera": camera, "camera": camera,
"events": camera.get_list_of_events() "events": camera.events['status']
} }
return render_template('camera_detail_partial.html', template_values=values) return render_template('camera_detail_partial.html', template_values=values)

BIN
static/placeholder1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -3,10 +3,22 @@
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<h3>{{ template_values['camera'].name }}</h3> <h3>{{ template_values['camera'].name }}</h3>
<img src="/static/placeholder.png" style="max-height:360px;"> <img src="/static/placeholder1.png" style="max-height:360px;">
</div> </div>
<div class="col-md-6"> <div class="col-md-6" id="events_list">
<h3>Events</h3> <h3>Events</h3>
<ul>
{% if template_values['events'] %}
{% for event in template_values['events'] %}
<li>{{ event['data'][0]['newStatus']['connectionStatus'] }} <br> <small>{{ event['startTimestamp'] }}</small></li>
{% endfor %}
{% else %}
<li>No events in the last six hours</li>
{% endif %}
</ul>
<div>
<button hx-get="/cameras/{{ template_values['camera'].id }}/events" hx-trigger="click" hx-target="#event_list">refresh</button>
</div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,28 @@
<div class="col-md-3" id="camera_list_offline">
<h3>Online</h3>
<ul>
{% for camera in template_values['cameras'] %}
{% if camera.is_online() %}
<li hx-get="/camera/{{ camera.id }}" hx-trigger="click" hx-target="#camera_detail"> {{ camera.name }}</li>
{% endif %}
{% endfor %}
</ul>
<h3>Offline</h3>
<ul>
{% for camera in template_values['cameras'] %}
{% if not camera.is_online() %}
<li hx-get="/camera/{{ camera.id }}" hx-trigger="click" hx-target="#camera_detail"> {{ camera.name }}</li>
{% endif %}
{% endfor %}
</ul>
<div class="col-md-6 offset-3">
<button hx-get="/cameras" hx-trigger="click" hx-target="#camera_list">refresh</button>
</div>
</div>
<div class="col-md-9" id="camera_detail"></div>