Remove route, tests, and template code for deleting a portfolio
This commit is contained in:
parent
5b55b5800e
commit
2b884f2c85
@ -56,13 +56,3 @@ def reports(portfolio_id):
|
||||
monthly_spending=Reports.monthly_spending(portfolio),
|
||||
retrieved=datetime.now(), # mocked datetime of reporting data retrival
|
||||
)
|
||||
|
||||
|
||||
@portfolios_bp.route("/portfolios/<portfolio_id>/destroy", methods=["POST"])
|
||||
@user_can(Permissions.ARCHIVE_PORTFOLIO, message="archive portfolio")
|
||||
def delete_portfolio(portfolio_id):
|
||||
Portfolios.delete(portfolio=g.portfolio)
|
||||
|
||||
flash("portfolio_deleted", portfolio_name=g.portfolio.name)
|
||||
|
||||
return redirect(url_for("atst.home"))
|
||||
|
@ -56,14 +56,10 @@
|
||||
{% include "portfolios/fragments/primary_point_of_contact.html" %}
|
||||
{% endif %}
|
||||
|
||||
{% if user_can(permissions.ARCHIVE_PORTFOLIO) %}
|
||||
{% include "portfolios/fragments/delete_portfolio.html" %}
|
||||
{% endif %}
|
||||
|
||||
{% if user_can(permissions.VIEW_PORTFOLIO_USERS) %}
|
||||
{% include "portfolios/fragments/portfolio_members.html" %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if user_can(permissions.VIEW_PORTFOLIO_ACTIVITY_LOG) and config.get("USE_AUDIT_LOG", False) %}
|
||||
{% include "fragments/audit_events_log.html" %}
|
||||
{{ Pagination(audit_events, url_for('portfolios.admin', portfolio_id=portfolio.id)) }}
|
||||
|
@ -1,42 +0,0 @@
|
||||
{% from "components/delete_confirmation.html" import DeleteConfirmation %}
|
||||
{% from "components/alert.html" import Alert %}
|
||||
{% from "components/modal.html" import Modal %}
|
||||
|
||||
<section id="primary-point-of-contact" class="panel">
|
||||
<div class="panel__content">
|
||||
<h2>{{ "fragments.delete_portfolio.title" | translate }}</h2>
|
||||
<p>{{ "fragments.delete_portfolio.subtitle" | translate }}</p>
|
||||
|
||||
|
||||
<div
|
||||
class="usa-button-primary {% if applications_count == 0 %}button-danger{% else %}usa-button-disabled{% endif %}"
|
||||
{% if applications_count == 0 %}v-on:click="openModal('delete_portfolio')"{% endif %}
|
||||
>
|
||||
{{ "common.deactivate" | translate }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% call Modal(name="delete_portfolio") %}
|
||||
<h1>
|
||||
{{ 'fragments.delete_portfolio.title' | translate }}
|
||||
</h1>
|
||||
<hr>
|
||||
{{
|
||||
Alert(
|
||||
level="warning",
|
||||
title=('components.modal.destructive_title' | translate),
|
||||
message=('components.modal.destructive_message' | translate({"resource": "portfolio"})),
|
||||
)
|
||||
}}
|
||||
|
||||
{{
|
||||
DeleteConfirmation(
|
||||
modal_id='delete_portfolio',
|
||||
delete_text='Deactivate',
|
||||
delete_action=url_for('portfolios.delete_portfolio', portfolio_id=portfolio.id),
|
||||
form=portfolio_form,
|
||||
confirmation_text="deactivate",
|
||||
)
|
||||
}}
|
||||
{% endcall %}
|
@ -84,35 +84,3 @@ def test_portfolio_reports_with_mock_portfolio(client, user_session):
|
||||
response = client.get(url_for("portfolios.reports", portfolio_id=portfolio.id))
|
||||
assert response.status_code == 200
|
||||
assert portfolio.name in response.data.decode()
|
||||
|
||||
|
||||
def test_delete_portfolio_success(client, user_session):
|
||||
portfolio = PortfolioFactory.create()
|
||||
owner = portfolio.owner
|
||||
user_session(owner)
|
||||
|
||||
assert len(Portfolios.for_user(user=owner)) == 1
|
||||
|
||||
response = client.post(
|
||||
url_for("portfolios.delete_portfolio", portfolio_id=portfolio.id)
|
||||
)
|
||||
|
||||
assert response.status_code == 302
|
||||
assert url_for("atst.home") in response.location
|
||||
assert len(Portfolios.for_user(user=owner)) == 0
|
||||
|
||||
|
||||
def test_delete_portfolio_failure(no_debug_client, user_session):
|
||||
portfolio = PortfolioFactory.create()
|
||||
application = ApplicationFactory.create(portfolio=portfolio)
|
||||
owner = portfolio.owner
|
||||
user_session(owner)
|
||||
|
||||
assert len(Portfolios.for_user(user=owner)) == 1
|
||||
|
||||
response = no_debug_client.post(
|
||||
url_for("portfolios.delete_portfolio", portfolio_id=portfolio.id)
|
||||
)
|
||||
|
||||
assert response.status_code == 500
|
||||
assert len(Portfolios.for_user(user=owner)) == 1
|
||||
|
@ -665,34 +665,3 @@ def test_task_orders_new_post_routes(post_url_assert_status):
|
||||
post_url_assert_status(owner, url, 302, data=data)
|
||||
post_url_assert_status(ccpo, url, 302, data=data)
|
||||
post_url_assert_status(rando, url, 404, data=data)
|
||||
|
||||
|
||||
def test_portfolio_delete_access(post_url_assert_status):
|
||||
rando = UserFactory.create()
|
||||
owner = UserFactory.create()
|
||||
ccpo = UserFactory.create_ccpo()
|
||||
|
||||
post_url_assert_status(
|
||||
ccpo,
|
||||
url_for(
|
||||
"portfolios.delete_portfolio", portfolio_id=PortfolioFactory.create().id
|
||||
),
|
||||
302,
|
||||
)
|
||||
|
||||
post_url_assert_status(
|
||||
owner,
|
||||
url_for(
|
||||
"portfolios.delete_portfolio",
|
||||
portfolio_id=PortfolioFactory.create(owner=owner).id,
|
||||
),
|
||||
302,
|
||||
)
|
||||
|
||||
post_url_assert_status(
|
||||
rando,
|
||||
url_for(
|
||||
"portfolios.delete_portfolio", portfolio_id=PortfolioFactory.create().id
|
||||
),
|
||||
404,
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user