Coverage for src/unfold.py: 100%

4 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-08-04 12:59 +0300

1from django.urls import reverse_lazy 

2from django.templatetags.static import static 

3from django.utils.translation import gettext_lazy as _ 

4 

5UNFOLD = { 

6 'SITE_URL': 'https://drf-react-gems.web.app', 

7 'SITE_DROPDOWN': [ 

8 { 

9 'icon': 'diamond', 

10 'title': _('DRF-React-TS Gems'), 

11 'link': 'https://drf-react-gems.web.app', 

12 }, 

13 ], 

14 'THEME': 'light', 

15 'STYLES': [ 

16 lambda request: static('css/style.css'), 

17 ], 

18 'SCRIPTS': [ 

19 lambda request: static('js/script.js'), 

20 ], 

21 'SIDEBAR': { 

22 'navigation': [ 

23 { 

24 'title': _('Users & Groups'), 

25 'icon': 'people', 

26 'collapsible': True, 

27 'separator': True, 

28 'items': [ 

29 { 

30 'title': _('Users'), 

31 'icon': 'person', 

32 'link': reverse_lazy( 

33 'admin:accounts_usercredential_changelist' 

34 ), 

35 'permission': lambda request: request.user.is_superuser, 

36 }, 

37 { 

38 'title': _('Groups'), 

39 'icon': 'group', 

40 'link': reverse_lazy('admin:auth_group_changelist'), 

41 'permission': lambda request: request.user.is_superuser, 

42 }, 

43 ], 

44 }, 

45 { 

46 'title': _('Products'), 

47 'collapsible': True, 

48 'separator': True, 

49 'permission': lambda request: request.user.has_perm( 

50 'products.view_earwear' 

51 ), 

52 'items': [ 

53 { 

54 'title': _('Earwear'), 

55 'icon': 'inventory', 

56 'link': reverse_lazy( 

57 'admin:products_earwear_changelist' 

58 ), 

59 'permission': lambda request: request.user.has_perm( 

60 'products.view_earwear' 

61 ), 

62 }, 

63 { 

64 'title': _('Fingerwear'), 

65 'icon': 'inventory', 

66 'link': reverse_lazy( 

67 'admin:products_fingerwear_changelist' 

68 ), 

69 'permission': lambda request: request.user.has_perm( 

70 'products.view_fingerwear' 

71 ), 

72 }, 

73 { 

74 'title': _('Neckwear'), 

75 'icon': 'inventory', 

76 'link': reverse_lazy( 

77 'admin:products_neckwear_changelist' 

78 ), 

79 'permission': lambda request: request.user.has_perm( 

80 'products.view_neckwear' 

81 ), 

82 }, 

83 { 

84 'title': _('Wristwear'), 

85 'icon': 'inventory', 

86 'link': reverse_lazy( 

87 'admin:products_wristwear_changelist' 

88 ), 

89 'permission': lambda request: request.user.has_perm( 

90 'products.view_wristwear' 

91 ), 

92 }, 

93 ], 

94 }, 

95 { 

96 'title': _('Product Attributes'), 

97 'separator': True, 

98 'collapsible': True, 

99 'permission': lambda request: request.user.has_perm( 

100 'products.view_color' 

101 ), 

102 'items': [ 

103 { 

104 'title': _('Colors'), 

105 'icon': 'Palette', 

106 'link': reverse_lazy( 

107 'admin:products_color_changelist' 

108 ), 

109 'permission': lambda request: request.user.has_perm( 

110 'products.view_color' 

111 ), 

112 }, 

113 { 

114 'title': _('Metals'), 

115 'icon': 'Texture', 

116 'link': reverse_lazy( 

117 'admin:products_metal_changelist' 

118 ), 

119 'permission': lambda request: request.user.has_perm( 

120 'products.view_metal' 

121 ), 

122 }, 

123 { 

124 'title': _('Stone'), 

125 'icon': 'Diamond', 

126 'link': reverse_lazy( 

127 'admin:products_stone_changelist' 

128 ), 

129 'permission': lambda request: request.user.has_perm( 

130 'products.view_stone' 

131 ), 

132 }, 

133 { 

134 'title': _('Collections'), 

135 'icon': 'Bookmarks', 

136 'link': reverse_lazy( 

137 'admin:products_collection_changelist' 

138 ), 

139 'permission': lambda request: request.user.has_perm( 

140 'products.view_collection' 

141 ), 

142 }, 

143 { 

144 'title': _('Size'), 

145 'icon': 'crop', 

146 'link': reverse_lazy('admin:products_size_changelist'), 

147 'permission': lambda request: request.user.has_perm( 

148 'products.view_size' 

149 ), 

150 }, 

151 ], 

152 }, 

153 { 

154 'separator': True, 

155 'permission': lambda request: request.user.has_perm( 

156 'products.view_review' 

157 ), 

158 'items': [ 

159 { 

160 'title': _('Product Reviews'), 

161 'icon': 'star', 

162 'link': reverse_lazy( 

163 'admin:products_review_changelist' 

164 ), 

165 'permission': lambda request: request.user.has_perm( 

166 'products.view_review' 

167 ), 

168 }, 

169 { 

170 'title': _('Shopping Bags'), 

171 'icon': 'shopping_bag', 

172 'link': reverse_lazy( 

173 'admin:shopping_bags_shoppingbag_changelist' 

174 ), 

175 'permission': lambda request: request.user.has_perm( 

176 'shopping_bags.view_shoppingbag' 

177 ), 

178 }, 

179 { 

180 'title': _('Orders'), 

181 'icon': 'shopping_cart', 

182 'link': reverse_lazy('admin:orders_order_changelist'), 

183 'permission': lambda request: request.user.has_perm( 

184 'orders.view_order' 

185 ), 

186 }, 

187 { 

188 'title': _('Wishlists'), 

189 'icon': 'favorite', 

190 'link': reverse_lazy( 

191 'admin:wishlists_wishlist_changelist' 

192 ), 

193 'permission': lambda request: request.user.has_perm( 

194 'wishlists.view_wishlist' 

195 ), 

196 }, 

197 ], 

198 }, 

199 ], 

200 }, 

201}