[Zope-CMF] CMF Collector: Open Issues

2006-02-23 Thread tseaver
The following supporters have open issues assigned to them in this collector
(http://www.zope.org/Collectors/CMF).

Assigned and Open


  mhammond

- Windows DevelopmentMode penalty in CMFCore.DirectoryView,
  [Accepted] http://www.zope.org/Collectors/CMF/366


Pending / Deferred Issues

- Wrong cache association for FSObject,
  [Pending] http://www.zope.org/Collectors/CMF/255

- CMFSetup: Windows exports contain CR/LF, LF and even CR newlines,
  [Pending] http://www.zope.org/Collectors/CMF/266

- FSPropertiesObject.py cannot handle multiline input for lines, text 
attributes,
  [Deferred] http://www.zope.org/Collectors/CMF/271

- Can't invalidate skin items in a RAMCacheManager,
  [Pending] http://www.zope.org/Collectors/CMF/343

- CMFSetup: Workflow Tool export fails with workflows which have scripts,
  [Pending] http://www.zope.org/Collectors/CMF/373

- CMFCore.Skinnable.SkinnableObjectManager can merge skin data,
  [Pending] http://www.zope.org/Collectors/CMF/375

- Proxy Roles does't work for a Script using portal_catalog.searchResults,
  [Pending] http://www.zope.org/Collectors/CMF/380

- WorkflowAction deprecated warning should not printed for WorkflowMethod,
  [Pending] http://www.zope.org/Collectors/CMF/388

- workflow notify success should be after reindex,
  [Pending] http://www.zope.org/Collectors/CMF/389


Pending / Deferred Features

- Favorite.py: queries and anchors in remote_url,
  [Pending] http://www.zope.org/Collectors/CMF/26

- DefaultDublinCore should have Creator property,
  [Pending] http://www.zope.org/Collectors/CMF/61

- path criteria on Topic should honor VHM,
  [Pending] http://www.zope.org/Collectors/CMF/111

- Document.py: universal newlines,
  [Pending] http://www.zope.org/Collectors/CMF/174

- Add condition for transition's action like other action,
  [Pending] http://www.zope.org/Collectors/CMF/207

- Major action enhancement,
  [Pending] http://www.zope.org/Collectors/CMF/232

- portal_type is undefined in initialization code,
  [Pending] http://www.zope.org/Collectors/CMF/248

- CMFTopic Does Not Cache,
  [Deferred] http://www.zope.org/Collectors/CMF/295

- Wishlist: a flag that tags the selected action.,
  [Pending] http://www.zope.org/Collectors/CMF/301

- CMFDefault should make use of allowCreate(),
  [Pending] http://www.zope.org/Collectors/CMF/340

- Nested Skins,
  [Deferred] http://www.zope.org/Collectors/CMF/377

- CatalogVariableProvider code + tests,
  [Pending] http://www.zope.org/Collectors/CMF/378

- manage_doCustomize() : minor additions,
  [Pending] http://www.zope.org/Collectors/CMF/382

- First Day of Week,
  [Pending] http://www.zope.org/Collectors/CMF/400



___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


[Zope-CMF] Re: using GenericSetup to add non-content objects

2006-02-23 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

yuppie wrote:
 Hi Rob!
 
 Rob Miller wrote:
 
 i'm trying to use GenericSetup to add tool-like objects to my site at
 creation time.  i say tool-like because the objects in question (RAM
 and
 HTTP cache managers) act as tools, but they have constructors that
 require
 additional arguments... the current tool.py importer assumes that the
 constructor for a tool doesn't take any arguments.

 neither is the content importer appropriate, since these aren't content
 objects.  is there some straightforward way to add arbitrary objects to
 the root of the site that i'm missing?  if not, how would folks feel
 about
 some slight changes to the tool.py to allow for additional constructor
 arguments to be specified?

 on a related note, i'd also like to allow tool titles to be specified in
 toolset.xml.  anyone have a problem w/ this being added to tool.py?
 
 RAM and HTTP cache managers just require the object id as argument. +1
 for fixing this id issue in the toolset handler.
 
 But everything else like titles are properties of the tool itself that
 have nothing to do with the container and might need tool-specific setup
 code. Allowing to set arbitrary arguments in 'toolset.xml' violates the
 current structure of the profiles. So -1 for supporting other arguments
 than id.

Agreed.  I think there is support for an optional tool ID lying around
somewhere in there;  maybe I dropped it on the floor?

As a workaround for tools which require extra arguments, but for which
several possible stock configurations are possible, one could register
a factory other than the class itself (this won't scale against large
numbers of arguments or possible values, obviously).


Tres.
- --
===
Tres Seaver  +1 202-558-7113  [EMAIL PROTECTED]
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFD/aOl+gerLs4ltQ4RAvSnAJ9lHOG5l1lcvTsQIoOF3lISQ2CyEACfV3eK
+pMbl+rfh1Pq2NCX5p4IgYc=
=qivj
-END PGP SIGNATURE-

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


[Zope-CMF] Re: [dev] Portal status messages and i18n: a proposal

2006-02-23 Thread Hanno Schlichting
Hi yuppie.

As the creator of the mentioned statusmessages product and the current
Plone i18n team lead I'm most interested in a general or at least
extensible solution to this.

The number one reason for the whole approach of the statusmessages
product was, that I wanted to use MessageID's (Messages) to mark all
portal status messages so they get automatically extractable. In Plone
there are dozens of these messages and time has taught us that nobody
updates any pot files just because he adds a missing dot in some message.

The second reason was indeed the same you mentioned: The problem of
third party products which currently have to use the domain of the
main_template. Message(ID)s are always translated in their own domain
thus eliminating this problem too.

Now the third thing the statusmessages product tries to solve is a
usability problem. Consensus in the Plone community has been that adding
portal status messages to the query string is bad as the URL should be
simple and bookmarkable and reloading a page which does not trigger an
action (like object deletion) should also not mention any message for
its success.

I think the third goal is something CMF should not enforce and is a
Plone specific detail, but the two aforementioned goals are general
valid ones.

So what I would like to see for CMF is a in the Zope3-way extensible
solution, meaning a very simple interface that I could adapt or overwrite.

The statusmessages product introduces a global utility to add portal
status messages to, but your implementation sounds a lot more like a
case for an adapter for the REQUEST and RESPONSE.

I had implemented the statusmessages product in this way first but
switched to a utility later as I needed a place to store the messages.

Of course I'm willing to help or relicense / integrate anything from the
statusmessages product in CMF if anyone should want this ;)

