Satchmo 0.9.2 Release
=====================

These are the notes for Satchmo 0.9.2.
The full list of closed tickets can be viewed `here <http://www.bitbucket.org/chris1610/satchmo/issues?status=resolved&milestone=0.9.2>`_

This release contains numerous fixes, improvements and updates from 0.9.1. A summary of some of the key items are included below.

New Features
------------
- Display payment methods in emails
- Update the default templates to show quick orders and category indexes
- Ensure notes fields can be saved if they are included in the checkout process
- Display country names instead of abbreviations in templates
- Update google analytics code to use latest tracker js
- Add an unlimited downloads option for downloadable products
- Added support for Django's new CSRF support
- UPS Shipping module now allows you to box products together into 1 container
- Add a new config for the persistent cart to provide more options for how it handles returning users
- New template tag to show tiered shipping pricing table
- Control product variations inclusion in searching view the settings
- UPS module will display actual shipping times
- New template tag product_featured_list
- New config option to allow users to create their username instead of automatically generating
- Satchmo check now does a more thorough job of checking your environment for issues
- Product variation images can be shown when the user selects the product
- In the admin view of products, stock and price are displayed in a more useable format
- Ability to add and manage addressbook entries

Translations
------------
- Added Dutch translation
- Added Czech translation
- Updated French translation
- Updated Spanish translation
- Added Romanian translation

Bug Fixes
---------
- Fix issue if Unicode characters in options
- Fix issues with migrations and content types
- Resolve Paypal unneeded dependency on subscription product
- Make sure "all valid" discounts are correctly applied
- Fix Wishlish ajax add view
- Ensure that product variation properly inherits shipping from its parent
- Handling of gift certificate plus other payments fixed
- Bug in tax processor rendering fixed
- Bug in autosuccess payment module fixed
- Rebuild pricing was deleting prices if multiple sites were being used
- Currency template tags handles decimal places parameter correctly
- Improve robustness of South migrations
- Fix obscure issue where some users were able to edit the wrong information
- Remove custom read only widget use and use Django's newer read only field
- Paypal was not saving contact information correctly in certain cases
- Newsletter subscription status could be lost when checking out
- Use smart_attr for tiered weight shipping module
- Make sure that the product image file name doesn't exceed the length of the file field
- Multiple doc formatting fixes
- Authorize.net now uses shipee first and last names if given
- Typo in wishlist ajax view
- Make sure jquery correctly shows error messages on product pages
- Fixed problem where category caching was not handling translations correctly
- Ensure Ajax calls in checkout use SSL if it is turned on
- Akismet for comment moderation is fixed
- Improvements to South migrations
- Update Paypal IPN docs
- Fix issue where inactive or out of stock products could be purchased if there was a time lag between cart addition and checkout
- Cart template tag now allows show_discount
- Several fixes to transaction management
- Improve postgres syncdb support
- UPS time in transit prevents weekend pickups
- Payments weren't showing up correctly in admin
- Multiple updates to the tests to make them more robust
- Fix issue with persistent cart not working correctly
- Updates and fixes to sermepa payment module
- Fixes to syncdb
- Fedex module API changes
- Several fixes to handle unicode characters better
- Replace some admin jquery scripts with simpler django readonly fields
- Ensure that google checkout empties the cart
- Converted to SOAP based Fedex API
- Fix use of sale variable in context processor
- Handle different ship to and bill to addressees better
- Tax processor was not being cached correctly
- Secure autocomplete view so that only staff users could view it
- Fix product variation pricing so that explicit prices don't get overriden by deltas
- Fix apply_even_split so that discounts get applied properly
- Ensure home page paginator handles improper inputs better
- Improve satchmo_check's ability to report possible errors
- Fix payment information displayed in confirmation emails

Performance Improvements
------------------------
- Tweaks to price queries to reduce unneeded queries
- Made a couple of view and template changes to reduce the number of SQL queries per page
- Added db index on Price Lookup table

