From duncan at codespeak.net Mon Mar 5 10:49:36 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 5 Mar 2007 10:49:36 +0100 (CET) Subject: [kupu-checkins] r39944 - in kupu/trunk/kupu: doc plone Message-ID: <20070305094936.9D88810068@code0.codespeak.net> Author: duncan Date: Mon Mar 5 10:49:34 2007 New Revision: 39944 Modified: kupu/trunk/kupu/doc/CHANGES.txt kupu/trunk/kupu/plone/kupu_config.pt kupu/trunk/kupu/plone/plonelibrarytool.py Log: Kupu control panel no longer lets you set filtering on Plone3 Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Mon Mar 5 10:49:34 2007 @@ -2,7 +2,7 @@ Kupu changes ============ -- 1.4 (unreleased) +- 1.4 Beta 4 - Adjusted some Plone tests to work on Plone 3.0. Modified: kupu/trunk/kupu/plone/kupu_config.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_config.pt (original) +++ kupu/trunk/kupu/plone/kupu_config.pt Mon Mar 5 10:49:34 2007 @@ -201,7 +201,11 @@
HTML Filter - +
+ Please use the + Plone HTML filter control panel to set filtering options. +
+
Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Mon Mar 5 10:49:34 2007 @@ -34,6 +34,11 @@ from StringIO import StringIO from urllib import quote_plus, unquote_plus import html2captioned +try: + from plone.app.controlpanel import filter + HAVE_PLONE_FILTERING = True +except: + HAVE_PLONE_FILTERING = False # Zope 3 interfaces, but on older zopes we'll just skip this bit. try: @@ -734,7 +739,11 @@ exclusions = [(tags, attrs) for (tags, attrs) in self.getHtmlExclusions() if not (tags and attrs)] self.set_html_exclusions(stripped + exclusions) - + + security.declareProtected('View', "have_plone_filtering") + def have_plone_filtering(self): + return HAVE_PLONE_FILTERING + security.declareProtected(permissions.ManageLibraries, "configure_kupu") def configure_kupu(self, From duncan at codespeak.net Mon Mar 5 15:04:25 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 5 Mar 2007 15:04:25 +0100 (CET) Subject: [kupu-checkins] r39956 - kupu/tag/kupu-1.4b4 Message-ID: <20070305140425.D021D1006E@code0.codespeak.net> Author: duncan Date: Mon Mar 5 15:04:23 2007 New Revision: 39956 Added: kupu/tag/kupu-1.4b4/ - copied from r39955, kupu/trunk/ Log: Tagged another beta build From duncan at codespeak.net Tue Mar 13 12:37:58 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 13 Mar 2007 12:37:58 +0100 (CET) Subject: [kupu-checkins] r40433 - kupu/trunk/kupu/common Message-ID: <20070313113758.304F7100B0@code0.codespeak.net> Author: duncan Date: Tue Mar 13 12:37:56 2007 New Revision: 40433 Modified: kupu/trunk/kupu/common/sarissa.js Log: importNode for IE couldn't handle TBODY nodes Modified: kupu/trunk/kupu/common/sarissa.js ============================================================================== --- kupu/trunk/kupu/common/sarissa.js (original) +++ kupu/trunk/kupu/common/sarissa.js Tue Mar 13 12:37:56 2007 @@ -431,15 +431,17 @@ */ document.importNode = function(oNode, bChildren){ if (oNode.nodeName=='#text') { - return document.createTextElement(oNode.data); + return document.createTextNode(oNode.data); } - var tmp = document.createElement("div"); + var tmp = document.createElement("div"); + + var pNode = (oNode.nodeName.toLowerCase()=='tbody')? oNode.parentNode: oNode; if(bChildren){ - tmp.innerHTML = oNode.xml ? oNode.xml : oNode.outerHTML; + tmp.innerHTML = pNode.xml ? pNode.xml : pNode.outerHTML; }else{ - tmp.innerHTML = oNode.xml ? oNode.cloneNode(false).xml : oNode.cloneNode(false).outerHTML; + tmp.innerHTML = pNode.xml ? pNode.cloneNode(false).xml : pNode.cloneNode(false).outerHTML; }; - return tmp.getElementsByTagName("*")[0]; + return tmp.getElementsByTagName(oNode.nodeName)[0]; }; }catch(e){ }; }; From manos_lists at geekologue.com Tue Mar 13 14:51:33 2007 From: manos_lists at geekologue.com (Manos Batsis) Date: Tue, 13 Mar 2007 15:51:33 +0200 Subject: [kupu-checkins] r40433 - kupu/trunk/kupu/common In-Reply-To: <20070313113758.304F7100B0@code0.codespeak.net> References: <20070313113758.304F7100B0@code0.codespeak.net> Message-ID: <45F6AC65.6060201@geekologue.com> Maybe the sarissa CVS head works for you? duncan at codespeak.net wrote: > Author: duncan > Date: Tue Mar 13 12:37:56 2007 > New Revision: 40433 > > Modified: > kupu/trunk/kupu/common/sarissa.js > Log: > importNode for IE couldn't handle TBODY nodes > > Modified: kupu/trunk/kupu/common/sarissa.js > ============================================================================== > --- kupu/trunk/kupu/common/sarissa.js (original) > +++ kupu/trunk/kupu/common/sarissa.js Tue Mar 13 12:37:56 2007 > @@ -431,15 +431,17 @@ > */ > document.importNode = function(oNode, bChildren){ > if (oNode.nodeName=='#text') { > - return document.createTextElement(oNode.data); > + return document.createTextNode(oNode.data); > } > - var tmp = document.createElement("div"); > + var tmp = document.createElement("div"); > + > + var pNode = (oNode.nodeName.toLowerCase()=='tbody')? oNode.parentNode: oNode; > if(bChildren){ > - tmp.innerHTML = oNode.xml ? oNode.xml : oNode.outerHTML; > + tmp.innerHTML = pNode.xml ? pNode.xml : pNode.outerHTML; > }else{ > - tmp.innerHTML = oNode.xml ? oNode.cloneNode(false).xml : oNode.cloneNode(false).outerHTML; > + tmp.innerHTML = pNode.xml ? pNode.cloneNode(false).xml : pNode.cloneNode(false).outerHTML; > }; > - return tmp.getElementsByTagName("*")[0]; > + return tmp.getElementsByTagName(oNode.nodeName)[0]; > }; > }catch(e){ }; > }; > _______________________________________________ > kupu-checkins mailing list > kupu-checkins at codespeak.net > http://codespeak.net/mailman/listinfo/kupu-checkins > From hannosch at codespeak.net Tue Mar 20 00:52:25 2007 From: hannosch at codespeak.net (hannosch at codespeak.net) Date: Tue, 20 Mar 2007 00:52:25 +0100 (CET) Subject: [kupu-checkins] r40800 - kupu/trunk/kupu/plone Message-ID: <20070319235225.0CA7610068@code0.codespeak.net> Author: hannosch Date: Tue Mar 20 00:52:24 2007 New Revision: 40800 Modified: kupu/trunk/kupu/plone/kupu_config.pt Log: Fixed link to the filter control panel Modified: kupu/trunk/kupu/plone/kupu_config.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_config.pt (original) +++ kupu/trunk/kupu/plone/kupu_config.pt Tue Mar 20 00:52:24 2007 @@ -202,7 +202,7 @@ HTML Filter
- Please use the + Please use the Plone HTML filter control panel to set filtering options.
Tags
From duncan at codespeak.net Tue Mar 20 12:39:54 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 20 Mar 2007 12:39:54 +0100 (CET) Subject: [kupu-checkins] r40825 - kupu/trunk/kupu/plone/kupu_plone_layer Message-ID: <20070320113954.1B21C1006E@code0.codespeak.net> Author: duncan Date: Tue Mar 20 12:39:53 2007 New Revision: 40825 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js Log: Improve empty paragraph/div handling. Preserve classname and insert nbsp for any space-only paragraph or div. Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneeditor.js Tue Mar 20 12:39:53 2007 @@ -30,54 +30,54 @@ var hrefparts = href.split('/'); contents = contents.replace(/(<[^>]* (?:src|href)=")([^"]*)"/g, function(str, tag, url, offset, contents) { - var resolveuid = url.indexOf('/resolveuid/'); - if (resolveuid != -1) { - str = tag + url.substr(resolveuid+1)+'"'; - return str; - } - var urlparts = url.split('#'); - var anchor = urlparts[1] || ''; - url = urlparts[0]; - var urlparts = url.split('/'); - var common = 0; - while (common < urlparts.length && - common < hrefparts.length && - urlparts[common]==hrefparts[common]) { - common++; - } - var last = urlparts[common]; - if (common == urlparts.length) { urlparts[common] = '.'; } - else if (common+1 == urlparts.length && (last=='emptypage'||last==pageid)) { - urlparts[common] = ''; - } + var resolveuid = url.indexOf('/resolveuid/'); + if (resolveuid != -1) { + str = tag + url.substr(resolveuid+1)+'"'; + return str; + } + var urlparts = url.split('#'); + var anchor = urlparts[1] || ''; + url = urlparts[0]; + var urlparts = url.split('/'); + var common = 0; + while (common < urlparts.length && + common < hrefparts.length && + urlparts[common]==hrefparts[common]) { + common++; + } + var last = urlparts[common]; + if (common == urlparts.length) { urlparts[common] = '.'; } + else if (common+1 == urlparts.length && (last=='emptypage'||last==pageid)) { + urlparts[common] = ''; + } // The base and the url have 'common' parts in common. // First two are the protocol, so only do stuff if more // than two match. - if (common > 2) { - var path = []; - var i = 0; - for (; i+common < hrefparts.length-1; i++) { - path[i] = '..'; - }; - while (common < urlparts.length) { - path[i++] = urlparts[common++]; - }; - if (i==0 && !anchor) { - path[i++] = '#'; - } - str = path.join('/'); - if (anchor) { - str = [str,anchor].join('#'); - } - str = tag + str+'"'; + if (common > 2) { + var path = []; + var i = 0; + for (; i+common < hrefparts.length-1; i++) { + path[i] = '..'; }; - return str; - }); + while (common < urlparts.length) { + path[i++] = urlparts[common++]; + }; + if (i==0 && !anchor) { + path[i++] = '#'; + } + str = path.join('/'); + if (anchor) { + str = [str,anchor].join('#'); + } + str = tag + str+'"'; + }; + return str; + }); // Remove empty links contents = contents.replace(/\s*<\/a>/g, ''); // Fixup empty paras. - contents = contents.replace(/]*>\s*<\/p>(
)*/g, ' 

