{% extends "base.html" %} {% load static %} {% load custom_tags_and_filters %} {% block extrahead %} {% endblock %} {% block title %}{{ monitor.name }} data{% endblock %} {% block content %}
{% if monitor.description %}
{{ monitor.description_html }}
{% endif %}
{% if messages %}
{% for message in messages %} {% endfor %}
{% endif %}
{% url 'export_monitor_data' monitor.id as export_url %} {% button type="export" value="Export" onclick="refresh_page();window.open(get_base_url('"|concat:export_url|concat:"'))" %}
{% if can_upload %}{% endif %}
Time Value Notes Uploaded by Uploaded on Last edited
{% if can_configure_alerts %} {% include "NEMO_monitors/monitor_alert_config.html" %}
{% endif %}

Alert log

{% if can_upload %}

Add a single data point

{% csrf_token %} {% if monitor.columns.exists %} {% for col in monitor.columns.all %}
{% if col.data_type == "string" %} {% elif col.data_type == "integer" %} {% else %} {% endif %}
{% endfor %}

Leave a field blank to omit it from this entry.

{% else %}
{% endif %}
e.g. 2026-05-14 12:30 or 05/14/2026 12:30 PM
{% if use_legacy_notes %}
{% endif %}

Bulk upload (CSV)

{% csrf_token %} {% if monitor.columns.exists %}

This monitor has defined data entry fields. The first row must be a header matching the field names below. The first column must be the date/timestamp. Blank cells are skipped. Defined fields: {% for col in monitor.columns.all %}{{ col.name }}{% if not forloop.last %}, {% endif %}{% endfor %}.

{% else %}

At least two columns: timestamp,value. Optional third column: notes. Header row is optional. If a note contains commas, wrap that field in double quotes in the CSV. Supported timestamp formats include YYYY-MM-DD HH:MM, YYYY-MM-DDTHH:MM:SS, and MM/DD/YYYY HH:MM.

{% endif %}
{% endif %}
{% endblock %}