From e79e9bec7a2f1cf88535ab1e071414a10dc8de1a Mon Sep 17 00:00:00 2001 From: Nicole Harris Date: Tue, 30 Sep 2025 07:05:39 +0100 Subject: [PATCH 1/6] Restyle org request page --- .../static/sass/blocks/_callout-block.scss | 33 ++-- warehouse/static/sass/blocks/_form-group.scss | 11 +- warehouse/static/sass/blocks/_table.scss | 22 +++ .../sass/layout-helpers/_containers.scss | 9 + .../static/sass/layout-helpers/_floats.scss | 13 ++ warehouse/static/sass/warehouse.scss | 1 + .../organization/activate_subscription.html | 6 +- .../manage/organization/application.html | 171 +++++++++++------- 8 files changed, 179 insertions(+), 87 deletions(-) create mode 100644 warehouse/static/sass/layout-helpers/_floats.scss diff --git a/warehouse/static/sass/blocks/_callout-block.scss b/warehouse/static/sass/blocks/_callout-block.scss index 6ef02e670e3c..1cbe77ddcedd 100644 --- a/warehouse/static/sass/blocks/_callout-block.scss +++ b/warehouse/static/sass/blocks/_callout-block.scss @@ -22,9 +22,11 @@ Modifiers: + - neutral: Makes border grey - danger: Makes border red - warning: Makes border brown - success: Makes border green + - message: Custom styles for messaging UI - bottom-margin: Adds extra margin below the callout // Collapsible @@ -48,7 +50,6 @@ margin: 15px 0; position: relative; border-radius: 4px; - display: inline-block; &__dismiss { @include dismiss-button; @@ -98,18 +99,6 @@ } } - &--full-width { - width: 100%; - } - - &--bottom-margin { - margin-bottom: $half-spacing-unit; - } - - &--dismissed { - display: none; - } - &--neutral { border-color: $border-color; @@ -181,4 +170,22 @@ @include link-focus-state($success-color); } } + + &--message { + display: inline-block; + max-width: 75%; + margin: 10px 0; + + @media only screen and (max-width: $mobile) { + max-width: 85%; + } + } + + &--bottom-margin { + margin-bottom: $half-spacing-unit; + } + + &--dismissed { + display: none; + } } diff --git a/warehouse/static/sass/blocks/_form-group.scss b/warehouse/static/sass/blocks/_form-group.scss index e5685e215421..ce936206cc8e 100644 --- a/warehouse/static/sass/blocks/_form-group.scss +++ b/warehouse/static/sass/blocks/_form-group.scss @@ -15,12 +15,12 @@ */ .form-group { - margin-bottom: $half-spacing-unit; + margin-bottom: $spacing-unit; max-width: 350px; &__label { display: block; - font-weight: bold; + font-weight: $bold-font-weight; } &__label:not(:first-child) { @@ -32,9 +32,10 @@ font-weight: normal; } - &__wide { + &--wide { margin-bottom: $half-spacing-unit; max-width: unset; + width: 100%; } :where( @@ -62,6 +63,10 @@ width: 350px; margin-top: 4px; max-width: 100%; + + &--full-width { + width: 100%; + } } &__text { diff --git a/warehouse/static/sass/blocks/_table.scss b/warehouse/static/sass/blocks/_table.scss index de5e4947ceb7..10df7f4217ef 100644 --- a/warehouse/static/sass/blocks/_table.scss +++ b/warehouse/static/sass/blocks/_table.scss @@ -29,6 +29,7 @@ - Use a th and add 'scope="row"' for row headings Modifiers: + - information: table for displaying table data - ideally with row level headings - downloads: specific styles for downloads table on project detail page - releases: specific styles for releases table on manage project page - files: specific styles for files table on releases tab @@ -122,6 +123,10 @@ padding: 10px; } + tbody tr th { + font-weight: $bold-font-weight; + } + th, td { border-bottom: 1px solid $base-grey; @@ -154,6 +159,7 @@ text-align: right; } + &__mobile-label { display: none; font-weight: $bold-font-weight; @@ -161,6 +167,22 @@ // Custom table styles + &--information { + th { + width: 1%; + white-space: nowrap; + } + + td, + th { + vertical-align: baseline; + } + + @media only screen and (max-width: $mobile) { + @include mobile-friendly-table; + } + } + &--downloads { word-wrap: break-word; margin-top: $half-spacing-unit; diff --git a/warehouse/static/sass/layout-helpers/_containers.scss b/warehouse/static/sass/layout-helpers/_containers.scss index 3f3e3c4d1c6e..98b9b8a356d4 100644 --- a/warehouse/static/sass/layout-helpers/_containers.scss +++ b/warehouse/static/sass/layout-helpers/_containers.scss @@ -34,3 +34,12 @@ padding: 0 $half-spacing-unit; } } + +/* + Reduce the size of the content to a single column: +
+*/ + +.single-column { + max-width: $site-container / 2; +} diff --git a/warehouse/static/sass/layout-helpers/_floats.scss b/warehouse/static/sass/layout-helpers/_floats.scss new file mode 100644 index 000000000000..4545a0c15995 --- /dev/null +++ b/warehouse/static/sass/layout-helpers/_floats.scss @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + +.float-left { + float: left; +} + +.float-right { + float: right; +} + +.clearfix { + @include clearfix; +} \ No newline at end of file diff --git a/warehouse/static/sass/warehouse.scss b/warehouse/static/sass/warehouse.scss index 32119d746687..7c3200981c1e 100644 --- a/warehouse/static/sass/warehouse.scss +++ b/warehouse/static/sass/warehouse.scss @@ -42,6 +42,7 @@ @import "layout-helpers/banner"; @import "layout-helpers/columns"; @import "layout-helpers/containers"; +@import "layout-helpers/floats"; @import "layout-helpers/left-layout"; @import "layout-helpers/split-layout"; @import "layout-helpers/stick-to-top"; diff --git a/warehouse/templates/manage/organization/activate_subscription.html b/warehouse/templates/manage/organization/activate_subscription.html index 28fe9f0d4a73..a6feab3b1ca0 100644 --- a/warehouse/templates/manage/organization/activate_subscription.html +++ b/warehouse/templates/manage/organization/activate_subscription.html @@ -7,7 +7,7 @@

{% trans %}Activate Subscription{% endtrans %}

-
+

{% trans %}Company accounts require an active subscription. Please enter up-to-date billing information to enable the account.{% endtrans %}

@@ -16,7 +16,7 @@

{% trans %}Activate Subscription{% endtrans %}

type="hidden" value="{{ request.session.get_csrf_token() }}"> {{ form_errors(form) }} -
+
-
+
{% trans %}Cancel{% endtrans %} {% trans %}Organization request{% endtrans %} -
-
- {% trans %}Organization account name{% endtrans %} -

{{ organization_application.name }}

-
-
- {% trans %}Organization display name{% endtrans %} -

{{ organization_application.display_name }}

-
-
- {% trans %}️Organization URL{% endtrans %} -

{{ organization_application.link_url }}

-
-
- {% trans %}️Organization description{% endtrans %} -

{{ organization_application.description }}

-
-
- {% trans %}️Organization type{% endtrans %} -

{{ organization_application.orgtype.value }}

-
-
- {% trans %}️Organization membership size{% endtrans %} -

- {{ organization_application.membership_size.value if organization_application.membership_size else "" }} -

-
-
- {% trans %}️Anticipated usage{% endtrans %} -

{{ organization_application.usage if organization_application.usage else "" }}

-
-
- {% trans %}Date submitted{% endtrans %} -

{{ humanize(organization_application.submitted) }}

-
+

+ {% trans org_name=organization_application.display_name %}Organization request for {{ org_name }}{% endtrans %} +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Organization request details
{% trans %}Request status{% endtrans %} + {% if organization_application.status == 'declined' %} + {% trans %}Declined{% endtrans %}: +
+ {% trans %}This organization request has been declined{% endtrans %} + {% elif organization_application.status == 'moreinformationneeded' %} + {% trans %}More information needed{% endtrans %}: +
+ {% trans %}Please provide more information below{% endtrans %} + {% else %} + {% trans %}Request submitted{% endtrans %}: +
+ {% trans %}You will receive an email when the organization has been approved{% endtrans %} + {% endif %} +
+ {% trans %}Organization account name{% endtrans %} + + {{ organization_application.name }}
+ {% trans %}Organization display name{% endtrans %} + + {{ organization_application.display_name }}
+ {% trans %}️Organization URL{% endtrans %} + + {{ organization_application.link_url }}
{% trans %}️Organization description{% endtrans %}{{ organization_application.description }}
{% trans %}️Organization type{% endtrans %}{{ organization_application.orgtype.value }}
{% trans %}️Organization membership size{% endtrans %}{{ organization_application.membership_size.value if organization_application.membership_size else "" }}
{% trans %}️Anticipated usage{% endtrans %}{{ organization_application.usage if organization_application.usage else "" }}
{% trans %}Date submitted{% endtrans %}{{ humanize(organization_application.submitted) }}
{% if information_requests %} -
-

Information Requests

- {% for information_request in information_requests %} -
-
{{ information_request.payload.message }}
- From PyPI Staff - {{ humanize(information_request.created) }} -
-
- {% if information_request.additional.response %} -
+
+
+

Information requests

+ {% for information_request in information_requests|reverse %} +
+
+ {% trans %}️PyPI Staff{% endtrans %} +
{{ information_request.payload.message }}
+ {{ humanize(information_request.created) }} +
+
+ {% if information_request.additional.response %} +
+
+ {% trans %}️Your response{% endtrans %}
{{ information_request.additional.response }}
- Your Response {{ humanize(information_request.additional.response_time|parse_isoformat) }} + {{ humanize(information_request.additional.response_time|parse_isoformat) }}
- {% elif information_request.id in response_forms %} - - - -
- -

- {{ response_forms[information_request.id].response(id="response_form-" + information_request.id.__str__() + "-response", - class_="form-group__field", - aria_describedby="response_form-" + information_request.id.__str__() + "-errors", - ) }} -

-
- {{ field_errors(response_forms[information_request.id].response) }} -
+
+ {% elif information_request.id in response_forms and loop.last %} + + + +
+ + {{ response_forms[information_request.id].response(id="response_form-" + information_request.id.__str__() + "-response", + class_="form-group__field form-group__field--full-width", + rows="4", + aria_describedby="response_form-" + information_request.id.__str__() + "-errors", + ) }} +
+ {{ field_errors(response_forms[information_request.id].response) }}
- - - {% endif %} -
+
+ + + {% endif %} {% endfor %}
{% endif %} From 6611efe90a5ecebebd984f0cebeac42734348f97 Mon Sep 17 00:00:00 2001 From: Nicole Harris Date: Tue, 30 Sep 2025 07:23:57 +0100 Subject: [PATCH 2/6] Admin: Display information requests as a single conversation thread --- .../templates/admin/organization_applications/detail.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/warehouse/admin/templates/admin/organization_applications/detail.html b/warehouse/admin/templates/admin/organization_applications/detail.html index 94bc387de9b6..ea521964acbe 100644 --- a/warehouse/admin/templates/admin/organization_applications/detail.html +++ b/warehouse/admin/templates/admin/organization_applications/detail.html @@ -336,7 +336,7 @@
- {% set information_requests = organization_application.information_requests %} + {% set information_requests = organization_application.information_requests|reverse %} {% set outstanding_information_requests = organization_application.information_requests|selectattr("additional", "defined")|map(attribute="additional")|selectattr("response", "undefined")|list %}
@@ -490,7 +490,7 @@

Information Requests

{% for information_request in information_requests %} -
+
From 4ede2258126d9da91adec7a83673614a7275900e Mon Sep 17 00:00:00 2001 From: Nicole Harris Date: Tue, 30 Sep 2025 07:42:51 +0100 Subject: [PATCH 3/6] Translations --- warehouse/locale/messages.pot | 54 ++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot index de0a7513bc0a..c50e150c766e 100644 --- a/warehouse/locale/messages.pot +++ b/warehouse/locale/messages.pot @@ -2280,6 +2280,7 @@ msgid "" msgstr "" #: warehouse/templates/email/new-organization-requested/body.html:7 +#: warehouse/templates/manage/organization/application.html:30 #: warehouse/templates/manage/organizations.html:168 msgid "You will receive an email when the organization has been approved" msgstr "" @@ -4481,6 +4482,7 @@ msgstr "" msgid "This Organization request has been declined" msgstr "" +#: warehouse/templates/manage/organization/application.html:20 #: warehouse/templates/manage/organizations.html:162 msgid "Declined" msgstr "" @@ -4545,7 +4547,7 @@ msgstr "" msgid "Name of your business, product, or project" msgstr "" -#: warehouse/templates/manage/organization/application.html:20 +#: warehouse/templates/manage/organization/application.html:48 #: warehouse/templates/manage/organization/settings.html:62 #: warehouse/templates/manage/organizations.html:257 msgid "️Organization URL" @@ -5391,46 +5393,72 @@ msgstr "" msgid "Manage '%(organization_application_name)s' Organization Request" msgstr "" -#: warehouse/templates/manage/organization/application.html:9 -msgid "Organization request" +#: warehouse/templates/manage/organization/application.html:10 +#, python-format +msgid "Organization request for %(org_name)s" +msgstr "" + +#: warehouse/templates/manage/organization/application.html:17 +msgid "Request status" msgstr "" -#: warehouse/templates/manage/organization/application.html:12 +#: warehouse/templates/manage/organization/application.html:22 +msgid "This organization request has been declined" +msgstr "" + +#: warehouse/templates/manage/organization/application.html:24 +msgid "More information needed" +msgstr "" + +#: warehouse/templates/manage/organization/application.html:26 +msgid "Please provide more information below" +msgstr "" + +#: warehouse/templates/manage/organization/application.html:28 +msgid "Request submitted" +msgstr "" + +#: warehouse/templates/manage/organization/application.html:36 #: warehouse/templates/manage/organization/settings.html:14 msgid "Organization account name" msgstr "" -#: warehouse/templates/manage/organization/application.html:16 +#: warehouse/templates/manage/organization/application.html:42 #: warehouse/templates/manage/organization/settings.html:33 msgid "Organization display name" msgstr "" -#: warehouse/templates/manage/organization/application.html:24 +#: warehouse/templates/manage/organization/application.html:53 msgid "️Organization description" msgstr "" -#: warehouse/templates/manage/organization/application.html:28 +#: warehouse/templates/manage/organization/application.html:57 #: warehouse/templates/manage/organization/settings.html:111 msgid "️Organization type" msgstr "" -#: warehouse/templates/manage/organization/application.html:32 +#: warehouse/templates/manage/organization/application.html:61 msgid "️Organization membership size" msgstr "" -#: warehouse/templates/manage/organization/application.html:38 +#: warehouse/templates/manage/organization/application.html:65 msgid "️Anticipated usage" msgstr "" -#: warehouse/templates/manage/organization/application.html:42 +#: warehouse/templates/manage/organization/application.html:69 msgid "Date submitted" msgstr "" -#: warehouse/templates/manage/organization/application.html:67 -msgid "️Your Response" +#: warehouse/templates/manage/organization/application.html:82 +msgid "️PyPI Staff" +msgstr "" + +#: warehouse/templates/manage/organization/application.html:90 +#: warehouse/templates/manage/organization/application.html:102 +msgid "️Your response" msgstr "" -#: warehouse/templates/manage/organization/application.html:78 +#: warehouse/templates/manage/organization/application.html:114 msgid "Submit" msgstr "" From d458fe95ab1870638e46b0dd3061b28feb1335c9 Mon Sep 17 00:00:00 2001 From: Nicole Harris Date: Tue, 30 Sep 2025 07:51:39 +0100 Subject: [PATCH 4/6] Fix indentation on floats scss file --- warehouse/static/sass/layout-helpers/_floats.scss | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/warehouse/static/sass/layout-helpers/_floats.scss b/warehouse/static/sass/layout-helpers/_floats.scss index 4545a0c15995..a92610ee4243 100644 --- a/warehouse/static/sass/layout-helpers/_floats.scss +++ b/warehouse/static/sass/layout-helpers/_floats.scss @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: Apache-2.0 */ .float-left { - float: left; + float: left; } .float-right { - float: right; + float: right; } .clearfix { - @include clearfix; + @include clearfix; } \ No newline at end of file From 2998456606c9ba5b55e4ee5f12f96d4b881d8ec8 Mon Sep 17 00:00:00 2001 From: Nicole Harris Date: Tue, 30 Sep 2025 19:36:19 +0100 Subject: [PATCH 5/6] Fix html errors --- .../templates/manage/organization/application.html | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/warehouse/templates/manage/organization/application.html b/warehouse/templates/manage/organization/application.html index 1f0e68954e63..cd7f4edcca65 100644 --- a/warehouse/templates/manage/organization/application.html +++ b/warehouse/templates/manage/organization/application.html @@ -32,21 +32,15 @@

