[Zope-dev] basci properties

2000-10-07 Thread Robin Becker

I want to create a ZClass that is essentially a folder with some added
properties. I can see no way to add to the Basic properties of my
ZClass.

Is there a way to do that?
-- 
Robin Becker

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Refresh and debugging product creation issues.....

2000-10-07 Thread Steve Spicklemire


Debugging products is a pain... restarting Zope all the time is a Pain

THANK GOD for Shane Hathaway. ;-)

I am delighted to report general success with the Refresh product!  My
only problem is while debugging the process of creating new EMarket
instances, I find that every time I run 'Refresh' I get a new
"EMarket" in the 'Available Objects' popup. A quick test of other
Products shows the same behavior. 

Soo... I snooped through the product creation code and found
that Products.meta_types was being unconditionally appended to
every time context.registerClass was called so I changed
my initialize to this:

def initialize(context):

import Products

context.registerClass(
EMarket.EMarket,
permission='Add EMarkets',
constructors=(EMarket.addEMarketForm,
  EMarket.addEMarket),
icon='emarket.gif',
)

found_count = 0

new_products_meta_types = []

for index in range(len(Products.meta_types)):
if Products.meta_types[index]['name'] == EMarket.EMarket.meta_type:
found_count = found_count + 1
if found_count == 1:
new_products_meta_types.append( Products.meta_types[index] )
else:
new_products_meta_types.append( Products.meta_types[index] )

Products.meta_types = tuple( new_products_meta_types)

In other words... only include the original version of EMarket.EMarket.meta_type
in the Product.meta_types tuple... if there are others... leave them out.

...and that seems to have solved the problem

Does this seem like an OK idea?

thanks,
-steve


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Strange Error - in collector yet?

2000-10-07 Thread Lalo Martins

On Thu, Oct 05, 2000 at 10:01:15AM +0100, Chris Withers wrote:
 Lalo Martins wrote:
  
  This is on Zope 2.2.1. I'd really appreciate some clues on how
  to bust these ghosts.
 
 Have you put a full description in the bug collector yet?

Now it is. It was assigned number 1676.

I also busted my ghosts - by manually manipulating the ZODB via
Python. Felt kind like a brain surgery - on myself, using a
paperclip, a pencil and a pocket mirror. But it worked.

(To the tune of the Ghostbusters Theme by Ray Parker Jr.)

"An invisible ZClass sleeping in your bed? Who you're gonna
call? Py-thon!"

[]s,
   |alo
   +
--
  Hack and Roll  ( http://www.hackandroll.org )
News for, uh, whatever it is that we are.


http://zope.gf.com.br/lalo   mailto:[EMAIL PROTECTED]
 pgp key: http://zope.gf.com.br/lalo/pessoal/pgp

Brazil of Darkness (RPG)--- http://zope.gf.com.br/BroDar

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] ZPatterns design questions

2000-10-07 Thread Michael Bernstein

"Phillip J. Eby" wrote:
 
 How (and why) do you distinguish between UI implementation
 and presentation logic?
 
 Presentation logic lives with an object's class, and deals with what that
 object knows about presenting itself.  UI implementation is "glue"
 presentation that lives in a Specialist for use by any object that needs to
 present UI related to objects of the kind the Specialist handles.  The
 terms used here are "official" terminology with precise definitions, btw.
 I am just trying to answer your questions as best I know how.

I'm not sure, but did you mean 'are not' in that last
sentence?

 An example of presentation logic would be a method which displays a form to
 perform some action on the object.  E.g., let's say we have a "Task" object
 with an "Assign To" form.  Tasks are assigned to Assignees, but in a given
 application, there could be many possible kinds of Assignees and the means
 of selecting an Assignee is context-dependent.  Thus, a Task's presentation
 logic cannot implement such a thing directly; it must ask the Assignees
 specialist for a code snippet (UI implementation) that displays an assignee
 selection sub-form within its "Assign To" form.
 [snip]
 The Assignees specialist is responsible for providing an appropriate UI
 implementation (hence the name) for this operation.  It could provide a
 dropdown list, a type-in box with a button to pop up a search window that
 lets you search the employee directory, or any number of other possible
 implementations that would get the necessary data back to the assignment
 method once the form was submitted.  We could include a simple
 implementation with our task management framework, and the application
 integrator would override it if needed for their situation.

Thanks, this is starting to make a lot of sense WRT reusable
frameworks.

