consts.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # coding=utf-8
  2. CONTENT_TYPE_SORTING = (
  3. # 系统设置
  4. 'account-user', # 用户管理
  5. 'option-school', # 商品管理
  6. 'option-student', # 商品管理
  7. 'option-commoditylevel', # 商品管理
  8. 'commodity-commodity', # 商品管理
  9. 'order-coupon', # 代理商订单
  10. 'order-order', # 代理商订单
  11. )
  12. MENU_TO_MODEL = (
  13. (
  14. u'基础数据', (
  15. 'account-user',
  16. 'option-school',
  17. 'option-student',
  18. 'option-commoditylevel',
  19. 'commodity-commodity',
  20. )
  21. ),
  22. (
  23. u'订单管理', (
  24. 'order-coupon',
  25. 'order-order',
  26. )
  27. ),
  28. )
  29. class PermissionMenu(object):
  30. def __init__(self):
  31. self.sort = CONTENT_TYPE_SORTING
  32. self.menus = MENU_TO_MODEL
  33. def get_index(self, app_label, model):
  34. try:
  35. return self.sort.index('{}-{}'.format(app_label, model))
  36. except:
  37. return 9999
  38. def sort_perms(self, perms):
  39. perms = perms.order_by('content_type__model', 'id')
  40. perms = sorted(perms, key=lambda n: self.get_index(n.content_type.app_label, n.content_type.model))
  41. return perms
  42. def get_menuname_of_contenttype(self, app_label, model):
  43. for menu in self.menus:
  44. val = '{}-{}'.format(app_label, model)
  45. if val in menu[1]:
  46. return menu[0]
  47. return u'未分类'