Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.1 robot #15

Merged
merged 14 commits into from
Nov 8, 2011
Merged

4.1 robot #15

merged 14 commits into from
Nov 8, 2011

Conversation

emanlove
Copy link
Member

@emanlove emanlove commented Nov 8, 2011

No description provided.

gotcha added a commit that referenced this pull request Nov 8, 2011
Add tests for login overlay
@gotcha gotcha merged commit 290a78c into plone:4.1-robot Nov 8, 2011
vangheem added a commit that referenced this pull request Nov 14, 2014
Branch: refs/heads/master
Date: 2014-11-13T17:02:54+01:00
Author: JC Brand (jcbrand) <jc@opkode.com>
Commit: plone/plone.app.z3cform@eed87da

Update markup to use pat-inlinevalidation.

See Products.CMFPlone issues 282 and 299

Files changed:
M plone/app/z3cform/templates/multi_input.pt
M plone/app/z3cform/templates/object_input.pt
M plone/app/z3cform/templates/singlecheckbox.pt
M plone/app/z3cform/templates/widget.pt

diff --git a/plone/app/z3cform/templates/multi_input.pt b/plone/app/z3cform/templates/multi_input.pt
index 5f4e787..a553ba2 100644
--- a/plone/app/z3cform/templates/multi_input.pt
+++ b/plone/app/z3cform/templates/multi_input.pt
@@ -9,7 +9,8 @@
                          key_error key_widget/error|nothing;
                          error_class python:(error or key_error) and ' error' or '';
                          fieldname_class string:kssattr-fieldname-${widget/name};"
-             tal:attributes="class string:multi-widget-field field z3cformInlineValidation ${fieldname_class}${error_class};
+             data-pat-inlinevalidation='{"type":"z3c.form"}'
+             tal:attributes="class string:multi-widget-field field pat-inlinevalidation ${fieldname_class}${error_class};
                              id string:formfield-${widget/id};">
 
             <input id="" name=""
diff --git a/plone/app/z3cform/templates/object_input.pt b/plone/app/z3cform/templates/object_input.pt
index 9dc0ad9..0f27865 100644
--- a/plone/app/z3cform/templates/object_input.pt
+++ b/plone/app/z3cform/templates/object_input.pt
@@ -4,7 +4,8 @@
                          error widget/error;
                          error_class python:error and ' error' or '';
                          fieldname_class string:kssattr-fieldname-${widget/name};"
-             tal:attributes="class string:object-widget-field field z3cformInlineValidation ${fieldname_class}${error_class};
+             data-pat-inlinevalidation='{"type":"z3c.form"}'
+             tal:attributes="class string:object-widget-field field pat-inlinevalidation ${fieldname_class}${error_class};
              data-fieldname widget/name;
                              id string:formfield-${widget/id};">
 
diff --git a/plone/app/z3cform/templates/singlecheckbox.pt b/plone/app/z3cform/templates/singlecheckbox.pt
index d890837..84e51f4 100644
--- a/plone/app/z3cform/templates/singlecheckbox.pt
+++ b/plone/app/z3cform/templates/singlecheckbox.pt
@@ -5,7 +5,8 @@
                error widget/error;
                error_class python:error and ' error' or '';
                fieldname_class string:kssattr-fieldname-${widget/name};"
-   tal:attributes="class string:field z3cformInlineValidation ${fieldname_class}${error_class};
+   data-pat-inlinevalidation='{"type":"z3c.form"}'
+   tal:attributes="class string:field pat-inlinevalidation ${fieldname_class}${error_class};
                    data-fieldname widget/name;
                    id string:formfield-${widget/id};">
 
diff --git a/plone/app/z3cform/templates/widget.pt b/plone/app/z3cform/templates/widget.pt
index 07199ea..bbed533 100644
--- a/plone/app/z3cform/templates/widget.pt
+++ b/plone/app/z3cform/templates/widget.pt
@@ -8,7 +8,8 @@
                empty_values python: (None, '', [], ('', '', '', '00', '00', ''), ('', '', ''));
                empty_class python: (widget.value in empty_values) and ' empty' or '';
                fieldname_class string:kssattr-fieldname-${widget/name};"
-   tal:attributes="class string:field z3cformInlineValidation ${fieldname_class}${error_class}${empty_class};
+   data-pat-inlinevalidation='{"type":"z3c.form"}'
+   tal:attributes="class string:field pat-inlinevalidation ${fieldname_class}${error_class}${empty_class};
                    data-fieldname widget/name;
                    id string:formfield-${widget/id};">
     <label for="" class="horizontal"


Repository: plone.app.z3cform
Branch: refs/heads/master
Date: 2014-11-14T12:56:34-06:00
Author: Nathan Van Gheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.app.z3cform@970ebd0

Merge pull request #15 from plone/inlinevalidation

Update markup to use pat-inlinevalidation.

Files changed:
M plone/app/z3cform/templates/multi_input.pt
M plone/app/z3cform/templates/object_input.pt
M plone/app/z3cform/templates/singlecheckbox.pt
M plone/app/z3cform/templates/widget.pt

diff --git a/plone/app/z3cform/templates/multi_input.pt b/plone/app/z3cform/templates/multi_input.pt
index 5f4e787..a553ba2 100644
--- a/plone/app/z3cform/templates/multi_input.pt
+++ b/plone/app/z3cform/templates/multi_input.pt
@@ -9,7 +9,8 @@
                          key_error key_widget/error|nothing;
                          error_class python:(error or key_error) and ' error' or '';
                          fieldname_class string:kssattr-fieldname-${widget/name};"
-             tal:attributes="class string:multi-widget-field field z3cformInlineValidation ${fieldname_class}${error_class};
+             data-pat-inlinevalidation='{"type":"z3c.form"}'
+             tal:attributes="class string:multi-widget-field field pat-inlinevalidation ${fieldname_class}${error_class};
                              id string:formfield-${widget/id};">
 
             <input id="" name=""
diff --git a/plone/app/z3cform/templates/object_input.pt b/plone/app/z3cform/templates/object_input.pt
index 9dc0ad9..0f27865 100644
--- a/plone/app/z3cform/templates/object_input.pt
+++ b/plone/app/z3cform/templates/object_input.pt
@@ -4,7 +4,8 @@
                          error widget/error;
                          error_class python:error and ' error' or '';
                          fieldname_class string:kssattr-fieldname-${widget/name};"
-             tal:attributes="class string:object-widget-field field z3cformInlineValidation ${fieldname_class}${error_class};
+             data-pat-inlinevalidation='{"type":"z3c.form"}'
+             tal:attributes="class string:object-widget-field field pat-inlinevalidation ${fieldname_class}${error_class};
              data-fieldname widget/name;
                              id string:formfield-${widget/id};">
 
diff --git a/plone/app/z3cform/templates/singlecheckbox.pt b/plone/app/z3cform/templates/singlecheckbox.pt
index d890837..84e51f4 100644
--- a/plone/app/z3cform/templates/singlecheckbox.pt
+++ b/plone/app/z3cform/templates/singlecheckbox.pt
@@ -5,7 +5,8 @@
                error widget/error;
                error_class python:error and ' error' or '';
                fieldname_class string:kssattr-fieldname-${widget/name};"
-   tal:attributes="class string:field z3cformInlineValidation ${fieldname_class}${error_class};
+   data-pat-inlinevalidation='{"type":"z3c.form"}'
+   tal:attributes="class string:field pat-inlinevalidation ${fieldname_class}${error_class};
                    data-fieldname widget/name;
                    id string:formfield-${widget/id};">
 
diff --git a/plone/app/z3cform/templates/widget.pt b/plone/app/z3cform/templates/widget.pt
index 07199ea..bbed533 100644
--- a/plone/app/z3cform/templates/widget.pt
+++ b/plone/app/z3cform/templates/widget.pt
@@ -8,7 +8,8 @@
                empty_values python: (None, '', [], ('', '', '', '00', '00', ''), ('', '', ''));
                empty_class python: (widget.value in empty_values) and ' empty' or '';
                fieldname_class string:kssattr-fieldname-${widget/name};"
-   tal:attributes="class string:field z3cformInlineValidation ${fieldname_class}${error_class}${empty_class};
+   data-pat-inlinevalidation='{"type":"z3c.form"}'
+   tal:attributes="class string:field pat-inlinevalidation ${fieldname_class}${error_class}${empty_class};
                    data-fieldname widget/name;
                    id string:formfield-${widget/id};">
     <label for="" class="horizontal"
thet added a commit that referenced this pull request Jan 15, 2015
Branch: refs/heads/master
Date: 2014-11-12T14:37:10+01:00
Author: Dimitar Dimitrov (mitakas) <admin@mitakas.com>
Commit: plone/plone.formwidget.recurrence@15ea5a0

Recurrence widget not shown in Plone 4.3/Archetypes.

Files changed:
M plone/formwidget/recurrence/at/widget.pt

diff --git a/plone/formwidget/recurrence/at/widget.pt b/plone/formwidget/recurrence/at/widget.pt
index 5b1d5a5..3e9899a 100644
--- a/plone/formwidget/recurrence/at/widget.pt
+++ b/plone/formwidget/recurrence/at/widget.pt
@@ -27,7 +27,7 @@
           <!-- Make the text area a recurrenceinput -->
           <script type="text/javascript"
               tal:content="string:
-              string: if (typeof jQuery !== 'undefined') {
+              if (typeof jQuery !== 'undefined') {
                 jQuery(document).ready(function() {
                   jQuery.tools.recurrenceinput.localize('${request/LANGUAGE}', ${widget/@@recurrence_widget/translation});
                   jQuery('.ArchetypesRecurrenceWidget textarea').recurrenceinput(


Repository: plone.formwidget.recurrence
Branch: refs/heads/master
Date: 2015-01-15T19:15:24+01:00
Author: Dimitar Dimitrov (mitakas) <admin@mitakas.com>
Commit: plone/plone.formwidget.recurrence@6bdddc9

Update changelog.

Files changed:
M CHANGES.rst

diff --git a/CHANGES.rst b/CHANGES.rst
index 9c6d489..1230f73 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,7 +4,8 @@ Changelog
 1.2.6 (unreleased)
 ------------------
 
-- Nothing changed yet.
+- Fix typo in the template of the AT widget, which prevented it from loading.
+  [mitakas]
 
 
 1.2.5 (2014-07-22)


Repository: plone.formwidget.recurrence
Branch: refs/heads/master
Date: 2015-01-15T21:13:52+01:00
Author: Johannes Raggam (thet) <raggam-nl@adm.at>
Commit: plone/plone.formwidget.recurrence@fa7b6c1

Merge pull request #15 from mitakas/fix-at-widget

Recurrence widget not shown in Plone 4.3/Archetypes.

Files changed:
M CHANGES.rst
M plone/formwidget/recurrence/at/widget.pt

diff --git a/CHANGES.rst b/CHANGES.rst
index 9c6d489..1230f73 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,7 +4,8 @@ Changelog
 1.2.6 (unreleased)
 ------------------
 
-- Nothing changed yet.
+- Fix typo in the template of the AT widget, which prevented it from loading.
+  [mitakas]
 
 
 1.2.5 (2014-07-22)
diff --git a/plone/formwidget/recurrence/at/widget.pt b/plone/formwidget/recurrence/at/widget.pt
index 5b1d5a5..3e9899a 100644
--- a/plone/formwidget/recurrence/at/widget.pt
+++ b/plone/formwidget/recurrence/at/widget.pt
@@ -27,7 +27,7 @@
           <!-- Make the text area a recurrenceinput -->
           <script type="text/javascript"
               tal:content="string:
-              string: if (typeof jQuery !== 'undefined') {
+              if (typeof jQuery !== 'undefined') {
                 jQuery(document).ready(function() {
                   jQuery.tools.recurrenceinput.localize('${request/LANGUAGE}', ${widget/@@recurrence_widget/translation});
                   jQuery('.ArchetypesRecurrenceWidget textarea').recurrenceinput(
jensens added a commit that referenced this pull request Jan 22, 2015
Branch: refs/heads/master
Date: 2015-01-21T10:40:43+01:00
Author: Johannes Raggam (thet) <raggam-nl@adm.at>
Commit: plone/plone.formwidget.namedfile@93ef0d7

Base64Converter for file/image widgets on ASCII fields

Add Base64 data converter for NamedImage and NamedFile widgets on ASCII fields
with base64 encoded data and filename. Now the NamedImage and NamedFile widgets
can be used with ``zope.schema.ASCII`` fields.

Files changed:
M CHANGES.rst
M plone/formwidget/namedfile/configure.zcml
M plone/formwidget/namedfile/converter.py
M plone/formwidget/namedfile/widget.py
M plone/formwidget/namedfile/widget.rst

diff --git a/CHANGES.rst b/CHANGES.rst
index 820b874..5ebfd19 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,6 +4,11 @@ Changelog
 1.0.12 (unreleased)
 -------------------
 
+- Add Base64 data converter for NamedImage and NamedFile widgets on ASCII
+  fields with base64 encoded data and filename. Now the NamedImage and
+  NamedFile widgets can be used with ``zope.schema.ASCII`` fields.
+  [thet]
+
 - PEP 8.
   [thet]
 
diff --git a/plone/formwidget/namedfile/configure.zcml b/plone/formwidget/namedfile/configure.zcml
index de01907..bce3532 100644
--- a/plone/formwidget/namedfile/configure.zcml
+++ b/plone/formwidget/namedfile/configure.zcml
@@ -12,6 +12,7 @@
   <i18n:registerTranslations directory="locales" />
 
   <adapter factory=".converter.NamedDataConverter" />
+  <adapter factory=".converter.Base64Converter" />
   <adapter factory=".validator.NamedFileWidgetValidator" />
 
   <class class=".widget.NamedFileWidget">
diff --git a/plone/formwidget/namedfile/converter.py b/plone/formwidget/namedfile/converter.py
index 25a77ca..71395ca 100644
--- a/plone/formwidget/namedfile/converter.py
+++ b/plone/formwidget/namedfile/converter.py
@@ -1,9 +1,15 @@
 from ZPublisher.HTTPRequest import FileUpload
 from plone.formwidget.namedfile.interfaces import INamedFileWidget
-from plone.namedfile.interfaces import INamedField, INamed
+from plone.formwidget.namedfile.interfaces import INamedImageWidget
+from plone.namedfile.file import NamedFile
+from plone.namedfile.file import NamedImage
+from plone.namedfile.interfaces import INamed
+from plone.namedfile.interfaces import INamedField
 from plone.namedfile.utils import safe_basename
 from z3c.form.converter import BaseDataConverter
 from zope.component import adapts
+from zope.schema.interfaces import IASCII
+import base64
 
 
 class NamedDataConverter(BaseDataConverter):
@@ -39,3 +45,67 @@ def toFieldValue(self, value):
 
         else:
             return self.field._type(data=str(value))
+
+
+def b64encode_file(filename, data):
+    # encode filename and data using the standard alphabet, so that ";" can be
+    # used as delimiter.
+    if isinstance(filename, unicode):
+        filename = filename.encode('utf-8')
+    filenameb64 = base64.standard_b64encode(filename or '')
+    datab64 = base64.standard_b64encode(data)
+    return "filenameb64:{};datab64:{}".format(
+        filenameb64, datab64
+    ).encode('ascii')
+
+
+def b64decode_file(value):
+    filename, data = value.split(';')
+
+    filename = filename.split(':')[1]
+    filename = base64.standard_b64decode(filename)
+    filename = filename.decode('utf-8')
+
+    data = data.split(':')[1]
+    data = base64.standard_b64decode(data)
+
+    return filename, data
+
+
+class Base64Converter(BaseDataConverter):
+    """Converts between ASCII fields with base64 encoded data and a filename
+    and INamedImage/INamedFile values.
+    """
+    adapts(IASCII, INamedFileWidget)
+
+    def toWidgetValue(self, value):
+
+        if not isinstance(value, basestring):
+            return None
+
+        filename, data = b64decode_file(value)
+
+        if INamedImageWidget.providedBy(self.widget):
+            value = NamedImage(data=data, filename=filename)
+        else:
+            value = NamedFile(data=data, filename=filename)
+        return value
+
+    def toFieldValue(self, value):
+
+        filename = None
+        data = None
+
+        if INamed.providedBy(value):
+            filename = value.filename
+            data = value.data
+
+        elif isinstance(value, FileUpload):
+            filename = safe_basename(value.filename)
+            value.seek(0)
+            data = value.read()
+
+        if not data:
+            return self.field.missing_value
+
+        return b64encode_file(filename, data)
diff --git a/plone/formwidget/namedfile/widget.py b/plone/formwidget/namedfile/widget.py
index 204bf07..05854bb 100644
--- a/plone/formwidget/namedfile/widget.py
+++ b/plone/formwidget/namedfile/widget.py
@@ -4,8 +4,11 @@
 from Products.Five.browser import BrowserView
 from Products.MimetypesRegistry.common import MimeTypeException
 from ZPublisher.HTTPRequest import FileUpload
+from plone.formwidget.namedfile.converter import b64decode_file
 from plone.formwidget.namedfile.interfaces import INamedFileWidget
 from plone.formwidget.namedfile.interfaces import INamedImageWidget
+from plone.namedfile.file import NamedFile
+from plone.namedfile.file import NamedImage
 from plone.namedfile.interfaces import INamed
 from plone.namedfile.interfaces import INamedFileField
 from plone.namedfile.interfaces import INamedImage
@@ -27,6 +30,7 @@
 from zope.interface import implementsOnly
 from zope.publisher.interfaces import IPublishTraverse
 from zope.publisher.interfaces import NotFound
+from zope.schema.interfaces import IASCII
 from zope.size import byteDisplay
 import urllib
 
@@ -231,7 +235,6 @@ def publishTraverse(self, request, name):
         return self
 
     def __call__(self):
-
         # TODO: Security check on form view/widget
 
         if self.context.ignoreContext:
@@ -246,6 +249,16 @@ def __call__(self):
 
         dm = getMultiAdapter((content, field,), IDataManager)
         file_ = dm.get()
+
+        if isinstance(file_, basestring) and IASCII.providedBy(field):
+            """Encoded data.
+            """
+            filename, data = b64decode_file(file_)
+            if INamedImageWidget.providedBy(self.context):
+                file_ = NamedImage(data=data, filename=filename)
+            else:
+                file_ = NamedFile(data=data, filename=filename)
+
         if file_ is None:
             raise NotFound(self, self.filename, self.request)
 
diff --git a/plone/formwidget/namedfile/widget.rst b/plone/formwidget/namedfile/widget.rst
index c38a84a..24c806b 100644
--- a/plone/formwidget/namedfile/widget.rst
+++ b/plone/formwidget/namedfile/widget.rst
@@ -427,6 +427,7 @@ stored in the field::
   >>> image_widget.extract() is content.image_field
   True
 
+
 Download view
 -------------
 
@@ -469,6 +470,7 @@ Any additional traversal will result in an error::
   ...
   NotFound: ... 'daisy.txt'
 
+
 The converter
 -------------
 
@@ -553,8 +555,150 @@ being returned::
   >>> field_value is IContent['file_field'].missing_value
   True
   >>> field_value = image_converter.toFieldValue(FileUpload(aFieldStorage))
-  >>> field_value is IContent['file_field'].missing_value
+  >>> field_value is IContent['image_field'].missing_value
+  True
+
+
+The Base64Converter for ASCII fields
+------------------------------------
+
+There is another converter, which converts between a NamedFile or file upload
+instance and base64 encoded data, which can be stored in a ASCII field::
+
+  >>> from zope import schema
+  >>> from zope.interface import implements, Interface
+  >>> class IASCIIContent(Interface):
+  ...     file_field = schema.ASCII(title=u"File")
+  ...     image_field = schema.ASCII(title=u"Image")
+
+  >>> from plone.formwidget.namedfile.converter import Base64Converter
+  >>> provideAdapter(Base64Converter)
+
+  >>> from zope.component import getMultiAdapter
+  >>> from z3c.form.interfaces import IDataConverter
+
+  >>> ascii_file_converter = getMultiAdapter(
+  ...     (IASCIIContent['file_field'], file_widget),
+  ...     IDataConverter
+  ... )
+  >>> ascii_image_converter = getMultiAdapter(
+  ...     (IASCIIContent['image_field'], image_widget),
+  ...     IDataConverter
+  ... )
+
+A value of None or '' results in the field's missing_value being returned::
+
+  >>> ascii_file_converter.toFieldValue(u'') is IASCIIContent['file_field'].missing_value
   True
+  >>> ascii_file_converter.toFieldValue(None) is IASCIIContent['file_field'].missing_value
+  True
+
+  >>> ascii_image_converter.toFieldValue(u'') is IASCIIContent['image_field'].missing_value
+  True
+  >>> ascii_image_converter.toFieldValue(None) is IASCIIContent['image_field'].missing_value
+  True
+
+A named file/image instance is returned as Base 64 encoded string in the
+following form::
+
+  filenameb64:BASE64_ENCODED_FILENAME;data64:BASE64_ENCODED_DATA
+
+Like so::
+
+  >>> ascii_file_converter.toFieldValue(
+  ...     NamedFile(data='testfile', filename=u'test.txt'))
+  'filenameb64:dGVzdC50eHQ=;datab64:dGVzdGZpbGU='
+  >>> ascii_image_converter.toFieldValue(
+  ...     NamedImage(data='testimage', filename=u'test.png'))
+  'filenameb64:dGVzdC5wbmc=;datab64:dGVzdGltYWdl'
+
+A Base 64 encoded structure like descibed above is converted to the appropriate
+type::
+
+  >>> afile = ascii_file_converter.toWidgetValue(
+  ...     'filenameb64:dGVzdC50eHQ=;datab64:dGVzdGZpbGU=')
+  >>> afile
+  <plone.namedfile.file.NamedFile object at ...>
+  >>> afile.data
+  'testfile'
+  >>> afile.filename
+  u'test.txt'
+
+  >>> aimage = ascii_image_converter.toWidgetValue(
+  ...     'filenameb64:dGVzdC5wbmc=;datab64:dGVzdGltYWdl')
+  >>> aimage
+  <plone.namedfile.file.NamedImage object at ...>
+  >>> aimage.data
+  'testimage'
+  >>> aimage.filename
+  u'test.png'
+
+Finally, some tests with image uploads converted to the field value.
+
+Convert a file upload to the Base 64 encoded field value and handle the
+filename too::
+
+
+  >>> myfile = cStringIO.StringIO('File upload contents.')
+  >>> # \xc3\xb8 is UTF-8 for a small letter o with slash
+  >>> aFieldStorage = FieldStorageStub(myfile, filename='rand\xc3\xb8m.txt',
+  ...     headers={'Content-Type': 'text/x-dummy'})
+  >>> ascii_file_converter.toFieldValue(FileUpload(aFieldStorage))
+  'filenameb64:cmFuZMO4bS50eHQ=;datab64:RmlsZSB1cGxvYWQgY29udGVudHMu'
+
+A zero-length, unnamed FileUpload results in the field's missing_value
+being returned::
+
+  >>> myfile = cStringIO.StringIO('')
+  >>> aFieldStorage = FieldStorageStub(myfile, filename='', headers={'Content-Type': 'application/octet-stream'})
+  >>> field_value = ascii_file_converter.toFieldValue(FileUpload(aFieldStorage))
+  >>> field_value is IASCIIContent['file_field'].missing_value
+  True
+  >>> field_value = ascii_image_converter.toFieldValue(FileUpload(aFieldStorage))
+  >>> field_value is IASCIIContent['image_field'].missing_value
+  True
+
+
+The Download view on ASCII fields
+---------------------------------
+::
+
+  >>> class ASCIIContent(object):
+  ...     implements(IASCIIContent)
+  ...     def __init__(self, file, image):
+  ...         self.file_field = file
+  ...         self.image_field = image
+  ...
+  ...     def absolute_url(self):
+  ...         return 'http://example.com/content2'
+
+  >>> content = ASCIIContent(
+  ...     NamedFile(data="testfile", filename=u"test.txt"),
+  ...     NamedImage(data="testimage", filename=u"test.png"))
+
+  >>> from z3c.form.widget import FieldWidget
+
+  >>> ascii_file_widget = FieldWidget(IASCIIContent['file_field'], NamedFileWidget(TestRequest()))
+  >>> ascii_file_widget.context = content
+
+  >>> ascii_image_widget = FieldWidget(IASCIIContent['image_field'], NamedImageWidget(TestRequest()))
+  >>> ascii_image_widget.context = content
+
+  >>> request = TestRequest()
+  >>> view = Download(ascii_file_widget, request)
+  >>> view()
+  'testfile'
+
+  >>> request.response.getHeader('Content-Disposition')
+  "attachment; filename*=UTF-8''test.txt"
+  
+  >>> view = Download(ascii_image_widget, request)
+  >>> view()
+  'testimage'
+
+  >>> request.response.getHeader('Content-Disposition')
+  "attachment; filename*=UTF-8''test.png"
+
 
 The validator
 -------------


Repository: plone.formwidget.namedfile
Branch: refs/heads/master
Date: 2015-01-22T16:29:39+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.formwidget.namedfile@c0f2ca7

Merge pull request #15 from plone/thet-encodedconverter

Base64Converter for file/image widgets on ASCII fields

Files changed:
M CHANGES.rst
M plone/formwidget/namedfile/configure.zcml
M plone/formwidget/namedfile/converter.py
M plone/formwidget/namedfile/widget.py
M plone/formwidget/namedfile/widget.rst

diff --git a/CHANGES.rst b/CHANGES.rst
index 820b874..5ebfd19 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,6 +4,11 @@ Changelog
 1.0.12 (unreleased)
 -------------------
 
+- Add Base64 data converter for NamedImage and NamedFile widgets on ASCII
+  fields with base64 encoded data and filename. Now the NamedImage and
+  NamedFile widgets can be used with ``zope.schema.ASCII`` fields.
+  [thet]
+
 - PEP 8.
   [thet]
 
diff --git a/plone/formwidget/namedfile/configure.zcml b/plone/formwidget/namedfile/configure.zcml
index de01907..bce3532 100644
--- a/plone/formwidget/namedfile/configure.zcml
+++ b/plone/formwidget/namedfile/configure.zcml
@@ -12,6 +12,7 @@
   <i18n:registerTranslations directory="locales" />
 
   <adapter factory=".converter.NamedDataConverter" />
+  <adapter factory=".converter.Base64Converter" />
   <adapter factory=".validator.NamedFileWidgetValidator" />
 
   <class class=".widget.NamedFileWidget">
diff --git a/plone/formwidget/namedfile/converter.py b/plone/formwidget/namedfile/converter.py
index 25a77ca..71395ca 100644
--- a/plone/formwidget/namedfile/converter.py
+++ b/plone/formwidget/namedfile/converter.py
@@ -1,9 +1,15 @@
 from ZPublisher.HTTPRequest import FileUpload
 from plone.formwidget.namedfile.interfaces import INamedFileWidget
-from plone.namedfile.interfaces import INamedField, INamed
+from plone.formwidget.namedfile.interfaces import INamedImageWidget
+from plone.namedfile.file import NamedFile
+from plone.namedfile.file import NamedImage
+from plone.namedfile.interfaces import INamed
+from plone.namedfile.interfaces import INamedField
 from plone.namedfile.utils import safe_basename
 from z3c.form.converter import BaseDataConverter
 from zope.component import adapts
+from zope.schema.interfaces import IASCII
+import base64
 
 
 class NamedDataConverter(BaseDataConverter):
@@ -39,3 +45,67 @@ def toFieldValue(self, value):
 
         else:
             return self.field._type(data=str(value))
+
+
+def b64encode_file(filename, data):
+    # encode filename and data using the standard alphabet, so that ";" can be
+    # used as delimiter.
+    if isinstance(filename, unicode):
+        filename = filename.encode('utf-8')
+    filenameb64 = base64.standard_b64encode(filename or '')
+    datab64 = base64.standard_b64encode(data)
+    return "filenameb64:{};datab64:{}".format(
+        filenameb64, datab64
+    ).encode('ascii')
+
+
+def b64decode_file(value):
+    filename, data = value.split(';')
+
+    filename = filename.split(':')[1]
+    filename = base64.standard_b64decode(filename)
+    filename = filename.decode('utf-8')
+
+    data = data.split(':')[1]
+    data = base64.standard_b64decode(data)
+
+    return filename, data
+
+
+class Base64Converter(BaseDataConverter):
+    """Converts between ASCII fields with base64 encoded data and a filename
+    and INamedImage/INamedFile values.
+    """
+    adapts(IASCII, INamedFileWidget)
+
+    def toWidgetValue(self, value):
+
+        if not isinstance(value, basestring):
+            return None
+
+        filename, data = b64decode_file(value)
+
+        if INamedImageWidget.providedBy(self.widget):
+            value = NamedImage(data=data, filename=filename)
+        else:
+            value = NamedFile(data=data, filename=filename)
+        return value
+
+    def toFieldValue(self, value):
+
+        filename = None
+        data = None
+
+        if INamed.providedBy(value):
+            filename = value.filename
+            data = value.data
+
+        elif isinstance(value, FileUpload):
+            filename = safe_basename(value.filename)
+            value.seek(0)
+            data = value.read()
+
+        if not data:
+            return self.field.missing_value
+
+        return b64encode_file(filename, data)
diff --git a/plone/formwidget/namedfile/widget.py b/plone/formwidget/namedfile/widget.py
index 204bf07..05854bb 100644
--- a/plone/formwidget/namedfile/widget.py
+++ b/plone/formwidget/namedfile/widget.py
@@ -4,8 +4,11 @@
 from Products.Five.browser import BrowserView
 from Products.MimetypesRegistry.common import MimeTypeException
 from ZPublisher.HTTPRequest import FileUpload
+from plone.formwidget.namedfile.converter import b64decode_file
 from plone.formwidget.namedfile.interfaces import INamedFileWidget
 from plone.formwidget.namedfile.interfaces import INamedImageWidget
+from plone.namedfile.file import NamedFile
+from plone.namedfile.file import NamedImage
 from plone.namedfile.interfaces import INamed
 from plone.namedfile.interfaces import INamedFileField
 from plone.namedfile.interfaces import INamedImage
@@ -27,6 +30,7 @@
 from zope.interface import implementsOnly
 from zope.publisher.interfaces import IPublishTraverse
 from zope.publisher.interfaces import NotFound
+from zope.schema.interfaces import IASCII
 from zope.size import byteDisplay
 import urllib
 
@@ -231,7 +235,6 @@ def publishTraverse(self, request, name):
         return self
 
     def __call__(self):
-
         # TODO: Security check on form view/widget
 
         if self.context.ignoreContext:
@@ -246,6 +249,16 @@ def __call__(self):
 
         dm = getMultiAdapter((content, field,), IDataManager)
         file_ = dm.get()
+
+        if isinstance(file_, basestring) and IASCII.providedBy(field):
+            """Encoded data.
+            """
+            filename, data = b64decode_file(file_)
+            if INamedImageWidget.providedBy(self.context):
+                file_ = NamedImage(data=data, filename=filename)
+            else:
+                file_ = NamedFile(data=data, filename=filename)
+
         if file_ is None:
             raise NotFound(self, self.filename, self.request)
 
diff --git a/plone/formwidget/namedfile/widget.rst b/plone/formwidget/namedfile/widget.rst
index c38a84a..24c806b 100644
--- a/plone/formwidget/namedfile/widget.rst
+++ b/plone/formwidget/namedfile/widget.rst
@@ -427,6 +427,7 @@ stored in the field::
   >>> image_widget.extract() is content.image_field
   True
 
+
 Download view
 -------------
 
@@ -469,6 +470,7 @@ Any additional traversal will result in an error::
   ...
   NotFound: ... 'daisy.txt'
 
+
 The converter
 -------------
 
@@ -553,8 +555,150 @@ being returned::
   >>> field_value is IContent['file_field'].missing_value
   True
   >>> field_value = image_converter.toFieldValue(FileUpload(aFieldStorage))
-  >>> field_value is IContent['file_field'].missing_value
+  >>> field_value is IContent['image_field'].missing_value
+  True
+
+
+The Base64Converter for ASCII fields
+------------------------------------
+
+There is another converter, which converts between a NamedFile or file upload
+instance and base64 encoded data, which can be stored in a ASCII field::
+
+  >>> from zope import schema
+  >>> from zope.interface import implements, Interface
+  >>> class IASCIIContent(Interface):
+  ...     file_field = schema.ASCII(title=u"File")
+  ...     image_field = schema.ASCII(title=u"Image")
+
+  >>> from plone.formwidget.namedfile.converter import Base64Converter
+  >>> provideAdapter(Base64Converter)
+
+  >>> from zope.component import getMultiAdapter
+  >>> from z3c.form.interfaces import IDataConverter
+
+  >>> ascii_file_converter = getMultiAdapter(
+  ...     (IASCIIContent['file_field'], file_widget),
+  ...     IDataConverter
+  ... )
+  >>> ascii_image_converter = getMultiAdapter(
+  ...     (IASCIIContent['image_field'], image_widget),
+  ...     IDataConverter
+  ... )
+
+A value of None or '' results in the field's missing_value being returned::
+
+  >>> ascii_file_converter.toFieldValue(u'') is IASCIIContent['file_field'].missing_value
   True
+  >>> ascii_file_converter.toFieldValue(None) is IASCIIContent['file_field'].missing_value
+  True
+
+  >>> ascii_image_converter.toFieldValue(u'') is IASCIIContent['image_field'].missing_value
+  True
+  >>> ascii_image_converter.toFieldValue(None) is IASCIIContent['image_field'].missing_value
+  True
+
+A named file/image instance is returned as Base 64 encoded string in the
+following form::
+
+  filenameb64:BASE64_ENCODED_FILENAME;data64:BASE64_ENCODED_DATA
+
+Like so::
+
+  >>> ascii_file_converter.toFieldValue(
+  ...     NamedFile(data='testfile', filename=u'test.txt'))
+  'filenameb64:dGVzdC50eHQ=;datab64:dGVzdGZpbGU='
+  >>> ascii_image_converter.toFieldValue(
+  ...     NamedImage(data='testimage', filename=u'test.png'))
+  'filenameb64:dGVzdC5wbmc=;datab64:dGVzdGltYWdl'
+
+A Base 64 encoded structure like descibed above is converted to the appropriate
+type::
+
+  >>> afile = ascii_file_converter.toWidgetValue(
+  ...     'filenameb64:dGVzdC50eHQ=;datab64:dGVzdGZpbGU=')
+  >>> afile
+  <plone.namedfile.file.NamedFile object at ...>
+  >>> afile.data
+  'testfile'
+  >>> afile.filename
+  u'test.txt'
+
+  >>> aimage = ascii_image_converter.toWidgetValue(
+  ...     'filenameb64:dGVzdC5wbmc=;datab64:dGVzdGltYWdl')
+  >>> aimage
+  <plone.namedfile.file.NamedImage object at ...>
+  >>> aimage.data
+  'testimage'
+  >>> aimage.filename
+  u'test.png'
+
+Finally, some tests with image uploads converted to the field value.
+
+Convert a file upload to the Base 64 encoded field value and handle the
+filename too::
+
+
+  >>> myfile = cStringIO.StringIO('File upload contents.')
+  >>> # \xc3\xb8 is UTF-8 for a small letter o with slash
+  >>> aFieldStorage = FieldStorageStub(myfile, filename='rand\xc3\xb8m.txt',
+  ...     headers={'Content-Type': 'text/x-dummy'})
+  >>> ascii_file_converter.toFieldValue(FileUpload(aFieldStorage))
+  'filenameb64:cmFuZMO4bS50eHQ=;datab64:RmlsZSB1cGxvYWQgY29udGVudHMu'
+
+A zero-length, unnamed FileUpload results in the field's missing_value
+being returned::
+
+  >>> myfile = cStringIO.StringIO('')
+  >>> aFieldStorage = FieldStorageStub(myfile, filename='', headers={'Content-Type': 'application/octet-stream'})
+  >>> field_value = ascii_file_converter.toFieldValue(FileUpload(aFieldStorage))
+  >>> field_value is IASCIIContent['file_field'].missing_value
+  True
+  >>> field_value = ascii_image_converter.toFieldValue(FileUpload(aFieldStorage))
+  >>> field_value is IASCIIContent['image_field'].missing_value
+  True
+
+
+The Download view on ASCII fields
+---------------------------------
+::
+
+  >>> class ASCIIContent(object):
+  ...     implements(IASCIIContent)
+  ...     def __init__(self, file, image):
+  ...         self.file_field = file
+  ...         self.image_field = image
+  ...
+  ...     def absolute_url(self):
+  ...         return 'http://example.com/content2'
+
+  >>> content = ASCIIContent(
+  ...     NamedFile(data="testfile", filename=u"test.txt"),
+  ...     NamedImage(data="testimage", filename=u"test.png"))
+
+  >>> from z3c.form.widget import FieldWidget
+
+  >>> ascii_file_widget = FieldWidget(IASCIIContent['file_field'], NamedFileWidget(TestRequest()))
+  >>> ascii_file_widget.context = content
+
+  >>> ascii_image_widget = FieldWidget(IASCIIContent['image_field'], NamedImageWidget(TestRequest()))
+  >>> ascii_image_widget.context = content
+
+  >>> request = TestRequest()
+  >>> view = Download(ascii_file_widget, request)
+  >>> view()
+  'testfile'
+
+  >>> request.response.getHeader('Content-Disposition')
+  "attachment; filename*=UTF-8''test.txt"
+  
+  >>> view = Download(ascii_image_widget, request)
+  >>> view()
+  'testimage'
+
+  >>> request.response.getHeader('Content-Disposition')
+  "attachment; filename*=UTF-8''test.png"
+
 
 The validator
 -------------
tisto added a commit that referenced this pull request Jan 23, 2015
Branch: refs/heads/master
Date: 2015-01-22T20:44:38+02:00
Author: Asko Soukka (datakurre) <asko.soukka@iki.fi>
Commit: plone/plone.app.textfield@d44e186

Fix marshaler decode to decode raw value as unicode (IText)

Files changed:
M docs/HISTORY.rst
M plone/app/textfield/marshaler.py
M plone/app/textfield/marshaler.rst

diff --git a/docs/HISTORY.rst b/docs/HISTORY.rst
index 7da4a34..4fae0b8 100644
--- a/docs/HISTORY.rst
+++ b/docs/HISTORY.rst
@@ -4,6 +4,20 @@ Changelog
 1.2.5 (unreleased)
 ------------------
 
+- Fix marshaler decode to always decode raw value into unicode
+  [datakurre]
+
+- Remove utils.getSiteEncoding, which was deprecated and not used anywhere.
+  [thet]
+
+- For Plone 5, support getting markup control panel settings from the registry,
+  while still supporting normal portal_properties access for Plone < 5.
+  [thet]
+
+- Resolved an interesting circular import case, which wasnt effective because
+  of sort order of imports
+  [thet]
+
 - For Plone 5, support getting markup control panel settings from the registry,
   while still supporting normal portal_properties access for Plone < 5.
   [thet]
diff --git a/plone/app/textfield/marshaler.py b/plone/app/textfield/marshaler.py
index 482647e..baf0bdb 100644
--- a/plone/app/textfield/marshaler.py
+++ b/plone/app/textfield/marshaler.py
@@ -32,8 +32,12 @@ def decode(
                 charset='utf-8',
                 contentType=None,
                 primary=False):
+            try:
+                unicode_value = value.decode(charset)
+            except UnicodeEncodeError:
+                unicode_value = value  # was already unicode
             return RichTextValue(
-                raw=value,
+                raw=unicode_value,
                 mimeType=contentType or self.field.default_mime_type,
                 outputMimeType=self.field.output_mime_type,
                 encoding=charset
diff --git a/plone/app/textfield/marshaler.rst b/plone/app/textfield/marshaler.rst
index a7c7cb8..1f6ee3d 100644
--- a/plone/app/textfield/marshaler.rst
+++ b/plone/app/textfield/marshaler.rst
@@ -53,7 +53,7 @@ We can now look up and test the marshaler:
     'Some \xc3\x98 plain text'
     >>> decoded = marshaler.decode('Some \xc3\x98 plain text', charset='utf-8', contentType='text/plain')
     >>> decoded.raw
-    'Some \xc3\x98 plain text'
+    u'Some \xd8 plain text'
     >>> decoded.mimeType
     'text/plain'
     >>> decoded.outputMimeType
@@ -72,7 +72,7 @@ default type is used.
 
     >>> decoded = marshaler.decode('Some \xc3\x98 plain text')
     >>> decoded.raw
-    'Some \xc3\x98 plain text'
+    u'Some \xd8 plain text'
     >>> decoded.mimeType
     'text/plain'
     >>> decoded.outputMimeType
@@ -108,7 +108,7 @@ Let's now use this message to construct a new object.
     >>> from plone.rfc822 import initializeObjectFromSchema
     >>> initializeObjectFromSchema(newContent, ITestContent, inputMessage)
     >>> newContent._text.raw
-    'Some \xc3\x98 plain text'
+    u'Some \xd8 plain text'
     >>> newContent._text.mimeType
     'text/plain'
     >>> newContent._text.outputMimeType


Repository: plone.app.textfield
Branch: refs/heads/master
Date: 2015-01-23T08:32:50+01:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.app.textfield@2235261

Merge pull request #15 from plone/datakurre-fix-decode

Fix marshaler decode to decode raw value as unicode (IText)

Files changed:
M docs/HISTORY.rst
M plone/app/textfield/marshaler.py
M plone/app/textfield/marshaler.rst

diff --git a/docs/HISTORY.rst b/docs/HISTORY.rst
index 7da4a34..4fae0b8 100644
--- a/docs/HISTORY.rst
+++ b/docs/HISTORY.rst
@@ -4,6 +4,20 @@ Changelog
 1.2.5 (unreleased)
 ------------------
 
+- Fix marshaler decode to always decode raw value into unicode
+  [datakurre]
+
+- Remove utils.getSiteEncoding, which was deprecated and not used anywhere.
+  [thet]
+
+- For Plone 5, support getting markup control panel settings from the registry,
+  while still supporting normal portal_properties access for Plone < 5.
+  [thet]
+
+- Resolved an interesting circular import case, which wasnt effective because
+  of sort order of imports
+  [thet]
+
 - For Plone 5, support getting markup control panel settings from the registry,
   while still supporting normal portal_properties access for Plone < 5.
   [thet]
diff --git a/plone/app/textfield/marshaler.py b/plone/app/textfield/marshaler.py
index 482647e..baf0bdb 100644
--- a/plone/app/textfield/marshaler.py
+++ b/plone/app/textfield/marshaler.py
@@ -32,8 +32,12 @@ def decode(
                 charset='utf-8',
                 contentType=None,
                 primary=False):
+            try:
+                unicode_value = value.decode(charset)
+            except UnicodeEncodeError:
+                unicode_value = value  # was already unicode
             return RichTextValue(
-                raw=value,
+                raw=unicode_value,
                 mimeType=contentType or self.field.default_mime_type,
                 outputMimeType=self.field.output_mime_type,
                 encoding=charset
diff --git a/plone/app/textfield/marshaler.rst b/plone/app/textfield/marshaler.rst
index a7c7cb8..1f6ee3d 100644
--- a/plone/app/textfield/marshaler.rst
+++ b/plone/app/textfield/marshaler.rst
@@ -53,7 +53,7 @@ We can now look up and test the marshaler:
     'Some \xc3\x98 plain text'
     >>> decoded = marshaler.decode('Some \xc3\x98 plain text', charset='utf-8', contentType='text/plain')
     >>> decoded.raw
-    'Some \xc3\x98 plain text'
+    u'Some \xd8 plain text'
     >>> decoded.mimeType
     'text/plain'
     >>> decoded.outputMimeType
@@ -72,7 +72,7 @@ default type is used.
 
     >>> decoded = marshaler.decode('Some \xc3\x98 plain text')
     >>> decoded.raw
-    'Some \xc3\x98 plain text'
+    u'Some \xd8 plain text'
     >>> decoded.mimeType
     'text/plain'
     >>> decoded.outputMimeType
@@ -108,7 +108,7 @@ Let's now use this message to construct a new object.
     >>> from plone.rfc822 import initializeObjectFromSchema
     >>> initializeObjectFromSchema(newContent, ITestContent, inputMessage)
     >>> newContent._text.raw
-    'Some \xc3\x98 plain text'
+    u'Some \xd8 plain text'
     >>> newContent._text.mimeType
     'text/plain'
     >>> newContent._text.outputMimeType
vangheem added a commit that referenced this pull request Apr 22, 2015
Branch: refs/heads/master
Date: 2015-04-18T20:08:46+02:00
Author: JC Brand (jcbrand) <jc@opkode.com>
Commit: plone/plonetheme.barceloneta@9d11e85

The pat-modal pattern has been renamed to pat-plone-modal

Files changed:
M CHANGES.rst
M index.html
Repository: plonetheme.barceloneta
Branch: refs/heads/master
Date: 2015-04-22T16:12:27-05:00
Author: Nathan Van Gheem (vangheem) <vangheem@gmail.com>
Commit: plone/plonetheme.barceloneta@9fc2483

Merge pull request #15 from plone/pat-modal-rename

The pat-modal pattern has been renamed to pat-plone-modal

Files changed:
M CHANGES.rst
M index.html
bloodbare added a commit that referenced this pull request Jul 16, 2015
Branch: refs/heads/master
Date: 2015-07-15T16:07:28+02:00
Author: vangheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.app.iterate@642f465

merge plone.app.stagingbehavior into plone.app.iterate without the
  behavior implementation

Files changed:
A plone/app/iterate/dexterity/__init__.py
A plone/app/iterate/dexterity/configure.zcml
A plone/app/iterate/dexterity/copier.py
A plone/app/iterate/dexterity/interfaces.py
A plone/app/iterate/dexterity/policy.py
A plone/app/iterate/dexterity/relation.py
A plone/app/iterate/dexterity/utils.py
A plone/app/iterate/tests/dexterity.rst
A plone/app/iterate/tests/test_annotations.py
M CHANGES.rst
M plone/app/iterate/__init__.py
M plone/app/iterate/archiver.py
M plone/app/iterate/browser/cancel.pt
M plone/app/iterate/browser/checkin.pt
M plone/app/iterate/browser/control.py
M plone/app/iterate/browser/diff.py
M plone/app/iterate/browser/info.py
M plone/app/iterate/browser/info_baseline.pt
M plone/app/iterate/configure.zcml
M plone/app/iterate/interfaces.py
M plone/app/iterate/policy.py
M plone/app/iterate/relation.py
M plone/app/iterate/testing.py
M plone/app/iterate/tests/test_doctests.py
M plone/app/iterate/tests/test_iterate.py
M plone/app/iterate/util.py
M setup.py
Repository: plone.app.iterate
Branch: refs/heads/master
Date: 2015-07-15T18:09:39+02:00
Author: vangheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.app.iterate@1e12b18

add more tests

Files changed:
A plone/app/iterate/tests/test_interfaces.py
M plone/app/iterate/browser/info.py
M plone/app/iterate/browser/info_baseline.pt
M plone/app/iterate/dexterity/policy.py
M plone/app/iterate/permissions.py
M plone/app/iterate/policy.py
M plone/app/iterate/testing.py
M plone/app/iterate/tests/dexterity.rst
M plone/app/iterate/tests/test_annotations.py
M plone/app/iterate/util.py
Repository: plone.app.iterate
Branch: refs/heads/master
Date: 2015-07-16T13:27:50+02:00
Author: Ramon Navarro Bosch (bloodbare) <ramon.nb@gmail.com>
Commit: plone/plone.app.iterate@5e27ac9

Merge pull request #15 from plone/dexterity-support

Provide dexterity support in plone.app.iterate

Files changed:
A plone/app/iterate/dexterity/__init__.py
A plone/app/iterate/dexterity/configure.zcml
A plone/app/iterate/dexterity/copier.py
A plone/app/iterate/dexterity/interfaces.py
A plone/app/iterate/dexterity/policy.py
A plone/app/iterate/dexterity/relation.py
A plone/app/iterate/dexterity/utils.py
A plone/app/iterate/tests/dexterity.rst
A plone/app/iterate/tests/test_annotations.py
A plone/app/iterate/tests/test_interfaces.py
M CHANGES.rst
M plone/app/iterate/__init__.py
M plone/app/iterate/archiver.py
M plone/app/iterate/browser/cancel.pt
M plone/app/iterate/browser/checkin.pt
M plone/app/iterate/browser/control.py
M plone/app/iterate/browser/diff.py
M plone/app/iterate/browser/info.py
M plone/app/iterate/browser/info_baseline.pt
M plone/app/iterate/configure.zcml
M plone/app/iterate/interfaces.py
M plone/app/iterate/permissions.py
M plone/app/iterate/policy.py
M plone/app/iterate/relation.py
M plone/app/iterate/testing.py
M plone/app/iterate/tests/test_doctests.py
M plone/app/iterate/tests/test_iterate.py
M plone/app/iterate/util.py
M setup.py
vangheem added a commit that referenced this pull request Jul 17, 2015
Branch: refs/heads/master
Date: 2015-07-13T19:19:56+02:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.app.relationfield@88d731b

Back to development.

Files changed:
M CHANGES.rst
M setup.py
Repository: plone.app.relationfield
Branch: refs/heads/master
Date: 2015-07-13T19:20:55+02:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.app.relationfield@b7083be

Fix test isolation problem with marshall test.

Files changed:
A plone/app/relationfield/tests/test_marshall.zcml
M CHANGES.rst
M plone/app/relationfield/marshaler.rst
M plone/app/relationfield/tests/test_marshall.py
Repository: plone.app.relationfield
Branch: refs/heads/master
Date: 2015-07-13T22:00:10+02:00
Author: Godefroid Chapelle (gotcha) <gotcha@bubblenet.be>
Commit: plone/plone.app.relationfield@f403d73

upgrade to Plone 5

include robotframework

Files changed:
M buildout.cfg
M setup.py
Repository: plone.app.relationfield
Branch: refs/heads/master
Date: 2015-07-13T22:02:23+02:00
Author: Godefroid Chapelle (gotcha) <gotcha@bubblenet.be>
Commit: plone/plone.app.relationfield@f8e41ad

update bootstrap to 2015-07-01

Files changed:
M bootstrap.py
Repository: plone.app.relationfield
Branch: refs/heads/master
Date: 2015-07-13T22:03:11+02:00
Author: Godefroid Chapelle (gotcha) <gotcha@bubblenet.be>
Commit: plone/plone.app.relationfield@460dd9c

tune ignores

Files changed:
M .gitignore
Repository: plone.app.relationfield
Branch: refs/heads/master
Date: 2015-07-17T21:40:39+02:00
Author: Nathan Van Gheem (vangheem) <vangheem@gmail.com>
Commit: plone/plone.app.relationfield@275cc8b

Merge pull request #15 from plone/fix-test-isolation

Fix test isolation

Files changed:
A plone/app/relationfield/tests/test_marshall.zcml
M .gitignore
M CHANGES.rst
M bootstrap.py
M buildout.cfg
M plone/app/relationfield/marshaler.rst
M plone/app/relationfield/tests/test_marshall.py
M setup.py
jensens added a commit that referenced this pull request Jul 24, 2015
Branch: refs/heads/master
Date: 2015-07-06T15:07:34+02:00
Author: Harald Friessnegger (frisi) <harald@webmeisterei.com>
Commit: plone/plone.app.blob@9e31da6

fix inline migrator for AT types

* also add an option to remove data in old field
* skip fields that are already blobfields
* do not copy fields with no value - this allows to run migration on already migrated content w/o loosing data

see commments on this commit for details: plone/plone.app.blob@f57656e

Files changed:
M CHANGES.rst
M src/plone/app/blob/migrations.py
Repository: plone.app.blob
Branch: refs/heads/master
Date: 2015-07-24T11:12:48+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.blob@2f268f9

Merge pull request #15 from plone/fix-blob-migration

fix inline migrator for AT types and add option to remove data in old field

Files changed:
M CHANGES.rst
M src/plone/app/blob/migrations.py
jensens added a commit that referenced this pull request Jul 24, 2015
Branch: refs/heads/master
Date: 2015-07-06T15:07:34+02:00
Author: Harald Friessnegger (frisi) <harald@webmeisterei.com>
Commit: plone/plone.app.blob@9e31da6

fix inline migrator for AT types

* also add an option to remove data in old field
* skip fields that are already blobfields
* do not copy fields with no value - this allows to run migration on already migrated content w/o loosing data

see commments on this commit for details: plone/plone.app.blob@f57656e

Files changed:
M CHANGES.rst
M src/plone/app/blob/migrations.py
Repository: plone.app.blob
Branch: refs/heads/master
Date: 2015-07-24T11:12:48+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.blob@2f268f9

Merge pull request #15 from plone/fix-blob-migration

fix inline migrator for AT types and add option to remove data in old field

Files changed:
M CHANGES.rst
M src/plone/app/blob/migrations.py
tisto added a commit that referenced this pull request Aug 13, 2015
Branch: refs/heads/master
Date: 2015-08-12T15:48:04+02:00
Author: Patrick Gerken () <patrick.gerken@zumtobelgroup.com>
Commit: plone/plone.testing@2c7d1b4

fix(ex_handling): Don't let finally block mask ex

We have a project with test code which utilizes collective.solr which
utilizes collective.indexing which pushes index operations to the
pre commit phase.
In our case an exception was then thrown during commit within
the zopeApp context.
closing the connection in the finally statement raised another exception
because of the unclean state left by the first exception.
This exception in the finally block totally masked the original
exception, hindering bug fixing.

Files changed:
M CHANGES.rst
M src/plone/testing/z2.py
Repository: plone.testing
Branch: refs/heads/master
Date: 2015-08-13T08:53:54+02:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.testing@75488ff

Merge pull request #15 from plone/less_exception_masking

fix(ex_handling): Don't let finally block mask ex

Files changed:
M CHANGES.rst
M src/plone/testing/z2.py
tisto added a commit that referenced this pull request Aug 13, 2015
Branch: refs/heads/master
Date: 2015-08-12T15:48:04+02:00
Author: Patrick Gerken () <patrick.gerken@zumtobelgroup.com>
Commit: plone/plone.testing@2c7d1b4

fix(ex_handling): Don't let finally block mask ex

We have a project with test code which utilizes collective.solr which
utilizes collective.indexing which pushes index operations to the
pre commit phase.
In our case an exception was then thrown during commit within
the zopeApp context.
closing the connection in the finally statement raised another exception
because of the unclean state left by the first exception.
This exception in the finally block totally masked the original
exception, hindering bug fixing.

Files changed:
M CHANGES.rst
M src/plone/testing/z2.py
Repository: plone.testing
Branch: refs/heads/master
Date: 2015-08-13T08:53:54+02:00
Author: Timo Stollenwerk (tisto) <tisto@plone.org>
Commit: plone/plone.testing@75488ff

Merge pull request #15 from plone/less_exception_masking

fix(ex_handling): Don't let finally block mask ex

Files changed:
M CHANGES.rst
M src/plone/testing/z2.py
pbauer added a commit that referenced this pull request Aug 21, 2015
Branch: refs/heads/master
Date: 2015-08-11T17:48:17+02:00
Author: Gil Forcada Codinachs (gforcada) <gforcada@gnome.org>
Commit: plone/plone.app.testing@1043a6a

No need for unittest2

Files changed:
M setup.py
Repository: plone.app.testing
Branch: refs/heads/master
Date: 2015-08-21T11:13:17+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.testing@7a6d48f

Merge pull request #15 from plone/gforcada-patch-1

No need for unittest2

Files changed:
M setup.py
jone added a commit that referenced this pull request Sep 17, 2015
Branch: refs/heads/master
Date: 2015-09-17T00:04:58+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.forcada@freitag.de>
Commit: plone/plone.app.versioningbehavior@dcbbdfb

Remove reference to itself

There should be no need to list the distribution itself as a testing requirement, right?

Files changed:
M setup.py
Repository: plone.app.versioningbehavior
Branch: refs/heads/master
Date: 2015-09-17T09:47:31+02:00
Author: Jonas Baumann (jone) <jone@jone.ch>
Commit: plone/plone.app.versioningbehavior@6465a8b

Merge pull request #15 from plone/gforcada-patch-1

Remove reference to itself

Files changed:
M setup.py
jensens added a commit that referenced this pull request Oct 15, 2015
Branch: refs/heads/master
Date: 2015-10-14T15:44:00+02:00
Author: Johannes Raggam (thet) <raggam-nl@adm.at>
Commit: plone/plone.namedfile@09f9185

No longer rely on deprecated bobobase_modification_time from Persistence.Persistent.

Files changed:
M CHANGES.rst
M plone/namedfile/scaling.py
Repository: plone.namedfile
Branch: refs/heads/master
Date: 2015-10-15T12:35:53+03:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.namedfile@02ff23e

Merge pull request #15 from plone/thet-nobobomodification

Remove bobobase_modification_time

Files changed:
M CHANGES.rst
M plone/namedfile/scaling.py
mister-roboto pushed a commit that referenced this pull request Oct 1, 2017
Branch: refs/heads/master
Date: 2017-03-21T09:40:25-06:00
Author: Fulvio Casali (fulv) <fulviocasali@gmail.com>
Commit: plone/plone.behavior@0619934

Fix import dotted path in example

Files changed:
M README.rst
Repository: plone.behavior

Branch: refs/heads/master
Date: 2017-10-02T00:49:07+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.behavior@4673409

Merge pull request #15 from plone/fulv-patch-1

Fix import dotted path in example

Files changed:
M README.rst
mister-roboto pushed a commit that referenced this pull request Jan 15, 2018
Branch: refs/heads/master
Date: 2018-01-12T00:28:44+01:00
Author: Harald Friessnegger (frisi) <harald@webmeisterei.com>
Commit: plone/plone.protect@bd39399

do not log a warning for empty responses

if a text/html response does not contain any data (eg empty page for an ajax request)
we do not log a warning that no csrf token could be added

this fixes #15

Files changed:
M CHANGES.rst
M plone/protect/auto.py
M plone/protect/tests/testAuto.py
Repository: plone.protect

Branch: refs/heads/master
Date: 2018-01-15T14:56:38+01:00
Author: Harald Friessnegger (frisi) <harald@webmeisterei.com>
Commit: plone/plone.protect@6c314bd

simplify condition

Files changed:
M plone/protect/auto.py
Repository: plone.protect

Branch: refs/heads/master
Date: 2018-01-15T18:35:37+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.protect@ad4456d

Merge pull request #69 from plone/no-warning-when-empty

do not log a warning for empty responses

Files changed:
M CHANGES.rst
M plone/protect/auto.py
M plone/protect/tests/testAuto.py
mister-roboto pushed a commit that referenced this pull request Jan 15, 2018
Branch: refs/heads/master
Date: 2018-01-12T00:28:44+01:00
Author: Harald Friessnegger (frisi) <harald@webmeisterei.com>
Commit: plone/plone.protect@bd39399

do not log a warning for empty responses

if a text/html response does not contain any data (eg empty page for an ajax request)
we do not log a warning that no csrf token could be added

this fixes #15

Files changed:
M CHANGES.rst
M plone/protect/auto.py
M plone/protect/tests/testAuto.py
Repository: plone.protect

Branch: refs/heads/master
Date: 2018-01-15T14:56:38+01:00
Author: Harald Friessnegger (frisi) <harald@webmeisterei.com>
Commit: plone/plone.protect@6c314bd

simplify condition

Files changed:
M plone/protect/auto.py
Repository: plone.protect

Branch: refs/heads/master
Date: 2018-01-15T18:35:37+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.protect@ad4456d

Merge pull request #69 from plone/no-warning-when-empty

do not log a warning for empty responses

Files changed:
M CHANGES.rst
M plone/protect/auto.py
M plone/protect/tests/testAuto.py
mister-roboto pushed a commit that referenced this pull request May 6, 2018
Branch: refs/heads/master
Date: 2018-05-06T11:33:07+02:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/Products.CMFFormController@1d3ee1e

Fix dict key sorting in Python 3

Files changed:
M CHANGES.rst
M Products/CMFFormController/FormAction.py
M Products/CMFFormController/FormValidator.py
Repository: Products.CMFFormController

Branch: refs/heads/master
Date: 2018-05-06T19:02:03-04:00
Author: David Glick (davisagli) <david.glick@plone.org>
Commit: plone/Products.CMFFormController@ced9767

Merge pull request #15 from plone/python3

Fix dict key sorting in Python 3

Files changed:
M CHANGES.rst
M Products/CMFFormController/FormAction.py
M Products/CMFFormController/FormValidator.py
mister-roboto pushed a commit that referenced this pull request May 17, 2018
Branch: refs/heads/master
Date: 2018-05-16T23:46:51+02:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.viewletmanager@23150b0

Fix imports

Files changed:
M CHANGES.rst
M plone/app/viewletmanager/tests/test_exportimport.py
Repository: plone.app.viewletmanager

Branch: refs/heads/master
Date: 2018-05-17T09:16:07+02:00
Author: Alessandro Pisa (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.viewletmanager@1e08fb1

Merge pull request #15 from plone/pep8

Fix imports

Files changed:
M CHANGES.rst
M plone/app/viewletmanager/tests/test_exportimport.py
mister-roboto pushed a commit that referenced this pull request May 17, 2018
Branch: refs/heads/master
Date: 2018-05-16T23:46:51+02:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.viewletmanager@23150b0

Fix imports

Files changed:
M CHANGES.rst
M plone/app/viewletmanager/tests/test_exportimport.py
Repository: plone.app.viewletmanager

Branch: refs/heads/master
Date: 2018-05-17T09:16:07+02:00
Author: Alessandro Pisa (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.viewletmanager@1e08fb1

Merge pull request #15 from plone/pep8

Fix imports

Files changed:
M CHANGES.rst
M plone/app/viewletmanager/tests/test_exportimport.py
mister-roboto pushed a commit that referenced this pull request May 17, 2018
Branch: refs/heads/master
Date: 2018-05-16T23:46:51+02:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.viewletmanager@23150b0

Fix imports

Files changed:
M CHANGES.rst
M plone/app/viewletmanager/tests/test_exportimport.py
Repository: plone.app.viewletmanager

Branch: refs/heads/master
Date: 2018-05-17T09:16:07+02:00
Author: Alessandro Pisa (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.viewletmanager@1e08fb1

Merge pull request #15 from plone/pep8

Fix imports

Files changed:
M CHANGES.rst
M plone/app/viewletmanager/tests/test_exportimport.py
mister-roboto pushed a commit that referenced this pull request Jun 20, 2018
Branch: refs/heads/master
Date: 2018-06-19T16:19:30+01:00
Author: Matthew Wilkes (MatthewWilkes) <git@matthewwilkes.name>
Commit: plone/plone.registry@bc13c37

Improve performance of RecordsProxy.__iter__

Files changed:
M CHANGES.rst
M plone/registry/recordsproxy.py
Repository: plone.registry

Branch: refs/heads/master
Date: 2018-06-20T08:39:31+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.registry@ca12637

Merge pull request #15 from plone/wilkes-performance-improvement

Improve performance of RecordsProxy.__iter__

Files changed:
M CHANGES.rst
M plone/registry/recordsproxy.py
mister-roboto pushed a commit that referenced this pull request Jun 20, 2018
Branch: refs/heads/master
Date: 2018-06-19T16:19:30+01:00
Author: Matthew Wilkes (MatthewWilkes) <git@matthewwilkes.name>
Commit: plone/plone.registry@bc13c37

Improve performance of RecordsProxy.__iter__

Files changed:
M CHANGES.rst
M plone/registry/recordsproxy.py
Repository: plone.registry

Branch: refs/heads/master
Date: 2018-06-20T08:39:31+02:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.registry@ca12637

Merge pull request #15 from plone/wilkes-performance-improvement

Improve performance of RecordsProxy.__iter__

Files changed:
M CHANGES.rst
M plone/registry/recordsproxy.py
mister-roboto pushed a commit that referenced this pull request Aug 14, 2018
Branch: refs/heads/master
Date: 2018-06-10T11:33:23+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/Products.MimetypesRegistry@2991e74

migrate test to PLONE_APP_CONTENTTYPES_FIXTURE

Files changed:
A Products/MimetypesRegistry/testing.py
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
M Products/MimetypesRegistry/tests/test_encoding.py
M Products/MimetypesRegistry/tests/test_magic.py
M Products/MimetypesRegistry/tests/test_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-12T13:49:42+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@7f6ab1c

tests run with py3 now

Files changed:
M Products/MimetypesRegistry/MimeTypesRegistry.py
M Products/MimetypesRegistry/mime_types/magic.py
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
M Products/MimetypesRegistry/tests/test_magic.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-12T14:21:35+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@b9c4f16

Changelog

Files changed:
M CHANGES.rst
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-13T10:42:27+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@9e132a5

Remove commented import

Files changed:
M Products/MimetypesRegistry/tests/test_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-13T10:44:32+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@477bafd

Minor code shortening

Files changed:
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-26T22:20:44+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Products.MimetypesRegistry@edd6f04

reduce warnings

Files changed:
M Products/MimetypesRegistry/MimeTypesRegistry.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-27T00:07:12+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Products.MimetypesRegistry@4a3e122

InitializeClass was moved to AccessControl.class_init

Files changed:
M Products/MimetypesRegistry/MimeTypeItem.py
M Products/MimetypesRegistry/MimeTypesRegistry.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-08-03T08:07:53+02:00
Author: Peter Mathis (petschki) <peter.mathis@kombinat.at>
Commit: plone/Products.MimetypesRegistry@66d36c6

fix regression for py2 and remove test deprecation warnings

Files changed:
M Products/MimetypesRegistry/MimeTypesRegistry.py
M Products/MimetypesRegistry/tests/test_encoding.py
M Products/MimetypesRegistry/tests/test_magic.py
M Products/MimetypesRegistry/tests/test_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-08-14T21:18:30+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/Products.MimetypesRegistry@5bb7cd8

Merge pull request #15 from plone/python3

Python 3 Compatibility

Files changed:
A Products/MimetypesRegistry/testing.py
M CHANGES.rst
M Products/MimetypesRegistry/MimeTypeItem.py
M Products/MimetypesRegistry/MimeTypesRegistry.py
M Products/MimetypesRegistry/mime_types/magic.py
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
M Products/MimetypesRegistry/tests/test_encoding.py
M Products/MimetypesRegistry/tests/test_magic.py
M Products/MimetypesRegistry/tests/test_mimetypes.py
mister-roboto pushed a commit that referenced this pull request Aug 14, 2018
Branch: refs/heads/master
Date: 2018-06-10T11:33:23+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/Products.MimetypesRegistry@2991e74

migrate test to PLONE_APP_CONTENTTYPES_FIXTURE

Files changed:
A Products/MimetypesRegistry/testing.py
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
M Products/MimetypesRegistry/tests/test_encoding.py
M Products/MimetypesRegistry/tests/test_magic.py
M Products/MimetypesRegistry/tests/test_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-12T13:49:42+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@7f6ab1c

tests run with py3 now

Files changed:
M Products/MimetypesRegistry/MimeTypesRegistry.py
M Products/MimetypesRegistry/mime_types/magic.py
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
M Products/MimetypesRegistry/tests/test_magic.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-12T14:21:35+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@b9c4f16

Changelog

Files changed:
M CHANGES.rst
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-13T10:42:27+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@9e132a5

Remove commented import

Files changed:
M Products/MimetypesRegistry/tests/test_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-13T10:44:32+02:00
Author: Robert Niederreiter (rnixx) <office@squarewave.at>
Commit: plone/Products.MimetypesRegistry@477bafd

Minor code shortening

Files changed:
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-26T22:20:44+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Products.MimetypesRegistry@edd6f04

reduce warnings

Files changed:
M Products/MimetypesRegistry/MimeTypesRegistry.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-06-27T00:07:12+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Products.MimetypesRegistry@4a3e122

InitializeClass was moved to AccessControl.class_init

Files changed:
M Products/MimetypesRegistry/MimeTypeItem.py
M Products/MimetypesRegistry/MimeTypesRegistry.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-08-03T08:07:53+02:00
Author: Peter Mathis (petschki) <peter.mathis@kombinat.at>
Commit: plone/Products.MimetypesRegistry@66d36c6

fix regression for py2 and remove test deprecation warnings

Files changed:
M Products/MimetypesRegistry/MimeTypesRegistry.py
M Products/MimetypesRegistry/tests/test_encoding.py
M Products/MimetypesRegistry/tests/test_magic.py
M Products/MimetypesRegistry/tests/test_mimetypes.py
Repository: Products.MimetypesRegistry

Branch: refs/heads/master
Date: 2018-08-14T21:18:30+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/Products.MimetypesRegistry@5bb7cd8

Merge pull request #15 from plone/python3

Python 3 Compatibility

Files changed:
A Products/MimetypesRegistry/testing.py
M CHANGES.rst
M Products/MimetypesRegistry/MimeTypeItem.py
M Products/MimetypesRegistry/MimeTypesRegistry.py
M Products/MimetypesRegistry/mime_types/magic.py
M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py
M Products/MimetypesRegistry/tests/test_encoding.py
M Products/MimetypesRegistry/tests/test_magic.py
M Products/MimetypesRegistry/tests/test_mimetypes.py
mister-roboto pushed a commit that referenced this pull request Sep 15, 2018
Branch: refs/heads/master
Date: 2018-09-14T15:39:29+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/Products.CMFDynamicViewFTI@e28b1d7

use ulines for view_methods in py3

Files changed:
M Products/CMFDynamicViewFTI/fti.py
Repository: Products.CMFDynamicViewFTI

Branch: refs/heads/master
Date: 2018-09-14T15:39:29+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/Products.CMFDynamicViewFTI@1b52cbb

fix test for py3

Files changed:
M Products/CMFDynamicViewFTI/tests/CMFDVFTITestCase.py
M Products/CMFDynamicViewFTI/tests/test_browserdefault.py
M Products/CMFDynamicViewFTI/tests/test_fti.py
Repository: Products.CMFDynamicViewFTI

Branch: refs/heads/master
Date: 2018-09-14T15:43:27+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Products.CMFDynamicViewFTI@2f11919

document changes

Files changed:
M CHANGES.rst
Repository: Products.CMFDynamicViewFTI

Branch: refs/heads/master
Date: 2018-09-15T17:18:48+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/Products.CMFDynamicViewFTI@8b2a1c0

Merge pull request #15 from plone/python3

[WIP] Use ulines for view_methods in python 3

Files changed:
M CHANGES.rst
M Products/CMFDynamicViewFTI/fti.py
M Products/CMFDynamicViewFTI/tests/CMFDVFTITestCase.py
M Products/CMFDynamicViewFTI/tests/test_browserdefault.py
M Products/CMFDynamicViewFTI/tests/test_fti.py
mister-roboto pushed a commit that referenced this pull request Oct 1, 2018
Branch: refs/heads/master
Date: 2018-06-12T13:25:06+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@ff054dd

fix templateViewRegistrationGroups and tests in py3

Files changed:
M plone/app/customerize/registration.py
M plone/app/customerize/tests/testBrowserLayers.txt
M plone/app/customerize/tests/testDocTests.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-06-13T11:01:34+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@0cba5c5

fix doctests for py2

Files changed:
M plone/app/customerize/tests/testDocTests.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-06-26T23:58:16+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.customerize@e5659b6

InitializeClass was moved to AccessControl.class_init

Files changed:
M plone/app/customerize/tool.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-09-14T17:34:48+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@b621f14

add changenote and classifiers

Files changed:
M CHANGES.rst
M setup.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-10-01T00:28:40+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@4da27fe

fix tests in py2

Files changed:
M plone/app/customerize/tests/testCustomizeView.txt
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-10-01T08:02:21+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@2999e0c

Merge pull request #15 from plone/python3

fix templateViewRegistrationGroups and tests in py3

Files changed:
M CHANGES.rst
M plone/app/customerize/registration.py
M plone/app/customerize/tests/testBrowserLayers.txt
M plone/app/customerize/tests/testCustomizeView.txt
M plone/app/customerize/tests/testDocTests.py
M plone/app/customerize/tool.py
M setup.py
mister-roboto pushed a commit that referenced this pull request Oct 1, 2018
Branch: refs/heads/master
Date: 2018-06-12T13:25:06+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@ff054dd

fix templateViewRegistrationGroups and tests in py3

Files changed:
M plone/app/customerize/registration.py
M plone/app/customerize/tests/testBrowserLayers.txt
M plone/app/customerize/tests/testDocTests.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-06-13T11:01:34+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@0cba5c5

fix doctests for py2

Files changed:
M plone/app/customerize/tests/testDocTests.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-06-26T23:58:16+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.customerize@e5659b6

InitializeClass was moved to AccessControl.class_init

Files changed:
M plone/app/customerize/tool.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-09-14T17:34:48+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@b621f14

add changenote and classifiers

Files changed:
M CHANGES.rst
M setup.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-10-01T00:28:40+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@4da27fe

fix tests in py2

Files changed:
M plone/app/customerize/tests/testCustomizeView.txt
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-10-01T08:02:21+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@2999e0c

Merge pull request #15 from plone/python3

fix templateViewRegistrationGroups and tests in py3

Files changed:
M CHANGES.rst
M plone/app/customerize/registration.py
M plone/app/customerize/tests/testBrowserLayers.txt
M plone/app/customerize/tests/testCustomizeView.txt
M plone/app/customerize/tests/testDocTests.py
M plone/app/customerize/tool.py
M setup.py
mister-roboto pushed a commit that referenced this pull request Oct 1, 2018
Branch: refs/heads/master
Date: 2018-06-12T13:25:06+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@ff054dd

fix templateViewRegistrationGroups and tests in py3

Files changed:
M plone/app/customerize/registration.py
M plone/app/customerize/tests/testBrowserLayers.txt
M plone/app/customerize/tests/testDocTests.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-06-13T11:01:34+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@0cba5c5

fix doctests for py2

Files changed:
M plone/app/customerize/tests/testDocTests.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-06-26T23:58:16+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.app.customerize@e5659b6

InitializeClass was moved to AccessControl.class_init

Files changed:
M plone/app/customerize/tool.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-09-14T17:34:48+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@b621f14

add changenote and classifiers

Files changed:
M CHANGES.rst
M setup.py
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-10-01T00:28:40+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@4da27fe

fix tests in py2

Files changed:
M plone/app/customerize/tests/testCustomizeView.txt
Repository: plone.app.customerize

Branch: refs/heads/master
Date: 2018-10-01T08:02:21+02:00
Author: Philip Bauer (pbauer) <bauer@starzel.de>
Commit: plone/plone.app.customerize@2999e0c

Merge pull request #15 from plone/python3

fix templateViewRegistrationGroups and tests in py3

Files changed:
M CHANGES.rst
M plone/app/customerize/registration.py
M plone/app/customerize/tests/testBrowserLayers.txt
M plone/app/customerize/tests/testCustomizeView.txt
M plone/app/customerize/tests/testDocTests.py
M plone/app/customerize/tool.py
M setup.py
mister-roboto pushed a commit that referenced this pull request Feb 10, 2019
Branch: refs/heads/master
Date: 2019-02-08T16:52:23+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.session@b83b0a0

feat: remove all traces of ZopeTestCase

Files changed:
A plone/session/testing.py
M plone/session/tests/testPAS.py
D plone/session/tests/sessioncase.py
Repository: plone.session

Branch: refs/heads/master
Date: 2019-02-08T16:53:02+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.session@3f58b6b

Add news entry

Files changed:
A news/14.bugfix
Repository: plone.session

Branch: refs/heads/master
Date: 2019-02-10T16:52:50+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.session@8dcaf3b

Merge pull request #15 from plone/remove-cruft

Remove cruft

Files changed:
A news/14.bugfix
A plone/session/testing.py
M plone/session/tests/testPAS.py
D plone/session/tests/sessioncase.py
mister-roboto pushed a commit that referenced this pull request Feb 10, 2019
Branch: refs/heads/master
Date: 2019-02-08T16:52:23+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.session@b83b0a0

feat: remove all traces of ZopeTestCase

Files changed:
A plone/session/testing.py
M plone/session/tests/testPAS.py
D plone/session/tests/sessioncase.py
Repository: plone.session

Branch: refs/heads/master
Date: 2019-02-08T16:53:02+01:00
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.session@3f58b6b

Add news entry

Files changed:
A news/14.bugfix
Repository: plone.session

Branch: refs/heads/master
Date: 2019-02-10T16:52:50+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.session@8dcaf3b

Merge pull request #15 from plone/remove-cruft

Remove cruft

Files changed:
A news/14.bugfix
A plone/session/testing.py
M plone/session/tests/testPAS.py
D plone/session/tests/sessioncase.py
mister-roboto pushed a commit that referenced this pull request Feb 14, 2019
Branch: refs/heads/master
Date: 2019-02-13T21:43:26+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@a1513cf

Support using the 'in' operator for paths.

'path in storage' would use storage.__iter__ until now,
and it would not use the _canonical method to strip a trailing slash.
Now we simply define '__contains__' to be the same as 'has_path'.
Makes it more Pythonic.

Files changed:
A news/xxx.bugfix
M plone/app/redirector/storage.py
M plone/app/redirector/tests/test_storage.py
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T21:43:26+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@48c6420

Support using storage[old_path] to get the new path.

Possibly this raises a KeyError.

Files changed:
M news/xxx.bugfix
M plone/app/redirector/storage.py
M plone/app/redirector/tests/test_storage.py
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T21:43:26+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@339f285

Support using storage[old_path] to set or delete new paths.

Files changed:
M news/xxx.bugfix
M plone/app/redirector/storage.py
M plone/app/redirector/tests/test_storage.py
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T21:43:26+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@b754c1b

Support using len(storage) to get the number of paths.

Files changed:
M news/xxx.bugfix
M plone/app/redirector/storage.py
M plone/app/redirector/tests/test_storage.py
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T21:43:26+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@96cf70d

Added performance tests.

Call with `export PLONE_APP_REDIRECTOR_PERFORMANCE_NUMBER=100000` to enable.

Files changed:
A plone/app/redirector/tests/test_performance.py
M news/xxx.bugfix
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T22:18:03+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@8a75ae0

Use timeit context manager to report on the performance.

Files changed:
M plone/app/redirector/tests/test_performance.py
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T22:18:40+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@82133ee

Renamed news snippet.

Files changed:
A news/13.bugfix
D news/xxx.bugfix
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T22:45:34+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@9e0b125

Always run performance tests, but default with a low number of paths.

Raise assertionError when this is too slow.
Don't print anything else.
Only print stuff when the PLONE_APP_REDIRECTOR_PERFORMANCE_NUMBER environment variable is set.

Files changed:
M plone/app/redirector/tests/test_performance.py
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-13T22:55:06+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.redirector@99efffd

Never skip the performance tests.

The previous commit had the effect that they were run by default,
and only were skipped when the env variable was zero.
But that does not make much sense.

Also, even with a high test verbosity level (`bin/test -vvvvvv`),
sometimes the skip reason was shown and sometimes not.
The length of the reason seemed to matter at some point, but I could not get a grip on that.

Files changed:
M plone/app/redirector/tests/test_performance.py
Repository: plone.app.redirector

Branch: refs/heads/master
Date: 2019-02-14T10:22:18+01:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/plone.app.redirector@4db8952

Merge pull request #15 from plone/maurits-more-pythonic

Support more Pythonic use of the RedirectionStorage

Files changed:
A news/13.bugfix
A plone/app/redirector/tests/test_performance.py
M plone/app/redirector/storage.py
M plone/app/redirector/tests/test_storage.py
mister-roboto pushed a commit that referenced this pull request May 19, 2020
Branch: refs/heads/master
Date: 2020-05-19T18:20:06+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.folder@ffab7d1

optimize loop in moveObjectsByDelta

Files changed:
A news/15.bugfix
M src/plone/folder/default.py
M src/plone/folder/partial.py
Repository: plone.folder

Branch: refs/heads/master
Date: 2020-05-19T20:24:04+02:00
Author: agitator (agitator) <agitator@users.noreply.github.com>
Commit: plone/plone.folder@658ab7c

Merge pull request #15 from plone/optimize-moveObjectsByDelta

optimize loop in moveObjectsByDelta

Files changed:
A news/15.bugfix
M src/plone/folder/default.py
M src/plone/folder/partial.py
mister-roboto pushed a commit that referenced this pull request Oct 13, 2021
Branch: refs/heads/master
Date: 2021-10-07T16:36:07+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.reload@a37979f

Fix missing doctype, add html lang, use html5 charset to reload page.

Files changed:
M CHANGES.rst
M plone/reload/reload.pt
Repository: plone.reload

Branch: refs/heads/master
Date: 2021-10-13T14:22:34+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.reload@4de12ac

Merge pull request #15 from plone/thet-html5-meta-charset

Fix missing doctype, add html lang, use html5 charset to reload page.

Files changed:
M CHANGES.rst
M plone/reload/reload.pt
mister-roboto pushed a commit that referenced this pull request Oct 13, 2021
Branch: refs/heads/master
Date: 2021-10-07T16:36:07+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.reload@a37979f

Fix missing doctype, add html lang, use html5 charset to reload page.

Files changed:
M CHANGES.rst
M plone/reload/reload.pt
Repository: plone.reload

Branch: refs/heads/master
Date: 2021-10-13T14:22:34+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.reload@4de12ac

Merge pull request #15 from plone/thet-html5-meta-charset

Fix missing doctype, add html lang, use html5 charset to reload page.

Files changed:
M CHANGES.rst
M plone/reload/reload.pt
mister-roboto pushed a commit that referenced this pull request Feb 7, 2022
Branch: refs/heads/main
Date: 2022-02-07T15:47:38+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.autoinclude@d66b768

Test-only fix: pin exact pip version for buildout3.

zc.buildout 3.0.0rc1 does not work with pip 22+.

Files changed:
M tox.ini
Repository: plone.autoinclude

Branch: refs/heads/main
Date: 2022-02-07T15:53:15+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.autoinclude@169c395

Merge pull request #15 from plone/maurits-fix-buildout3-tests

Test-only fix: pin exact pip version for buildout3.

Files changed:
M tox.ini
mister-roboto pushed a commit that referenced this pull request Jun 30, 2022
Branch: refs/heads/main
Date: 2022-06-30T09:25:07+02:00
Author: 1letter (1letter) <1letter@gmx.de>
Commit: plone/plone.base@f805e7d

Update .gitignore

Files changed:
M .gitignore
Repository: plone.base

Branch: refs/heads/main
Date: 2022-06-30T09:25:28+02:00
Author: 1letter (1letter) <1letter@gmx.de>
Commit: plone/plone.base@cdc7fd0

Fix Boolean Fields

- ISiteSyndicationSettings, IFeedSettings

Files changed:
M src/plone/base/interfaces/syndication.py
Repository: plone.base

Branch: refs/heads/main
Date: 2022-06-30T09:25:37+02:00
Author: 1letter (1letter) <1letter@gmx.de>
Commit: plone/plone.base@f574b5e

add Message

Files changed:
A news/14.bugfix
Repository: plone.base

Branch: refs/heads/main
Date: 2022-06-30T10:43:02+02:00
Author: 1letter (1letter) <1letter@gmx.de>
Commit: plone/plone.base@c7fb969

Merge pull request #15 from plone/1letter/fix#14

1letter/fix#14

Files changed:
A news/14.bugfix
M .gitignore
M src/plone/base/interfaces/syndication.py
mister-roboto pushed a commit that referenced this pull request Oct 10, 2022
Branch: refs/heads/master
Date: 2022-10-07T16:51:19+02:00
Author: ale-rt (ale-rt) <alessandro.pisa@gmail.com>
Commit: plone/plone.app.uuid@983c445

Process the catalog queue before looking up in the catalog

Fixes #15

Files changed:
A news/15.bugfix
M plone/app/uuid/utils.py
Repository: plone.app.uuid

Branch: refs/heads/master
Date: 2022-10-10T13:53:13+02:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/plone.app.uuid@2194e99

Merge pull request #16 from plone/15.fixed

Process the catalog queue before looking up in the catalog

Files changed:
A news/15.bugfix
M plone/app/uuid/utils.py
mister-roboto pushed a commit that referenced this pull request Jan 13, 2023
Branch: refs/heads/master
Date: 2023-01-13T10:30:30+01:00
Author: Gogo Bernhard (gogobd) <g.bernhard@akbild.ac.at>
Commit: plone/plone.event@5ffb446

Fixing #13

Files changed:
A news/13.bugfix
M plone/event/utils.py
Repository: plone.event

Branch: refs/heads/master
Date: 2023-01-13T12:10:01+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.event@a6a0923

Merge pull request #15 from plone/issue-#13

Fixing #13

Files changed:
A news/13.bugfix
M plone/event/utils.py
mister-roboto pushed a commit that referenced this pull request Jan 13, 2023
Branch: refs/heads/master
Date: 2023-01-13T10:30:30+01:00
Author: Gogo Bernhard (gogobd) <g.bernhard@akbild.ac.at>
Commit: plone/plone.event@5ffb446

Fixing #13

Files changed:
A news/13.bugfix
M plone/event/utils.py
Repository: plone.event

Branch: refs/heads/master
Date: 2023-01-13T12:10:01+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.event@a6a0923

Merge pull request #15 from plone/issue-#13

Fixing #13

Files changed:
A news/13.bugfix
M plone/event/utils.py
mister-roboto pushed a commit that referenced this pull request Mar 15, 2023
Branch: refs/heads/master
Date: 2023-03-14T20:15:12+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.stringinterp@4efbdb7

upgrade to py3 and plone codestyle

- pyupgrade, drop support for Python &lt; 3.8
- isort
- black
- manual edits
- fix deprecation warnings for imports from Products.CMFPlone
- import and depend from plone.base

Files changed:
A news/15.breaking
M README.rst
M plone/__init__.py
M plone/stringinterp/__init__.py
M plone/stringinterp/adapters.py
M plone/stringinterp/browser.py
M plone/stringinterp/configure.zcml
M plone/stringinterp/dollarReplace.py
M plone/stringinterp/interfaces.py
M plone/stringinterp/tests/__init__.py
M plone/stringinterp/tests/testDocTests.py
M setup.cfg
M setup.py
Repository: plone.stringinterp

Branch: refs/heads/master
Date: 2023-03-15T07:59:19+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.stringinterp@5a74661

Update plone/stringinterp/tests/testDocTests.py

Co-authored-by: Gil Forcada Codinachs &lt;gil.gnome@gmail.com&gt;

Files changed:
M plone/stringinterp/tests/testDocTests.py
Repository: plone.stringinterp

Branch: refs/heads/master
Date: 2023-03-15T10:14:25+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.stringinterp@69bfd43

fix superfluous empty string

Files changed:
M plone/stringinterp/tests/testDocTests.py
Repository: plone.stringinterp

Branch: refs/heads/master
Date: 2023-03-15T14:28:39+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.stringinterp@225a363

Update plone/stringinterp/adapters.py

Co-authored-by: Maurits van Rees &lt;maurits@vanrees.org&gt;

Files changed:
M plone/stringinterp/adapters.py
Repository: plone.stringinterp

Branch: refs/heads/master
Date: 2023-03-15T14:29:22+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.stringinterp@b150888

Update plone/stringinterp/interfaces.py

Co-authored-by: Maurits van Rees &lt;maurits@vanrees.org&gt;

Files changed:
M plone/stringinterp/interfaces.py
Repository: plone.stringinterp

Branch: refs/heads/master
Date: 2023-03-15T20:03:23+01:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/plone.stringinterp@a6f984e

Merge pull request #15 from plone/housecleaning

upgrade to py3 and plone codestyle

Files changed:
A news/15.breaking
M README.rst
M plone/__init__.py
M plone/stringinterp/__init__.py
M plone/stringinterp/adapters.py
M plone/stringinterp/browser.py
M plone/stringinterp/configure.zcml
M plone/stringinterp/dollarReplace.py
M plone/stringinterp/interfaces.py
M plone/stringinterp/tests/__init__.py
M plone/stringinterp/tests/testDocTests.py
M setup.cfg
M setup.py
mister-roboto pushed a commit that referenced this pull request Oct 4, 2023
Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@2535ed0

Configuring with plone/meta

Files changed:
A .flake8
A .github/workflows/meta.yml
A .pre-commit-config.yaml
A news/cfffba8c.internal
M .editorconfig
M .gitignore
M .meta.toml
M pyproject.toml
M tox.ini
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@a9347e1

cleanup: remove unused file

Files changed:
D lint-requirements.txt
D setup.cfg
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@c8d98b2

fix: adjust setup.py

Files changed:
M setup.py
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@41e3f2c

chore: run black

Files changed:
M borg/localrole/setuphandlers.py
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:46+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@8061b03

chore: run zpretty

Files changed:
M borg/localrole/zmi/WorkspaceLocalRoleManagerForm.pt
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:46+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@095bed4

chore: apply flake8 tips

Files changed:
M borg/localrole/tests.py
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:46+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@46874cb

fix: mark strings to not be translated

Files changed:
M borg/localrole/zmi/WorkspaceLocalRoleManagerForm.pt
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-10-04T17:45:23+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/borg.localrole@78ba10f

Merge pull request #15 from plone/config-with-default-template-3ea02c34

Config with default template

Files changed:
A .flake8
A .github/workflows/meta.yml
A .pre-commit-config.yaml
A news/cfffba8c.internal
M .editorconfig
M .gitignore
M .meta.toml
M borg/localrole/setuphandlers.py
M borg/localrole/tests.py
M borg/localrole/zmi/WorkspaceLocalRoleManagerForm.pt
M pyproject.toml
M setup.py
M tox.ini
D lint-requirements.txt
D setup.cfg
mister-roboto pushed a commit that referenced this pull request Oct 4, 2023
Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@2535ed0

Configuring with plone/meta

Files changed:
A .flake8
A .github/workflows/meta.yml
A .pre-commit-config.yaml
A news/cfffba8c.internal
M .editorconfig
M .gitignore
M .meta.toml
M pyproject.toml
M tox.ini
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@a9347e1

cleanup: remove unused file

Files changed:
D lint-requirements.txt
D setup.cfg
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@c8d98b2

fix: adjust setup.py

Files changed:
M setup.py
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:45+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@41e3f2c

chore: run black

Files changed:
M borg/localrole/setuphandlers.py
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:46+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@8061b03

chore: run zpretty

Files changed:
M borg/localrole/zmi/WorkspaceLocalRoleManagerForm.pt
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:46+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@095bed4

chore: apply flake8 tips

Files changed:
M borg/localrole/tests.py
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-06-26T11:29:46+03:00
Author: Gil Forcada Codinachs (gforcada) <gil.gnome@gmail.com>
Commit: plone/borg.localrole@46874cb

fix: mark strings to not be translated

Files changed:
M borg/localrole/zmi/WorkspaceLocalRoleManagerForm.pt
Repository: borg.localrole

Branch: refs/heads/master
Date: 2023-10-04T17:45:23+02:00
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at>
Commit: plone/borg.localrole@78ba10f

Merge pull request #15 from plone/config-with-default-template-3ea02c34

Config with default template

Files changed:
A .flake8
A .github/workflows/meta.yml
A .pre-commit-config.yaml
A news/cfffba8c.internal
M .editorconfig
M .gitignore
M .meta.toml
M borg/localrole/setuphandlers.py
M borg/localrole/tests.py
M borg/localrole/zmi/WorkspaceLocalRoleManagerForm.pt
M pyproject.toml
M setup.py
M tox.ini
D lint-requirements.txt
D setup.cfg
mister-roboto pushed a commit that referenced this pull request Dec 10, 2024
Branch: refs/heads/main
Date: 2024-12-10T13:58:27+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/Products.validation@5747d5f

Remove unneeded code from ``recursiveTranslate`` that broke with latest Zope 5.11.

``zope.i18n`` already supports recursive translation out of the box since 2008.

See plone/Products.validation#14 (comment)

Files changed:
A news/70.bugfix
M Products/validation/i18n.py
Repository: Products.validation

Branch: refs/heads/main
Date: 2024-12-10T09:45:17-08:00
Author: David Glick (davisagli) <david@glicksoftware.com>
Commit: plone/Products.validation@494d29a

Merge pull request #15 from plone/maurits-recursive-translate-simplify

Remove unneeded code from recursiveTranslate

Files changed:
A news/70.bugfix
M Products/validation/i18n.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants