Browse Source

Add release notes for 0.5

master
David Winterbottom 12 years ago
parent
commit
cea2892076
4 changed files with 224 additions and 0 deletions
  1. 2
    0
      CHANGELOG.rst
  2. 1
    0
      docs/source/index.rst
  3. 7
    0
      docs/source/releases/index.rst
  4. 214
    0
      docs/source/releases/v0.5.rst

+ 2
- 0
CHANGELOG.rst View File

@@ -2,6 +2,8 @@
2 2
 Changelog
3 3
 =========
4 4
 
5
+For releases after 0.4, see the release notes in the docs.
6
+
5 7
 0.4 - 2012-10-19
6 8
 ----------------
7 9
 

+ 1
- 0
docs/source/index.rst View File

@@ -102,5 +102,6 @@ Learn about the ideas behind Oscar and how you can contribute.
102 102
    :maxdepth: 1
103 103
 
104 104
    internals/design-decisions
105
+   releases/index
105 106
    internals/contributing/index
106 107
    

+ 7
- 0
docs/source/releases/index.rst View File

@@ -0,0 +1,7 @@
1
+=============
2
+Release notes
3
+=============
4
+
5
+.. toctree::
6
+
7
+    v0.5

+ 214
- 0
docs/source/releases/v0.5.rst View File

