Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

defaults.py 6.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. from django.utils.translation import ugettext_lazy as _
  2. OSCAR_SHOP_NAME = 'Oscar'
  3. OSCAR_SHOP_TAGLINE = ''
  4. # Basket settings
  5. OSCAR_BASKET_COOKIE_LIFETIME = 7 * 24 * 60 * 60
  6. OSCAR_BASKET_COOKIE_OPEN = 'oscar_open_basket'
  7. OSCAR_BASKET_COOKIE_SAVED = 'oscar_saved_basket'
  8. OSCAR_MAX_BASKET_QUANTITY_THRESHOLD = 10000
  9. # Currency
  10. OSCAR_DEFAULT_CURRENCY = 'GBP'
  11. OSCAR_CURRENCY_LOCALE = 'en_GB'
  12. # Max number of products to keep on the user's history
  13. OSCAR_RECENTLY_VIEWED_PRODUCTS = 20
  14. # Paths
  15. OSCAR_IMAGE_FOLDER = 'images/products/%Y/%m/'
  16. OSCAR_PROMOTION_FOLDER = 'images/promotions/'
  17. # Copy this image from oscar/static/img to your MEDIA_ROOT folder.
  18. # It needs to be there so Sorl can resize it.
  19. OSCAR_MISSING_IMAGE_URL = 'image_not_found.jpg'
  20. OSCAR_UPLOAD_ROOT = '/tmp'
  21. # Address settings
  22. OSCAR_REQUIRED_ADDRESS_FIELDS = ('first_name', 'last_name', 'line1',
  23. 'line4', 'postcode', 'country')
  24. # Search settings
  25. OSCAR_SEARCH_SUGGEST_LIMIT = 10
  26. # Product list settings
  27. OSCAR_PRODUCTS_PER_PAGE = 20
  28. # Checkout
  29. OSCAR_ALLOW_ANON_CHECKOUT = False
  30. # Partners
  31. OSCAR_PARTNER_WRAPPERS = {}
  32. # Promotions
  33. COUNTDOWN, LIST, SINGLE_PRODUCT, TABBED_BLOCK = (
  34. 'Countdown', 'List', 'SingleProduct', 'TabbedBlock')
  35. OSCAR_PROMOTION_MERCHANDISING_BLOCK_TYPES = (
  36. (COUNTDOWN, "Vertical list"),
  37. (LIST, "Horizontal list"),
  38. (TABBED_BLOCK, "Tabbed block"),
  39. (SINGLE_PRODUCT, "Single product"),
  40. )
  41. OSCAR_PROMOTION_POSITIONS = (('page', 'Page'),
  42. ('right', 'Right-hand sidebar'),
  43. ('left', 'Left-hand sidebar'))
  44. # Reviews
  45. OSCAR_ALLOW_ANON_REVIEWS = True
  46. OSCAR_MODERATE_REVIEWS = False
  47. # Accounts
  48. OSCAR_ACCOUNTS_REDIRECT_URL = 'customer:profile-view'
  49. # This enables sending alert notifications/emails
  50. # instantly when products get back in stock
  51. # by listening to stock record update signals
  52. # this might impact performace for large numbers
  53. # stock record updates.
  54. # Alternatively, the management command
  55. # ``oscar_send_alerts`` can be used to
  56. # run periodically, e.g. as a cronjob. In this case
  57. # instant alerts should be disabled.
  58. OSCAR_EAGER_ALERTS = True
  59. # Registration
  60. OSCAR_SEND_REGISTRATION_EMAIL = True
  61. OSCAR_FROM_EMAIL = 'oscar@example.com'
  62. # Offers
  63. OSCAR_OFFER_BLACKLIST_PRODUCT = None
  64. # Cookies
  65. OSCAR_COOKIES_DELETE_ON_LOGOUT = ['oscar_recently_viewed_products', ]
  66. # Hidden Oscar features, e.g. wishlists or reviews
  67. OSCAR_HIDDEN_FEATURES = []
  68. # Menu structure of the dashboard navigation
  69. OSCAR_DASHBOARD_NAVIGATION = [
  70. {
  71. 'label': _('Dashboard'),
  72. 'icon': 'icon-th-list',
  73. 'url_name': 'dashboard:index',
  74. },
  75. {
  76. 'label': _('Catalogue'),
  77. 'icon': 'icon-sitemap',
  78. 'children': [
  79. {
  80. 'label': _('Products'),
  81. 'url_name': 'dashboard:catalogue-product-list',
  82. },
  83. {
  84. 'label': _('Categories'),
  85. 'url_name': 'dashboard:catalogue-category-list',
  86. },
  87. {
  88. 'label': _('Ranges'),
  89. 'url_name': 'dashboard:range-list',
  90. },
  91. {
  92. 'label': _('Low stock alerts'),
  93. 'url_name': 'dashboard:stock-alert-list',
  94. },
  95. ]
  96. },
  97. {
  98. 'label': _('Fulfilment'),
  99. 'icon': 'icon-shopping-cart',
  100. 'children': [
  101. {
  102. 'label': _('Order management'),
  103. 'url_name': 'dashboard:order-list',
  104. },
  105. {
  106. 'label': _('Statistics'),
  107. 'url_name': 'dashboard:order-stats',
  108. },
  109. {
  110. 'label': _('Partners'),
  111. 'url_name': 'dashboard:partner-list',
  112. },
  113. ]
  114. },
  115. {
  116. 'label': _('Customers'),
  117. 'icon': 'icon-group',
  118. 'children': [
  119. {
  120. 'label': _('Customer management'),
  121. 'url_name': 'dashboard:users-index',
  122. },
  123. {
  124. 'label': _('Stock alert requests'),
  125. 'url_name': 'dashboard:user-alert-list',
  126. },
  127. ]
  128. },
  129. {
  130. 'label': _('Offers'),
  131. 'icon': 'icon-bullhorn',
  132. 'children': [
  133. {
  134. 'label': _('Offer management'),
  135. 'url_name': 'dashboard:offer-list',
  136. },
  137. {
  138. 'label': _('Vouchers'),
  139. 'url_name': 'dashboard:voucher-list',
  140. },
  141. ],
  142. },
  143. {
  144. 'label': _('Content'),
  145. 'icon': 'icon-folder-close',
  146. 'children': [
  147. {
  148. 'label': _('Content blocks'),
  149. 'url_name': 'dashboard:promotion-list',
  150. },
  151. {
  152. 'label': _('Content blocks by page'),
  153. 'url_name': 'dashboard:promotion-list-by-page',
  154. },
  155. {
  156. 'label': _('Pages'),
  157. 'url_name': 'dashboard:page-list',
  158. },
  159. {
  160. 'label': _('Email templates'),
  161. 'url_name': 'dashboard:comms-list',
  162. },
  163. {
  164. 'label': _('Reviews'),
  165. 'url_name': 'dashboard:reviews-list',
  166. },
  167. ]
  168. },
  169. {
  170. 'label': _('Reports'),
  171. 'icon': 'icon-bar-chart',
  172. 'url_name': 'dashboard:reports-index',
  173. },
  174. ]
  175. # Search facets
  176. OSCAR_SEARCH_FACETS = {
  177. 'fields': {
  178. # The key for these dicts will be used when passing facet data
  179. # to the template. Same for the 'queries' dict below.
  180. 'category': {
  181. 'name': _('Category'),
  182. 'field': 'category'
  183. }
  184. },
  185. 'queries': {
  186. 'price_range': {
  187. 'name': _('Price range'),
  188. 'field': 'price',
  189. 'queries': [
  190. # This is a list of (name, query) tuples where the name will
  191. # be displayed on the front-end.
  192. (_('0 to 40'), '[0 TO 20]'),
  193. (_('20 to 40'), '[20 TO 40]'),
  194. (_('40 to 60'), '[40 TO 60]'),
  195. (_('60+'), '[60 TO *]'),
  196. ]
  197. }
  198. }
  199. }
  200. OSCAR_SETTINGS = dict(
  201. [(k, v) for k, v in locals().items() if k.startswith('OSCAR_')])