Re: [Zope-dev] ZPatterns: SAVING doesn't tolerate missing attributes

2001-01-06 Thread Steve Alexander

Steve Spicklemire wrote:

> Hi Steve,
> 
>Could you let some other value represent no car? (e.g., _.None?).
> 
> untested... 
> 
> WITH CompanyCars.getCar(self.car_id) or NOT_FOUND COMPUTE
>car=RESULT,
>car_registration=registration
> OTHERWISE LET
>car=_.None
>car_registration="no car"
> 
> WHEN OBJECT CHANGED CALL
>HAS_CHANGED('car_id') and
>(self.car_id and CompanyCars.getItem(self.car_id).decommission(),
> ORIGINAL['car_id'] and (OLD['car'] and OLD['car'].commission()))
> SAVING car
> 
> Would that work?

Sure, that would work.

The workaround I've chosen is to use
   CompanyCars.getItem(ORIGINAL['car_id']).commission()
in place of
   OLD['car'].commission()

Oh, and I jsut noticed, I had commission and decommission the wrong way 
around in the example :-)

I'd still prefer SAVING to tolerate not-found attributes, though.

--
Steve Alexander
Software Engineer
Cat-Box limited
http://www.cat-box.net


___
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: SAVING doesn't tolerate missing attributes

2001-01-06 Thread Steve Spicklemire


Hi Steve,

   Could you let some other value represent no car? (e.g., _.None?).

untested... 

WITH CompanyCars.getCar(self.car_id) or NOT_FOUND COMPUTE
   car=RESULT,
   car_registration=registration
OTHERWISE LET
   car=_.None
   car_registration="no car"

WHEN OBJECT CHANGED CALL
   HAS_CHANGED('car_id') and
   (self.car_id and CompanyCars.getItem(self.car_id).decommission(),
ORIGINAL['car_id'] and (OLD['car'] and OLD['car'].commission()))
SAVING car

Would that work?

-steve

> "SA" == Steve Alexander <[EMAIL PROTECTED]> writes:

SA> In SkinScript such as

SA>WHEN eventspec CALL expression SAVING mementolist

SA> if any of the mementos in mementolist are not found, the
SA> script raises a KeyError.


___
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] ZPatterns: SAVING doesn't tolerate missing attributes

2001-01-06 Thread Steve Alexander

In SkinScript such as

   WHEN eventspec CALL expression SAVING mementolist

if any of the mementos in mementolist are not found, the script raises a 
KeyError.

I'd like a way of saving a memento if it exists, or NOT_FOUND otherwise.

For example, an Executive might have a CompanyCar.

WITH CompanyCars.getCar(self.car_id) or NOT_FOUND COMPUTE
   car=RESULT,
   car_registration=registration
OTHERWISE LET
   car=NOT_FOUND,
   car_registration="no car"

When an Executive changes her car for a different one, I want to perform 
certain actions on the old car, and certain on the new car:

WHEN OBJECT CHANGED CALL
   HAS_CHANGED('car_id') and
   (self.car_id and CompanyCars.getItem(self.car_id).decommission(),
ORIGINAL['car_id'] and OLD['car'].commission())
SAVING car

However, I can't do this if the executive is being assigned a car from a 
state of having no car. It fails with a KeyError because the ZPatterns 
machinery can't save "car".

--
Steve Alexander
Software Engineer
Cat-Box limited
http://www.cat-box.net


___
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 )