This is the interface for IMessage:

class IMessage(Interface):
A single status message.


message = Attribute('The text of this message. Usally a Message
object.')

type = Attribute('The type of this message. Used to differentiate
messages by css styles.')

A short snippet of one of my older tests looked like this:

from Products.statusmessages.interfaces import IStatusMessage
from Products.statusmessages.statusmessage import STATUS_KEY

def testAdapter(self):
request = self.app.REQUEST
status = IStatusMessage(request)

# the second parameter is a type argument
status.addStatusMessage('test', 'info')
self.failUnless(request[STATUS_KEY]==status.getStatusMessages())

status.addStatusMessage('test2', 'warn')

# show returns and implictly deletes the messages
messages = status.showStatusMessages()
self.failUnless(len(messages)==2)
self.failUnless(len(status.getStatusMessages())==0)

The whole never really polished code is at:
http://svn.plone.org/svn/collective/statusmessages/branches/initial-implementation-as-adapter/

It enhances the current implementation in two ways: first status
messages have an additional type argument which can be used to
differentiate them by css styles. Typical values are 'info', 'warn' and
'error'. Second: It's possible two add more than one portal status
message at the same time.

Of course the above mentioned code stored the messages directly in the
REQUEST instead of the query string and was only implemented as a
fallback mode where the usual way would have been to use sessions but it
should mainly show the approach using an adapter for the BrowserRequest.

Both additional features don't have to be implemented for CMF but could
be added through the Plone specific add-on module.

Now what's your opinion on encapsulating the translate/charset mangling
in such a way?

Yours,
Hanno

yuppie wrote:
 Hi!
 
 Currently the portal status message is always translated in the i18n
 domain of main_template if sent through a redirect. This makes it
 impossible to use different domains (and mappings or defaults).
 
 Add-on products might want to use their own i18n domain. CMFCalendar
 demonstrates that use case. Event changed. is currently not translated
 because of that issue.
 
 There are more sophisticated approaches than using the query string for
 status messages. Depending on your needs sessions or the statusmessages
 product (http://dev.plone.org/collective/browser/statusmessages) might
 be more appropriate.
 
 But I'd like to keep the solution used in CMF simple and don't want to
 create any dependencies on third party products. So I propose to resolve
 the issue like this:
 
 1.) Translate portal status messages and encode them with
 default_charset before they are added to the query string. To make this
 easier I'd like to add a translate function to CMFDefault utils.
 
 2.) Decode the messages again before they are passed to the
 main_template. No longer use i18n:translate= in the template.
 
 Comments are welcome! If there are no objections I'll implement this on
 the 

Re: [Zope-CMF] [dev] Portal status messages and i18n: a proposal

2006-02-23 Thread Lennart Regebro
On 2/23/06, yuppie [EMAIL PROTECTED] wrote:
 Currently the portal status message is always translated in the i18n
 domain of main_template if sent through a redirect. This makes it
 impossible to use different domains (and mappings or defaults).

 Add-on products might want to use their own i18n domain. CMFCalendar
 demonstrates that use case. Event changed. is currently not translated
 because of that issue.

Afaik, using MessageIds solves this. If it doens't, that's a bug. :)