Additional Packages
-------------------
We have also made several updates to satchmo's dependencies including:
  - `livesettings <https://bitbucket.org/bkroeze/django-livesettings>`_ 
  - `keyedcache <https://bitbucket.org/bkroeze/django-keyedcache>`_ 
  - `django-caching-app-plugins <https://bitbucket.org/bkroeze/django-caching-app-plugins/>`_
  
You should upgrade these to the latest version when you upgrade your satchmo site.

Migration Notes
---------------

CSRF
++++
As of `rev 1999 <http://bitbucket.org/chris1610/satchmo/changeset/a624c8018f52>`_, Satchmo supports the newest Django 1.2 Cross Site Request Forgery (CSRF)
protection. You are encouraged to read more about it int the `Django docs <http://docs.djangoproject.com/en/dev/ref/contrib/csrf/>`_

If you have an existing Satchmo store and need to support CSRF, you will need to do a couple of things:

    1. Upgrade to Django 1.2.3 or greater
    2. Ensure 'django.middleware.csrf.CsrfViewMiddleware' is in your MIDDLEWARE_CLASSES
    3. Ensure that any forms in your custom templates, have {% csrf_token %} inside the <form> element
    
Messages
++++++++
As of `rev 1999 <http://bitbucket.org/chris1610/satchmo/changeset/a624c8018f52>`_, Satchmo incorporates some of the components of the new `messages framework <http://docs.djangoproject.com/en/dev/ref/contrib/messages/>`_.

If you have an existing Satchmo store you will need to:

    1. Add 'django.contrib.messages.middleware.MessageMiddleware' to your MIDDLEWARE_CLASSES
    2. Add 'django.contrib.messages.context_processors.messages' to your TEMPLATE_CONTEXT_PROCESSORS
    3. Add 'django.contrib.messages' to your INSTALLED_APPS setting
    
Protx Payment Module Renamed
++++++++++++++++++++++++++++
As of `rev 2051 <http://bitbucket.org/chris1610/satchmo/changeset/04f821df32ec>`_, the Protx module has been renamed to Sage Pay. You will need to manually copy over your former Protx credentials to
the new Sage Pay module. No further changes should be necessary.

ProductPriceLookup Index
++++++++++++++++++++++++
As of `rev 2120 <https://bitbucket.org/chris1610/satchmo/changeset/dd9fccf8a2aa>`_, the price lookup model has an index on the productslug to improve performance on large data sets.

A south migration is included. To apply:
    
    python manage.py migrate product
    
Support for Django 1.3
++++++++++++++++++++++
As mentioned above, when using Django 1.3, it is important to upgrade `django-caching-app-plugins <https://bitbucket.org/bkroeze/django-caching-app-plugins/>`_ (app_plugins) to version 0.1.2.

Active Products
+++++++++++++++
Previously, category.active_products() would not consistently return the correct product variations. In `rev 2168 <https://bitbucket.org/chris1610/satchmo/changeset/318f7eb41140>`_
this was fixed but had the unintended side effect of returning all the product variations in the default templates. In order to maintain
consistency, the default variation display value is now False. The only people that will notice the issue are those that customized
the variation display in the category page.

Order Shipping Method and Description Fields increased
++++++++++++++++++++++++++++++++++++++++++++++++++++++
The fields in the Order model for storing the shipping method and description were too small. The size of the field has been increased to 200 characters.
A migration is included for this change:

    python manage.py migrate contact --fake 0001
    python manage.py migrate shop --fake 0001
    python manage.py migrate shop

Fedex Module Update
+++++++++++++++++++
The old Fedex module used the XML api reference. The Fedex API documentation is geared more towards a SOAP API. We have moved to
using this new interface.  If you were using the old Fedex module, you will need to update your account and get a new API key.

Additionally, we are requiring two new modules for Fedex. You can install them using pip or easy_install:

    pip install fedex
    pip install suds

Additional Notes
----------------

Future versions of Satchmo will require Django 1.3.1 and higher.
