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.
AbstractPartner
instances
have a 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
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.
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.
Abstract models¶
None.
Views¶
-
class
oscar.apps.dashboard.views.
IndexView
(**kwargs)[source]¶ An overview view which displays several reports about the shop.
Supports the permission-based dashboard. It is recommended to add a index_nonstaff.html template because Oscar’s default template will display potentially sensitive store information.
-
get_active_site_offers
()[source]¶ Return active conditional offers of type “site offer”. The returned
Queryset
of site offers is filtered by end date greater then the current date.
-
get_active_vouchers
()[source]¶ Get all active vouchers. The returned
Queryset
of vouchers is filtered by end date greater then the current date.
-
get_hourly_report
(hours=24, segments=10)[source]¶ Get report of order revenue split up in hourly chunks. A report is generated for the last hours (default=24) from the current time. The report provides
max_revenue
of the hourly order revenue sum,y-range
as the labeling for the y-axis in a template andorder_total_hourly
, a list of properties for hourly chunks. segments defines the number of labeling segments used for the y-axis when generating the y-axis labels (default=10).
-
get_number_of_promotions
(abstract_base=<class 'oscar.apps.promotions.models.AbstractPromotion'>)[source]¶ Get the number of promotions for all promotions derived from abstract_base. All subclasses of abstract_base are queried and if another abstract base class is found this method is executed recursively.
-