[Zope-DB] Hello!

Philip Kilner phil@xfr.co.uk
Fri, 25 Jul 2003 15:56:31 +0100


This is a cryptographically signed message in MIME format.

--------------ms090005020705090706080608
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jim (& List!)

Jim Penny wrote:
> 0)  I like the "Red Queen", "running in place" model.  (Damn I need to
> write a howto on this.)
> 
> 1)  index_html is ALWAYS a Script (Python) in any of my code from the
> last 18 months.
> 

OK, so since this is our default "document", Zope will throw it when we 
hit our folder and so it controls the logic?

> 2)  The main form will have ZPT in it, only to do error handling.
> 
> The ISBN_entry_form_pt  [the tal presents an error message, if present,
> and fills in the form with the most recent values if said values are in
> the request.  This should happen only after an error.]:
> 
> <html>
>  <head><title>Enter ISBN Data</title>
>  </head>
>  <body>
>  <h2>Enter ISBN Data</h2>
> 
>  <p color:red tal:content="options/error|nothing"></p>
> 
>  <form name="insert_book" action="." method="POST">
>    <input type="text" name="field_ISBN"
>       tal:content="request/field_ISBN|nothing">   <br>
>    <input type="text" name="field_Title"
>       tal:content="request/field_Title|nothing">   <br>
>    <input type="text" name="field_Author"
>       tal:content="request/field_Author|nothing">    <br>
>   <input type="text" name="field_BookPrice"
>       tal:content="request/Field_BookPrice|nothing">
>   <input type="submit" name="next_state" value="Save ISBN Data">
>  </form>
>  </body>
> </html>
> 

OK, understand that - not sure why the form has: -

	action="."

How does that work here - is it calling itself?

Other than that, this is the bit I think I understand! <wry grin>

> index_html looks like this (note:  per above, it is a Script (Python)):
> 
> if not request.has_key('next_state'):
>   return main_menu_form_pt(context, request)
>   # main menu allows used to choose among usual CRUD operations
>   # (CReate, Update, Delete), and probably offers reports
> next_state=request['next_state']
> if next_state=='Create ISBN Entry":
>   return main_menu_form_pt(context, request)
> elif next_state=='Save ISBN Data':
>   error=container.check_save_ps()
>   if error:
>     return ISBN_Entry_form_pt(context, request, error=error)
>   else:
>     container.insert_ISBN_sql(field_ISBN=request['field_ISBN'],
>       field_title=request['field_Title'],
>       field_author=request['field_Author'],
>       field_BookPrice=request['field_BookPrice'])
>     return main_menu_form_pt(context, request)
>       # You may want to return something else, if you are entering
>       # in batches, it is better to return ISBN_entry_form_pt, for
>       # example, but then you need breadcrumbs at the top of the form
>       # so the user can get out of the loop.
> 

OK, well I passed the test you had set me by converting the double quote 
to a single quote in 'Create ISBN Entry" <g>, but when I "test" this I 
get: -

	Name Error: global name 'request' is not defined

	(N.B. This is in Plone - will try in raw Zope next)

Is insert_ISBN_sql our ZSQL method here?

> main_menu_form_pt may be as simple as:
> 
> <html>
> <body>
>   <head>
>     <title>Choose Action</title>
>   </head>
>   <form method="." action="post">
>     <input type="submit" name="next_state" value="Create ISBN Entry">
>     <input type="submit" name="next_state" value="Edit ISBN Entry">
>     <input type="submit" name="next_state" value="Delete ISBN Entry">
>   </form>
> </html>
> 

Same question about "method" here as for "action" above - how the period 
works? Are these transposed by any chance?

As you can see, I'm floundering a bit - if you could help me take this 
(apparently simple - but crytpic to me - script apart a little further, 
I'd be very grateful.

I understand - I think - the differnce in principle in what we are doing 
here, but am lost in the syntax. I can see that once I have a working 
example I have a theme to create variations on!!!

-- 

Regards,

PhilK

Email: phil@xfr.co.uk / Voicemail & Facsimile: 07092 070518

"the symbols of the divine show up in our world initially at the trash 
stratum." Philip K Dick


--------------ms090005020705090706080608
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

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
AwIHMA0GCCqGSIb3DQMCAgEoMIGrBgkrBgEEAYI3EAQxgZ0wgZowgZIxCzAJBgNVBAYTAlpB
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEPMA0GA1UEChMG
VGhhd3RlMR0wGwYDVQQLExRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEoMCYGA1UEAxMfUGVyc29u
YWwgRnJlZW1haWwgUlNBIDIwMDAuOC4zMAIDCihRMIGtBgsqhkiG9w0BCRACCzGBnaCBmjCB
kjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBU
b3duMQ8wDQYDVQQKEwZUaGF3dGUxHTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgw
JgYDVQQDEx9QZXJzb25hbCBGcmVlbWFpbCBSU0EgMjAwMC44LjMwAgMKKFEwDQYJKoZIhvcN
AQEBBQAEggEAnFwbwUnSd8nOY5lHqlnLsJ6WkYV2HH53PJChBoDPf5fKOXatCVzGdRiYTLkP
an+kZOlLOXFTqQSfzDBGsMONInG67jW65Z3mR9INX38zV9Zs5nhBJkA9Pv2L43zq79h1lkQT
NOINK8+6c3UmkMVlzj43E+l3wPWe19paZtvsTq93ZxiqpVj97T3B9N3wmdbjtx0hjJ147Yl3
2txQ+F9U4QEoYM9jITXI8HYbV7tBFFoP8UY3eV9GE/VuQC4uUXFaVdCQ1YpFTBvFbi9Qu61l
CzRPSFR/+p+tCCe3zS+yfThYuwXf+Z/P+daR5dAncQy1D9o2xg951/AYdg64FTj5qgAAAAAA
AA==
--------------ms090005020705090706080608--