-
-
Notifications
You must be signed in to change notification settings - Fork 75
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
4.1 robot #15
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 < 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 <gil.gnome@gmail.com> 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 <maurits@vanrees.org> 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 <maurits@vanrees.org> 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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.