Coverage for src/unfold.py: 100%

4 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-09-21 16:24 +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_earring' 

51 ), 

52 'items': [ 

53 { 

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

55 'icon': 'inventory', 

56 'link': reverse_lazy( 

57 'admin:products_earring_changelist' 

58 ), 

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

60 'products.view_earring' 

61 ), 

62 }, 

63 { 

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

65 'icon': 'inventory', 

66 'link': reverse_lazy( 

67 'admin:products_ring_changelist' 

68 ), 

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

70 'products.view_ring' 

71 ), 

72 }, 

73 { 

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

75 'icon': 'inventory', 

76 'link': reverse_lazy( 

77 'admin:products_necklace_changelist' 

78 ), 

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

80 'products.view_necklace' 

81 ), 

82 }, 

83 { 

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

85 'icon': 'inventory', 

86 'link': reverse_lazy( 

87 'admin:products_pendant_changelist' 

88 ), 

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

90 'products.view_pendant' 

91 ), 

92 }, 

93 { 

94 'title': _('Bracelet'), 

95 'icon': 'inventory', 

96 'link': reverse_lazy( 

97 'admin:products_bracelet_changelist' 

98 ), 

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

100 'products.view_bracelet' 

101 ), 

102 }, 

103 { 

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

105 'icon': 'inventory', 

106 'link': reverse_lazy( 

107 'admin:products_watch_changelist' 

108 ), 

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

110 'products.view_watch' 

111 ), 

112 }, 

113 ], 

114 }, 

115 { 

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

117 'separator': True, 

118 'collapsible': True, 

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

120 'products.view_color' 

121 ), 

122 'items': [ 

123 { 

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

125 'icon': 'Palette', 

126 'link': reverse_lazy( 

127 'admin:products_color_changelist' 

128 ), 

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

130 'products.view_color' 

131 ), 

132 }, 

133 { 

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

135 'icon': 'Texture', 

136 'link': reverse_lazy( 

137 'admin:products_metal_changelist' 

138 ), 

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

140 'products.view_metal' 

141 ), 

142 }, 

143 { 

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

145 'icon': 'Diamond', 

146 'link': reverse_lazy( 

147 'admin:products_stone_changelist' 

148 ), 

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

150 'products.view_stone' 

151 ), 

152 }, 

153 { 

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

155 'icon': 'Bookmarks', 

156 'link': reverse_lazy( 

157 'admin:products_collection_changelist' 

158 ), 

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

160 'products.view_collection' 

161 ), 

162 }, 

163 { 

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

165 'icon': 'crop', 

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

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

168 'products.view_size' 

169 ), 

170 }, 

171 ], 

172 }, 

173 { 

174 'separator': True, 

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

176 'products.view_review' 

177 ), 

178 'items': [ 

179 { 

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

181 'icon': 'star', 

182 'link': reverse_lazy( 

183 'admin:products_review_changelist' 

184 ), 

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

186 'products.view_review' 

187 ), 

188 }, 

189 { 

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

191 'icon': 'shopping_bag', 

192 'link': reverse_lazy( 

193 'admin:shopping_bags_shoppingbag_changelist' 

194 ), 

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

196 'shopping_bags.view_shoppingbag' 

197 ), 

198 }, 

199 { 

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

201 'icon': 'shopping_cart', 

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

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

204 'orders.view_order' 

205 ), 

206 }, 

207 { 

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

209 'icon': 'favorite', 

210 'link': reverse_lazy( 

211 'admin:wishlists_wishlist_changelist' 

212 ), 

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

214 'wishlists.view_wishlist' 

215 ), 

216 }, 

217 ], 

218 }, 

219 ], 

220 }, 

221}