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

Andy McKay andym@ActiveState.com
Fri, 3 Nov 2000 09:45:49 -0800


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

----- Original Message -----
From: "chip johansen" <pearlzope@hotmail.com>
To: <BowyerA@logica.com>
Cc: <zope@zope.org>
Sent: Friday, November 03, 2000 9:01 AM
Subject: Re: [Zope] Help wanted on Zope ZClasses/DTML please.


> 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.
>
>
> _______________________________________________
> 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 )
>