Thanks Peter, The conditional within the dtml did the trick. This is a continuation of this issue (a bit cumbersome):
http://groups.yahoo.com/group/zope/message/150345The solution that I have come to is to simply set a cookie and serve up the correct fields based on the cookie:
<dtml-if "17 in list_map_dir_id and 21 not in list_map_dir_id">
<dtml-call "RESPONSE.setCookie(list_type,'lodge')">
<dtml-elif "21 in list_map_dir_id and 17 not in list_map_dir_id">
<dtml-call "RESPONSE.setCookie(list_type,'resto')">
<dtml-elif "21 in list_map_dir_id and 17 in list_map_dir_id">
<dtml-call "RESPONSE.setCookie(list_type,'restolodge')">
<dtml-else>
<dtml-call "RESPONSE.setCookie(list_type,'other')">
</dtml-if>
<dtml-in insert_listing1_sql>
id: <dtml-var newid>
<dtml-call "REQUEST.set('list_map_list_id', newid)">
</dtml-in>
<dtml-call insert_listing_map_sql>
<dtml-call
"RESPONSE.redirect('add_listing2?list_id=%s'%(REQUEST['list_map_list_id']))">
add_listing2 is the form that displays restaurant specific fields (price, cc's accepted) or lodge (type, price range, internet access) or both...those tricky motel/restaurants in rural NM...
It seems that if I try this after the list is inserted, it comes out of MySQL as a string, not integer and therefore I could not iterate to check membership in the list.
I am sure there are more elegant ways to do this - the client wanted the data in a RDBMS for portability....yah yah yah....
Thanks for you help! Chris Christopher Rivard Clearwired Web Services 5345 Wyoming NE Suite 200C Albuquerque, NM 87109 office/ 505.217.3505 mobile/ 505.301.4010 toll-free/ 866.430.2832 fax/ 505.217.3506 e/ [EMAIL PROTECTED] w/ www.clearwired.com Peter Bengtsson wrote:
On 12/4/05, J Cameron Cooper <[EMAIL PROTECTED]> wrote:Christopher Rivard wrote:Hello, I'm am trying to check for the membership of items in a list and think I'm missing something. How is this done in dtml? List allids: [15,16,17,18] Check for multiple items in the list: <dtml-in allids prefix="loop"> <dtml-if expr="loop_item == 17"> something <dtml-elif expr="loop_item == 17 and loop_item != 18"> doesn't work </dtml-if> </dtml-in> The goal is to check for combinations: 17 and not 18 18 only 17 only 17 and 15 18 and 16 ...combinations. I don't think that I really want to loop through the list, just want to check membership in the list.In Python, you can simply ask:: 17 in allids 18 not in allids and so forth as boolean expressions.He can do this in DTML too. <dtml-if "17 in allids"> you're here! </dtml-if>Just make sure that the elements of the list you're getting are what you think they are. If you ask about the integer 17 and the list actually has a string "17" they won't match. You can either adjust what you test or use something like the 'int' function to "cast". --jcc -- Building Websites with Plone http://plonebook.packtpub.com/ _______________________________________________ Zope maillist - [email protected] http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )-- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com
_______________________________________________ Zope maillist - [email protected] http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! **(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )
