Skip to content

Commit ddc5f42

Browse files
authored
Revert "chore: Apply application layout to the Developer Agreement Programme page (#5053)" (#5057)
This reverts commit 5314e63.
1 parent 30cdfd4 commit ddc5f42

7 files changed

Lines changed: 86 additions & 220 deletions

File tree

static/js/publisher/pages/DeveloperAgreement/DeveloperAgreement.tsx

Lines changed: 0 additions & 94 deletions
This file was deleted.

static/js/publisher/pages/DeveloperAgreement/__tests__/DeveloperAgreement.test.tsx

Lines changed: 0 additions & 108 deletions
This file was deleted.

static/js/publisher/pages/DeveloperAgreement/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

static/js/publisher/publisher.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import Builds from "./pages/Builds";
1414
import Build from "./pages/Build";
1515
import Releases from "./pages/Releases";
1616
import AccountSnaps from "./pages/AccountSnaps";
17-
import DeveloperAgreement from "./pages/DeveloperAgreement";
1817
import RegisterNameDispute from "./pages/RegisterNameDispute";
1918

2019
const router = createBrowserRouter([
@@ -70,10 +69,6 @@ const router = createBrowserRouter([
7069
path: "/snaps",
7170
element: <AccountSnaps />,
7271
},
73-
{
74-
path: "/account/agreement",
75-
element: <DeveloperAgreement />,
76-
},
7772
{
7873
path: "/register-name-dispute",
7974
element: <RegisterNameDispute />,
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{% extends "publisher/_publisher_layout.html" %}
2+
3+
{% block meta_title %}
4+
Developer Program Agreement — Linux software in the Snap Store
5+
{% endblock %}
6+
7+
{% block content %}
8+
<section class="p-strip">
9+
<div class="row">
10+
<h1 class="p-heading--2">Developer Programme Agreement</h1>
11+
</div>
12+
13+
<div class="row">
14+
<div class="p-card">
15+
<h2 class="p-heading--4">Snap Store Terms of Service and Privacy Notice</h2>
16+
<p class="p-card__content">
17+
<a href="https://ubuntu.com/legal/terms-and-policies/snap-store-terms" target="_blank">Snap Store Terms of Service</a>
18+
</p>
19+
<p class="p-card__content">
20+
<a href="https://www.ubuntu.com/legal/data-privacy/snap-store" target="_blank">Privacy Notice</a>
21+
</p>
22+
</div>
23+
</div>
24+
25+
<div class="row u-no-margin--top">
26+
<form method="POST" action="/account/agreement">
27+
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
28+
<div class="row">
29+
<div class="col-8">
30+
<div class="p-form-validation">
31+
<input name="i_agree" id="id_i_agree" class="p-form-validation__input" type="checkbox">
32+
<label for="id_i_agree">I agree to the terms and privacy notice</label>
33+
</div>
34+
</div>
35+
<div class="col-4 u-align--right">
36+
<a class="p-button" href="/">Cancel</a>
37+
<button class="p-button--positive" disabled="disabled" type="submit">Continue</button>
38+
</div>
39+
</div>
40+
</form>
41+
</div>
42+
</section>
43+
{% endblock %}
44+
45+
{% block scripts %}
46+
<script>
47+
window.addEventListener("DOMContentLoaded", function() {
48+
Raven.context(function() {
49+
var checkbox = document.querySelector('#id_i_agree');
50+
var button = document.querySelector('button[type="submit"]');
51+
checkbox.addEventListener('change', function (event) {
52+
if (this.checked) {
53+
button.removeAttribute('disabled');
54+
} else {
55+
button.setAttribute('disabled', 'disabled');
56+
}
57+
});
58+
});
59+
});
60+
</script>
61+
{% endblock %}

tests/publisher/tests_agreement.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@ def test_agreement_logged_in(self):
1313
response = self.client.get("/account/agreement")
1414

1515
assert response.status_code == 200
16-
self.assert_template_used("store/publisher.html")
16+
self.assert_template_used(
17+
"publisher/developer_programme_agreement.html"
18+
)
1719

1820

1921
class PostAgreementPage(BaseTestCases.EndpointLoggedIn):
2022
def setUp(self):
2123
api_url = "https://dashboard.snapcraft.io/dev/api/agreement/"
22-
data = {"agreed": True}
24+
data = {"i_agree": "on"}
2325
endpoint_url = "/account/agreement"
2426

2527
super().setUp(
@@ -28,23 +30,30 @@ def setUp(self):
2830
api_url=api_url,
2931
method_endpoint="POST",
3032
method_api="POST",
31-
json=data,
33+
data=data,
3234
)
3335

3436
@responses.activate
3537
def test_post_agreement_on(self):
36-
responses.add(
37-
responses.POST, self.api_url, json={"success": True}, status=200
38-
)
38+
responses.add(responses.POST, self.api_url, json={}, status=200)
3939

40-
response = self.client.post(self.endpoint_url, json={"agreed": True})
40+
response = self.client.post(self.endpoint_url, data={"i_agree": "on"})
4141

4242
self.assertEqual(1, len(responses.calls))
4343
called = responses.calls[0]
4444
self.assertEqual(self.api_url, called.request.url)
4545
self.assertEqual(
4646
self.authorization, called.request.headers.get("Authorization")
4747
)
48+
self.assertEqual(called.response.json(), {})
4849
self.assertEqual(b'{"latest_tos_accepted": true}', called.request.body)
4950

50-
self.assertEqual(response.json, {"success": True})
51+
self.assertEqual(302, response.status_code)
52+
self.assertEqual("/account/", response.location)
53+
54+
@responses.activate
55+
def test_post_agreement_off(self):
56+
response = self.client.post(self.endpoint_url, data={"i_agree": "off"})
57+
58+
self.assertEqual(302, response.status_code)
59+
self.assertEqual("/account/agreement", response.location)

webapp/publisher/views.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,19 @@ def post_publisher_details():
5757

5858
@account.route("/agreement")
5959
def get_agreement():
60-
return flask.render_template("store/publisher.html")
60+
return flask.render_template(
61+
"publisher/developer_programme_agreement.html"
62+
)
6163

6264

6365
@account.route("/agreement", methods=["POST"])
6466
def post_agreement():
65-
agreement = flask.json.loads(flask.request.data)
66-
if agreement["agreed"] is True:
67+
agreed = flask.request.form.get("i_agree")
68+
if agreed == "on":
6769
dashboard.post_agreement(flask.session, True)
68-
return flask.jsonify({"success": True})
70+
return flask.redirect(flask.url_for(".get_account"))
71+
else:
72+
return flask.redirect(flask.url_for(".get_agreement"))
6973

7074

7175
@account.route("/username")

0 commit comments

Comments
 (0)