Here is where my 'Specialist/Generalist' confusion came
from. It seems to me, that the simple implementation (you
might also call it the default implementation) for the
selector UI in your example should be contained in a
'Generalist' object that could be overridden by a
'Specialist'. This would help make crystal clear the line
between Presentation Logic and Implementation UI, and would
also serve as a useful starting point for creating the
overriding methods in the 'Specialist' by the framework
customizer.

  We have not yet released any actual frameworks based on ZPatterns, [snip]
 
 Isn't LoginManager a framework?
 
 Okay, you've got me there.  I tend not to think of it that way, if only
 because there are many things less than satisfactory about its current
 state of implementation.  For example, if we had it to do over again, I
 would re-work the internal API so that roles, domains, authentication,
 etc., could be controlled by plug-ins on the user sources.  At that point
 there would be no need for different kinds of user sources, as they would
 all be fully generic.  But anyway, I digress.

In light of my own dificulties in adding SMB authentication
to PersistentUserSouce.py, and Bill Andersons dificulties
with password encryption on some Unices, I think that this
would be a *very* worthwhile effort. Such a project might
also give you the mandate to get DC to fix the Zope internal
acl_users interfaces that were getting in your way.

How large of a project would this be?

Thanks for your patience in answering my questions. I think
I'm getting a good understanding of this approach, but I'm
still working on internalizing it.

Michael Bernstein.

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] ZPatterns design questions

2000-10-07 Thread Michael Bernstein

Steve Spicklemire wrote:

  - How does this product (simple though it is) exemplify the
  RIPP approach?
 
 pje I'm not sure that you can say it *exemplifies* the RIPP
 pje approach, although it certainly goes along with that
 pje approach.  My hesitation is mainly that it doesn't really
 pje show any of RIPP's major benefits, which are associated with
 pje framework re-use and integration.  For that, you really need
 pje to have more than one kind of object, with some kind of
 pje collaboration taking place.
 
 Hmm.. can anyone thing of a good collaboration 'partner' for
 a simple ToDo list? If it's not too complex.. I'd be happy to
 add it.

I've thought about this since yesterday, and the simplest
kind of 'partner' that I can imagine for a 'ToDo', would be
a 'Deliverable'.

A deliverable would probably have a title, it's own 'Done'
boolean property, and probably an optional DeliverableURL
property. I'm not sure if it would need it's own 'Doer'.

ToDo would need to be reworked so that it's 'Done' property
could only be set if all associated Deliverables (if any)
were also done (Steve McConnel (sp?) calls these 'binary
milestones').

What do you think, is that simple enough?

Michael Bernstein.

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] A good collaboration 'partner' ? Was: ZPatterns design questions

2000-10-07 Thread Spicklemire, Jerry

Hi Steve, and fellow ZPatterns Wannabees,

As to the sorts of things most of us need to keep track of that could tie
into a simple "ToDo" List, so far we've seen suggestions for an Address Book
and Deliverables. The first sounds kind of like a Contact List to me, or
maybe an Ownership or Collaboration List. A way to keep track of other folks
involved or concerned with each "ToDo" item. The second sounds like adding a
Status Field to each "ToDo" item, and defining what it takes for each to be
tagged as "Done". This might take the form of completed steps, finished
output, or whatever, making up a sort of mini-workflow.

In the a Normalization process of a tabular database each of these could be
seen as child tables, since there could be more than one Contact or
Deliverable for a "ToDo" item in the parent table.

While we're on the subject of fleshing out a "ToDo" schema, consider a
interfacing with a simple calendar, for task scheduling. This would enable
assignment of target dates, and dependencies. For example, if task B must be
done by the 37th of Penultember, the closer we get to the 37th, the "hotter"
task B gets. Furthermore, if task A must be at least halfway complete before
task B can be started, task A should heat up even sooner.

This is basically the sort of thing a Project Management system does. A
simple dependency model might be added in the form of a few "rules" based on
comparing status, dependency, and target dates. "Hot" items could be
highlighted for special attention, when a critical threshold is crossed.

This may be too ambitious, or even counter productive. I realize the point
is not to create the ultimate Personal Information Manager application, but
to illustrate how ZPatterns aids integration across "unrelated"
applications. Still, integrating an Address Book, Calendar, and ToDo list
isn't all the far fetched, as each one could have been created as handy
little stand alone utilities.

On the other hand, knowing you're working on something that could actually
turn out to be useful might assist in the motivation process! 

Later,
Jerry S.

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )