<map version="0.9.0">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node CREATED="1295008794901" ID="ID_1471398770" MODIFIED="1479393412797" TEXT="web">
<node CREATED="1295002997680" FOLDED="true" ID="ID_507513275" MODIFIED="1479393407797" POSITION="right" TEXT="widgets">
<node CREATED="1295003954222" FOLDED="true" ID="ID_811909881" LINK="widgets/test_widgetbasics.py" MODIFIED="1479382516717" TEXT="widget basics">
<node CREATED="1295343473979" ID="ID_1582240824" MODIFIED="1295343496686" TEXT="creating and rendering a basic widget"/>
<node CREATED="1345551688719" ID="ID_618115281" MODIFIED="1345551693077" TEXT="widget visibility"/>
<node CREATED="1295003018621" ID="ID_1349494516" MODIFIED="1295003033848" TEXT="factories &amp; args &amp; kwargs"/>
<node CREATED="1295003445944" ID="ID_1120429066" MODIFIED="1295354756451" TEXT="slots and pages"/>
<node CREATED="1295003081314" ID="ID_1248776800" MODIFIED="1295348496423" TEXT="rendering javascript"/>
<node CREATED="1344330822249" ID="ID_1604536065" MODIFIED="1344330830027" TEXT="attaching javascript and css"/>
<node CREATED="1314088761723" ID="ID_1583607739" MODIFIED="1314088770820" TEXT="query arguments"/>
</node>
<node CREATED="1295003133693" FOLDED="true" ID="ID_76251834" LINK="widgets/test_htmlwidgets.py" MODIFIED="1479382530557" TEXT="HTML-derived widgets">
<node CREATED="1295003143240" ID="ID_1023698432" MODIFIED="1295003261906" TEXT="fixed attributes">
<node CREATED="1295003219313" ID="ID_1853687548" MODIFIED="1295003226958" TEXT="adding/getting/rendering/etc"/>
<node CREATED="1295003265473" ID="ID_1044442332" MODIFIED="1295003349628" TEXT="handy methods for special attrs"/>
</node>
<node CREATED="1295003178827" ID="ID_1357852494" MODIFIED="1295358492421" TEXT="dynamic attributes"/>
<node CREATED="1345548315665" ID="ID_1271752078" MODIFIED="1345548328731" TEXT="wrapper widgets"/>
<node CREATED="1295003312087" ID="ID_367654148" MODIFIED="1295003318544" TEXT="id and css+id"/>
<node CREATED="1295358600754" ID="ID_1487782327" MODIFIED="1295358606416" TEXT="jquery support"/>
<node CREATED="1295508882083" ID="ID_670825427" MODIFIED="1295508889300" TEXT="single vs closing tags"/>
<node CREATED="1295514965947" ID="ID_1992279738" MODIFIED="1295515000233" TEXT="basic html widgets..."/>
</node>
<node CREATED="1295003519257" ID="ID_62034299" LINK="widgets/test_table.py" MODIFIED="1479383021470" TEXT="table"/>
<node CREATED="1439453215959" ID="ID_358886512" LINK="widgets/test_layout.py" MODIFIED="1439453629286" TEXT="layout"/>
</node>
<node CREATED="1295002540057" FOLDED="true" ID="ID_383074039" MODIFIED="1479391956256" POSITION="right" TEXT="input &amp; validation">
<node CREATED="1302363589270" FOLDED="true" ID="ID_638132540" LINK="inputandvalidation/test_eventhandling.py" MODIFIED="1479387515118" TEXT="event handling">
<node CREATED="1295002566110" ID="ID_76489977" MODIFIED="1302345629491" TEXT="events &amp; buttons &amp; basic event handlers">
<font NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1295002562381" ID="ID_479679031" MODIFIED="1295002619804" TEXT="fields &amp; inputs"/>
<node CREATED="1295003526349" ID="ID_1948452355" MODIFIED="1295004183663" TEXT="exception handling"/>
<node CREATED="1302611537053" ID="ID_755790437" MODIFIED="1302611543027" TEXT="forms"/>
<node CREATED="1295003756999" ID="ID_74640266" MODIFIED="1302617532686" TEXT="javascript vs server-side validation"/>
<node CREATED="1353587162538" ID="ID_466943296" MODIFIED="1353587180023" TEXT="alternative (ajax) submission &amp; _noredirect"/>
<node CREATED="1405599170381" ID="ID_747142614" MODIFIED="1405599211285" TEXT="xxx similarly named inputs per page"/>
<node CREATED="1479383930044" ID="ID_1211259480" LINK="https://docs.google.com/drawings/d/1HpYY7KsQZrD6eU2YO9gOJl7o0mqLJ9TXct_cF-fxYpg/edit" MODIFIED="1479384077747" TEXT="">
<icon BUILTIN="xmag"/>
</node>
<node CREATED="1479384107830" ID="ID_685332107" LINK="https://docs.google.com/drawings/d/1B_VQJqGngxUFyV8iGqWtePnfuUrMOQPJaU-vOcm7yRk/edit" MODIFIED="1479384118651" TEXT="">
<icon BUILTIN="xmag"/>
</node>
<node CREATED="1479387411487" ID="ID_1450638656" LINK="https://docs.google.com/drawings/d/1aNjzXkwVJtL-aon8LCzcC8ybHlmNyDFYlpVVoNgp9Rs/edit" MODIFIED="1479387421064" TEXT="">
<icon BUILTIN="xmag"/>
</node>
<node CREATED="1479387457562" ID="ID_902693082" LINK="https://docs.google.com/drawings/d/15ZhHf56_iJBp7XkbCvRjR2prACwSErjv_cnGENAfoa0/edit" MODIFIED="1479387463574" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1302611721859" ID="ID_442079343" LINK="inputandvalidation/test_input.py" MODIFIED="1479388658794" TEXT="inputs">
<node CREATED="1295003629605" ID="ID_215992522" MODIFIED="1302772487887" TEXT="input states and values"/>
<node CREATED="1302611736331" ID="ID_698468882" MODIFIED="1302611740675" TEXT="specific inputs"/>
<node CREATED="1479388658794" ID="ID_755365775" LINK="https://docs.google.com/drawings/d/1gLA51DLu3FXUIb7UwOZtXzhGo-t34WwqcE-tGBbI1-Y/edit" MODIFIED="1479388666108" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1295004289597" FOLDED="true" ID="ID_1760236938" LINK="inputandvalidation/test_field.py" MODIFIED="1327389852775" TEXT="fields (see also component)">
<node CREATED="1316168779499" ID="ID_608794866" MODIFIED="1316168791071" TEXT="rendering in html/js"/>
<node CREATED="1316168791663" ID="ID_879981247" MODIFIED="1316168801572" TEXT="javascript vs server-side behaviour"/>
</node>
<node CREATED="1314090200381" ID="ID_456033147" LINK="inputandvalidation/test_widgetqueryargs.py" MODIFIED="1479387618224" TEXT="widget query arguments">
<node CREATED="1315551881196" ID="ID_1831508055" MODIFIED="1315551884720" TEXT="basics"/>
<node CREATED="1315551885477" ID="ID_682330786" MODIFIED="1315551895695" TEXT="hashchangehandlers"/>
<node CREATED="1315551896279" ID="ID_1898244380" MODIFIED="1315551920007" TEXT="bookmark modifications for ajax and A"/>
<node CREATED="1479387625042" ID="ID_153090845" LINK="https://docs.google.com/drawings/d/1mFmSBgwDE0DikEoIgknGIpmZbuGelcee9SHk-OhwmNg/edit" MODIFIED="1479387632494" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1348580764733" ID="ID_1294960028" LINK="inputandvalidation/test_files.py" MODIFIED="1479387193396" TEXT="files">
<node CREATED="1348580778384" ID="ID_226021643" MODIFIED="1348580938973" TEXT="what files are when they are uploaded"/>
<node CREATED="1348580943557" ID="ID_1350657207" MODIFIED="1348580968128" TEXT="uploading files to the session before form submit"/>
<node CREATED="1348580976999" ID="ID_826893103" MODIFIED="1348580987117" TEXT="simple file input"/>
<node CREATED="1348580987388" ID="ID_328446530" MODIFIED="1348580994634" TEXT="multi file input"/>
<node CREATED="1479387195365" ID="ID_1871601882" LINK="https://docs.google.com/drawings/d/1CZIPHwqac0ntjQKzcUxdBj0Cdf9Tdu7WzUPfiuVZcGQ/edit" MODIFIED="1479387207038" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
</node>
<node CREATED="1295004364503" FOLDED="true" ID="ID_1882405988" MODIFIED="1479393403464" POSITION="right" TEXT="app structure">
<node CREATED="1295002697821" ID="ID_1844249777" LINK="appstructure/test_appbasics.py" MODIFIED="1334064081772" TEXT="basics">
<node CREATED="1295002739039" ID="ID_1394716922" MODIFIED="1295002784710" TEXT="pages &amp; basic views"/>
<node CREATED="1295002744676" ID="ID_1666144096" MODIFIED="1295006943116" TEXT="slot basics"/>
<node CREATED="1295006916672" ID="ID_371417330" MODIFIED="1303552873786" TEXT="defaults for slots"/>
</node>
<node CREATED="1295004480284" ID="ID_1531661873" LINK="appstructure/test_user_interfaces.py" MODIFIED="1334064083633" TEXT="user interfaces">
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1295004488331" ID="ID_504291326" MODIFIED="1295007009125" TEXT="basics">
<node CREATED="1295006998772" ID="ID_1976935074" MODIFIED="1295007003762" TEXT="creating and assembly"/>
<node CREATED="1295004711754" ID="ID_269093123" MODIFIED="1295004717458" TEXT="args &amp; kwargs"/>
<node CREATED="1295004501034" ID="ID_313729649" MODIFIED="1295004503671" TEXT="bookmarks"/>
</node>
<node CREATED="1295007083077" ID="ID_1767486064" MODIFIED="1295007089465" TEXT="mapping of slot names"/>
</node>
<node CREATED="1303389460383" ID="ID_597212247" LINK="appstructure/test_parameterised.py" MODIFIED="1479383580029" TEXT="parameterised user interfaces">
<node CREATED="1295006611929" ID="ID_841375729" MODIFIED="1295006623058" TEXT="regex views"/>
<node CREATED="1303560005581" ID="ID_724046871" MODIFIED="1303563514520" TEXT="regex user interfacess"/>
</node>
<node CREATED="1479386388784" ID="ID_917660057" LINK="https://docs.google.com/drawings/d/1-FO340IG5VQ6ErVR70RM8Q7IEU5PNKcSf3fdsbwO-Cg/edit" MODIFIED="1479386421611" TEXT="different views">
<icon BUILTIN="xmag"/>
</node>
<node CREATED="1479386564121" ID="ID_1619396372" LINK="https://docs.google.com/drawings/d/1Z6NqCRvLPLwS7a3ORBiTwDfBeVoUk7GNLwbOOV7j6fo/edit" MODIFIED="1479386591381" TEXT="composed pages">
<icon BUILTIN="xmag"/>
</node>
<node CREATED="1479391879454" ID="ID_560293341" MODIFIED="1479393385832" TEXT="fundamentals of request handling">
<node CREATED="1479390596561" ID="ID_1729554971" LINK="https://docs.google.com/drawings/d/1_dloKiW9cyBYpJD5Ru1nXg5CHgH_pHZU6j_0U60gIe0/edit" MODIFIED="1479391931385" TEXT="">
<icon BUILTIN="xmag"/>
</node>
<node CREATED="1479391852542" ID="ID_1128164923" LINK="https://docs.google.com/drawings/d/1oujdD_TwanFgtkuJi-gxkP5I_E8IX--66Zxv35jMeHc/edit" MODIFIED="1479391936571" TEXT="">
<icon BUILTIN="xmag"/>
</node>
<node CREATED="1479393390680" ID="ID_1729041854" LINK="https://docs.google.com/drawings/d/10GN1vvFfPL7sPMm9ldzV9bYR9Iv6E_TeN6cbtquGiK4/edit" MODIFIED="1479393397016" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
</node>
<node CREATED="1295004726429" FOLDED="true" ID="ID_264833673" LINK="test_pageflow.py" MODIFIED="1479384296022" POSITION="right" TEXT="page flow">
<node CREATED="1295005347992" ID="ID_1228691831" MODIFIED="1295005359100" TEXT="basic transitions"/>
<node CREATED="1307801620895" ID="ID_367107595" MODIFIED="1307801624371" TEXT="guards"/>
<node CREATED="1295006664486" FOLDED="true" ID="ID_161170306" MODIFIED="1315552572569" TEXT="view preconditions">
<node CREATED="1295005360300" ID="ID_1304798524" MODIFIED="1304068591058" TEXT="redirect"/>
<node CREATED="1295005385287" ID="ID_136589566" MODIFIED="1304068589764" TEXT="detour"/>
<node CREATED="1304068595508" ID="ID_956773680" MODIFIED="1304068600850" TEXT="return transition"/>
<node CREATED="1304068574509" ID="ID_1032725731" MODIFIED="1304068580217" TEXT="return"/>
</node>
<node CREATED="1464267844323" ID="ID_672279824" MODIFIED="1464267855071" TEXT="views marked as detours"/>
</node>
<node CREATED="1307014006894" FOLDED="true" ID="ID_1375284764" LINK="test_securitytests.py" MODIFIED="1339572717286" POSITION="right" TEXT="security">
<node CREATED="1307695124863" FOLDED="true" ID="ID_1759702703" MODIFIED="1327391328717" TEXT="scheme">
<node CREATED="1307014013148" ID="ID_1188521560" MODIFIED="1307014026673" TEXT="security-sensitive widgets"/>
<node CREATED="1307014028027" ID="ID_894926532" MODIFIED="1307014060547" TEXT="default vs encrypted scheme"/>
</node>
<node CREATED="1307695145627" ID="ID_632951652" MODIFIED="1307695155733" TEXT="access rights">
<node CREATED="1330436527480" ID="ID_1508017740" MODIFIED="1330436533334" TEXT="for Inputs in general"/>
<node CREATED="1330436533873" ID="ID_587466639" MODIFIED="1330436538097" TEXT="for ButtonInputs"/>
</node>
</node>
<node CREATED="1315552024397" FOLDED="true" ID="ID_1623551500" MODIFIED="1479389199835" POSITION="right" TEXT="advanced concepts">
<node CREATED="1295006119902" ID="ID_1575715526" MODIFIED="1479388798634" TEXT="sub resources">
<node CREATED="1295006196147" FOLDED="true" ID="ID_741031392" LINK="advanced/subresources/test_resourcebasics.py" MODIFIED="1315552431965" TEXT="basics">
<node CREATED="1305191100102" ID="ID_1721663405" MODIFIED="1305191104493" TEXT="what a resource is"/>
<node CREATED="1305190913003" ID="ID_701549056" MODIFIED="1305190984561" TEXT="attaching instances"/>
<node CREATED="1305190985551" ID="ID_1164799007" MODIFIED="1305191002550" TEXT="adding factories (like regex view/user interface)"/>
<node CREATED="1305191005586" ID="ID_716114339" MODIFIED="1305191048149" TEXT="dealing with arguments (to factory / from url)"/>
<node CREATED="1311759924987" ID="ID_1663643171" MODIFIED="1311759937415" TEXT="disambiguating between different factory instances"/>
<node CREATED="1305191072531" ID="ID_423279221" MODIFIED="1305191084932" TEXT="computation of url / parent url"/>
</node>
<node CREATED="1295006198860" ID="ID_1113788737" LINK="advanced/subresources/test_remotemethods.py" MODIFIED="1479388801329" TEXT="remote methods">
<node CREATED="1305203061857" ID="ID_1648663961" MODIFIED="1305203219040" TEXT="what it is and how to call"/>
<node CREATED="1295006204280" ID="ID_1811975072" MODIFIED="1295006226708" TEXT="input validation with some remote methods"/>
<node CREATED="1295006488763" ID="ID_615212296" MODIFIED="1295006496540" TEXT="different kinds of results"/>
<node CREATED="1479388803331" ID="ID_1559942627" LINK="https://docs.google.com/drawings/d/1Vye55MxJIBu2G0DfOnA1szIEf7IXmEaBwop_Iu8ONL4/edit" MODIFIED="1479388808734" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1305544979689" ID="ID_372095907" LINK="advanced/subresources/test_fieldvalidator.py" MODIFIED="1315552439539" TEXT="field validator"/>
</node>
<node CREATED="1295007348266" FOLDED="true" ID="ID_1589769299" LINK="advanced/test_requesthandling.py" MODIFIED="1353587068726" TEXT="request handling">
<node CREATED="1295007288094" ID="ID_1076598724" MODIFIED="1295007300170" TEXT="wsgi interface"/>
<node CREATED="1295007371567" ID="ID_1954291282" MODIFIED="1295007376506" TEXT="session handling"/>
<node CREATED="1295007381025" ID="ID_912070378" MODIFIED="1295007385432" TEXT="transaction handling"/>
</node>
<node CREATED="1295006333780" ID="ID_1256018605" LINK="advanced/test_staticfiles.py" MODIFIED="1479386474309" TEXT="static files">
<node CREATED="1295006359621" ID="ID_892701688" MODIFIED="1295006391876" TEXT="files on disk"/>
<node CREATED="1295006394077" ID="ID_536290882" MODIFIED="1305623445684" TEXT="files from blob"/>
<node CREATED="1295006405794" ID="ID_903293856" MODIFIED="1295006415652" TEXT="packaged files"/>
<node CREATED="1295006416333" ID="ID_386514861" MODIFIED="1295006425719" TEXT="concatenated files"/>
<node CREATED="1295006449312" ID="ID_1577061236" MODIFIED="1295006465867" TEXT="standard static files in reahl"/>
<node CREATED="1479386475945" ID="ID_242407663" LINK="https://docs.google.com/drawings/d/1e809fLBkK6r_epwaByXhl_mS0rbgQp4l2N-1stFmRWA/edit" MODIFIED="1479386799471" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1295007135594" ID="ID_680869693" LINK="advanced/test_factories.py" MODIFIED="1479386861631" TEXT="factories">
<node CREATED="1305637019001" ID="ID_1131311135" MODIFIED="1305637025496" TEXT="basic factory"/>
<node CREATED="1305637026361" ID="ID_1569241892" MODIFIED="1305637033018" TEXT="regex factory">
<node CREATED="1305637034934" ID="ID_738323668" MODIFIED="1305637037623" TEXT="errors"/>
</node>
<node CREATED="1479386943526" ID="ID_353671645" LINK="https://docs.google.com/drawings/d/1btCmx1IyBfNxINITGlsLM3Q1tEYYA_1w8Ul_ikInc3g/edit" MODIFIED="1479386964155" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1479383673564" ID="ID_920980800" LINK="advanced/test_frontend_libraries.py" MODIFIED="1479383732069" TEXT="frontend libraries"/>
</node>
<node CREATED="1302599438476" FOLDED="true" ID="ID_1041151479" MODIFIED="1327667732543" POSITION="left" TEXT="persisted stuff???">
<icon BUILTIN="stop-sign"/>
<node CREATED="1308819985987" ID="ID_95273391" MODIFIED="1308820016969" TEXT="a session that is smart enough to be able to hold onto any (persisted or serialised) object you add to it"/>
<node CREATED="1308820017957" ID="ID_849552372" MODIFIED="1308820044325" TEXT="or: Entities that are smart enough to hold onto the session (all persisted, of course)"/>
</node>
<node CREATED="1439453240980" FOLDED="true" ID="ID_1412711355" MODIFIED="1479390570528" POSITION="right" TEXT="bootstrap">
<node CREATED="1464267987816" ID="ID_515566871" LINK="bootstrap/test_basicwidget.py" MODIFIED="1464268610367" TEXT="basic bootstrap widgets"/>
<node CREATED="1439453981487" ID="ID_1367196664" LINK="bootstrap/test_gridsystem.py" MODIFIED="1439455157208" TEXT="grid system"/>
<node CREATED="1439453989153" ID="ID_1580165280" LINK="bootstrap/test_form.py" MODIFIED="1439455175301" TEXT="forms"/>
<node CREATED="1439454194323" ID="ID_1942204858" LINK="bootstrap/test_inputgroup.py" MODIFIED="1464268967323" TEXT="input groups"/>
<node CREATED="1464268702400" ID="ID_1798537267" LINK="bootstrap/test_cueinput.py" MODIFIED="1464268729729" TEXT="cue inputs"/>
<node CREATED="1464268865232" FOLDED="true" ID="ID_814107279" LINK="bootstrap/test_files.py" MODIFIED="1479387304495" TEXT="uploading files">
<node CREATED="1479387290015" ID="ID_263142580" LINK="https://docs.google.com/drawings/d/1D7roE-QBLaIJOFUXQ5kURM6yKBOT9zOAv4q2e8DlHFI/edit" MODIFIED="1479387297833" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1439454147447" ID="ID_360926336" LINK="bootstrap/components/test_nav.py" MODIFIED="1479389226559" TEXT="navs">
<node CREATED="1479389211887" ID="ID_1228587602" LINK="https://docs.google.com/drawings/d/129SQF-ZSOtfQJZd26gIVEovs-3m8A6jfWqW-yQE-eRs/edit" MODIFIED="1479389217428" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1464269011222" ID="ID_606170619" LINK="bootstrap/test_navbar.py" MODIFIED="1464269143810" TEXT="navbars"/>
<node CREATED="1464268756631" ID="ID_695032297" LINK="bootstrap/test_table.py" MODIFIED="1464269432179" TEXT="table &amp; paged/sorted table"/>
<node CREATED="1464269232275" ID="ID_391081631" LINK="bootstrap/test_tabbedpanel.py" MODIFIED="1464269249390" TEXT="tabbed panel"/>
<node CREATED="1464269146639" ID="ID_554306020" LINK="bootstrap/test_pagination.py" MODIFIED="1464269162611" TEXT="pagination">
<node CREATED="1312449697273" ID="ID_1733513279" LINK="https://docs.google.com/drawings/d/1eJeCCZOQefp-qG7a8Wg8xua-rwdEJilImujGRgMrZrM/edit?hl=en_US" MODIFIED="1312449943923" STYLE="fork" TEXT="">
<icon BUILTIN="xmag"/>
</node>
</node>
<node CREATED="1464268627122" ID="ID_699614453" LINK="bootstrap/test_carousel.py" MODIFIED="1464268666703" TEXT="carousel"/>
<node CREATED="1464269175219" ID="ID_821391738" LINK="bootstrap/test_popup.py" MODIFIED="1464269194390" TEXT="popup dialogs"/>
</node>
<node CREATED="1479383131982" ID="ID_1603653346" LINK="test_placeholder.py" MODIFIED="1479383171527" POSITION="right" TEXT="placeholder images"/>
</node>
</map>
