-
-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Branch: refs/heads/master Date: 2024-07-23T13:43:39+03:00 Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> Commit: plone/plone.namedfile@26b108b Update svg_utils.py to look for viewbox also Files changed: M plone/namedfile/utils/svg_utils.py Repository: plone.namedfile Branch: refs/heads/master Date: 2024-07-23T13:49:33+03:00 Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> Commit: plone/plone.namedfile@0ed951f Update svg_utils.py Files changed: M plone/namedfile/utils/svg_utils.py Repository: plone.namedfile Branch: refs/heads/master Date: 2024-07-23T13:50:20+03:00 Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> Commit: plone/plone.namedfile@8b90cc6 Update svg_utils.py Files changed: M plone/namedfile/utils/svg_utils.py Repository: plone.namedfile Branch: refs/heads/master Date: 2024-07-23T13:50:33+03:00 Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> Commit: plone/plone.namedfile@f8c49be Update svg_utils.py Files changed: M plone/namedfile/utils/svg_utils.py Repository: plone.namedfile Branch: refs/heads/master Date: 2024-07-23T13:52:54+03:00 Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> Commit: plone/plone.namedfile@9e056c5 Create 161.bugfix Files changed: A news/161.bugfix Repository: plone.namedfile Branch: refs/heads/master Date: 2024-07-23T14:06:53+03:00 Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> Commit: plone/plone.namedfile@e94e42f Update svg_utils.py Files changed: M plone/namedfile/utils/svg_utils.py Repository: plone.namedfile Branch: refs/heads/master Date: 2024-07-26T23:57:58+02:00 Author: Maurits van Rees (mauritsvanrees) <maurits@py76.be> Commit: plone/plone.namedfile@2db172f Merge pull request #161 from plone/scale-svg Fix: Upload a svg without width and height set Files changed: A news/161.bugfix M plone/namedfile/utils/svg_utils.py
- Loading branch information
1 parent
5b49c13
commit c3f3b4a
Showing
1 changed file
with
90 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,108 @@ | ||
Repository: plone.app.testing | ||
Repository: plone.namedfile | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-06-19T21:48:44+02:00 | ||
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org> | ||
Commit: https://github.com/plone/plone.app.testing/commit/89dfa1db45c537ba9e6e8039aef49f33d0d65c21 | ||
Date: 2024-07-23T13:43:39+03:00 | ||
Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> | ||
Commit: https://github.com/plone/plone.namedfile/commit/26b108b7ec927beb6c783fcb6c127fde898d3e64 | ||
|
||
PloneFixture: explicitly install plone.app.contenttypes:default. | ||
Update svg_utils.py to look for viewbox also | ||
|
||
The `addPloneSite` factory in Plone 6.1 no longer installs this by default. | ||
See https://github.com/plone/Products.CMFPlone/issues/3961 | ||
Files changed: | ||
M plone/namedfile/utils/svg_utils.py | ||
|
||
b'diff --git a/plone/namedfile/utils/svg_utils.py b/plone/namedfile/utils/svg_utils.py\nindex 59c8dd50..105cd93f 100644\n--- a/plone/namedfile/utils/svg_utils.py\n+++ b/plone/namedfile/utils/svg_utils.py\n@@ -7,6 +7,31 @@\n \n log = getLogger(__name__)\n \n+def dimension_int(dimension):\n+ if isinstance(dimension, str):\n+ try:\n+ _dimension = int(float(re.sub(r"[^\\d\\.]", "", dimension)))\n+ except ValueError:\n+ _dimension = 0\n+ elif isinstance(dimension, int):\n+ _dimension = dimension\n+ elif isinstance(dimension, float):\n+ _dimension = int(dimension)\n+ else:\n+ _dimension = 0\n+\n+ return _dimension\n+\n+\n+def calculate_dimensions_from_viewbox(view_box):\n+ parts = [float(x) for x in view_box.split()]\n+ print(f"Parsed viewBox parts: {parts}")\n+ if len(parts) == 4:\n+ width = int(parts[2] - parts[0])\n+ height = int(parts[3] - parts[1])\n+ return width, height\n+ return 1, 1\n+\n \n def process_svg(data):\n content_type = None\n@@ -15,12 +40,18 @@ def process_svg(data):\n size = len(data)\n \n tag = None\n+ view_box = None\n try:\n for event, el in et.iterparse(BytesIO(data), ("start",)):\n tag = el.tag\n w = dimension_int(el.attrib.get("width"))\n h = dimension_int(el.attrib.get("height"))\n+ view_box = el.attrib.get("viewBox")\n break\n+\n+ if (w == 0 or h == 0) and view_box:\n+ w, h = calculate_dimensions_from_viewbox(view_box)\n+ print(w,h)\n w = w if w > 1 else 1\n h = h if h > 1 else 1\n except et.ParseError as e:\n@@ -33,19 +64,3 @@ def process_svg(data):\n content_type = "image/svg+xml"\n \n return content_type, w, h\n-\n-\n-def dimension_int(dimension):\n- if isinstance(dimension, str):\n- try:\n- _dimension = int(float(re.sub(r"[^\\d\\.]", "", dimension)))\n- except ValueError:\n- _dimension = 0\n- elif isinstance(dimension, int):\n- _dimension = dimension\n- elif isinstance(dimension, float):\n- _dimension = int(dimension)\n- else:\n- _dimension = 0\n-\n- return _dimension\n' | ||
|
||
Repository: plone.namedfile | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-07-23T13:49:33+03:00 | ||
Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> | ||
Commit: https://github.com/plone/plone.namedfile/commit/0ed951f25ed8204eb9c080a38c9e0c142646d744 | ||
|
||
Update svg_utils.py | ||
|
||
Files changed: | ||
M plone/namedfile/utils/svg_utils.py | ||
|
||
b'diff --git a/plone/namedfile/utils/svg_utils.py b/plone/namedfile/utils/svg_utils.py\nindex 105cd93..875e47e 100644\n--- a/plone/namedfile/utils/svg_utils.py\n+++ b/plone/namedfile/utils/svg_utils.py\n@@ -7,22 +7,6 @@\n \n log = getLogger(__name__)\n \n-def dimension_int(dimension):\n- if isinstance(dimension, str):\n- try:\n- _dimension = int(float(re.sub(r"[^\\d\\.]", "", dimension)))\n- except ValueError:\n- _dimension = 0\n- elif isinstance(dimension, int):\n- _dimension = dimension\n- elif isinstance(dimension, float):\n- _dimension = int(dimension)\n- else:\n- _dimension = 0\n-\n- return _dimension\n-\n-\n def calculate_dimensions_from_viewbox(view_box):\n parts = [float(x) for x in view_box.split()]\n print(f"Parsed viewBox parts: {parts}")\n@@ -64,3 +48,19 @@ def process_svg(data):\n content_type = "image/svg+xml"\n \n return content_type, w, h\n+\n+\n+def dimension_int(dimension):\n+ if isinstance(dimension, str):\n+ try:\n+ _dimension = int(float(re.sub(r"[^\\d\\.]", "", dimension)))\n+ except ValueError:\n+ _dimension = 0\n+ elif isinstance(dimension, int):\n+ _dimension = dimension\n+ elif isinstance(dimension, float):\n+ _dimension = int(dimension)\n+ else:\n+ _dimension = 0\n+\n+ return _dimension\n' | ||
|
||
Repository: plone.namedfile | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-07-23T13:50:20+03:00 | ||
Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> | ||
Commit: https://github.com/plone/plone.namedfile/commit/8b90cc6d04d9d60cca2dd3ea4013d38fda8d09f1 | ||
|
||
Update svg_utils.py | ||
|
||
Files changed: | ||
M plone/namedfile/utils/svg_utils.py | ||
|
||
b'diff --git a/plone/namedfile/utils/svg_utils.py b/plone/namedfile/utils/svg_utils.py\nindex 875e47e..9602c56 100644\n--- a/plone/namedfile/utils/svg_utils.py\n+++ b/plone/namedfile/utils/svg_utils.py\n@@ -35,7 +35,6 @@ def process_svg(data):\n \n if (w == 0 or h == 0) and view_box:\n w, h = calculate_dimensions_from_viewbox(view_box)\n- print(w,h)\n w = w if w > 1 else 1\n h = h if h > 1 else 1\n except et.ParseError as e:\n' | ||
|
||
Repository: plone.namedfile | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-07-23T13:50:33+03:00 | ||
Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> | ||
Commit: https://github.com/plone/plone.namedfile/commit/f8c49bee5a0df1efb313cab6818d2a81c1e0c513 | ||
|
||
Update svg_utils.py | ||
|
||
Files changed: | ||
M plone/namedfile/utils/svg_utils.py | ||
|
||
b'diff --git a/plone/namedfile/utils/svg_utils.py b/plone/namedfile/utils/svg_utils.py\nindex 9602c56..2180f7f 100644\n--- a/plone/namedfile/utils/svg_utils.py\n+++ b/plone/namedfile/utils/svg_utils.py\n@@ -9,7 +9,6 @@\n \n def calculate_dimensions_from_viewbox(view_box):\n parts = [float(x) for x in view_box.split()]\n- print(f"Parsed viewBox parts: {parts}")\n if len(parts) == 4:\n width = int(parts[2] - parts[0])\n height = int(parts[3] - parts[1])\n' | ||
|
||
Repository: plone.namedfile | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-07-23T13:52:54+03:00 | ||
Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> | ||
Commit: https://github.com/plone/plone.namedfile/commit/9e056c51405c78496cc11e05383c9f61b1fff254 | ||
|
||
Create 161.bugfix | ||
|
||
Files changed: | ||
A news/161.bugfix | ||
|
||
b'diff --git a/news/161.bugfix b/news/161.bugfix\nnew file mode 100644\nindex 0000000..90ad8ca\n--- /dev/null\n+++ b/news/161.bugfix\n@@ -0,0 +1 @@\n+Fix: Upload a svg without width and height set @dobri1408\n' | ||
|
||
Repository: plone.namedfile | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-07-23T14:06:53+03:00 | ||
Author: dobri1408 (dobri1408) <50819975+dobri1408@users.noreply.github.com> | ||
Commit: https://github.com/plone/plone.namedfile/commit/e94e42f3c687c37df1d898cd38b2633422489205 | ||
|
||
Update svg_utils.py | ||
|
||
Files changed: | ||
A news/3961.feature | ||
M src/plone/app/testing/layers.py | ||
M plone/namedfile/utils/svg_utils.py | ||
|
||
b'diff --git a/news/3961.feature b/news/3961.feature\nnew file mode 100644\nindex 0000000..2c653dc\n--- /dev/null\n+++ b/news/3961.feature\n@@ -0,0 +1,4 @@\n+PloneFixture: explicitly install plone.app.contenttypes:default.\n+The `addPloneSite` factory in Plone 6.1 no longer installs this by default.\n+[maurits]\n+\ndiff --git a/src/plone/app/testing/layers.py b/src/plone/app/testing/layers.py\nindex e1eb75b..6b787c3 100644\n--- a/src/plone/app/testing/layers.py\n+++ b/src/plone/app/testing/layers.py\n@@ -70,7 +70,10 @@ class PloneFixture(Layer):\n )\n \n # Extension profiles to be installed with site setup\n- extensionProfiles = ("plonetheme.barceloneta:default",)\n+ extensionProfiles = (\n+ "plone.app.contenttypes:default",\n+ "plonetheme.barceloneta:default",\n+ )\n \n # Layer lifecycle\n \n' | ||
b'diff --git a/plone/namedfile/utils/svg_utils.py b/plone/namedfile/utils/svg_utils.py\nindex 2180f7f..33e3617 100644\n--- a/plone/namedfile/utils/svg_utils.py\n+++ b/plone/namedfile/utils/svg_utils.py\n@@ -10,9 +10,7 @@\n def calculate_dimensions_from_viewbox(view_box):\n parts = [float(x) for x in view_box.split()]\n if len(parts) == 4:\n- width = int(parts[2] - parts[0])\n- height = int(parts[3] - parts[1])\n- return width, height\n+ return int(parts[2]), int(parts[3])\n return 1, 1\n \n \n' | ||
|
||
Repository: plone.app.testing | ||
Repository: plone.namedfile | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-07-26T22:02:51+02:00 | ||
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org> | ||
Commit: https://github.com/plone/plone.app.testing/commit/72970c70321e3331bfe75a8424237cff4b7758ea | ||
Date: 2024-07-26T23:57:58+02:00 | ||
Author: Maurits van Rees (mauritsvanrees) <maurits@py76.be> | ||
Commit: https://github.com/plone/plone.namedfile/commit/2db172febe7a51fbeeb74b198caeb8b8bd01d2d8 | ||
|
||
Merge pull request #97 from plone/distributions | ||
Merge pull request #161 from plone/scale-svg | ||
|
||
PloneFixture: explicitly install plone.app.contenttypes:default. | ||
Fix: Upload a svg without width and height set | ||
|
||
Files changed: | ||
A news/3961.feature | ||
M src/plone/app/testing/layers.py | ||
A news/161.bugfix | ||
M plone/namedfile/utils/svg_utils.py | ||
|
||
b'diff --git a/news/3961.feature b/news/3961.feature\nnew file mode 100644\nindex 0000000..2c653dc\n--- /dev/null\n+++ b/news/3961.feature\n@@ -0,0 +1,4 @@\n+PloneFixture: explicitly install plone.app.contenttypes:default.\n+The `addPloneSite` factory in Plone 6.1 no longer installs this by default.\n+[maurits]\n+\ndiff --git a/src/plone/app/testing/layers.py b/src/plone/app/testing/layers.py\nindex e1eb75b..6b787c3 100644\n--- a/src/plone/app/testing/layers.py\n+++ b/src/plone/app/testing/layers.py\n@@ -70,7 +70,10 @@ class PloneFixture(Layer):\n )\n \n # Extension profiles to be installed with site setup\n- extensionProfiles = ("plonetheme.barceloneta:default",)\n+ extensionProfiles = (\n+ "plone.app.contenttypes:default",\n+ "plonetheme.barceloneta:default",\n+ )\n \n # Layer lifecycle\n \n' | ||
b'diff --git a/news/161.bugfix b/news/161.bugfix\nnew file mode 100644\nindex 00000000..90ad8cac\n--- /dev/null\n+++ b/news/161.bugfix\n@@ -0,0 +1 @@\n+Fix: Upload a svg without width and height set @dobri1408\ndiff --git a/plone/namedfile/utils/svg_utils.py b/plone/namedfile/utils/svg_utils.py\nindex 59c8dd50..33e36176 100644\n--- a/plone/namedfile/utils/svg_utils.py\n+++ b/plone/namedfile/utils/svg_utils.py\n@@ -7,6 +7,12 @@\n \n log = getLogger(__name__)\n \n+def calculate_dimensions_from_viewbox(view_box):\n+ parts = [float(x) for x in view_box.split()]\n+ if len(parts) == 4:\n+ return int(parts[2]), int(parts[3])\n+ return 1, 1\n+\n \n def process_svg(data):\n content_type = None\n@@ -15,12 +21,17 @@ def process_svg(data):\n size = len(data)\n \n tag = None\n+ view_box = None\n try:\n for event, el in et.iterparse(BytesIO(data), ("start",)):\n tag = el.tag\n w = dimension_int(el.attrib.get("width"))\n h = dimension_int(el.attrib.get("height"))\n+ view_box = el.attrib.get("viewBox")\n break\n+\n+ if (w == 0 or h == 0) and view_box:\n+ w, h = calculate_dimensions_from_viewbox(view_box)\n w = w if w > 1 else 1\n h = h if h > 1 else 1\n except et.ParseError as e:\n' | ||
|