Coverage for netbox/choices.py: 100%

90 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from django.utils.translation import gettext_lazy as _ 

2 

3from utilities.choices import Choice, ChoiceSet 

4from utilities.constants import CSV_DELIMITERS 

5 

6__all__ = ( 

7 'ButtonColorChoices', 

8 'CSVDelimiterChoices', 

9 'ColorChoices', 

10 'DiameterUnitChoices', 

11 'DistanceUnitChoices', 

12 'FlowRateUnitChoices', 

13 'ImportFormatChoices', 

14 'ImportMethodChoices', 

15 'WeightUnitChoices', 

16) 

17 

18 

19# 

20# Generic color choices 

21# 

22 

23class ColorChoices(ChoiceSet): 

24 COLOR_DARK_RED = 'aa1409' 

25 COLOR_RED = 'f44336' 

26 COLOR_PINK = 'e91e63' 

27 COLOR_ROSE = 'ffe4e1' 

28 COLOR_FUCHSIA = 'ff66ff' 

29 COLOR_PURPLE = '9c27b0' 

30 COLOR_DARK_PURPLE = '673ab7' 

31 COLOR_INDIGO = '3f51b5' 

32 COLOR_BLUE = '2196f3' 

33 COLOR_LIGHT_BLUE = '03a9f4' 

34 COLOR_CYAN = '00bcd4' 

35 COLOR_TEAL = '009688' 

36 COLOR_AQUA = '00ffff' 

37 COLOR_DARK_GREEN = '2f6a31' 

38 COLOR_GREEN = '4caf50' 

39 COLOR_LIGHT_GREEN = '8bc34a' 

40 COLOR_LIME = 'cddc39' 

41 COLOR_YELLOW = 'ffeb3b' 

42 COLOR_AMBER = 'ffc107' 

43 COLOR_ORANGE = 'ff9800' 

44 COLOR_DARK_ORANGE = 'ff5722' 

45 COLOR_BROWN = '795548' 

46 COLOR_LIGHT_GREY = 'c0c0c0' 

47 COLOR_GREY = '9e9e9e' 

48 COLOR_DARK_GREY = '607d8b' 

49 COLOR_BLACK = '111111' 

50 COLOR_WHITE = 'ffffff' 

51 

52 CHOICES = ( 

53 Choice(COLOR_DARK_RED, _('Dark Red')), 

54 Choice(COLOR_RED, _('Red')), 

55 Choice(COLOR_PINK, _('Pink')), 

56 Choice(COLOR_ROSE, _('Rose')), 

57 Choice(COLOR_FUCHSIA, _('Fuchsia')), 

58 Choice(COLOR_PURPLE, _('Purple')), 

59 Choice(COLOR_DARK_PURPLE, _('Dark Purple')), 

60 Choice(COLOR_INDIGO, _('Indigo')), 

61 Choice(COLOR_BLUE, _('Blue')), 

62 Choice(COLOR_LIGHT_BLUE, _('Light Blue')), 

63 Choice(COLOR_CYAN, _('Cyan')), 

64 Choice(COLOR_TEAL, _('Teal')), 

65 Choice(COLOR_AQUA, _('Aqua')), 

66 Choice(COLOR_DARK_GREEN, _('Dark Green')), 

67 Choice(COLOR_GREEN, _('Green')), 

68 Choice(COLOR_LIGHT_GREEN, _('Light Green')), 

69 Choice(COLOR_LIME, _('Lime')), 

70 Choice(COLOR_YELLOW, _('Yellow')), 

71 Choice(COLOR_AMBER, _('Amber')), 

72 Choice(COLOR_ORANGE, _('Orange')), 

73 Choice(COLOR_DARK_ORANGE, _('Dark Orange')), 

74 Choice(COLOR_BROWN, _('Brown')), 

75 Choice(COLOR_LIGHT_GREY, _('Light Grey')), 

76 Choice(COLOR_GREY, _('Grey')), 

77 Choice(COLOR_DARK_GREY, _('Dark Grey')), 

78 Choice(COLOR_BLACK, _('Black')), 

79 Choice(COLOR_WHITE, _('White')), 

80 ) 

81 

82 

83# 

84# Button color choices 

85# 

86 

87class ButtonColorChoices(ChoiceSet): 

88 DEFAULT = 'default' 

89 BLUE = 'blue' 

90 INDIGO = 'indigo' 

91 PURPLE = 'purple' 

92 PINK = 'pink' 

93 RED = 'red' 

94 ORANGE = 'orange' 

95 YELLOW = 'yellow' 

96 GREEN = 'green' 

97 TEAL = 'teal' 

98 CYAN = 'cyan' 

99 GRAY = 'gray' 

100 GREY = 'gray' # Backward compatability for <3.2 

101 BLACK = 'black' 

102 WHITE = 'white' 

103 

104 CHOICES = ( 

105 Choice(DEFAULT, _('Default')), 

106 Choice(BLUE, _('Blue')), 

107 Choice(INDIGO, _('Indigo')), 

108 Choice(PURPLE, _('Purple')), 

109 Choice(PINK, _('Pink')), 

110 Choice(RED, _('Red')), 

111 Choice(ORANGE, _('Orange')), 

112 Choice(YELLOW, _('Yellow')), 

113 Choice(GREEN, _('Green')), 

114 Choice(TEAL, _('Teal')), 

115 Choice(CYAN, _('Cyan')), 

116 Choice(GRAY, _('Gray')), 

117 Choice(BLACK, _('Black')), 

118 Choice(WHITE, _('White')), 

119 ) 

120 

121 

122# 

123# Import Choices 

124# 

125 

126class ImportMethodChoices(ChoiceSet): 

127 DIRECT = 'direct' 

128 UPLOAD = 'upload' 

129 DATA_FILE = 'datafile' 

130 

131 CHOICES = [ 

132 Choice(DIRECT, _('Direct'), description=_('Enter data directly into a form field')), 

133 Choice(UPLOAD, _('Upload'), description=_('Upload a file from the local filesystem')), 

134 Choice(DATA_FILE, _('Data file'), description=_('Reference a file from a synced data source')), 

135 ] 

136 

137 

138class ImportFormatChoices(ChoiceSet): 

139 AUTO = 'auto' 

140 CSV = 'csv' 

141 JSON = 'json' 

142 YAML = 'yaml' 

143 

144 CHOICES = [ 

145 Choice(AUTO, _('Auto-detect')), 

146 Choice(CSV, 'CSV'), 

147 Choice(JSON, 'JSON'), 

148 Choice(YAML, 'YAML'), 

149 ] 

150 

151 

152class CSVDelimiterChoices(ChoiceSet): 

153 AUTO = 'auto' 

154 COMMA = CSV_DELIMITERS['comma'] 

155 SEMICOLON = CSV_DELIMITERS['semicolon'] 

156 PIPE = CSV_DELIMITERS['pipe'] 

157 TAB = CSV_DELIMITERS['tab'] 

158 

159 CHOICES = [ 

160 Choice(AUTO, _('Auto-detect')), 

161 Choice(COMMA, _('Comma')), 

162 Choice(SEMICOLON, _('Semicolon')), 

163 Choice(PIPE, _('Pipe')), 

164 Choice(TAB, _('Tab')), 

165 ] 

166 

167 

168class DistanceUnitChoices(ChoiceSet): 

169 

170 # Metric 

171 UNIT_KILOMETER = 'km' 

172 UNIT_METER = 'm' 

173 

174 # Imperial 

175 UNIT_MILE = 'mi' 

176 UNIT_FOOT = 'ft' 

177 

178 CHOICES = ( 

179 Choice(UNIT_KILOMETER, _('Kilometers')), 

180 Choice(UNIT_METER, _('Meters')), 

181 Choice(UNIT_MILE, _('Miles')), 

182 Choice(UNIT_FOOT, _('Feet')), 

183 ) 

184 

185 

186class WeightUnitChoices(ChoiceSet): 

187 

188 # Metric 

189 UNIT_KILOGRAM = 'kg' 

190 UNIT_GRAM = 'g' 

191 

192 # Imperial 

193 UNIT_POUND = 'lb' 

194 UNIT_OUNCE = 'oz' 

195 

196 CHOICES = ( 

197 Choice(UNIT_KILOGRAM, _('Kilograms')), 

198 Choice(UNIT_GRAM, _('Grams')), 

199 Choice(UNIT_POUND, _('Pounds')), 

200 Choice(UNIT_OUNCE, _('Ounces')), 

201 ) 

202 

203 

204class DiameterUnitChoices(ChoiceSet): 

205 

206 # Metric 

207 UNIT_MILLIMETER = 'mm' 

208 UNIT_CENTIMETER = 'cm' 

209 

210 # Imperial 

211 UNIT_INCH = 'in' 

212 

213 CHOICES = ( 

214 Choice(UNIT_MILLIMETER, _('Millimeters')), 

215 Choice(UNIT_CENTIMETER, _('Centimeters')), 

216 Choice(UNIT_INCH, _('Inches')), 

217 ) 

218 

219 

220class FlowRateUnitChoices(ChoiceSet): 

221 

222 # Metric 

223 UNIT_LITERS_PER_MINUTE = 'lpm' 

224 UNIT_CUBIC_METERS_PER_HOUR = 'm3ph' 

225 

226 # Imperial 

227 UNIT_GALLONS_PER_MINUTE = 'gpm' 

228 

229 CHOICES = ( 

230 Choice(UNIT_LITERS_PER_MINUTE, _('Liters per minute (L/min)')), 

231 Choice(UNIT_CUBIC_METERS_PER_HOUR, _('Cubic meters per hour (m³/h)')), 

232 Choice(UNIT_GALLONS_PER_MINUTE, _('Gallons per minute (GPM)')), 

233 )