This will allow easier adaptations when adding new views with different permissions.
Depends on D7357
Differential D7366
Fix access for people with permission access to deposit moderation Authored by ardumont on Mar 17 2022, 10:15 AM.
Details
This will allow easier adaptations when adding new views with different permissions. Depends on D7357
Diff Detail
Event TimelineThis comment was removed by ardumont. Comment Actions Build has FAILED Patch application report for D7366 (id=26626)Could not rebase; Attempt merge onto 39bab96e9f... Merge made by the 'recursive' strategy. assets/src/bundles/add_forge/create-request.js | 88 ++++ assets/src/bundles/add_forge/index.js | 10 + .../add-forge-now-request-create.spec.js | 139 ++++++ cypress/integration/deposit-admin.spec.js | 52 ++- cypress/support/index.js | 4 + swh/web/add_forge_now/__init__.py | 0 swh/web/add_forge_now/apps.py | 10 + swh/web/add_forge_now/migrations/0001_initial.py | 109 +++++ swh/web/add_forge_now/migrations/__init__.py | 0 swh/web/add_forge_now/models.py | 99 +++++ swh/web/add_forge_now/tests/test_migration.py | 62 +++ swh/web/add_forge_now/views.py | 107 +++++ swh/web/api/urls.py | 1 + swh/web/api/views/add_forge_now.py | 355 +++++++++++++++ swh/web/auth/utils.py | 1 + swh/web/inbound_email/__init__.py | 0 swh/web/inbound_email/apps.py | 11 + .../management/commands/process_inbound_email.py | 73 ++++ swh/web/inbound_email/signals.py | 36 ++ swh/web/inbound_email/utils.py | 63 +++ swh/web/settings/common.py | 2 + .../templates/add_forge_now/create-request.html | 234 ++++++++++ swh/web/templates/layout.html | 10 +- swh/web/tests/add_forge_now/test_models.py | 26 ++ swh/web/tests/add_forge_now/test_views.py | 203 +++++++++ swh/web/tests/api/views/test_add_forge_now.py | 483 +++++++++++++++++++++ swh/web/tests/conftest.py | 12 +- swh/web/tests/create_test_admin.py | 10 +- swh/web/tests/create_test_users.py | 11 +- .../tests/inbound_email/test_management_command.py | 161 +++++++ swh/web/tests/inbound_email/test_utils.py | 113 +++++ swh/web/tests/utils.py | 5 +- swh/web/urls.py | 1 + 33 files changed, 2478 insertions(+), 13 deletions(-) create mode 100644 assets/src/bundles/add_forge/create-request.js create mode 100644 assets/src/bundles/add_forge/index.js create mode 100644 cypress/integration/add-forge-now-request-create.spec.js create mode 100644 swh/web/add_forge_now/__init__.py create mode 100644 swh/web/add_forge_now/apps.py create mode 100644 swh/web/add_forge_now/migrations/0001_initial.py create mode 100644 swh/web/add_forge_now/migrations/__init__.py create mode 100644 swh/web/add_forge_now/models.py create mode 100644 swh/web/add_forge_now/tests/test_migration.py create mode 100644 swh/web/add_forge_now/views.py create mode 100644 swh/web/api/views/add_forge_now.py create mode 100644 swh/web/inbound_email/__init__.py create mode 100644 swh/web/inbound_email/apps.py create mode 100644 swh/web/inbound_email/management/commands/process_inbound_email.py create mode 100644 swh/web/inbound_email/signals.py create mode 100644 swh/web/inbound_email/utils.py create mode 100644 swh/web/templates/add_forge_now/create-request.html create mode 100644 swh/web/tests/add_forge_now/test_models.py create mode 100644 swh/web/tests/add_forge_now/test_views.py create mode 100644 swh/web/tests/api/views/test_add_forge_now.py create mode 100644 swh/web/tests/inbound_email/test_management_command.py create mode 100644 swh/web/tests/inbound_email/test_utils.py Changes applied before testcommit 60811c3b6ce3866e1e3907c3971db6527e4d709a
Merge: 39bab96e d9d554f4
Author: Jenkins user <jenkins@localhost>
Date: Thu Mar 17 09:20:00 2022 +0000
Merge branch 'diff-target' into HEAD
commit d9d554f425511f527a7f380ca0d06baec59d51b7
Author: Antoine R. Dumont (@ardumont) <ardumont@softwareheritage.org>
Date: Thu Mar 17 10:13:22 2022 +0100
Fix access for people with permission access to deposit moderation
This will allow easier adaptations when adding new views with different permissions.
commit 654ffaf6ae69fdb1b1dec84388b5a97520c63cc6
Author: Jayesh Velayudhan <jayesh@softwareheritage.org>
Date: Wed Mar 16 18:09:46 2022 +0100
Create "Add forge now" request
Added a form to submit an "add forge now" request.
Left menus changed to include "add forge now" page.
Possbility to browse existing requests is added
in a seperate tab in the same view.
Cypress tests
Related to T3998
Related to T3989
Related to T4012
Related to T3988
commit 80e55b0a12eb27a5df72acf6fe07640db12eaf27
Merge: c24e6822 9f2e1cb9
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 16 16:21:35 2022 +0100
Merge branch 'master' into sprint-add-forge-now
commit c24e6822a1569817b6d970fbc550cdf66f2188f0
Merge: ca39b06c 627ba79a
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 16 14:20:52 2022 +0100
Merge branch 'master' into sprint-add-forge-now
commit ca39b06c46ba42f73f898377d3093299ea21a85a
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 9 16:37:54 2022 +0100
inbound_email: add utilities to extract and filter email recipients
commit bf099ce9654d0b765f0820189857ab7c7beb6c6b
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 9 14:29:37 2022 +0100
Bootstrap a common app for management of inbound emails
commit b6d540d2e5fafe04eb71d3b1d8f5c194dafcbb62
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Mar 15 15:06:10 2022 +0100
add_forge_now: Move datatables listing in dedicated endpoint
Merging datatables special processing in /api/1/add-forge/request/list
endpoint implementation was quite disturbing.
So better using a dedicated endpoint for that in a similar manner as
with save code now requests listing.
The endpoint to use with datatables is now the following one:
/add-forge/request/list/datatables.
Related to T3989
Related to T3991
commit f6343395310bc226a50a283c88304006e8ece337
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Mon Mar 14 15:35:17 2022 +0100
api/add_forge_now: Allow to use requests list endpoint with datatables
datatables is the javascript library we use on the frontend side to
display interactive tables.
As we use server-side processing, table data must be provided in a
paginated way by an HTTP endpoint.
Response format expected by datatables is different from the one
returned by the Web API endpoint listing add-forge requests.
So adapt the response format of that endpoint when we know the
input request has been sent by datatables.
Related to T3989
Related to T3991
commit 26748e56ecce5877fce3a215eba06a19ebb8342f
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Thu Mar 10 14:09:36 2022 +0100
api: Add endpoint to get details about an add-forge request
Related to T4030
commit 294a95c711bc40622c6d718afa2535f377b90dfc
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Mar 9 16:30:06 2022 +0100
api: Add endpoint to list add-forge requests
Related to T4027
commit 1bf17d6a75fd7265b1da9c9e87220efa62869c93
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Mar 9 16:28:03 2022 +0100
api: Add endpoint to update an add-forge request
Related to T4026
commit 130e9faa9bcab18bc3c76dc898546edb89f3f9b8
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Mar 8 15:23:50 2022 +0100
api: Add endpoint to create an add-forge request
Related to T3990
commit 03101208803501e5178f35d18d171e740ee4ca76
Author: Antoine R. Dumont (@ardumont) <ardumont@softwareheritage.org>
Date: Tue Mar 8 11:34:44 2022 +0100
add_forge_now: Bootstrap app and modelLink to build: https://jenkins.softwareheritage.org/job/DWAPPS/job/tests-on-diff/1480/
Comment Actions Build is green Patch application report for D7366 (id=26630)Could not rebase; Attempt merge onto 39bab96e9f... Merge made by the 'recursive' strategy. assets/src/bundles/add_forge/create-request.js | 92 ++++ assets/src/bundles/add_forge/index.js | 10 + .../add-forge-now-request-create.spec.js | 139 ++++++ cypress/integration/deposit-admin.spec.js | 52 ++- cypress/support/index.js | 4 + swh/web/add_forge_now/__init__.py | 0 swh/web/add_forge_now/apps.py | 10 + swh/web/add_forge_now/migrations/0001_initial.py | 109 +++++ swh/web/add_forge_now/migrations/__init__.py | 0 swh/web/add_forge_now/models.py | 99 +++++ swh/web/add_forge_now/tests/test_migration.py | 62 +++ swh/web/add_forge_now/views.py | 107 +++++ swh/web/api/urls.py | 1 + swh/web/api/views/add_forge_now.py | 355 +++++++++++++++ swh/web/auth/utils.py | 1 + swh/web/inbound_email/__init__.py | 0 swh/web/inbound_email/apps.py | 11 + .../management/commands/process_inbound_email.py | 73 ++++ swh/web/inbound_email/signals.py | 36 ++ swh/web/inbound_email/utils.py | 63 +++ swh/web/settings/common.py | 2 + .../templates/add_forge_now/create-request.html | 234 ++++++++++ swh/web/templates/layout.html | 10 +- swh/web/tests/add_forge_now/test_models.py | 26 ++ swh/web/tests/add_forge_now/test_views.py | 203 +++++++++ swh/web/tests/api/views/test_add_forge_now.py | 483 +++++++++++++++++++++ swh/web/tests/conftest.py | 12 +- swh/web/tests/create_test_admin.py | 10 +- swh/web/tests/create_test_users.py | 12 +- .../tests/inbound_email/test_management_command.py | 161 +++++++ swh/web/tests/inbound_email/test_utils.py | 113 +++++ swh/web/tests/utils.py | 14 +- swh/web/urls.py | 1 + 33 files changed, 2490 insertions(+), 15 deletions(-) create mode 100644 assets/src/bundles/add_forge/create-request.js create mode 100644 assets/src/bundles/add_forge/index.js create mode 100644 cypress/integration/add-forge-now-request-create.spec.js create mode 100644 swh/web/add_forge_now/__init__.py create mode 100644 swh/web/add_forge_now/apps.py create mode 100644 swh/web/add_forge_now/migrations/0001_initial.py create mode 100644 swh/web/add_forge_now/migrations/__init__.py create mode 100644 swh/web/add_forge_now/models.py create mode 100644 swh/web/add_forge_now/tests/test_migration.py create mode 100644 swh/web/add_forge_now/views.py create mode 100644 swh/web/api/views/add_forge_now.py create mode 100644 swh/web/inbound_email/__init__.py create mode 100644 swh/web/inbound_email/apps.py create mode 100644 swh/web/inbound_email/management/commands/process_inbound_email.py create mode 100644 swh/web/inbound_email/signals.py create mode 100644 swh/web/inbound_email/utils.py create mode 100644 swh/web/templates/add_forge_now/create-request.html create mode 100644 swh/web/tests/add_forge_now/test_models.py create mode 100644 swh/web/tests/add_forge_now/test_views.py create mode 100644 swh/web/tests/api/views/test_add_forge_now.py create mode 100644 swh/web/tests/inbound_email/test_management_command.py create mode 100644 swh/web/tests/inbound_email/test_utils.py Changes applied before testcommit 7ef2cc4d654eea04229b4a7314e72ad9a656e721
Merge: 39bab96e ab461ecc
Author: Jenkins user <jenkins@localhost>
Date: Thu Mar 17 10:48:17 2022 +0000
Merge branch 'diff-target' into HEAD
commit ab461ecc4e8351014dabbb3b5e39a2632d9e2dd1
Author: Antoine R. Dumont (@ardumont) <ardumont@softwareheritage.org>
Date: Thu Mar 17 10:13:22 2022 +0100
Fix access for people with permission access to deposit moderation
This will allow easier adaptations when adding new views with different permissions.
commit 6c96f964adc7ffb7e9ea32de6d240a6a45bd8b97
Author: Jayesh Velayudhan <jayesh@softwareheritage.org>
Date: Thu Mar 17 11:33:57 2022 +0100
Create "Add forge now" request
Added a form to submit an "add forge now" request.
Left menus changed to include "add forge now" page.
Possbility to browse existing requests is added
in a seperate tab in the same view.
Cypress tests
Related to T3998
Related to T3989
Related to T4012
Related to T3988
commit 80e55b0a12eb27a5df72acf6fe07640db12eaf27
Merge: c24e6822 9f2e1cb9
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 16 16:21:35 2022 +0100
Merge branch 'master' into sprint-add-forge-now
commit c24e6822a1569817b6d970fbc550cdf66f2188f0
Merge: ca39b06c 627ba79a
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 16 14:20:52 2022 +0100
Merge branch 'master' into sprint-add-forge-now
commit ca39b06c46ba42f73f898377d3093299ea21a85a
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 9 16:37:54 2022 +0100
inbound_email: add utilities to extract and filter email recipients
commit bf099ce9654d0b765f0820189857ab7c7beb6c6b
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 9 14:29:37 2022 +0100
Bootstrap a common app for management of inbound emails
commit b6d540d2e5fafe04eb71d3b1d8f5c194dafcbb62
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Mar 15 15:06:10 2022 +0100
add_forge_now: Move datatables listing in dedicated endpoint
Merging datatables special processing in /api/1/add-forge/request/list
endpoint implementation was quite disturbing.
So better using a dedicated endpoint for that in a similar manner as
with save code now requests listing.
The endpoint to use with datatables is now the following one:
/add-forge/request/list/datatables.
Related to T3989
Related to T3991
commit f6343395310bc226a50a283c88304006e8ece337
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Mon Mar 14 15:35:17 2022 +0100
api/add_forge_now: Allow to use requests list endpoint with datatables
datatables is the javascript library we use on the frontend side to
display interactive tables.
As we use server-side processing, table data must be provided in a
paginated way by an HTTP endpoint.
Response format expected by datatables is different from the one
returned by the Web API endpoint listing add-forge requests.
So adapt the response format of that endpoint when we know the
input request has been sent by datatables.
Related to T3989
Related to T3991
commit 26748e56ecce5877fce3a215eba06a19ebb8342f
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Thu Mar 10 14:09:36 2022 +0100
api: Add endpoint to get details about an add-forge request
Related to T4030
commit 294a95c711bc40622c6d718afa2535f377b90dfc
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Mar 9 16:30:06 2022 +0100
api: Add endpoint to list add-forge requests
Related to T4027
commit 1bf17d6a75fd7265b1da9c9e87220efa62869c93
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Mar 9 16:28:03 2022 +0100
api: Add endpoint to update an add-forge request
Related to T4026
commit 130e9faa9bcab18bc3c76dc898546edb89f3f9b8
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Mar 8 15:23:50 2022 +0100
api: Add endpoint to create an add-forge request
Related to T3990
commit 03101208803501e5178f35d18d171e740ee4ca76
Author: Antoine R. Dumont (@ardumont) <ardumont@softwareheritage.org>
Date: Tue Mar 8 11:34:44 2022 +0100
add_forge_now: Bootstrap app and modelSee https://jenkins.softwareheritage.org/job/DWAPPS/job/tests-on-diff/1483/ for more details.
Comment Actions Build is green Patch application report for D7366 (id=26639)Could not rebase; Attempt merge onto 7bfbda85ff... Merge made by the 'recursive' strategy. assets/src/bundles/add_forge/create-request.js | 92 ++++ assets/src/bundles/add_forge/index.js | 10 + .../add-forge-now-request-create.spec.js | 139 ++++++ cypress/integration/deposit-admin.spec.js | 52 ++- cypress/support/index.js | 4 + swh/web/add_forge_now/__init__.py | 0 swh/web/add_forge_now/apps.py | 10 + swh/web/add_forge_now/migrations/0001_initial.py | 109 +++++ swh/web/add_forge_now/migrations/__init__.py | 0 swh/web/add_forge_now/models.py | 99 +++++ swh/web/add_forge_now/tests/test_migration.py | 62 +++ swh/web/add_forge_now/views.py | 107 +++++ swh/web/api/urls.py | 1 + swh/web/api/views/add_forge_now.py | 355 +++++++++++++++ swh/web/auth/utils.py | 1 + swh/web/inbound_email/__init__.py | 0 swh/web/inbound_email/apps.py | 11 + .../management/commands/process_inbound_email.py | 73 ++++ swh/web/inbound_email/signals.py | 36 ++ swh/web/inbound_email/utils.py | 63 +++ swh/web/settings/common.py | 2 + .../templates/add_forge_now/create-request.html | 234 ++++++++++ swh/web/templates/layout.html | 10 +- swh/web/tests/add_forge_now/test_models.py | 26 ++ swh/web/tests/add_forge_now/test_views.py | 203 +++++++++ swh/web/tests/api/views/test_add_forge_now.py | 483 +++++++++++++++++++++ swh/web/tests/conftest.py | 12 +- swh/web/tests/create_test_admin.py | 10 +- swh/web/tests/create_test_users.py | 14 +- .../tests/inbound_email/test_management_command.py | 161 +++++++ swh/web/tests/inbound_email/test_utils.py | 113 +++++ swh/web/tests/utils.py | 14 +- swh/web/urls.py | 1 + 33 files changed, 2491 insertions(+), 16 deletions(-) create mode 100644 assets/src/bundles/add_forge/create-request.js create mode 100644 assets/src/bundles/add_forge/index.js create mode 100644 cypress/integration/add-forge-now-request-create.spec.js create mode 100644 swh/web/add_forge_now/__init__.py create mode 100644 swh/web/add_forge_now/apps.py create mode 100644 swh/web/add_forge_now/migrations/0001_initial.py create mode 100644 swh/web/add_forge_now/migrations/__init__.py create mode 100644 swh/web/add_forge_now/models.py create mode 100644 swh/web/add_forge_now/tests/test_migration.py create mode 100644 swh/web/add_forge_now/views.py create mode 100644 swh/web/api/views/add_forge_now.py create mode 100644 swh/web/inbound_email/__init__.py create mode 100644 swh/web/inbound_email/apps.py create mode 100644 swh/web/inbound_email/management/commands/process_inbound_email.py create mode 100644 swh/web/inbound_email/signals.py create mode 100644 swh/web/inbound_email/utils.py create mode 100644 swh/web/templates/add_forge_now/create-request.html create mode 100644 swh/web/tests/add_forge_now/test_models.py create mode 100644 swh/web/tests/add_forge_now/test_views.py create mode 100644 swh/web/tests/api/views/test_add_forge_now.py create mode 100644 swh/web/tests/inbound_email/test_management_command.py create mode 100644 swh/web/tests/inbound_email/test_utils.py Changes applied before testcommit 0b22be63c28cef4333b415bf1326d889e3dab96d
Merge: 7bfbda85 4e23aa2e
Author: Jenkins user <jenkins@localhost>
Date: Thu Mar 17 13:11:23 2022 +0000
Merge branch 'diff-target' into HEAD
commit 4e23aa2eb8fca1f5c62a745f44f2f4b3b46003a9
Author: Antoine R. Dumont (@ardumont) <ardumont@softwareheritage.org>
Date: Thu Mar 17 10:13:22 2022 +0100
Fix access for people with permission access to deposit moderation
This will allow easier adaptations when adding new views with different permissions.
commit 6c96f964adc7ffb7e9ea32de6d240a6a45bd8b97
Author: Jayesh Velayudhan <jayesh@softwareheritage.org>
Date: Thu Mar 17 11:33:57 2022 +0100
Create "Add forge now" request
Added a form to submit an "add forge now" request.
Left menus changed to include "add forge now" page.
Possbility to browse existing requests is added
in a seperate tab in the same view.
Cypress tests
Related to T3998
Related to T3989
Related to T4012
Related to T3988
commit 80e55b0a12eb27a5df72acf6fe07640db12eaf27
Merge: c24e6822 9f2e1cb9
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 16 16:21:35 2022 +0100
Merge branch 'master' into sprint-add-forge-now
commit c24e6822a1569817b6d970fbc550cdf66f2188f0
Merge: ca39b06c 627ba79a
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 16 14:20:52 2022 +0100
Merge branch 'master' into sprint-add-forge-now
commit ca39b06c46ba42f73f898377d3093299ea21a85a
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 9 16:37:54 2022 +0100
inbound_email: add utilities to extract and filter email recipients
commit bf099ce9654d0b765f0820189857ab7c7beb6c6b
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed Mar 9 14:29:37 2022 +0100
Bootstrap a common app for management of inbound emails
commit b6d540d2e5fafe04eb71d3b1d8f5c194dafcbb62
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Mar 15 15:06:10 2022 +0100
add_forge_now: Move datatables listing in dedicated endpoint
Merging datatables special processing in /api/1/add-forge/request/list
endpoint implementation was quite disturbing.
So better using a dedicated endpoint for that in a similar manner as
with save code now requests listing.
The endpoint to use with datatables is now the following one:
/add-forge/request/list/datatables.
Related to T3989
Related to T3991
commit f6343395310bc226a50a283c88304006e8ece337
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Mon Mar 14 15:35:17 2022 +0100
api/add_forge_now: Allow to use requests list endpoint with datatables
datatables is the javascript library we use on the frontend side to
display interactive tables.
As we use server-side processing, table data must be provided in a
paginated way by an HTTP endpoint.
Response format expected by datatables is different from the one
returned by the Web API endpoint listing add-forge requests.
So adapt the response format of that endpoint when we know the
input request has been sent by datatables.
Related to T3989
Related to T3991
commit 26748e56ecce5877fce3a215eba06a19ebb8342f
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Thu Mar 10 14:09:36 2022 +0100
api: Add endpoint to get details about an add-forge request
Related to T4030
commit 294a95c711bc40622c6d718afa2535f377b90dfc
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Mar 9 16:30:06 2022 +0100
api: Add endpoint to list add-forge requests
Related to T4027
commit 1bf17d6a75fd7265b1da9c9e87220efa62869c93
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Mar 9 16:28:03 2022 +0100
api: Add endpoint to update an add-forge request
Related to T4026
commit 130e9faa9bcab18bc3c76dc898546edb89f3f9b8
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Mar 8 15:23:50 2022 +0100
api: Add endpoint to create an add-forge request
Related to T3990
commit 03101208803501e5178f35d18d171e740ee4ca76
Author: Antoine R. Dumont (@ardumont) <ardumont@softwareheritage.org>
Date: Tue Mar 8 11:34:44 2022 +0100
add_forge_now: Bootstrap app and modelSee https://jenkins.softwareheritage.org/job/DWAPPS/job/tests-on-diff/1486/ for more details. | ||||||||||||||||||||||||||