Day 3 (Plone Conference 2008)
by
vanghn17
—
last modified
Oct 16, 2008 02:20 PM
Nathan's Notes
"Plone Form Gen" by Steve McMahon
- Fields are content types
- Adapters are not Z3 adapters
- can have multiple action adapters
- Extensions
- SalesForce adapter
- Captchas
- skimpy gimpy
- GetPaid
- tricks
- create own validators
- overrides in field
- chained forms
- turn fields on and off
- SQL CRU(D)
- amazing tricks
- inject js/css
- customized thanks pages
- posting to outside
- creating content
- using custom script adapter
- gotchas
- inefficient due to Plone 2.1 architecture
- not interactive enough
- future
- zope 3 events
- avoid waking up all inner objects
- zope 3 schema
- connect to new world a dev
- z3c.form
- kss
- inline editing is a mistake
- inline validating is good though!
- drag and drop widgets
- need more developers
- smooth migration!
- stay simple or hide complexity
- dexterity
- CSRF(cross site request forgery) protection
- not currently there
"Intro to z3c.form" by Stephan Richter
- benefits
- automatic validation
- nice error messages
- reusable form components
- does all tedious bits
- what is it?
- presentation component
- can be viewlet
- buttons generate form actions
- template associated with a form to describe layout
- fields
- forms represent fields as attributes
- see z3c.form.field
- communicator between presentation(widget) and form
- examples...
- fields = field.Fields(ISchema).select('when', 'who')
- widgets
- the python representation of output format
- modes of display
- components
- converters are used to convert field values to widget-processable values
- validators - custom messages
- need more sensible error messages - available to contribution
- data managers are used to store the value to a content component
- buttons
- defines actions for a form
- simple extensions to schema fields
- conditions determine availability of a button
- many ways to create buttons
- can have multiple sets of buttons
- same as field, but produces actions
- actions
- actions are widgets for buttons
- handlers
- defines set of instructions to execute wen action is called
- declaring buttons
- button schemas
- can copy buttons, actions and handers from super-form
- form classes
- BaseForm, DisplayForm, Form, AddForm, EditForm
- side note
- to create zope object
- inherit from zope.location.Location and persistent.Persistent
- apidoc.zope.org
- Add Forms
- see z3c.form.add.AddForm
- Display Forms
- produce human readable representations of data
- Edit Forms
- Future
- integrate z3c.pt
- benchmarks show generation is 2-3 times faster
- new widgets
- TextLinesWidget, MultiWidget, ObjectWidget
- translations
- Extensions
- z3c.formjs
- see z3c.formjsdemo
- z3c.formwidget.query - query large collective and select a value fromt he query results
- plone.z3cfrom
- megrok.z3cform
- five.megrok.z3cform
- z3c.formext - extjs integration
- zope.contentprovider
- info on update render pattern
- update render pattern
- update is overridden all the time
- render-not as often
- should be able to call update many times
"Plone and Multimedia" by Nate Aune
- p4artists
- -podcasting is huge now
- use plone and combine with multimedia add-ons
- audio enhanced folder
- not a good idea to store large files in zodb
- blob file
- no new content types
- add social networking features
- howto
- eggs =
p4a.ploneaudio
p4a.plonevideo
p4a.plonevideoembed
zcml =
p4a.ploneaudio
p4a.plonevideo
p4a.plonevideoembed
- plone.app.blob
- allows you to store large files
- FileSystemStorage, ExternalStorage --- bad way
- PloneFlashUpload
- PloneJUpload
- ZipFileTransport
- WebDAV
- Tramline
- intercepts the upload requests for large files and give it to apache
- use to go straight to flash server
- Amazon S3 HTTTP Post
- doc.s3.amazonaws.com/proposals/post.html
- takes upload and stores on amazon
- Blip.tv
- wiki.blip.tv/index.php/REST_upload
- plone bookmarklets
"RIA with kss, extjs and more" by Godefroid Chapelle
- RIA(Rich Internet Applications)
- like desktop apps
- faster
- only rendering new edit window instead of render whole new page
- dialogs..
- still renders plone widgets
- no full page reloads
- uses blueprint.css
- css framework
- grid layout
- extjs license
- releases under GPL3
- no access to svn though
- only access to released code
- highly configurable
- stylable
- event system
- data stores
- ease of development
- z3c.form
- z3c.table
- eggs
- collective.extjs
- kss.plugin.extjs
- collective.z3ctable.extjs
- collective.blueprint
- collective.z3cform.contentproviders
"Collective Good"
- before you create, make sure...
- does it scratch an itch
- worth a new product
- willing to maintain this?
- issues to consider
- uninstall does no harm
- install only affects one site(some zope stuff)
- install shouldn't nuke site
- first tests
- installs js, css, skins, etc
- uninstall test... gets rid of junk
- browserlayers!
- play well with others
- no new wheels
- viewlets
- subtype/schema extend
- go by naming styles in base-properties
- do not always create new types!
- uninstall without losing content
- plan for widespread use
- unit test
- functional tests
- browser tests
- i18n
- eggify
- compatibility
- support two versions of plone at a time
- check out ploneformgen -> great examples
- separate skins folders for 2.5 and 3.0
- plan for customization
- separate logic from presentation
- user browser views
- am I ready for parenthood
- use collective but don't put up on plone.org
- good name
- good documentation
- HISTORY.txt
- comments in code, generic setup
- good storage
- collective
- release product to plone.org as tarball
- pypi
- never delete tags from svn
- never put import pdb in collective
- namespace is not the Product name!
- stewardship
- release
- never delete release
- maintain
- migrate
- hook into install method of product(Install.py)
- GS - setup handlers











