[Zope-dev] Re: manage_workspace = index_html

2001-05-15 Thread The Doctor What

* Bill Anderson ([EMAIL PROTECTED]) [010515 14:45]:
 With mozilla, please state the version/buildnumber/daily-build-date.
 
 I am using the latest 'release' and it works fine here, always has.

Nightly build 2001051212 still exhibits the problem.
0.9 works fine.

Ciao!

-- 
Line Printer paper is strongest at the perforations.

The Doctor What: Need I say more?http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

___
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] ZSQL and Normalized databases (or why ZSQL sucks)

2001-04-20 Thread The Doctor What

* Adrian Hungate ([EMAIL PROTECTED]) [010420 05:06]:
 May be I am misunderstanding your problem here, but are you suggesting that
 
 SELECT tab1.col1 col1, tab2.col1 col2
 FROM ... etc ...
 
 Does not expose 'col1' and 'col2' in the namespace for you? This is not my
 experience. Ok, I only have about 50 ZSQL methods on my intranet but they
 are all complex queries with column naming clashes. If it failed to work as
 you are suggesting, I would not have continued using Zope - Database
 connectivity was one of my criteria.

I mean that:
   SELECT tab1.col1, tab2.col1
   FROM ... etc ...

Does not expose 'tab1.col1' and 'tab2.col1'.  In otherwords, it
doesn't gracefully handle name clashes.  I realize that calling out
the variable 'tab1.col1' out of the namespace is a pain, but
(hopefully) in the future it would be made easier.

Perhaps like so:
dtml-var name='tab1.col1' (note single quotes)

 The normality (or abnormality) of your databases should make no difference,
 (Except to how complex your individual SQL statements become). What database
 are you running against? Maybe you have hit a database connector bug?

Postgresql.  I've tried all three of the DAs: Psyco, Popy and
PostresDA

[Nice Example Snipped]

What DB was that?  The syntax isn't what I expect from Postgres,
Tandem and MySQL.

 As far as the 'foo=0' example, if you set foo to 0, and do nothing in
 between to change it, of course a test for not equal to 0 will fail, what
 would you expect?

Here is the example again, but better:
paramfoo:int=0/param
dtml-if expr="foo  0"Not Zerodtml-elseZero/dtml-if

If called like so:
dtml-var expr="zsql_example(foo=200)"

It will ALWAYS print 'Zero'.

This makes it hard to do something with a param that defaults to
nothing like:

paramcategory_id=""/param
SELECT
url.id,
url.name
dtml-if category_id,
xref_url_category.categoryid as category_id,
/dtml-if
FROM
url
dtml-if category_id,
xref_url_category
/dtml-if
dtml-sqlgroup where
dtml-if category_id
  dtml-sqltest category_id column="xref_url_category.categoryid" type="int"
  dtml-and
  xref_url_category.urlid = url.id
/dtml-if
/dtml-sqlgroup


You can't even replace the param with "category_id:int=0" and then
check for category_id = 0 in the dtml-ifs.

I finished my project, so I'm happy for the moment.  I have another
ZSQL project (a DVD, Comic Book and Video tracker for my Manga and
Anime), so I'll be back.

Thanks to everyone who spent time to help out.

Ciao!

-- 
Who are you going to believe, me or your own eyes?
-- Groucho Marx

The Doctor What: Guru to the Godshttp://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

 PGP signature


[Zope-dev] ZSQL and Normalized databases (or why ZSQL sucks)

2001-04-19 Thread The Doctor What

Does any one have an example of ZSQL being used witha normalized
database?  Or is ZSQL just useless?

Near as I can tell, between:
* Broken type marshalling
* Loosing the variable between the form and dtml-if
* Inability to handle table.field names for variables
* And enough flexibility to work around the above problems

This makes ZSQL extreamely nasty, and impossible to use with a
normalized database.

What's the point?  ZSQL sucks, how do I talk to the DB directly?

Yeah, I keep almost getting this to be useful.  But damn it if I
don't keep hitting a brick wall.  And there are no complete examples
or demos that I can find to load up.

Irritatedly yours,
DocWhat

-- 
I don't want to achieve immortality through my work... I want to achieve it through 
not dying.
 -- Woody Allen

The Doctor What: A really hip dude   http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

 PGP signature


Re: [Zope-dev] ZSQL and Normalized databases (or why ZSQL sucks)

2001-04-19 Thread The Doctor What

* The Doctor What ([EMAIL PROTECTED]) [010419 11:57]:
 Does any one have an example of ZSQL being used witha normalized
 database?  Or is ZSQL just useless?
 
 Near as I can tell, between:
 * Broken type marshalling
 * Loosing the variable between the form and dtml-if
 * Inability to handle table.field names for variables
 * And enough flexibility to work around the above problems
 
 This makes ZSQL extreamely nasty, and impossible to use with a
 normalized database.
 
 What's the point?  ZSQL sucks, how do I talk to the DB directly?
 
 Yeah, I keep almost getting this to be useful.  But damn it if I
 don't keep hitting a brick wall.  And there are no complete examples
 or demos that I can find to load up.
 
 Irritatedly yours,
 DocWhat

I would like to apologize for being particularly pissy.  Things are
quite as bad as I say up there...

My third point is only half true.  I can have SQLTEST specify a
column name (aka a field):
dtml-sqltest somevarname column="SQLTABLE.sqlfield" type...

This makes things work MUCH better.  So there are work arounds.  But
this doesn't excuse this not working:
SELECT  table.field1, table.field2 FROM 

and then:
dtml-var name="table.field1"  --doesn't work
dtml-var name="field1" -- does work

I know that the '.' has a special meaning, but there should be ways
around this if the use wants.

I still would love some examples.  Do people end up with 4 ZSQL
objects per thing they manipulate in their database?:
UPDATE, SELECT, INSERT and DELETE?  Or do they mix them somehow?

Ciao!


-- 
Who are you going to believe, me or your own eyes?
    -- Groucho Marx

The Doctor What: Need I say more?http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

 PGP signature


Re: [Zope-dev] ZSQL and Normalized databases (or why ZSQL sucks)

2001-04-19 Thread The Doctor What

* Andy McKay ([EMAIL PROTECTED]) [010419 14:26]:
 Whats the problem with ZSQL? It calls a sql db with the sql statement, what
 more could you want. If you want more, use python.

How?!?!  Documentation? Examples?

Ciao!

-- 
A fail-safe circuit will destroy others.
  -- Klipstein

The Doctor What: Guru to the Godshttp://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

 PGP signature


Re: [Zope-dev] ZSQL and Normalized databases (or why ZSQL sucks)

2001-04-19 Thread The Doctor What

* Paul Erickson ([EMAIL PROTECTED]) [010419 17:02]:
 The Doctor What wrote:
   * Loosing the variable between the form and dtml-if
 
 I don't understand this.  I'm assuming that you are losing values that
 are not in your argument list.  All you have to do is add the arguments.

That isn't what I mean.  Try this (typed in, so it may need to be
adjusted):
paramfoo=0/param
dtml-if expr="foo != 0"Life is good/dtml-if

You'll NEVER get Life is good to print out.  EVER.  This is because
ZSQL is setting foo to 0.  But dtml-var and dtml-sqlvar both work.

   * Inability to handle table.field names for variables
   * And enough flexibility to work around the above problems
  
   This makes ZSQL extreamely nasty, and impossible to use with a
   normalized database.
 
 Database normalization isn't really an issue.  It sounds like you're
 really just having problems with the syntax of joins.

Nope, can do joins.  Been doing joins (mainly inner).  Not the
problem.  The problem is that if I have tables like:
Table1
--
id
name
desc

Table2
--
id
Table1ID   -- Foreign Key thrown in for fun.
name
desc

And I join them, then I MUST rename all the selects using AS:
select
  Table1.id as id1
  Table1.name as name1
...etc

Because I can't have zsql put the variables in the caller's
namespace as "Table1.id".  It puts them in as "id" (without the AS).

Fortunately, I found the column for sqltest (which is the other end
of ZSQL):
dtml-sqltest id1 column="Table1.id" 

  
   What's the point?  ZSQL sucks, how do I talk to the DB directly?
 
 Grab the Python database adapter and write some python classes or
 external methods to do what you need.