@@ -0,0 +1,214 @@
1
+=======================
2
+Oscar 0.5 release notes
3
+=======================
4
+
5
+Welcome to Oscar 0.5!
6
+
7
+These release notes cover the `new features`_ as well as `upgrading advice`_.
8
+
9
+.. _`new features`: `What's new in Oscar 0.5?`_
10
+.. _`upgrading advice`: `Upgrading`_
11
+
12
+Overview
13
+========
14
+
15
+The main aim of this release was to add functionality to offers but scope
16
+expanded over time to include many fixes and improvements.  Whilst there aren't
17
+that many new features from a customer perspective, a great deal of work has
18
+gone into reworking Oscar's structure to be more extensible.
19
+
20
+Thanks to all the contributors who helped with this release.
21
+
22
+What's new in Oscar 0.5?
23
+========================
24
+
25
+Offers++
26
+~~~~~~~~
27
+
28
+Most of the new features in 0.5 are around offers.  
29
+
30
+* It is now possible to create custom ranges, conditions and benefits that can
31
+  be used to create flexible offers.  These ranges are created as Python classes
32
+  conforming to a set interface which are registered at compile time to make
33
+  them available in the dashboard.
34
+
35
+* Offer benefits can now apply to the shipping charge for an order.  Previously,
36
+  all benefits were applied against the basket lines.  There are three shipping
37
+  benefits ready to use: 
38
+
39
+    - Fixed discount off shipping (eg get £5 off your shipping costs)
40
+    - Percentage discount off shipping (eg get 25% off your shipping costs)
41
+    - Fixed price shipping (eg your shipping charge will be £5)
42
+
43
+* Offer benefits can now be deferred.  That is, they don't affect either the
44
+  basket lines nor the shipping charge.  This is useful for creating benefits
45
+  such as awarding loyalty points.
46
+
47
+* Several new ways of restricting an offer's availability have been introduced:
48
+
49
+    - An offer's lifetime can now be controlled to the second rather to the day
50
+      (ie the relevant model fields are datetimes rather than dates). This makes
51
+      it possibly to run offers for a small amount of time (eg for a single
52
+      lunchtime).
53
+
54
+    - An offer can be restricted to a max number of applications per
55
+      *basket/order*.  For example, an offer can configured so that it can
56
+      only be used once in a single order.
57
+
58
+    - An offer can be restricted to a max number of applications per *user*.
59
+
60
+    - An offer can be restricted to a max number of *global* applications.
61
+
62
+    - An offer can be restricted to give a maximum total discount.  After this
63
+      amount of discount has been awarded, the offer becomes unavailable.
64
+
65
+* Offers can now be suspended and reinstated.
66
+
67
+* The offers dashboard has been rewritten.
68
+
69
+* There is now an offers homepage that lists all active offers.
70
+
71
+New dashboard skin
72
+~~~~~~~~~~~~~~~~~~
73
+
74
+The design of the dashboard has been reworked, offering a better user experience
75
+throughout the dashboard.  This work is still ongoing, further improvements in
76
+how the dashboard pages are laid out will appear in 0.6.
77
+
78
+Internationalisation
79
+~~~~~~~~~~~~~~~~~~~~
80
+
81
+Oscar now uses Transifex_ to manage its translation files.  Since 0.4, a
82
+considerable number of new languages are now supported (although many have
83
+partial coverage).  
84
+
85
+.. _Transifex: https://www.transifex.com/projects/p/django-oscar/
86
+
87
+Oscar's default templates also now support a simple language picker.
88
+
89
+New settings have been introduced to control how slugs are generated.  By
90
+default, the unidecode package is used to gracefully handle non-ASCII chars in
91
+slugs.
92
+
93
+Minor features
94
+~~~~~~~~~~~~~~
95
+
96
+There are several noteworthy smaller improvements 
97
+
98
+* The basket page now updates using AJAX rather than page reloads.
99
+
100
+* Oscar's documentation has been reorganised and improved.  This is part of an
101
+  ongoing effort to improve it.  Watch this space.
102
+
103
+* Oscar's template now use django-compressor_ to comrpess CSS and JS assets.
104
+
105
+* Products can now be deleted using the catalogue dashboard.
106
+
107
+* Warnings emails are sent to customers when their password or email address is
108
+  changed.
109
+
110
+* Flash messages can now contain HTML.
111
+
112
+.. _django-compressor: http://django_compressor.readthedocs.org/en/latest/
113
+
114
+Minor improvements
115
+~~~~~~~~~~~~~~~~~~
116
+
117
+Several improvements have been made to ease development of Oscar (and Oscar
118
+projects):
119
+
120
+* The sandbox can be configured to compile the LESS files directly.  This is
121
+  useful for developing Oscar's CSS/LESS files.
122
+
123
+* A new management command ``oscar_fork_statics`` has been added to help with
124
+  setting up static files for a new Oscar project.
125
+
126
+* Alternative templates can now be used for different product classes in product
127
+  browsing views.
128
+
129
+* Bootstrap upgraded to 2.3.1
130
+
131
+* The test runner can now be run with tox_.
132
+
133
+* Oscar ships with profiling tools.  There is a decorator and middleware
134
+  available in ``oscar.profiling`` that can be used to help profile Oscar sites.
135
+
136
+* Customers are notified if changes to their basket lead to new offers being
137
+  applied (or if previously applied offers are no longer available).
138
+
139
+* Some testing utilities have been extracted into a new package,
140
+  django-oscar-testsupport_, so they can be used by Oscar extensions.
141
+
142
+* A Vagrant_ manifest is provided for testing Oscar against different database
143
+  vendors.
144
+
145
+.. _django-oscar-testsupport: https://github.com/tangentlabs/django-oscar-testsupport
146
+.. _tox: http://testrun.org/tox/latest/
147
+.. _Vagrant: http://www.vagrantup.com/
148
+
149
+* Oscar's javascript has been rewritten to be cleaner and more extensible.
150
+
151
+* Coverage data is now submitted to coveralls.io_
152
+
153
+.. _coveralls.io: https://coveralls.io/r/tangentlabs/django-oscar
154
+
155
+Upgrading 
156
+=========
157
+
158
+This section describes changes in core Oscar that you need to be aware of if you
159
+are upgrading from 0.4.  See the :doc:`upgrading guidelines </ref/upgrading>` for
160
+further details on the steps you need to take.
161
+
162
+Migrations
163
+~~~~~~~~~~
164
+
165
+There are new migrations in the following apps to be aware of.
166
+
167
+* Address:
168
+
169
+    - ``0002``: Make ``postcode`` nullable on the ``Address`` model
170
+
171
+* Catalogue:
172
+
173
+    - ``0009``: Add a ``rating`` field to the product model
174
+    - ``0010``: Populate the new ``rating`` field
175
+
176
+.. note::
177
+  Note, if you are using a customised version of the catalogue app, then you
178
+  should create a similar data migration to ``0010`` in your own project.  
179
+
180
+* Offer:
181
+
182
+    - ``0007``: Add ``max_global_appliations`` field to ``ConditionalOffer`` model
183
+    - ``0008``: Add ``num_applications`` field to ``ConditionalOffer`` model
184
+    - ``0009``: Rename ``max_applications`` field to ``max_basket_applications``
185
+    - ``0010``: Add ``max_user_applications`` field to ``ConditionalOffer`` model
186
+    - ``0011``: Add ``proxy_class`` field to ``Range`` model
187
+    - ``0012``: Add ``proxy_class`` field to ``Condition`` model and make
188
+      ``range``, ``type`` and ``value`` nullable.
189
+    - ``0013``: Add unique index on ``proxy_class`` for the ``Range`` model
190
+    - ``0014``: Empty migration after branch merge
191
+    - ``0015``: Add ``max_discount`` field to ``ConditionalOffer`` model
192
+    - ``0016``: Add ``status`` field to ``ConditionalOffer`` model
193
+    - ``0017``: Change ``start_date`` and ``end_date`` to datetimes.
194
+    - ``0018``: Rename ``start_date`` and ``end_date`` to ``start_datetime`` and
195
+      ``end_datetime`` respectively.
196
+    - ``0019``: Add ``proxy_class`` field to ``Benefit`` model and make
197
+      ``range``, ``type`` and ``value`` nullable.
198
+
199
+* Order:
200
+
201
+    - ``0007``: Add ``frequency`` field to ``OrderDiscount`` model
202
+    - ``0008``: Add ``category`` field to ``OrderDiscount`` model
203
+    - ``0009``: Add ``message`` field to ``OrderDiscount`` model
204
+
205
+* Partner:
206
+
207
+    - ``0004``: Add ``code`` field to ``Partner`` model
208
+    - ``0005``: Populate the new ``code`` field
209
+    - ``0006``: Add unique index on ``code`` field
210
+    - ``0007``: Remove unique index from ``name`` field and make nullable
211
+
212
+.. note::
213
+  Note, if you are using a customised version of the partner app, then you
214
+  should create a similar data migration to ``0005`` in your own project.  

Loading…
Cancel
Save