TODO list
---------

Product page is at http://plone4artists.org/products/plone4artistsimage.  Here is
our TODO list, from highest priority to lowest.

- Handle TIFF and GIF

- Get rid of preferred_dimensions as this causes problems with a 
  thumbnail's aspect ratio.

- Implement round trip - editing image metadata in Plone gets saved
  to the image file (store function in _imagedata.py) - so syncing
  of values works.

- Create a thumbnail with PIL if none exists in EXIF metadata

- Add tests

- We are not being consistent about how to handle missing metadata information -
  should it be None or ''?  Should it be in _imagedata.py's self._image_data at all?
  Needs some thought and refactoring.  ploneimage/atct.py currently has some
  hacks dealing with this that should be revisited.

- Rocky says IImageView really needs refactoring (browser/image.py)

- Add additional metadata fields to SearchableText (ploneimage/atct.py)
  Should we field index things like city, state, country?

- Provide IGeometry and IGeoSimpleItem interfaces.  This work has been started
  (in image/interfaces.py and ploneimage/geoimage.py) but needs to be finished.
  Make sure the GPS coordinates are in the correct format for IGeometry
  (see image/interfaces.py)
  More info at:
  -  How WGS 84 (World Geodetic System of 1984) defines the Earth:
     http://home.online.no/~sigurdhu/WGS84_Eng.html 
  -  Degree conversion formulas:
     http://home.online.no/~sigurdhu/Deg_formats.htm

- Make date have proper format - it is a string now (_imagedata.py and interfaces.py)

- Make container views more interesting - like a PhotoAlbum

- Add slideshow functionality for containers - see Jon Stahl's
  http://plone.org/products/slideshowfolder

- Do the equivalent of the Greasemonkey script for geotagging Flickr 
  images on the edit formwith Google Maps:
  http://www.eschoolnews.com/eti/2005/08/001162.php

- Catch addition of ATFile (in addition to ATImage) and extend the same way
  - Add additional class to ploneimage/configure.zcml
  - Add code to ploneimage/atct.py to handle either type (file uses getRawImage)
  - Add things file is missing (like image_view_fullscreen)

- What about categorizing the images - something equivalent to the "genre" 
  functionality for audio? - relationship to Keywords?

- Make the syndication of image containers interesting - add thumbnails?
  did flickr do something like this?

- Wild idea: Provide the GPS coordinates in a Flickr API-like web service so 
  that geobloggers.com can use it; and put link to geobloggers.com on
  the view page or somewhere to facilitate geobloggers picking it up,
  as described on 
  http://www.makezine.com/blog/archive/2005/07/how_to_gps_tag.html


NOTE:

To add an additional image metadata field:

- Load and store it in image/thirdparty/_imagedata.py
  (Implements the ImageDataAccessor that creates the _image_data dictionary for 
  metadata on the object and does load/store functionality from/to image)
- Add it to image/interfaces.py:IImage
  (Defines the image attributes that will be exposed, including their UI labels)
- Add it to image/imageanno.py:AnnotationImage
  (Adapter for IImage that makes _image_data dictionary info available as lightweight
  annotations on the object; not part of the AT schema, but available by name) 
- Add it to image/browser/image.py:ImageView
  (makes the IImage defined attributes available to page templates via "image_info" by 
  providing metadata dictionary elements from the annotations [image_info defined
  in browser/configure.zcml] [needs refactoring])
- Add it to image/browser/image.pt
  (the UI)
