1.0 Alpha 1:
- [x] - add support for viewlets and portlets
- [ ] - handle nested skin items
- [x] - fix or at least find workaround for uploading files in popups
- [x] - the jquery forms plugin looks promising for this. David G will tt Steve M about incorporating into plone.app.jquerytools
- [x] - register configlet
- [x] - option to show only customized resources
- [ ] - fix lookup of layers for 2 views with the same name but different contexts

Research:
- warning on customizing something that has already been customized
  --> probably not needed, b/c it doesn't clobber an existing item
- drag-and-drop upload
- exporters
- fallback to unskinned main template
  - any way to detect when switching to Restricted Python is going to cause access problems?
- filter out known ZMI views unless overridden

1.0 Alpha 2:
- [x] - add a link in the UI for the export view
- [x] - clean up the export view to not show content_views
- [x] - export customizations as a new theme 
- [x] - refactor so that all .tmpl templates are written using write_tmpl in browser/export.py

1.0 Alpha 3:
- [ ] - show a "summary" with instructions on how to install exported theme
- [ ] - add tests for the export functionality
- [x] - fix missing i18n (view X of Y in zopeview.py)
- [ ] - on popup close, update opened drawers rather than entire page
- [ ] - put JS and CSS in separate files instead of inline in the templates
- [ ] - write cmfskins to separate folders (currently writes to a single folder)
- [ ] - add random salt to GET requests that shouldn't be cached, for IE
  - (first check to confirm if this is an issue)

1.0 Beta
- [ ] - More ajax updating when an item is changed
- [ ] - Reduce the need to force refresh

1.0 
- [ ] - feature freeze
- [ ] - polish UI 

2.0
- [ ] - (based on conversation with davisagli) implement an export method for each resource type
  the idea is to make it possible to iterate over each customized resourse using the 
  resource retreiever and export the result to the "export" directory
- [ ] - custom forms
  - filesystem page template: view, customize
  - filesystem image: view, customize
  - page template: view, edit, remove
  - image: view, edit, remove
- [ ] - support showing resources for themes other than the active one
- [ ] - gloworm style UI
- [ ] - find a way to deal with 'hidden viewlets' viewlets that don't have templates etc....
- [ ] - create new templates by cloning and renaming
- [ ] - A theme egg installation UI
- [ ] - possibly create a way to introspect z3c.jbot template
  override registry (useful for roundtripping)

User stories
============

Webmaster
---------

browse and filter CMF skin items nested in other CMF skin folders
browse and filter viewlets
browse and filter portlets
replace images via file upload in popup AJAX forms
support file upload by dragging from desktop
customize templates in CMF skin layers by copying to a new layer
customize browser view templates by creating a local registration of the view
create a nicer UI for viewing/editing resources
 - CMF ZPT
 - browser view ZPT
 - image
 - file
 - Python script
view a list of all customized resources
create a new template
create a new image, stylesheet, or other file
make changes to templates without worrying about breaking the skin editor such that I can't revert my changes
make changes to CSS or javascript without having to remember to re-cook the relevant registry
read good tutorial documentation of how to use the skin editor
edit templates with the aid of a library of common variables and snippets

Site administrator
------------------

export a theme and import to another site

Developer
---------

export a theme and turn into a filesystem-based package
view a diff of TTW changes

Package maintainer
------------------

have automated tests to give me confidence that changes are not breaking the system
have selenium tests to give coverage for parts of the system that use Javascript
have performance benchmarks to give confidence that the system is not getting slower
