[Zope] Help wanted on Zope ZClasses/DTML please.

chip johansen pearlzope@hotmail.com
Fri, 03 Nov 2000 12:01:59 EST


Instead of ...

<dtml-call
"manage_delObjects('REQUEST['id_to_delete']')">

try

<dtml-call
"manage_delObjects('REQUEST.id_to_delete')">

Chip Johansen

>From: "Bowyer, Alex" <BowyerA@logica.com>
>To: "'zope@zope.org'" <zope@zope.org>
>Subject: [Zope] Help wanted on Zope ZClasses/DTML please.
>Date: Fri, 3 Nov 2000 16:05:49 +1100
>
>Hi,
>
>I have only just started developing in Zope over this last week. I like it 
>a
>lot, but I am having problems finding solutions to some of my more specific
>problems in the various zope documentations. I am hoping that if I describe
>my problems, one of you more-experienced Zope users out there will be able
>to help me.
>
>First some background:
>
>Basically I have written a news page which allows you to add/edit/delete
>articles from it. It is similar in some ways to the Zope HowTo "Build a
>searchable job board". It revolves around two classes:
>
>(UA stands for Update Australia, the name of the news page)
>
>UAArticle : A single article, to be included on the page.
>---------
>Properties:
>  article_title,article_author and article_text (self-explanatory)
>DTML Methods:
>  index_html - renders the data from the three properties into HTML ready 
>for
>inclusion in the news page
>  edit - a page with a form to allow you to modify the content, submits to
>"update"
>  update - processes the form results from "edit", updates the properties 
>and
>redirects
>
>UAPage : the page itself, inherits from ObjectManager and has Add UAArticle
>permission defined. Each instance contains 0 or more UAArticles.
>------
>Properties:
>  issue_date, issue_number, intro_text (self-explanatory)
>Methods:
>  index_html - renders the page to HTML, both from these properties and by
>calling the index_html of each subcomponent UAArticle.
>  edit - a set of forms for modifications to edit the above three 
>properties
>and add a new article, or select an article to edit or delete.
>  update - processes updates to the UAPage properties that have been made 
>on
>the edit page.
>  edit_article - once an article is selected and the Edit button is 
>clicked,
>this finds the article, calls the edit method and gives feedback.
>  add_article - a form to create a new article and add it to the UAPage.
>  create_article - processes the data from the add_article form and 
>actually
>makes the object and adds it.
>  delete_article - once an article is selected and the Delete button is
>clicked, this finds the article, deletes it and gives feedback.
>
>Now to the problems I have got:
>
>1) I cannot get my delete_article method to work. I figured I need to use
>manage_delObjects, but I can't find a working example to copy from and my
>code doesn't seem to do anything. The following code gets called by a form
>with a field called article_to_delete which is the title of the article we
>want to delete:
>
><dtml-var standard_html_header>
><!-- set a flag to NULL, change it if found -->
><dtml-call "REQUEST.set('id_to_delete','NULL')">
><!-- get the title of the article to delete -->
><dtml-let the_match="REQUEST['article_to_delete']">
><!-- search for the article -->
><dtml-in objectValues>
>   <dtml-with sequence-item><dtml-with propertysheets><dtml-with
>UAArticleClassPropertySheet>
>   <dtml-if expr="article_title==the_match">
>     <dtml-call "REQUEST.set('id_to_delete',title_or_id)">
>     <!-- found it, update the flag -->
>   </dtml-if>
>   </dtml-with></dtml-with></dtml-with>
></dtml-in>
><!-- test the flag to see if found -->
><dtml-if expr="REQUEST['id_to_delete']=='NULL'">
>   <!-- not found -->
>   <h2>Article not found</h2>
>   <P>Could not find the article to delete.</P><P><A HREF=edit>Return to
>maintenance page</A></P>
><dtml-else>
>   <!-- found -->
>   <dtml-let the_id="REQUEST['id_to_delete']">
>   <!-- do the deletion - this is the bit that doesn't work -->
>   <dtml-call "manage_delObjects('the_id')">
>   <h2>Article deleted</h2>
>   <P>Deleted article '&dtml-the_match;' (id='&dtml-the_id;').</P><P><A
>HREF=edit>Return to maintenance page</A></P>
>   </dtml-let>
></dtml-if>
></dtml-let>
><dtml-var standard_html_footer>
>
>This gets an error that the_id does not exist. But I can't put <dtml-call
>"manage_delObjects('REQUEST['id_to_delete']')"> because that is quotes
>within quotes within quotes. I also tried  <dtml-with the_id><dtml-call
>"manage_delObjects()"></dtml-with> but that doesn't seem to do anything.
>What is the correct way to use manage_delObjects?
>
>2) I need to be able to make a "Back" button on the UAArticle's edit page
>that will return to the UAPage's edit page. The problem is that if I use <A
>HREF=edit> it just goes to the edit page of the object, because our current
>location is within the UAArticle not the UAPage. Is there a way to get the
>name of an object's parent (or its own name for that matter) and use it to
>construct a URL?
>
>3) When redirecting or linking to a page I have already visited, how can I
>force a refresh? I tried the JavaScript window.location.reload(true) but I
>think that is only supported by Netscape. It didn't work in IE5 for me
>anyway.
>
>4) What is the best way to handle security with ZClasses. In my example I
>want the index_html pages to be public but everything else to require a
>password. I managed to require a password for a particular instance of the
>UAPage, but that affects both the index_html and the edit pages.
>
>Thanks very much for taking the time to read this - I hope someone can put
>me out of my misery! - I have been fiddling around with the code for ages,
>getting nowhere fast, and the documentation wasn't much help in these 
>areas.
>It just seems to cover the basics of ZClasses.
>
>Regards,
>
>Alex
>
>==================================
>Alex Bowyer
>IT Contractor, Logica Australasia
>Tel    : +61 2 9202 8130
>Fax    : +61 2 9922 7466
>E-mail : bowyera@logica.com
>WWW    : http://www.logica.com.au/
>==================================
>
>_______________________________________________
>Zope maillist  -  Zope@zope.org
>http://lists.zope.org/mailman/listinfo/zope
>**   No cross posts or HTML encoding!  **
>(Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )
>

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at 
http://profiles.msn.com.