Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions news/+bigscales.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Add larger scales to `plone.allowed_sizes` for new sites. This helps avoid the
need to serve the original image which can be very large. @davisagli

- `2k` is large enough for a default-width image on a high-density display.
- `4k` is large enough for a full-width images on high-density viewports up to 2000 pixels wide.
2 changes: 1 addition & 1 deletion src/plone/volto/profiles/default/metadata.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<version>1019</version>
<version>1100</version>
<dependencies>
<dependency>profile-plone.restapi:blocks</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@
<record field="allowed_sizes"
interface="plone.base.interfaces.controlpanel.IImagingSchema"
name="plone.allowed_sizes"
purge="True"
>
<!-- Purge the existing ones! -->
<value>
<value purge="true">
<element>icon 32:32</element>
<element>tile 64:64</element>
<element>thumb 128:128</element>
Expand All @@ -19,6 +17,8 @@
<element>larger 1000:65536</element>
<element>great 1200:65536</element>
<element>huge 1600:65536</element>
<element>2k 2000:65536</element>
<element>4k 4000:65536</element>
</value>
</record>
</registry>
9 changes: 9 additions & 0 deletions src/plone/volto/upgrades.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,12 @@ def update_robots_txt(context):
logger.info(
"Ignoring plone.robots_txt registry as it was modified in this portal."
)


def add_large_image_scales(context):
value = api.portal.get_registry_record("plone.allowed_sizes")
if not any(item.startswith("2k ") for item in value):
value.append("2k 2000:65536")
if not any(item.startswith("4k ") for item in value):
value.append("4k 4000:65536")
api.portal.set_registry_record("plone.allowed_sizes", value)
11 changes: 11 additions & 0 deletions src/plone/volto/upgrades.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,15 @@
handler=".upgrades.update_robots_txt"
/>
</genericsetup:upgradeSteps>

<genericsetup:upgradeSteps
profile="plone.volto:default"
source="1019"
destination="1100"
>
<genericsetup:upgradeStep
title="Update robots_txt setting for Volto"
handler=".upgrades.add_large_image_scales"
/>
</genericsetup:upgradeSteps>
</configure>
2 changes: 1 addition & 1 deletion tests/setup/test_setup_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def test_browserlayer(self, browser_layers):

def test_latest_version(self, profile_last_version):
"""Test latest version of default profile."""
assert profile_last_version(f"{PACKAGE_NAME}:default") == "1019"
assert profile_last_version(f"{PACKAGE_NAME}:default") == "1100"

@pytest.mark.parametrize(
"portal_type,behavior",
Expand Down