Can I use them from a python script?  If not, what's the point?  I
mean: External methods are nice to have when you have *no other
choice*, but they aren't something I'd want to debug and deal with
for object.

  This makes things work MUCH better.  So there are work arounds.
 
 This isn't a work-around, it is the way that it is intended to be used.

I didn't see a single example of it.  The Zope Book didn't mention
this at all (except as a single line reference).  I would *never*
have gone looking for the word column.  Why? It's a field!

 Again, I think that it's a matter of understanding how ZSQL works,
 rather than a limitation of ZSQL.  If you have column name conflicts,
 you can always use something like:
 
 SELECT a.field as a_field, b.field as b_field FROM ...
 
 Then refer to them in dtml like dtml-a_field; or dtml-var
 name="a_field"

Right, but you still have to do extra work to get them back into a
ZSQL object.  column lets you do that.  It's got no examples to help
out with.  It's documented once.  I didn't see it.  Life is better
now.

  I still would love some examples.  Do people end up with 4 ZSQL
  objects per thing they manipulate in their database?:
  UPDATE, SELECT, INSERT and DELETE?  Or do they mix them somehow?
 
 I typically wind up with a ZSQL method for each of the CRUD operations. 
 Sometimes I have separate selects methods for more complex joins, if the
 DTML code gets too ugly when I try to combine them into a single method.

 
 Example of a fairly typical join statement (for MySQL database):
 
 Arguments-
 begin_date:date end_date:date="2037-01-01"
 
 SELECT search_string, search_result,  search_date, result_category,
 legal_category.name
 FROM search_log LEFT JOIN legal_category ON
 search_log.result_category=legal_category.code
 
 dtml-sqlgroup required where
   dtml-sqltest name="begin_date" op="gt" type="nb"
   column="search_date"
 dtml-and
   dtml-sqltest name="end_date" type="nb" op="lt"
   column="search_date" optional
 /dtml-sqlgroup

Hey!  An example!

 Good Luck

Thanks.  So I'm still having trouble.  I can't get any of the list
examples to work.

I build a select multiple list, and then try to dtml-in on it.  It
doesn't seem to work.  REQUEST shows in it th other and form
namespaces, as a list, but I can't actually dtml-var it or anything.

Example:
qdtml-var dalistp
br
dtml-in VirtualRootPhysicalPath
ddtml-var sequence-itemb
/dtml-in
hr
dtml-var REQUEST

If you call this with this URL (substitute as needed):
http://docwhat.gerf.org:9673/links/test?dalist%0D%0A%3Alist=1dalist%0D%0A%3Alist=3dalist%0D%0A%3Alist=8

Which is the URL pattern formed by a SELECT name="dalist:list"
multiple

Then you get errors on dalist.  The examples at
http://www.zope.org/Members/AlexR/SelectionLists

Don't work as exactl above.

Help?

Ciao!

-- 
Outside of a dog, a book is a man's best friend.  Inside a dog it's too dark to read.
-- Groucho Marx

The Doctor What: Need I say more?http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

 PGP signature


Re: [Zope-dev] ZSQL and Normalized databases (or why ZSQL sucks)

2001-04-19 Thread The Doctor What

 Thanks.  So I'm still having trouble.  I can't get any of the list
 examples to work.
 
 I build a select multiple list, and then try to dtml-in on it.  It
 doesn't seem to work.  REQUEST shows in it th other and form
 namespaces, as a list, but I can't actually dtml-var it or anything.
 
 Example:
 qdtml-var dalistp
 br
 dtml-in VirtualRootPhysicalPath
 ddtml-var sequence-itemb
 /dtml-in
 hr
 dtml-var REQUEST
 
 If you call this with this URL (substitute as needed):
 
http://docwhat.gerf.org:9673/links/test?dalist%0D%0A%3Alist=1dalist%0D%0A%3Alist=3dalist%0D%0A%3Alist=8
 
 Which is the URL pattern formed by a SELECT name="dalist:list"
 multiple
 
 Then you get errors on dalist.  The examples at
 http://www.zope.org/Members/AlexR/SelectionLists
 
 Don't work as exactl above.
 
 Help?

My problem. I decoded the %0D and %0A (newline and space) and
figured out that I foo-barred a bit of code.  I'm happy again.  It
works great with only the %3A.  It *is* weird that it looked correct
on the REQUEST output. :-S

Thanks anyway.

Ciao!

-- 
If you want to make God laugh, tell him about your plans.
 -- Woody Allen

The Doctor What: Not that 'who' guy  http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

 PGP signature


Re: [Zope-dev] ZSQL and Normalized databases (or why ZSQL sucks)

2001-04-19 Thread The Doctor What

* Casey Duncan ([EMAIL PROTECTED]) [010419 17:45]:
 Reason: foo=0 is actually foo='0'. foo:int=0 should work like you want.

Same behaviour.  I opened a bug in the collector a while ago about
this:
http://classic.zope.org:8080/Collector/2053/view

A related bug:
http://classic.zope.org:8080/Collector/2045/view


 This is a function of your field naming convention more than anything.
 Granted you don't always have control over that. I am surprised that
 name="spam.eggs" doesn't work on sqltests (it works everywhere else).
 Are you explicitly saying name="..."? that could be the problem, bare
 quoting assumes expr="..." where periods are significant.

It works with sqltest, actually.  But since a lot of people have
examples of chaining the namespaces, this breaks that and adds more
work since you can't alias (via AS) to dotted names.

  Can I use them from a python script?  If not, what's the point?  I
  mean: External methods are nice to have when you have *no other
  choice*, but they aren't something I'd want to debug and deal with
  for object.
 
 Python scripts are quite helpful for calling ZSQL methods. Just remember
 to pass REQUEST or the arguments explicitly.

Yeah, I like that, but it's still not perfect, and the docs are
incomplete and scattered.  We need a system to pull together like
documents at zope.org

Ciao!

-- 
Line Printer paper is strongest at the perforations.

The Doctor What: Not that 'who' guy  http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

 PGP signature


Re: [Zope-dev] FTP interface being worked on?

2001-03-12 Thread The Doctor What

* Fred Wilson Horch ([EMAIL PROTECTED]) [010312 10:27]:
 Another serialized format that all Zope objects support is the XML
 interface, which exposes all the objects' guts.  With XML-RPC I
 envisioned being able to improve on the FTP interface by adding things
 like md5 checksums to determine if the local and remote objects are in
 synch.  I haven't looked too deeply, but presumably via XML you could
 support all of the management functionality that is currently provided
 by the HTML management interface.  So you could build a client with a
 rich feature set for managing Zope objects.

An idea might be to just impliment the rsync protocol, which does a
lot of this already.

Ciao!

-- 
"Laugh while you can, monkey boy!"
--Dr. Emilio Lizardo (Adventures of Buckaroo Banzai)

The Doctor What: fill in the blank http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

___
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] DTML Documents == DTML Methods that are anchored?

2000-12-29 Thread The Doctor What

What are the differences between DTML Documents and Methods
internally?  I was just thinking about the problems every new user
(and experienced users, every so often) have regarding DTML
Documents vs DTML Methods.

Aren't they really the same except that Documents are anchored (ie,
don't allow aquisition from the caller, but only from the location
of the Document)?

If that is true, couldn't they be simplified as a (example name)
DTML Object that had an "anchor" flag?

Just a thought.

Ciao!

-- 
So Buddha walks into a pizza parlor and says: "Hey, make me one with everything."

The Doctor What: Need I say more?http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

