diff --git a/flexmeasures/ui/crud/assets.py b/flexmeasures/ui/crud/assets.py index 89af1bd7d..10f2d67c2 100644 --- a/flexmeasures/ui/crud/assets.py +++ b/flexmeasures/ui/crud/assets.py @@ -3,7 +3,7 @@ import copy import json -from flask import url_for, current_app +from flask import url_for, current_app, request from flask_classful import FlaskView, route from flask_wtf import FlaskForm from flask_security import login_required, current_user @@ -269,8 +269,11 @@ def owned_by(self, account_id: str): @login_required def get(self, id: str): - """GET from /assets/ where id can be 'new' (and thus the form for asset creation is shown)""" - + """GET from /assets/ where id can be 'new' (and thus the form for asset creation is shown) + The following query parameters are supported: + - start_time: minimum time of the events to be shown + - end_time: maximum time of the events to be shown + """ if id == "new": if not user_can_create_assets(): return unauthorized_handler(None, []) @@ -300,6 +303,8 @@ def get(self, id: str): mapboxAccessToken=current_app.config.get("MAPBOX_ACCESS_TOKEN", ""), user_can_create_assets=user_can_create_assets(), user_can_delete_asset=user_can_delete(asset), + event_starts_after=request.args.get("start_time"), + event_ends_before=request.args.get("end_time"), ) @login_required diff --git a/flexmeasures/ui/tests/test_asset_crud.py b/flexmeasures/ui/tests/test_asset_crud.py index ae316910a..174f82c09 100644 --- a/flexmeasures/ui/tests/test_asset_crud.py +++ b/flexmeasures/ui/tests/test_asset_crud.py @@ -64,11 +64,21 @@ def test_asset_page(db, client, setup_assets, requests_mock, as_prosumer_user1): requests_mock.get(f"{api_path_assets}/{asset.id}", status_code=200, json=mock_asset) asset_page = client.get( - url_for("AssetCrudUI:get", id=asset.id), follow_redirects=True + url_for( + "AssetCrudUI:get", + id=asset.id, + start_time="2022-10-01T00:00:00", + end_time="2022-10-02T:00:00", + ), + follow_redirects=True, ) assert ("Edit %s" % mock_asset["name"]).encode() in asset_page.data assert str(mock_asset["latitude"]).encode() in asset_page.data assert str(mock_asset["longitude"]).encode() in asset_page.data + assert ( + "storeStartDate = new Date('2022-10-01T00:00:00')".encode() in asset_page.data + ) + assert "storeEndDate = new Date('2022-10-02T:00:00')".encode() in asset_page.data def test_edit_asset(db, client, setup_assets, requests_mock, as_admin): diff --git a/flexmeasures/ui/utils/view_utils.py b/flexmeasures/ui/utils/view_utils.py index 0bd899702..33baf7fe5 100644 --- a/flexmeasures/ui/utils/view_utils.py +++ b/flexmeasures/ui/utils/view_utils.py @@ -29,8 +29,13 @@ def render_flexmeasures_template(html_filename: str, **variables): ): variables["documentation_exists"] = True - variables["event_starts_after"] = session.get("event_starts_after") - variables["event_ends_before"] = session.get("event_ends_before") + # use event_starts_after and event_ends_before from session if not given + variables["event_starts_after"] = variables.get( + "event_starts_after", session.get("event_starts_after") + ) + variables["event_ends_before"] = variables.get( + "event_ends_before", session.get("event_ends_before") + ) variables["chart_type"] = session.get("chart_type", "bar_chart") variables["page"] = html_filename.split("/")[-1].replace(".html", "")