12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- =========
- Dashboard
- =========
-
- The dashboard is the backend interface for managing the store. That includes the
- product catalogue, orders and stock, offers etc. It is intended as a
- complete replacement of the Django admin interface.
- The app itself only contains a view that serves as a kind of homepage, and
- some logic for managing the navigation (in ``nav.py``). There's several sub-apps
- that are responsible for managing the different parts of the Oscar store.
-
- Permission-based dashboard
- --------------------------
- Staff users (users with ``is_staff==True``) get access to all views in the
- dashboard. To better support Oscar's use for marketplace scenarios, the
- permission-based dashboard has been introduced. If a non-staff user has
- the ``partner.dashboard_access`` permission set, they are given access to a subset
- of views, and their access to products and orders is limited.
-
- :class:`~oscar.apps.partner.abstract_models.AbstractPartner` instances
- have a :attr:`~oscar.apps.partner.abstract_models.AbstractPartner.users` field.
- Prior to Oscar 0.6, this field was not used. Since Oscar 0.6, it is used solely
- for modelling dashboard access.
-
- If a non-staff user with the ``partner.dashboard_access`` permission is in
- :attr:`~oscar.apps.partner.abstract_models.AbstractPartner.users`, they can:
-
- * Create products. It is enforced that at least one stock record's partner has
- the current user in ``users``.
- * Update products. At least one stock record must have the user in the stock
- record's partner's ``users``.
- * Delete and list products. Limited to products the user is allowed to update.
- * Managing orders. Similar to products, a user get access if one of an order's
- lines is associated with a matching partner. By default, user will get
- access to all lines of the order, even though supplies only one of them.
- If you need user to see only own lines or apply additional filtering - you
- can customise
- :meth:`~oscar.apps.dashboard.order.views.OrderDetailView.get_order_lines`
- method.
-
- For many marketplace scenarios, it will make sense to ensure at checkout that
- a basket only contains lines from one partner.
- Please note that the dashboard currently ignores any other permissions,
- including `Django's default permissions`_.
-
- .. note::
-
- The permission-based dashboard currently does not support parent or child
- products. Supporting this requires a modelling change. If you require this,
- please get in touch so we can first learn about your use case.
-
- .. _Django's default permissions: https://docs.djangoproject.com/en/stable/topics/auth/default/#default-permissions
-
-
- Abstract models
- ---------------
-
- None.
-
- Views
- -----
-
- .. automodule:: oscar.apps.dashboard.views
- :members:
|