- - {% trans %}Organization account name{% endtrans %} - + {% trans %}Organization account name{% endtrans %} {{ organization_application.name }} - - {% trans %}Organization display name{% endtrans %} - + {% trans %}Organization display name{% endtrans %} {{ organization_application.display_name }} - - {% trans %}️Organization URL{% endtrans %} - + {% trans %}️Organization URL{% endtrans %} {{ organization_application.link_url }} From c96f821e6495a6fae2251dc5bf97d35dc8bfa200 Mon Sep 17 00:00:00 2001 From: Nicole Harris Date: Tue, 30 Sep 2025 20:29:18 +0100 Subject: [PATCH 6/6] Update translations --- warehouse/locale/messages.pot | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot index c50e150c766e..5dd51857b8d8 100644 --- a/warehouse/locale/messages.pot +++ b/warehouse/locale/messages.pot @@ -4547,7 +4547,7 @@ msgstr "" msgid "Name of your business, product, or project" msgstr "" -#: warehouse/templates/manage/organization/application.html:48 +#: warehouse/templates/manage/organization/application.html:43 #: warehouse/templates/manage/organization/settings.html:62 #: warehouse/templates/manage/organizations.html:257 msgid "️Organization URL" @@ -5418,47 +5418,47 @@ msgstr "" msgid "Request submitted" msgstr "" -#: warehouse/templates/manage/organization/application.html:36 +#: warehouse/templates/manage/organization/application.html:35 #: warehouse/templates/manage/organization/settings.html:14 msgid "Organization account name" msgstr "" -#: warehouse/templates/manage/organization/application.html:42 +#: warehouse/templates/manage/organization/application.html:39 #: warehouse/templates/manage/organization/settings.html:33 msgid "Organization display name" msgstr "" -#: warehouse/templates/manage/organization/application.html:53 +#: warehouse/templates/manage/organization/application.html:47 msgid "️Organization description" msgstr "" -#: warehouse/templates/manage/organization/application.html:57 +#: warehouse/templates/manage/organization/application.html:51 #: warehouse/templates/manage/organization/settings.html:111 msgid "️Organization type" msgstr "" -#: warehouse/templates/manage/organization/application.html:61 +#: warehouse/templates/manage/organization/application.html:55 msgid "️Organization membership size" msgstr "" -#: warehouse/templates/manage/organization/application.html:65 +#: warehouse/templates/manage/organization/application.html:59 msgid "️Anticipated usage" msgstr "" -#: warehouse/templates/manage/organization/application.html:69 +#: warehouse/templates/manage/organization/application.html:63 msgid "Date submitted" msgstr "" -#: warehouse/templates/manage/organization/application.html:82 +#: warehouse/templates/manage/organization/application.html:76 msgid "️PyPI Staff" msgstr "" -#: warehouse/templates/manage/organization/application.html:90 -#: warehouse/templates/manage/organization/application.html:102 +#: warehouse/templates/manage/organization/application.html:84 +#: warehouse/templates/manage/organization/application.html:96 msgid "️Your response" msgstr "" -#: warehouse/templates/manage/organization/application.html:114 +#: warehouse/templates/manage/organization/application.html:108 msgid "Submit" msgstr ""