___
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] ZopeBug: No Last-Modified for misc_/.../*.gif objects!!!!

2000-11-16 Thread The Doctor What

* Dieter Maurer ([EMAIL PROTECTED]) [001116 16:17]:
 The Doctor What writes:
   I was looking at the cacheability of my website in zope, and saw
   that the misc_/OFSP/*.gif images (as in the icon objects) are 
   NOT cacheable because they don't return *any* date info.  If they
   *at least* returned a Last Modified, they'd be cacheable.
 My browser (Netscape 4.74) happily cashes these images.
 
 It is not clear, why a "Last Modified" header should be a precondition
 for caching.
 
 I would expect it is only necessary, if you told your browser
 (or other cache) to verify freshness for each request.
 If the browser has a "Last Modified", it sends an
 "If-Modified-Since" header and get a 304 response,
 if not.

Ah, but you see, I have a caching proxy! Squid.  My netscape cache's
the images (ie, writes them to disk) but they are overwritten
everytime.  Since I connect via modem, I can watch them repopulate
slowly.

Even if Netscape does hold on to them without a caching proxy, we
couldn't rely on that behavior.

This problem makes 'icon' an undesireable object to use.

Ciao!

-- 
King: Chiswick, remind me to send flowers to the King of France in sympathy for the 
death of his son.
Chiswick: The one you had murdered, My Lord
King: Yes, that's the fellow.
        --Blackadder I

The Doctor What: fill in the blank http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

___
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] ZopeBug: No Last-Modified for misc_/.../*.gif objects!!!!

2000-11-15 Thread The Doctor What

I was looking at the cacheability of my website in zope, and saw
that the misc_/OFSP/*.gif images (as in the icon objects) are 
NOT cacheable because they don't return *any* date info.  If they
*at least* returned a Last Modified, they'd be cacheable.

I looked at the Zope Source and it looks like misc_.py just calls
ImageFile objects.  Why aren't the ImageFile objects setting these
header info bits correctly?   I'm not very knowledgable about Zope
inside, but this seems like it should be happening.

A side effect of fixing this problem would be that the manage
screens would suddenly work much faster since the icons would not
need to be reloaded EVERY time!!

Here is the HEAD info from two ImageFile objects.  The first is in
the folder images which has a SiteAccess object that forces the
Cache-Control object, a normal Image would not have the
Cache-Control line.  The second is a misc_.py object:

checkhead http://docwhat.gerf.org:9673/images/thedoctorwhat 
HTTP/1.0 200 OK
Server: Zope/Zope 2.2.2 (source release, python 1.5.2, linux2)
ZServer/1.1b1
Date: Wed, 15 Nov 2000 19:06:23 GMT
Cache-Control: public, max-age=86400
Connection: close
Content-Type: image/png
Content-Length: 21717
Last-Modified: Wed, 15 Nov 2000 03:14:17 GMT

checkhead http://docwhat.gerf.org:9673/misc_/OFSP/Folder_icon.gif 
HTTP/1.0 200 OK
Server: Zope/Zope 2.2.2 (source release, python 1.5.2, linux2)
ZServer/1.1b1
Date: Wed, 15 Nov 2000 19:06:37 GMT
Connection: close
Content-Type: image/gif
Content-Length: 903

I have attached by stupid checkhead program.

Ciao!

-- 
I'd horsewhip you if I had a horse.
-- Groucho Marx

The Doctor What: Second Baseman  http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC


#!/usr/bin/perl -w
$| = 1;
use strict;

delete $ENV{'http_proxy'};

my $wget = "wget -q -s -O - " . join( ' ', @ARGV ) . "|";

open( FOO, $wget ) or die "Unable to run ``$wget'': $!";
while( FOO ) {
if( /^\s*$/ ) { last; }
print $_;
}
close( FOO );



Re: [Zope-dev] PythonMethods: Can't Slice context.REQUEST.PARENTS

2000-11-14 Thread The Doctor What

I got a reply from someone working on it.  It seems the answer is
that it doesn't exist yet, pending a change in ZOPE itself.

So I have to pass it in:
dtml-var expr="breadcrumbs(this())"

Not a big deal, but annoying.

I'll make the source available as soon as I coble together a
view-source method. :)

Ciao!

-- 
"Well, given that the universe is infinite, and that God is infinite, and that God 
created the universe, (pause) would you like a piece of toast?"
--Talkie Toaster (Red Dwarf episode: Dimension Jump)

The Doctor What: A Holtje Production http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

___
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] PythonMethods: Can't Slice context.REQUEST.PARENTS

2000-11-12 Thread The Doctor What

* Dieter Maurer ([EMAIL PROTECTED]) [001112 17:12]:
 The Doctor What writes:
   ...
   Now here is my next problem.
   
   Using context.REQUEST.PARENTS doesn't give me the DTML Document that
   called me (so to speak).
   
   I have:
   /test/new/foo_html
   
   My PARENTS shows Zope, Test, and New, but doesn't show foo_html.
 "PARENTS" contain the objects from root up to but excluding
 the final object on the URL.
 
 You may try to reference the final object by "this()".

Dieter, thanks for your help, but I'm unsure where to use it.

Using context.this().id, self.this().id, m_self.this().id all get me
the same things:
Folder, Zope, and my method.  None give me the DTML Document
foo_html.

This would seem to be an important thing.

To re-iterate in a different way, it's the same as trying to do:
dtml-var id in a DTML Method that is called by a DTML Document.
You expect the id of the DTML Document that called you, not the
Folder that the DTML Document resides in.

Did you mean to do a this().id?  That doesn't work at all, it gives
me a Name Error.

There *must* be a way to do this.

Ciao!

-- 
It has just been discovered that research causes cancer in rats.

The Doctor What: A Holtje Production http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

___
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] PythonMethods: Can't Slice context.REQUEST.PARENTS

2000-11-11 Thread The Doctor What

Okay, I figured that bit of braindeadness out (I just use a range
that goes backwards, no .reverse() so everything is left as is.

Now here is my next problem.

Using context.REQUEST.PARENTS doesn't give me the DTML Document that
called me (so to speak).

I have:
/test/new/foo_html

My PARENTS shows Zope, Test, and New, but doesn't show foo_html.

Is this because my PythonMethod is Internal vs. External?  I didn't
see any descriptions of what the differences are.

The DTML Method version of my code can see the id/title of the
foo_html via 'id', 'title' and 'title_or_id', but under python I
just get:
self.title_or_id() -- Zope, the folder that my method lives at
m_self.title_or_id() -- Breadcrumbs (my method)
context.title_or_id() -- New, the folder foo_html lives at

And I have no idea what _ is for

Any help is appreciated.

Ciao!

-- 
"Well Pumpkins, It looks like it comes down to that age old decision: Style or 
Substance.  Hmm."
--Vida and the "Girls" ( To Wong Foo, Thanks for everything, Julie 
Newmar )

The Doctor What: "What, Doctor What" http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC

___
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] PythonMethods: Can't Slice context.REQUEST.PARENTS

2000-11-10 Thread The Doctor What

I cannot slice context.REQUEST.PARENTS

The reason I want to do this is to travel up the URL tree for a
breadcrumb navigation do-hicky.

I want to slice it so I can make a copy because if I just do
...reverse() on it, I screw up everything afterwards.

It says I'm unauthorized (Guarded.py __careful_getattr__) so I
assume this is a feature.

I suppose I can just .reverse() it back again at the end, but it
seems.wrong some how.

Attached is my code at the moment...it sucks, I know.  This is
python project numero uno and zope project duo...

If anyone has a better example of how to hand text (I'm using buff
and returning it) back, I'd appreciate it.

I'm much to tired, so off I go to bed...


Ciao!


-- 
Man is the best computer we can put aboard a spacecraft ... and the only one that can 
be mass produced with unskilled labor.
 -- Wernher von Braun

The Doctor What: fill in the blank http://docwhat.gerf.org/
[EMAIL PROTECTED]   KF6VNC


paramsbuff='',lose=1/params
"""
This is a breadcrumb generator.  A breadcrumb trail is what you get at yahoo as
you traverse downward in their directory structure:
computers-video-blah-etc.

It shows you where you are in your site.

My breadcrumbs shall follow these rules:
1) The current DTML Document shall be the last item.  It will not be a link.
2) If the current DTML Document isn't index_html, then the parent crumb will be
   the index_html for the folder
3) All crumb names are overridable by setting the 'nickname' attribute.
4) The root folder will always be called "Home"

Ciao!

[EMAIL PROTECTED]
"""

## Start being crumb-y!
buff = "\n!-- start Breadcrumbs --\n[ "

# Get the list of parents and reverse it
list = context.REQUEST.PARENTS[:]
list.reverse()

# Iterate over all the parent objects, skipping the 'current'one
# (see below for dealing with that
for x in range(lose,len(list)-1):
obj = list[x]

url = obj.absolute_url()
name = obj.title_or_id()
buff = "%s\n - a href='%s'%s/a" % (buff, url, name)

# Deal with the 'current' object(s)
obj = list[-1]

buff = "%s\n'%s'" % (buff, obj)
buff = "%s\n'%s'" % (buff, context.id)

if obj != context:
buff = "%s\n  - '%s'" % (buff, obj.title_or_id())

buff = "%s\n  - '%s'" % (buff, obj.title_or_id())



buff = buff + "\n]\n!-- end Breadcrumbs --\n"

return buff