').strip(); - return contents; + contents = contents.replace(/<((p|div)\b[^>]*)>\s*<\/\2>(
)*/g, '<$1> ').strip(); + return contents; }; KupuEditor.prototype.saveDataToField = function(form, field) { @@ -110,6 +110,6 @@ // now create the form input field.value = contents; - + kupu.content_changed = false; }; From hannosch at codespeak.net Sat Mar 24 14:02:56 2007 From: hannosch at codespeak.net (hannosch at codespeak.net) Date: Sat, 24 Mar 2007 14:02:56 +0100 (CET) Subject: [kupu-checkins] r41232 - in kupu/trunk/kupu: doc plone/tests Message-ID: <20070324130256.726ED10074@code0.codespeak.net> Author: hannosch Date: Sat Mar 24 14:02:55 2007 New Revision: 41232 Modified: kupu/trunk/kupu/doc/CHANGES.txt kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py kupu/trunk/kupu/plone/tests/test_librarymanager.py kupu/trunk/kupu/plone/tests/test_links.py kupu/trunk/kupu/plone/tests/test_plonedrawer.py kupu/trunk/kupu/plone/tests/test_resourcetypemapper.py Log: Adjusted some more Plone tests to work on Plone 3.0. Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Sat Mar 24 14:02:55 2007 @@ -2,6 +2,8 @@ Kupu changes ============ + - Adjusted some more Plone tests to work on Plone 3.0. + - 1.4 Beta 4 - Adjusted some Plone tests to work on Plone 3.0. Modified: kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py ============================================================================== --- kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py (original) +++ kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py Sat Mar 24 14:02:55 2007 @@ -17,7 +17,6 @@ if __name__ == '__main__': execfile(os.path.join(sys.path[0], 'framework.py')) -from Testing import ZopeTestCase from Products.PloneTestCase import PloneTestCase PloneTestCase.setupPloneSite(products=['kupu']) Modified: kupu/trunk/kupu/plone/tests/test_librarymanager.py ============================================================================== --- kupu/trunk/kupu/plone/tests/test_librarymanager.py (original) +++ kupu/trunk/kupu/plone/tests/test_librarymanager.py Sat Mar 24 14:02:55 2007 @@ -16,9 +16,10 @@ if __name__ == '__main__': execfile(os.path.join(sys.path[0], 'framework.py')) -import Acquisition -from Testing.ZopeTestCase import ZopeTestCase +from Products.PloneTestCase import PloneTestCase +PloneTestCase.setupPloneSite(products=['kupu']) +import Acquisition from Products.kupu.plone.plonelibrarytool import PloneKupuLibraryTool class FakeMembershipTool: @@ -35,7 +36,7 @@ REQUEST = 'whatever' absolute_url = lambda(self): u"The answer is 42" -class TestILibraryManager(ZopeTestCase): +class TestILibraryManager(PloneTestCase.PloneTestCase): """Test the implementation of ILibraryManger in KupuLibraryTool""" def afterSetUp(self): Modified: kupu/trunk/kupu/plone/tests/test_links.py ============================================================================== --- kupu/trunk/kupu/plone/tests/test_links.py (original) +++ kupu/trunk/kupu/plone/tests/test_links.py Sat Mar 24 14:02:55 2007 @@ -13,30 +13,17 @@ if __name__ == '__main__': execfile(os.path.join(sys.path[0], 'framework.py')) -import Acquisition -from Testing.ZopeTestCase import ZopeTestCase, installProduct -from Products.CMFPlone.tests.PloneTestCase import portal_name, portal_owner -try: - from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase -except ImportError: - from Products.Archetypes.tests.ArchetypesTestCase import \ - ArcheSiteTestCase as ATSiteTestCase +from Products.PloneTestCase import PloneTestCase +from Products.PloneTestCase.ptc import portal_owner + +PloneTestCase.setupPloneSite(products=['kupu']) from AccessControl.SecurityManagement import newSecurityManager try: from Products.ATContentTypes.lib import constraintypes except: constraintypes = None -from Products.kupu.plone.tests import TestContent - -try: - installProduct('Five', 1) -except: - pass -installProduct('ATContentTypes', 1) -installProduct('kupu', 1) -from Products.kupu.plone.plonelibrarytool import PloneKupuLibraryTool from Products.kupu.plone.html2captioned import Migration RESOURCES = dict( @@ -61,15 +48,12 @@ def MapType(typename): return TypeMapping[typename] -class TestLinkCode(ATSiteTestCase): +class TestLinkCode(PloneTestCase.PloneTestCase): """Test the link checking code""" def afterSetUp(self): portal = self.portal self.setRoles(['Manager',]) - quickinstaller = portal.portal_quickinstaller - quickinstaller.installProduct('ATContentTypes') - quickinstaller.installProduct('kupu') self.kupu = portal.kupu_library_tool typestool = self.portal.portal_types if not hasattr(typestool, 'ATDocument'): Modified: kupu/trunk/kupu/plone/tests/test_plonedrawer.py ============================================================================== --- kupu/trunk/kupu/plone/tests/test_plonedrawer.py (original) +++ kupu/trunk/kupu/plone/tests/test_plonedrawer.py Sat Mar 24 14:02:55 2007 @@ -16,30 +16,18 @@ if __name__ == '__main__': execfile(os.path.join(sys.path[0], 'framework.py')) -import Acquisition -from Testing.ZopeTestCase import ZopeTestCase, installProduct -from Products.CMFPlone.tests.PloneTestCase import portal_name, portal_owner -try: - from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase -except ImportError: - from Products.Archetypes.tests.ArchetypesTestCase import \ - ArcheSiteTestCase as ATSiteTestCase +from Products.PloneTestCase import PloneTestCase +from Products.PloneTestCase.ptc import portal_owner + +PloneTestCase.setupPloneSite(products=['kupu']) from AccessControl.SecurityManagement import newSecurityManager try: from Products.ATContentTypes.lib import constraintypes except ImportError: constraintypes = None -from Products.kupu.plone.tests import TestContent -try: - installProduct('Five', 1) -except: - pass -installProduct('ATContentTypes', 1) -installProduct('kupu', 1) - -from Products.kupu.plone.plonelibrarytool import PloneKupuLibraryTool +from Products.kupu.plone.tests import TestContent RESOURCES = dict( linkable = ('Document', 'Image', 'File', 'Folder'), @@ -63,15 +51,12 @@ def MapType(typename): return TypeMapping[typename] -class TestPloneDrawer(ATSiteTestCase): +class TestPloneDrawer(PloneTestCase.PloneTestCase): """Test the implementation of the PloneDrawer class""" def afterSetUp(self): portal = self.portal self.setRoles(['Manager',]) - quickinstaller = portal.portal_quickinstaller - quickinstaller.installProduct('ATContentTypes') - quickinstaller.installProduct('kupu') self.kupu = portal.kupu_library_tool typestool = self.portal.portal_types if not hasattr(typestool, 'ATDocument'): Modified: kupu/trunk/kupu/plone/tests/test_resourcetypemapper.py ============================================================================== --- kupu/trunk/kupu/plone/tests/test_resourcetypemapper.py (original) +++ kupu/trunk/kupu/plone/tests/test_resourcetypemapper.py Sat Mar 24 14:02:55 2007 @@ -18,7 +18,6 @@ import Acquisition from Testing.ZopeTestCase import ZopeTestCase -# from Products.CMFPlone.tests import PloneTestCase from Products.kupu.plone.librarytool import KupuLibraryTool class FakeType: From limi at codespeak.net Sun Mar 25 04:10:12 2007 From: limi at codespeak.net (limi at codespeak.net) Date: Sun, 25 Mar 2007 04:10:12 +0200 (CEST) Subject: [kupu-checkins] r41265 - kupu/trunk/kupu/plone/kupu_plone_layer Message-ID: <20070325021012.B3E531007E@code0.codespeak.net> Author: limi Date: Sun Mar 25 04:10:10 2007 New Revision: 41265 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Log: Use the Plone anchor image instead of Kupu's default one. Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Sun Mar 25 04:10:10 2007 @@ -202,6 +202,7 @@ .kupu-zoom {background-image: url("&dtml-portal_url;/plonekupuimages/fullscreenexpand_icon.gif");} .kupu-zoom-pressed {background-image: url("&dtml-portal_url;/plonekupuimages/fullscreencollapse_icon.gif");} +.kupu-anchors {background-image:url("&dtml-portal_url;/plonekupuimages/anchor.gif");} div.kupu-drawer { border: solid 1px &dtml-contentViewBorderColor;; From limi at codespeak.net Sun Mar 25 11:59:52 2007 From: limi at codespeak.net (limi at codespeak.net) Date: Sun, 25 Mar 2007 11:59:52 +0200 (CEST) Subject: [kupu-checkins] r41271 - kupu/trunk/kupu/plone/kupu_plone_layer Message-ID: <20070325095952.4AA7C10080@code0.codespeak.net> Author: limi Date: Sun Mar 25 11:59:51 2007 New Revision: 41271 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Log: No icon on the force kupu button. Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Sun Mar 25 11:59:51 2007 @@ -156,6 +156,7 @@ .kupu-image {background-image: url("&dtml-portal_url;/plonekupuimages/image.gif");} .kupu-indent {background-image: url("&dtml-portal_url;/plonekupuimages/indent.gif");} +.kupu-outdent {background-image: url("&dtml-portal_url;/plonekupuimages/outdent.gif");} .kupu-inserthorizontalrule {background-image: url("&dtml-portal_url;/plonekupuimages/hr.gif");} .kupu-insertorderedlist, @@ -179,7 +180,6 @@ .kupu-justifyright-pressed {background-image: url("&dtml-portal_url;/plonekupuimages/right_just.gif");} button.kupu-logo {background-image: url("&dtml-portal_url;/kupuimages/kupu_icon.gif");} -.kupu-outdent {background-image: url("&dtml-portal_url;/plonekupuimages/outdent.gif");} .kupu-redo {background-image: url("&dtml-portal_url;/plonekupuimages/redo.gif");} .kupu-save {background-image: url("&dtml-portal_url;/kupuimages/save.png");display:none;} .kupu-save-and-exit {background-image: url("&dtml-portal_url;/kupuimages/exit.gif");} @@ -228,8 +228,7 @@ } .forcekupu { - background: transparent url(kupuimages/kupu_icon.gif) 5px 2px no-repeat; - padding: 6px 6px 1px 30px; + padding: 6px 6px 1px 0px; text-transform: &dtml-textTransform;; height: 32px; width: auto; } From duncan at codespeak.net Mon Mar 26 10:41:19 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 26 Mar 2007 10:41:19 +0200 (CEST) Subject: [kupu-checkins] r41310 - kupu/trunk/kupu/common Message-ID: <20070326084119.484D010085@code0.codespeak.net> Author: duncan Date: Mon Mar 26 10:41:18 2007 New Revision: 41310 Modified: kupu/trunk/kupu/common/kupudrawers.js Log: Table of contents wasn't looking inside tags contained in the headings. Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Mon Mar 26 10:41:18 2007 @@ -1517,7 +1517,7 @@ var node = nodeinfo[0]; var level = nodeinfo[1]; var a = this.tool.getAnchor(node); - var caption = Sarissa.getText(node).truncate(140); + var caption = Sarissa.getText(node, true).strip().truncate(140); if (isSingle) { this.tool.createLink('#'+a, null, null, null, caption); break; From limi at codespeak.net Mon Mar 26 21:00:35 2007 From: limi at codespeak.net (limi at codespeak.net) Date: Mon, 26 Mar 2007 21:00:35 +0200 (CEST) Subject: [kupu-checkins] r41421 - kupu/trunk/kupu/plone/kupu_plone_layer Message-ID: <20070326190035.A8E2E10087@code0.codespeak.net> Author: limi Date: Mon Mar 26 21:00:33 2007 New Revision: 41421 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Log: Since we define bullet styles in the CSS in Plone, the bullet selector has no meaning. Bullet styles belong in the style sheet, not in the HTML. ;) Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Mon Mar 26 21:00:33 2007 @@ -107,6 +107,13 @@ margin-bottom:4px; } +/* Since we define bullet styles in the CSS in Plone, the bullet selector has no meaning. + Bullet styles belong in the style sheet, not in the HTML. ;) + Remove this if you want it back. */ +#kupu-ulstyles { + display: none !important; +} + body.documentContent { padding: 1em !important; } html.kupu-html { From duncan at codespeak.net Tue Mar 27 11:43:15 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 27 Mar 2007 11:43:15 +0200 (CEST) Subject: [kupu-checkins] r41444 - kupu/trunk/kupu/plone Message-ID: <20070327094315.1110510088@code0.codespeak.net> Author: duncan Date: Tue Mar 27 11:43:14 2007 New Revision: 41444 Modified: kupu/trunk/kupu/plone/plonedrawers.py Log: Fix for Plone ticket 6311 Modified: kupu/trunk/kupu/plone/plonedrawers.py ============================================================================== --- kupu/trunk/kupu/plone/plonedrawers.py (original) +++ kupu/trunk/kupu/plone/plonedrawers.py Tue Mar 27 11:43:14 2007 @@ -523,7 +523,8 @@ if allow_browse and context is not portal: parent = context.aq_parent - if parent.portal_type in collection_type.portal_types: + pt = getattr(parent, 'portal_type', None) + if pt in collection_type.portal_types: data = self.getSingleObjectInfo(parent, resource_type) data['label'] = '.. (Parent folder)' items.insert(0, data) From wiggy at codespeak.net Tue Mar 27 14:27:23 2007 From: wiggy at codespeak.net (wiggy at codespeak.net) Date: Tue, 27 Mar 2007 14:27:23 +0200 (CEST) Subject: [kupu-checkins] r41470 - kupu/trunk/kupu/plone Message-ID: <20070327122723.A69911008F@code0.codespeak.net> Author: wiggy Date: Tue Mar 27 14:27:22 2007 New Revision: 41470 Modified: kupu/trunk/kupu/plone/plonedrawers.py Log: Check for the portal_type on the object itself, not the whole acquisition chain Modified: kupu/trunk/kupu/plone/plonedrawers.py ============================================================================== --- kupu/trunk/kupu/plone/plonedrawers.py (original) +++ kupu/trunk/kupu/plone/plonedrawers.py Tue Mar 27 14:27:22 2007 @@ -523,7 +523,7 @@ if allow_browse and context is not portal: parent = context.aq_parent - pt = getattr(parent, 'portal_type', None) + pt = getattr(parent.aq_base, 'portal_type', None) if pt in collection_type.portal_types: data = self.getSingleObjectInfo(parent, resource_type) data['label'] = '.. (Parent folder)' From duncan at codespeak.net Wed Mar 28 17:44:57 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Wed, 28 Mar 2007 17:44:57 +0200 (CEST) Subject: [kupu-checkins] r41583 - in kupu/trunk/kupu/plone: . kupu_plone_layer Message-ID: <20070328154457.4544D10034@code0.codespeak.net> Author: duncan Date: Wed Mar 28 17:44:54 2007 New Revision: 41583 Modified: kupu/trunk/kupu/plone/ReftextField.py kupu/trunk/kupu/plone/exportimport.py kupu/trunk/kupu/plone/html2captioned.py kupu/trunk/kupu/plone/kupu2html.py kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py kupu/trunk/kupu/plone/kupu_plone_layer/convertContentForKupu.py kupu/trunk/kupu/plone/kupu_plone_layer/kupuUploadImage.py kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/resolveuid.py kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py kupu/trunk/kupu/plone/librarytool.py kupu/trunk/kupu/plone/plonedrawers.py kupu/trunk/kupu/plone/plonelibrarytool.py kupu/trunk/kupu/plone/util.py Log: Avoid calling CMFCore getToolByName unless we really have to. Make kupu refuse to load when html starts with a comment: that way you can suppress kupu and make sure it stays suppressed. Modified: kupu/trunk/kupu/plone/ReftextField.py ============================================================================== --- kupu/trunk/kupu/plone/ReftextField.py (original) +++ kupu/trunk/kupu/plone/ReftextField.py Wed Mar 28 17:44:54 2007 @@ -1,11 +1,11 @@ from AccessControl import ClassSecurityInfo -from Products.CMFCore.utils import getToolByName from Products.Archetypes.public import * from Products.Archetypes.config import REFERENCE_CATALOG from Products.Archetypes.Field import TextField from Products.Archetypes.ReferenceEngine import Reference from Products.Archetypes.exceptions import ReferenceException from ZPublisher.HTTPRequest import FileUpload +from Products.kupu.plone.util import getToolByName import re # UID_PATTERN matches a UID in an anchor or image tag. Modified: kupu/trunk/kupu/plone/exportimport.py ============================================================================== --- kupu/trunk/kupu/plone/exportimport.py (original) +++ kupu/trunk/kupu/plone/exportimport.py Wed Mar 28 17:44:54 2007 @@ -20,7 +20,7 @@ from Globals import package_home from Products.PageTemplates.PageTemplateFile import PageTemplateFile -from Products.CMFCore.utils import getToolByName +from Products.kupu.plone.util import getToolByName from Products.GenericSetup.utils import CONVERTER from Products.GenericSetup.utils import DEFAULT Modified: kupu/trunk/kupu/plone/html2captioned.py ============================================================================== --- kupu/trunk/kupu/plone/html2captioned.py (original) +++ kupu/trunk/kupu/plone/html2captioned.py Wed Mar 28 17:44:54 2007 @@ -7,10 +7,10 @@ # The transform finds all the embedded images, and replaces them with # an appropriate chunk of HTML to include the caption. # -from Products.CMFCore.utils import getToolByName from Products.PortalTransforms.interfaces import itransform from DocumentTemplate.DT_Util import html_quote from DocumentTemplate.DT_Var import newline_to_br +from Products.kupu.plone.util import getToolByName import re from cgi import escape from urlparse import urlsplit, urljoin, urlunsplit Modified: kupu/trunk/kupu/plone/kupu2html.py ============================================================================== --- kupu/trunk/kupu/plone/kupu2html.py (original) +++ kupu/trunk/kupu/plone/kupu2html.py Wed Mar 28 17:44:54 2007 @@ -7,9 +7,9 @@ # The transform is the same as the one done by html2captioned, but # this version expects to work on text/x-html-raw -from Products.CMFCore.utils import getToolByName from Products.PortalTransforms.interfaces import itransform from Products.kupu.plone import html2captioned +from Products.kupu.plone.util import getToolByName class KupuOutputTransform(html2captioned.HTMLToCaptioned): """Transform which adds captions to images embedded in HTML""" Modified: kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py Wed Mar 28 17:44:54 2007 @@ -6,7 +6,7 @@ ##bind script=script ##bind subpath=traverse_subpath ##parameters=fieldname -from Products.CMFCore.utils import getToolByName +from Products.kupu.plone.util import getToolByName from Products.CMFCore.utils import getToolByName tool = getToolByName(context, 'kupu_library_tool') @@ -32,6 +32,7 @@ return True text_format = REQUEST.get('%s_text_format' % fieldname, context.getContentType(fieldname)) content = field.getEditAccessor(context)() - +if content.startswith('