Bläddra i källkod

Merge branch 'releases/0.2'

master
David Winterbottom 13 år sedan
förälder
incheckning
99e4849d15

+ 22
- 23
CHANGELOG.rst Visa fil

@@ -2,34 +2,33 @@
2 2
 Changelog
3 3
 =========
4 4
 
5
-0.1
6
-~~~
5
+0.2 - 01 June 2012
6
+~~~~~~~~~~~~~~~~~~
7 7
 
8
-* Initial release - used in production by two major applications at Tangent but
9
-  still quite rough around the edges.  Many features were implemented directly
10
-  in the applications rather than using a feature from oscar.
11
-* Docs are a bit stale and need updating in 0.2
8
+Many components have been rewritten since 0.1 - Oscar is much more of a complete
9
+package now.  New features include:
12 10
 
13
-Roadmap
14
--------
11
+* Dashboard for managing catalogue, offers, stock, vouchers and more.  This includes
12
+  statistics pages to track performance.
15 13
 
16
-0.2
17
-~~~
14
+* Sample templates, CSS and JS to get a shop up and running in a minutes.  
15
+
16
+* Updated documentation.
18 17
 
19
-Currently a work-in-progress, estimated release date: May 2012.  It will feature:
18
+* Reworking of shipping methods.
20 19
 
21
-* Much better documentation, including recipes for common tasks
22
-* Refactoring of shipping methods
23
-* New dashboard functionality for product management, order management, customer services
24
-* New dynamic class loading
25
-* Lots more tests!
26
-* A fully styled sandbox shop based on Twitter's bootstrap.
20
+* Automatic up-selling on the basket page.  We now inform the user if they
21
+  partially quanlify for an offer.
27 22
 
28
-0.3
23
+The documentation still needs more work which we'll do over the next week or
24
+two.
25
+
26
+0.1
29 27
 ~~~
30 28
 
31
-* Rewrite of search app to use Solr and probably not Haystack
32
-* Much better support for variant products which aren't handled very well at the
33
-  moment.
34
-* Dashboard issue management
35
-* Better support for role-based permissions
29
+* Initial release - used in production by two major applications at Tangent but
30
+  still quite rough around the edges.  Many features were implemented directly
31
+  in the applications rather than using a feature from oscar.
32
+
33
+* Docs are a bit stale and need updating in 0.2
34
+

+ 18
- 15
docs/source/design_decisions.rst Visa fil

@@ -8,9 +8,9 @@ extended and customised to suit the domain at hand.  This is acheived in several
8 8
 Core models are abstract
9 9
 ------------------------
10 10
 
11
-Online shops can vary wildly, selling everything from turnips to concert tickets.  Trying
12
-to define a set of Django models capable for modelling all such scenarios is impossible -
13
-customisation is what matters.
11
+Online shops can vary wildly, selling everything from turnips to concert
12
+tickets.  Trying to define a set of Django models capable for modelling all such
13
+scenarios is impossible - customisation is what matters.
14 14
 
15 15
 One way to model your domain is to have enormous models that have fields for
16 16
 every possible variation; however, this is unwieldy and ugly.  
@@ -24,7 +24,7 @@ where all the fields are meaningful within any e-commerce domain.  Oscar then
24 24
 provides a mechanism for subclassing these models within your application so
25 25
 domain-specific fields can be added.
26 26
 
27
-Specifically, in each of oscar's apps, there is an ``abstract_models.py`` module which
27
+Specifically, in many of oscar's apps, there is an ``abstract_models.py`` module which
28 28
 defines these abstract classes.  There is also an accompanying ``models.py`` which provides an
29 29
 empty but concrete implementation of each abstract model.
30 30
 
@@ -32,27 +32,30 @@ Classes are loaded dynamically
32 32
 ------------------------------
33 33
 
34 34
 To enable sub-apps to be overridden, oscar classes are loading generically
35
-using a special ``import_module`` function.  This looks at the
35
+using a special ``get_class`` function.  This looks at the
36 36
 ``INSTALLED_APPS`` tuple to determine the appropriate app to load a class from.
37 37
 
38
-Within oscar itself, classes are imported using a special ``import_module`` function
39
-which determines which app to load the specified classes from.  Sample usage is::
38
+Sample usage::
40 39
 
