Blank slate for no portfolios
This commit is contained in:
parent
20d1ffecd9
commit
edc0c6539c
@ -15,7 +15,11 @@ from atst.models.permissions import Permissions
|
||||
@portfolios_bp.route("/portfolios")
|
||||
def portfolios():
|
||||
portfolios = Portfolios.for_user(g.current_user)
|
||||
return render_template("portfolios/index.html", page=5, portfolios=portfolios)
|
||||
|
||||
if portfolios:
|
||||
return render_template("portfolios/index.html", page=5, portfolios=portfolios)
|
||||
else:
|
||||
return render_template("portfolios/blank_slate.html")
|
||||
|
||||
|
||||
@portfolios_bp.route("/portfolios/<portfolio_id>/edit")
|
||||
|
@ -2,6 +2,10 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@mixin hide {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
|
28
templates/portfolios/blank_slate.html
Normal file
28
templates/portfolios/blank_slate.html
Normal file
@ -0,0 +1,28 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% from "components/empty_state.html" import EmptyState %}
|
||||
{% from "components/tooltip.html" import Tooltip %}
|
||||
|
||||
{% block global_sidenav %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{{
|
||||
EmptyState(
|
||||
action_href=url_for("task_orders.new", screen=1),
|
||||
action_label=("portfolios.index.empty.start_button" | translate),
|
||||
icon="cloud",
|
||||
message=("portfolios.index.empty.title" | translate),
|
||||
)
|
||||
}}
|
||||
|
||||
<div class="center">
|
||||
{{
|
||||
Tooltip(
|
||||
message=("portfolios.index.empty.help_message" | translate),
|
||||
title=("portfolios.index.empty.help_title" | translate),
|
||||
)
|
||||
}}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
@ -1,6 +1,7 @@
|
||||
from flask import url_for
|
||||
|
||||
from tests.factories import PortfolioFactory
|
||||
from tests.factories import PortfolioFactory, UserFactory
|
||||
from atst.utils.localization import translate
|
||||
|
||||
|
||||
def test_update_portfolio_name(client, user_session):
|
||||
@ -13,3 +14,29 @@ def test_update_portfolio_name(client, user_session):
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert portfolio.name == "a cool new name"
|
||||
|
||||
|
||||
def test_portfolio_index_with_existing_portfolios(client, user_session):
|
||||
portfolio = PortfolioFactory.create()
|
||||
user_session(portfolio.owner)
|
||||
|
||||
response = client.get(url_for("portfolios.portfolios"))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert portfolio.name.encode("utf8") in response.data
|
||||
assert (
|
||||
translate("portfolios.index.empty.start_button").encode("utf8")
|
||||
not in response.data
|
||||
)
|
||||
|
||||
|
||||
def test_portfolio_index_without_existing_portfolios(client, user_session):
|
||||
user = UserFactory.create()
|
||||
user_session(user)
|
||||
|
||||
response = client.get(url_for("portfolios.portfolios"))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert (
|
||||
translate("portfolios.index.empty.start_button").encode("utf8") in response.data
|
||||
)
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
# `{{ "login.title" | translate | safe }}`
|
||||
|
||||
|
||||
audit_log:
|
||||
events:
|
||||
default:
|
||||
@ -481,6 +480,12 @@ task_orders:
|
||||
submitted_by: Below is an overview of the projected portfolio submitted by {name}
|
||||
task_order_information: Task Order Information
|
||||
portfolios:
|
||||
index:
|
||||
empty:
|
||||
title: You have no apps yet
|
||||
help_title: Should I do this?
|
||||
help_message: TODO
|
||||
start_button: Start a New JEDI Portfolio
|
||||
applications:
|
||||
add_application_text: Add A New Application
|
||||
app_settings_text: App Settings
|
||||
|
Loading…
x
Reference in New Issue
Block a user