ZEXP_ (cOFS.Folder Folder q)tq.}q(UtrainingqU_qQUtitleqUUadminqU_qQUDBq U_q QUacme.pngq U_q QU main_templateq U_qQU_ownerq(]qU acl_usersqaU SuperUserqtqU screen.cssqU_qQUSQLqU_qQU_objectsq(}q(U meta_typeqUFolderqUidqhu}q(hhhhu}q(U meta_typeqUFileq Uidq!hu}q"(hUImageq#h!h u}q$(U meta_typeq%UFolderq&Uidq'USQLq(u}q)(U meta_typeq*U!eGenix mxODBC Database Connectionq+Uidq,UDBq-u}q.(U meta_typeq/U Page Templateq0Uidq1h u}q2(U meta_typeq3UFileq4Uidq5U Instructionsq6utq7U__ac_local_roles__q8}q9h]q:UOwnerq;ashUACMEqxӝ魖ur`ެuNsvcԇ{Z<Q؄O;35kY gD޸OM&VL;[ݶ6q=j6Vw~1wC#?~=Xwirlk/n<Xݹ`36juctSLUT3{ƺ>^iu'tp)]^xhe ݷVQREQ'|. go ݯ/hfD옳f yOݝњM{04p ^DCcc_X&ҽFu'dM; oĺsB/{ʇO٤5k OR3\;Sxݓ'k6_}/oeם]}xZ3,xp x~fS{wJH1φWS{g aW5^Uۅtu/FMeۭ^e_Mݛݷ-NId3:üJuf<9uO̖{{+x6^=U]瘙̔գQtz/Mwj\ϼDv5tg\;^YI{u,]wO23?GDC~*>ܽX,18"r6{jъfн&bxtݬ@y?CwjsU9W; 8vF+_,{x%|T5"w ]aߍFtF9ͻ#-"W~( |~DBgHOn/j֋"b#ݳV/x}PpgϝRWa_b#,RnUֽZZ&;Epy2W\K7y 7O֩{&Z`fS_Y{Yui:%Uiv\ۡ7c&2}O fgO{y@uJ<뙜ʧ@:zu+2pN‘;]%KLK8dɺoÀdfMO.{0D-xm.1Z,î﷚c:.2~ᢟU V1S1}AfС/%Oubu7S[뭳V+xjm;`]D(~;}T9&q`ittvKA?=NDSeE}|9*7|c`C{ |^@IM5nj,{VYob{׬{mgpIx@;E'"z|1Ӥ+c徲VF_\y%kdh'VO@,c 6;X'`Y=;XO -p(옞(`'bmBoh%]#%8#CQX~q';AAwGnc\*Ny46X% j0AWyda%|SF&FƴphC\YL<(,Ł+ n⃾T pDKZ|Sݿ$m`UFܱSohVhE $i8F.8v 3vno;NɝujBdQѮ'Am{{)5E; +?ΰcA\ox]U@K2l#0?wHVV{qVGQ/h& #=[UGQQv?ye-,tzl(Vm z\9+re[~2[Q=e*/ (Qe"+|NS^N+q:݀ ՚B@wM΄=Jy%ȥNKlQ KF6͍ܲDՆ2%U lt/"qj@;x5ev"t'$2c*ijׇVU`1m)~{׀U|Bh4!t٣BEFaXRyy]+*t'-KKHsv^/⢓Z( 0Ubfc?B7 +r˛ B@w VΈ#2Ә&Qh$~+kY^XN4б2E]<5Rn2E:N7ʫՅ@;)R$/MСFE߶c]2?Ǵ&B+݀7 ^R;$ɾ[xR !(~uNi6W{ pn 3e>#B}cDjm;qX'}gw€FMp0gY_)IENDB`qUheightq KUwidthq MU content_typeq U image/pngq U__name__q hU_EtagSupport__etagqU ts83661004.61qU__ac_local_roles__q}qU SuperUserq]qUOwnerqasUsizeqL4446L u._(cProducts.PageTemplates.ZopePageTemplate ZopePageTemplate q)tq.}q(Uoutput_encodingqUutf-8qUtitleqXU content_typeqU text/htmlqU_textq X> The title

q U _bind_namesq (cShared.DC.Scripts.Bindings NameAssignments q oq }qU_asgnsq}qU name_subpathqUtraverse_subpathqssbU__ac_local_roles__q}qU SuperUserq]qUOwnerqasUidqU main_templateqUexpandqKu._(cOFS.Image File q)tq.}q(U preconditionqUUtitleqUU__ac_local_roles__q}qU SuperUserq]q UOwnerq asU content_typeq Utext/cssq U__name__q U screen.cssqU_EtagSupport__etagqU ts83719079.07qUdataqTbody { width: 748px; background: url(acme.png) no-repeat; padding: 210px 0px ; border: 2px solid #000; margin: 0 0; } #nav { float: left; width: 150px; height: 400px } #content { float: left; width: 598px; } #nav ul { list-style: none; padding: 10px; line-height: 1.5em; } label { display: block; width: 18em; margin-bottom: 0.5em; } label.required { font-weight: bold; } input, select { float: left; margin-left: 15em; margin-top: -2em; } input[type="submit"]{ margin: 0; } input[type="reset"]{ margin: 0; } input.required, select.required { background: #B00; } input[type='text']:focus{ background: #CCC; }qUsizeqMu._(cOFS.Folder Folder q)tq.}q(UqSeminarqU_qQUtitleqUU iCustomerqU_qQUqEventq U_(q QUdCustomerEventq U_)q QU qCustomerq U_qQU_objectsq(}q(U meta_typeqU Z SQL MethodqUidqU qCustomerqu}q(U meta_typeqU Z SQL MethodqUidqhu}q(hhhhu}q(hhhh u}q(U meta_typeqU Z SQL MethodqUidqUdCustomerEventqutq U__ac_local_roles__q!}q"U SuperUserq#]q$UOwnerq%ashUSQLq&u._*u(cOFS.Image File q)tq.}q(U preconditionqUUtitleqUUdataqU~Edit the properties of the database adapter to match your environment and open the connection. The application is then ready.qU content_typeqUtext/x-unknown-content-typeq U__name__q U Instructionsq U_EtagSupport__etagq U ts84578350.32q U__ac_local_roles__q}qU SuperUserq]qUOwnerqasUsizeqK~u._t(cOFS.Image File q)tq.}q(U preconditionqUUtitleqUUdataqU{Sorry, but only ACME customers can attend our training seminars. Please contact our sales department for more information.qU content_typeqUtext/x-unknown-content-typeq U__name__q Ucustomers_onlyq U_EtagSupport__etagq U ts83716106.39q U__ac_local_roles__q}qU SuperUserq]qUOwnerqasUsizeqK{u._=(cProducts.PageTemplates.ZopePageTemplate ZopePageTemplate q)tq.}q(Uoutput_encodingqUutf-8qUtitleqXU content_typeqU text/htmlqU_textq X

Our seminars will teach you all want to know about our famous RoadRunner range!

Please complete all required fields

q U _bind_namesq (cShared.DC.Scripts.Bindings NameAssignments q oq }qU_asgnsq}qU name_subpathqUtraverse_subpathqssbU__ac_local_roles__q}qU SuperUserq]qUOwnerqasUidqUregisterqUexpandqKu._ (cProducts.PythonScripts.PythonScript PythonScript q)tq.}q(U Python_magicqUm qUerrorsq)Uwarningsq)U Script_magicqKU_bodyq T# Controller script for registering for seminars # Display the registration form and error messages until complete request = context.REQUEST # check all required fields are filled out required = ['firstname', 'lastname', 'email'] errors = [] options = {} if request.form.get('action') == 'register': for field in required: if not request.form.get(field): errors.append(field) if errors: return context.register(errors=errors) # check to see if it is a customer customer = context.validate(request.form) if customer: # call method to enter the request into the seminar # send e-mail to customer, etc. # will raise an error if customer already registered context.SQL.iCustomer(id_customer=customer, id_event=request.form['seminar']) text = context.thankyou else: # only genuine ACME customers may attend! text = context.customers_only return context.main_template(text=text) return context.register() q U _filepathq U)Script (Python):/ACME/training/index_htmlq U_codeq Tc@s dZdS(Nc Csjttd}dddg}g}h}tt|ddddjoxKt|D]=}tt|dd| ot|d |nq\W|ottdd |Snttd t|d}|oJtttd d d|dt t|ddttd} nttd} ttdd| SnttdSdS(NtREQUESTt firstnametlastnametemailtformtgettactiontregistertappendterrorstvalidatetSQLt iCustomert id_customertid_eventtseminartthankyoutcustomers_onlyt main_templatettext( t _getattr_tcontexttrequesttrequiredR toptionst _getiter_tfieldtcustomert _getitem_R( RRRRR RRRRRR((sScript (Python)s index_htmls$%  7(t index_html(R((sScript (Python)stqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_contextqUcontextqU name_subpathqUtraverse_subpathqU name_m_selfqUscriptqusbU__ac_local_roles__q}qU SuperUserq ]q!UOwnerq"asUidq#U index_htmlq$U_paramsq%UU func_codeq&(cShared.DC.Scripts.Signature FuncCode q'oq(}q)(U co_argcountq*KU co_varnamesq+(U _getattr_q,Ucontextq-Urequestq.Urequiredq/Uerrorsq0Uoptionsq1U _getiter_q2Ufieldq3Ucustomerq4U _getitem_q5Utextq6tq7ubu._p(cOFS.Image File q)tq.}q(U preconditionqUUtitleqUUdataqU}Thank you for your interest in training. A member of our training team will be contacting you shortly to confirm the seminar.qU content_typeqUtext/x-unknown-content-typeq U__name__q Uthankyouq U_EtagSupport__etagq U ts83714775.07q U__ac_local_roles__q}qU SuperUserq]qUOwnerqasUsizeqK}u._f(cProducts.PythonScripts.PythonScript PythonScript q)tq.}q(U Python_magicqUm qUerrorsq)Uwarningsq)U Script_magicqKU_bodyq T]# Check form including a looking up the customer number # Return an error customer not in sales database # Explicitly requires a dictionary containing the values request = container.REQUEST check = context.SQL.qCustomer(firstname=form['firstname'], lastname=form['lastname'], company=form['company']) if len(check): return check[0].id_customer q U _filepathq U'Script (Python):/ACME/training/validateq U_codeq T@c@s dZdS(Nc Csttd}tttdddt|ddt|ddt|d}t|ott|ddSndS( NtREQUESTtSQLt qCustomert firstnametlastnametcompanyit id_customer(t _getattr_t containertrequesttcontextt _getitem_tformtchecktlen(R RRR R R R R((sScript (Python)svalidatesH (tvalidate(R((sScript (Python)stqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_contextqUcontextqU name_subpathqUtraverse_subpathqU name_m_selfqUscriptqusbU__ac_local_roles__q}qU SuperUserq ]q!UOwnerq"asUidq#Uvalidateq$U_paramsq%Uformq&U func_codeq'(cShared.DC.Scripts.Signature FuncCode q(oq)}q*(U co_argcountq+KU co_varnamesq,(Uformq-U _getattr_q.U containerq/Urequestq0Ucontextq1U _getitem_q2Ucheckq3Ulenq4tq5ubu._#v(cAccessControl.User UserFolder q)tq.}q(UdataqU_$qQU__ac_local_roles__q}qU SuperUserq]q UOwnerq asu._"/(cProducts.PythonScripts.PythonScript PythonScript q)tq.}q(U Python_magicqUm qUerrorsq)Uwarningsq)U Script_magicqKU_bodyq T%# Manage seminars here request = container.REQUEST if not request.form.get('action'): return context.main_template() elif request.form['action'] == 'event': return context.event() elif request.form['action'] == 'delete': context.SQL.dCustomerEvent() return context.event() q U _filepathq U&Script (Python):/ACME/admin/index_htmlq U_codeq Trc@s dZdS(Nc Csttd}tt|ddd ottdSntt|dddjottdSnMtt|dddjo-tttdd ttdSndS( NtREQUESTtformtgettactiont main_templateteventtdeletetSQLtdCustomerEvent(t _getattr_t containertrequesttcontextt _getitem_(R R R R R ((sScript (Python)s index_htmls (t index_html(R((sScript (Python)stqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_contextqUcontextqU name_subpathqUtraverse_subpathqU name_m_selfqUscriptqusbU__ac_local_roles__q}qU SuperUserq ]q!UOwnerq"asUidq#U index_htmlq$U_paramsq%UU func_codeq&(cShared.DC.Scripts.Signature FuncCode q'oq(}q)(U co_argcountq*KU co_varnamesq+(U _getattr_q,hUrequestq-hU _getitem_q.tq/ubu._m(cProducts.PageTemplates.ZopePageTemplate ZopePageTemplate q)tq.}q(Uoutput_encodingqUutf-8qUtitleqXU content_typeqU text/htmlqU_textq X The title

q U _bind_namesq (cShared.DC.Scripts.Bindings NameAssignments q oq }qU_asgnsq}qU name_subpathqUtraverse_subpathqssbU__ac_local_roles__q}qU SuperUserq]qUOwnerqasUidqU main_templateqUexpandqKu._! (cOFS.Image Image q)tq.}q(U preconditionqUUtitleqUacms.pngqUdataqT PNG  IHDRgAMAOX2tEXtSoftwareAdobe ImageReadyqe<]PLTE_zRp=)̾0UӣDf 3Gfw)RDm%,"z"6\3gС IDATx읉:E "8+/TUZ]z ' *tO>^\+kAFd/ǐDw{~wt7mX?t$}Gj[6Ak_jZo<>lGwO~:N]C6j۲Oޭ8uK q>?>OfVu&[ Ӊ_}:إܟe:H~'FAqbӶw;Yt֡]e$ {u>ܚu׳-w{~.[gdO|!|[ Y-~_yج{7ǝIܦeݪ%L3}ۓQux.wNܘ,:FŌaLoi}6뾟8*[fHaۮO$ :r kwr!ZHQ_d>tkPmß}"нWbL?|G/s5jΠ)\ێF{i+Vdtt2C&Nu?{cNjkZ<6vymf8Yuw" \:B]UHwJN獻fU٠R'\_eWaa>e 4m:Yd[;7/J'w1.W,1j8|pn\KJ;V&ݻӮI 6!)ͤK΍k ZA~>:ɠ{gKHY&uO0kGV'ooܤ{5ye ѽ<_aɝ=a0W0tu)W!Za}Y6w=#6uVߋ^+sne+zwzݺ7J;h:tӌA;|Vu 16\sGXvAC,u_7{Hufwz;Ǖk'$xtqBfګ>k10[T. ѽ4Ǐ+59zd!td{٨84v(sk}[M30@C<}hf雛뤹~z2Ŭ@oѥE7)"1s(OH{׋+4]t̨j\-нi5?>OgBk͘s\J^w=߹0eR5g>' Ovݻ3>f ۽b]@c:[۵_׋Vu_t8Y݅V|esߙ_ߍݗ̈́_=}; Z,|ѯ~%D+uLmN}{ ڈ\(MzFW9PԪ7ծK3Dlb^;\{0lh roū!F+7Ƅh*]$ cLw9Xoq<6{tq-[={igt\[ˑi+t7~v}e;'2Ga/Ӻ |޽?+r;HmtA:辵_|-AmZL.c3ܝ 5MĨcX>[AhG'oM-=פ}G&dPqpt@wt@wt@wt@wt@wtt@wt@wt@wt@wt@wtt@wt@wt@wt@wt@wtt@wt@wt@wt@wt@wtt@wt@wt@wt@wt@wt@w@wt@wt@wt@wt@wt@w@wt@wt@wt@wt@wt@w@wt@wt@wt@wt@wt@w@wt@wt@wt@wOw8aqn*=ˢyrڦf;.<b#.WyֆF (\x3~ssΩ)J4)c3~7x=7Z? gW;@53DUzCn]r] {zzLlp5t TQ^N=l <[[~cRu߷7-~L List upcoming events and attendees q U _bind_namesq (cShared.DC.Scripts.Bindings NameAssignments q oq }qU_asgnsq}qU name_subpathqUtraverse_subpathqssbU__ac_local_roles__q}qU SuperUserq]qUOwnerqasUidqUeventqUexpandqKu._ (cOFS.Image File q)tq.}q(U preconditionqUUtitleqUUdataqTbody { width: 748px; background: url(acms.png) no-repeat; padding: 210px 0px ; border: 2px solid #000; margin: 0 0; } #nav { float: left; width: 150px; height: 400px } #content { float: left; width: 598px; } #nav ul { list-style: none; padding: 10px; line-height: 1.5em; } label { display: block; width: 18em; margin-bottom: 0.5em; } label.required { font-weight: bold; } input, select, textarea { float: left; margin-left: 15em; margin-top: -2em; } input[type="submit"]{ margin: 0; } input[type="reset"]{ margin: 0; } input.required, select.required { background: #B00; } input[type='text']:focus{ background: #CCC; }qU content_typeqUtext/cssq U__name__q U screen.cssq U_EtagSupport__etagq U ts83719070.3q U__ac_local_roles__q}qU SuperUserq]qUOwnerqasUsizeqMu._(cProducts.ZSQLMethods.SQL SQL q)tq.}q(UsrcqUSELECT id_event, event_date, title FROM event INNER JOIN seminar ON (event.id_seminar = seminar.id_seminar) WHERE event_date > now() ORDER BY event_dateqU arguments_srcqUUtitleqU*List all seminars taking place after todayqU connection_idq UDBq U_argq (cShared.DC.ZRDB.Aqueduct Args q oq }q(U_dataq}qU_keysq]qubUtemplateqccopy_reg __newobj__ q(cShared.DC.ZRDB.DA SQL qtRq}q(U_varsq}qUrawqhUglobalsq}qU__name__qUqubU_colq]q (}q!(Uwidthq"K Unullq#KUtypeq$UiUnameq%Uid_eventq&u}q'(h"K h#Kh$Udh%U event_dateq(u}q)(h"Kdh#Kh$Ush%Utitleq*ueU__ac_local_roles__q+}q,U SuperUserq-]q.UOwnerq/asUidq0UqSeminarq1u._`(cProducts.ZSQLMethods.SQL SQL q)tq.}q(UsrcqUINSERT INTO customer_event (id_customer, id_event) VALUES ( , )qU arguments_srcqUid_customer id_eventqUtitleqUAdd a customer to an eventq U connection_idq UDBq U_argq (cShared.DC.ZRDB.Aqueduct Args q oq}q(U_dataq}q(U id_customerq}qUid_eventq}quU_keysq]q(hheubUtemplateqccopy_reg __newobj__ q(cShared.DC.ZRDB.DA SQL qtRq}q(U_varsq}qUrawqhUglobalsq }q!U__name__q"Uq#ubU__ac_local_roles__q$}q%U SuperUserq&]q'UOwnerq(asUidq)U iCustomerq*u._((cProducts.ZSQLMethods.SQL SQL q)tq.}q(UsrcqUSELECT firstname, lastname, company, customer.id_customer FROM customer INNER JOIN customer_event ON (customer_event.id_customer = customer.id_customer) WHERE id_event = qU arguments_srcqUid_eventqUtitleqUList customers by eventsq U connection_idq UDBq U_argq (cShared.DC.ZRDB.Aqueduct Args q oq}q(U_dataq}qh}qsU_keysq]qhaubUtemplateqccopy_reg __newobj__ q(cShared.DC.ZRDB.DA SQL qtRq}q(U_varsq}qUrawqhUglobalsq}qU__name__qUq ubU_colq!]q"(}q#(Uwidthq$K2Unullq%KUtypeq&UsUnameq'U firstnameq(u}q)(h$K2h%Kh&Ush'Ulastnameq*u}q+(h$Kdh%Kh&Ush'Ucompanyq,u}q-(h$K h%Kh&Uih'U id_customerq.ueU__ac_local_roles__q/}q0U SuperUserq1]q2UOwnerq3asUidq4UqEventq5u._)i(cProducts.ZSQLMethods.SQL SQL q)tq.}q(UsrcqUDELETE FROM customer_event WHERE id_event = AND id_customer = qU arguments_srcqUid_customer id_eventqUtitleqURemove a customer from an eventq U connection_idq UDBq U_argq (cShared.DC.ZRDB.Aqueduct Args q oq}q(U_dataq}q(U id_customerq}qUid_eventq}quU_keysq]q(hheubUtemplateqccopy_reg __newobj__ q(cShared.DC.ZRDB.DA SQL qtRq}q(U_varsq}qUrawqhUglobalsq }q!U__name__q"Uq#ubU__ac_local_roles__q$}q%U SuperUserq&]q'UOwnerq(asUidq)UdCustomerEventq*u._(cProducts.ZSQLMethods.SQL SQL q)tq.}q(UsrcqUSELECT id_customer FROM customer WHERE firstname = AND lastname = qU arguments_srcqUfirstname lastnameqUtitleqU4Check for an existing customer in the sales databaseq U connection_idq UDBq U_argq (cShared.DC.ZRDB.Aqueduct Args q oq}q(U_dataq}q(Ulastnameq}qU firstnameq}quU_keysq]q(hheubUtemplateqccopy_reg __newobj__ q(cShared.DC.ZRDB.DA SQL qtRq}q(U_varsq}qUrawqhUglobalsq }q!U__name__q"Uq#ubU_colq$]q%}q&(Uwidthq'K Unullq(KUtypeq)UiUnameq*U id_customerq+uaU__ac_local_roles__q,}q-U SuperUserq.]q/UOwnerq0asUidq1U qCustomerq2u._$?(cPersistence.mapping PersistentMapping q)tq.}qUdataq}qs.