Skip to content

Commit

Permalink
Support start_time and end_time query parameters
Browse files Browse the repository at this point in the history
Signed-off-by: Nikolai Rozanov <nickolay.rozanov@gmail.com>
  • Loading branch information
nrozanov committed Apr 4, 2024
1 parent 7382672 commit 9394a76
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 6 deletions.
11 changes: 8 additions & 3 deletions flexmeasures/ui/crud/assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -269,8 +269,11 @@ def owned_by(self, account_id: str):

@login_required
def get(self, id: str):
"""GET from /assets/<id> where id can be 'new' (and thus the form for asset creation is shown)"""

"""GET from /assets/<id> 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, [])
Expand Down Expand Up @@ -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
Expand Down
12 changes: 11 additions & 1 deletion flexmeasures/ui/tests/test_asset_crud.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
9 changes: 7 additions & 2 deletions flexmeasures/ui/utils/view_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -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", "")
Expand Down

0 comments on commit 9394a76

Please sign in to comment.