--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


[Zope-CMF] Re: [dev] Portal status messages and i18n: a proposal

2006-02-23 Thread yuppie

Hi Hanno!


Hanno Schlichting wrote:

As the creator of the mentioned statusmessages product and the current
Plone i18n team lead I'm most interested in a general or at least
extensible solution to this.

The number one reason for the whole approach of the statusmessages
product was, that I wanted to use MessageID's (Messages) to mark all
portal status messages so they get automatically extractable. In Plone
there are dozens of these messages and time has taught us that nobody
updates any pot files just because he adds a missing dot in some message.


CMF 2.0 does the same (at least for about 90% of the messages) and will 
ship with automatically extracted pot files.


But I don't understand what this has to do with the statusmessages 
product. As long as we just want to mark the message strings we can 
still use the old machinery.



The second reason was indeed the same you mentioned: The problem of
third party products which currently have to use the domain of the
main_template. Message(ID)s are always translated in their own domain
thus eliminating this problem too.

Now the third thing the statusmessages product tries to solve is a
usability problem. Consensus in the Plone community has been that adding
portal status messages to the query string is bad as the URL should be
simple and bookmarkable and reloading a page which does not trigger an
action (like object deletion) should also not mention any message for
its success.

I think the third goal is something CMF should not enforce and is a
Plone specific detail, but the two aforementioned goals are general
valid ones.


Agreed.


So what I would like to see for CMF is a in the Zope3-way extensible
solution, meaning a very simple interface that I could adapt or overwrite.

The statusmessages product introduces a global utility to add portal
status messages to, but your implementation sounds a lot more like a
case for an adapter for the REQUEST and RESPONSE.

I had implemented the statusmessages product in this way first but
switched to a utility later as I needed a place to store the messages.

Of course I'm willing to help or relicense / integrate anything from the
statusmessages product in CMF if anyone should want this ;)


Great!


It enhances the current implementation in two ways: first status
messages have an additional type argument which can be used to
differentiate them by css styles. Typical values are 'info', 'warn' and
'error'.


This sounds quite useful to me and I'd like to see that in CMF too.


Second: It's possible two add more than one portal status
message at the same time.


I'm not sure if this is an advantage. IMHO the status message should 
provide a summary.



Of course the above mentioned code stored the messages directly in the
REQUEST instead of the query string and was only implemented as a
fallback mode where the usual way would have been to use sessions but it
should mainly show the approach using an adapter for the BrowserRequest.

Both additional features don't have to be implemented for CMF but could
be added through the Plone specific add-on module.

Now what's your opinion on encapsulating the translate/charset mangling
in such a way?


I agree with your goals and I did consider similar solutions myself. But 
the CMF 2.0 beta is scheduled for this weekend, so I did focus on what 
can be done in that short time.


Besides the translate function everything I propose is done in the 
CMFDefault skin and therefor not used in CPS or Plone. For now I don't 
plan to add any API.


I'd love to see a more frameworkish solution in CMF 2.1 that uses the 
query string implementation by default, but allows to use statusmessages 
or a session based solution alternatively.



Cheers,

Yuppie

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests