Skip to content

Commit

Permalink
[fc] Repository: plone.namedfile
Browse files Browse the repository at this point in the history
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
mauritsvanrees committed Jul 26, 2024
1 parent 5b49c13 commit c3f3b4a
Showing 1 changed file with 90 additions and 19 deletions.
109 changes: 90 additions & 19 deletions last_commit.txt
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'

0 comments on commit c3f3b4a

Please sign in to comment.