41
-    import_module('product.models', ['Item', 'ItemClass'], locals())
40
+    from oscar.core.loading import get_class
41
+
42
+    Repository = get_class('shipping.repository', 'Repository')
42 43
     
43
-This will load the ``Item`` and ``ItemClass`` classes into the local namespace.  It is
44
-a replacement for the usual::
44
+This is a replacement for the usual::
45
+
46
+    from oscar.apps.shipping.repository import Repository
45 47
 
46
-    from oscar.product.models import Item, ItemClass
48
+It is effectively an extension of Django's ``django.db.models.get_model``
49
+function to work with arbitrary classes.
47 50
     
48
-The ``import_module`` looks through your ``INSTALLED_APPS`` for a matching module to
51
+The ``get_class`` function looks through your ``INSTALLED_APPS`` for a matching module to
49 52
 the one specified and will load the classes from there.  If the matching module is
50 53
 not from oscar's core, then it will also fall back to the equivalent module if the
51 54
 class cannot be found.
52 55
 
53
-This structure enables a project to create a local ``product.models`` module and 
54
-subclass and extend the core models from ``oscar.app.product.models``.  When Oscar
55
-tries to load the ``Item`` class, it will load the one from your local project.
56
+This structure enables a project to create a local ``shipping.repository`` module and 
57
+subclass and extend the classes from ``oscar.app.shipping.repository``.  When Oscar
58
+tries to load the ``Repository`` class, it will load the one from your local project.
56 59
 
57 60
 All views are class-based
58 61
 -------------------------

+ 15
- 0
docs/source/getting_help.rst Visa fil

@@ -0,0 +1,15 @@
1
+============
2
+Getting help
3
+============
4
+
5
+If you're stuck with a problem, try checking the `Google Groups archive`_ to see if
6
+someone has encountered it before.  If not, then try asking on the mailing list
7
+django-oscar@googlegroups.com.  If it's a common question, then we'll write up
8
+the solution as a recipe.
9
+
10
+.. _`Google Groups archive`: https://groups.google.com/forum/?fromgroups#!forum/django-oscar
11
+
12
+If you find a bug, please report it in the `Github issue tracker`_
13
+
14
+.. _`Github issue tracker`: https://github.com/tangentlabs/django-oscar/issues
15
+

+ 2
- 2
docs/source/getting_started.rst Visa fil

@@ -113,7 +113,7 @@ Install using Tangent's boilerplate django project
113 113
 The easiest way to get started is to use Tangent's `template django project`_
114 114
 although it is tailored to an Agency structure which may not suit everyone.
115 115
 
116
-.. `template django project`: https://github.com/tangentlabs/tangent-django-boilerplate
116
+.. _`template django project`: https://github.com/tangentlabs/tangent-django-boilerplate
117 117
 
118 118
 Set up a virtualenv, and create a new project using the ``startproject``
119 119
 management command::
@@ -124,7 +124,7 @@ management command::
124 124
         --template=https://github.com/tangentlabs/tangent-django-boilerplate/zipball/master 
125 125
 
126 126
 This will create a folder ``frobshop`` which is an entire templated project that
127
-follows Tangent's conventions.  The structure is:
127
+follows Tangent's conventions.  The structure is::
128 128
 
129 129
     frobshop/
130 130
         docs/

+ 1
- 0
docs/source/index.rst Visa fil

@@ -53,6 +53,7 @@ ipads.  The `source is on Github`_.
53 53
    getting_started
54 54
    key_questions
55 55
    recipes
56
+   getting_help
56 57
    design_decisions
57 58
    reference
58 59
    contributing

+ 1
- 1
docs/source/recipes/how_to_configure_shipping.rst Visa fil

@@ -32,7 +32,7 @@ Set a custom shipping methods
32 32
 -----------------------------
33 33
 
34 34
 To apply your domain logic for shipping, you will need to override
35
-the default repository class (see :doc:`how_to_override_a_class`) and alter
35
+the default repository class (see :doc:`recipes/how_to_override_a_class`) and alter
36 36
 the implementation of the ``get_shipping_methods`` method.  This method
37 37
 should return a list of "shipping method" classes already instantiated
38 38
 and holding a reference to the basket instance.

Laddar…
Avbryt
Spara