Conditions | 1 |
Total Lines | 370 |
Code Lines | 320 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | # -*- coding: utf-8 -*- |
||
45 | def __init__(self, context, request): |
||
46 | super(SamplesView, self).__init__(context, request) |
||
47 | |||
48 | self.catalog = CATALOG_ANALYSIS_REQUEST_LISTING |
||
49 | self.contentFilter = { |
||
50 | "sort_on": "created", |
||
51 | "sort_order": "descending", |
||
52 | "isRootAncestor": True, # only root ancestors |
||
53 | } |
||
54 | |||
55 | self.title = self.context.translate(_("Samples")) |
||
56 | self.description = "" |
||
57 | |||
58 | self.show_select_column = True |
||
59 | self.form_id = "analysisrequests" |
||
60 | self.context_actions = {} |
||
61 | |||
62 | self.url = api.get_url(self.context) |
||
63 | |||
64 | # Toggle some columns if the sampling workflow is enabled |
||
65 | sampling_enabled = api.get_setup().getSamplingWorkflowEnabled() |
||
66 | |||
67 | self.columns = collections.OrderedDict(( |
||
68 | ("Priority", { |
||
69 | "title": "", |
||
70 | "index": "getPrioritySortkey", |
||
71 | "sortable": True, }), |
||
72 | ("Progress", { |
||
73 | "title": "Progress", |
||
74 | "index": "getProgress", |
||
75 | "sortable": True, |
||
76 | "toggle": True}), |
||
77 | ("getId", { |
||
78 | "title": _("Sample ID"), |
||
79 | "attr": "getId", |
||
80 | "replace_url": "getURL", |
||
81 | "index": "getId"}), |
||
82 | ("getClientOrderNumber", { |
||
83 | "title": _("Client Order"), |
||
84 | "sortable": True, |
||
85 | "toggle": False}), |
||
86 | ("Creator", { |
||
87 | "title": _("Creator"), |
||
88 | "index": "getCreatorFullName", |
||
89 | "sortable": True, |
||
90 | "toggle": True}), |
||
91 | ("Created", { |
||
92 | "title": _("Date Registered"), |
||
93 | "index": "created", |
||
94 | "toggle": False}), |
||
95 | ("SamplingDate", { |
||
96 | "title": _("Expected Sampling Date"), |
||
97 | "index": "getSamplingDate", |
||
98 | "toggle": sampling_enabled}), |
||
99 | ("getDateSampled", { |
||
100 | "title": _("Date Sampled"), |
||
101 | "toggle": True, |
||
102 | "input_class": "datetimepicker_nofuture", |
||
103 | "input_width": "10"}), |
||
104 | ("getDatePreserved", { |
||
105 | "title": _("Date Preserved"), |
||
106 | "toggle": False, |
||
107 | "input_class": "datetimepicker_nofuture", |
||
108 | "input_width": "10", |
||
109 | "sortable": False}), # no datesort without index |
||
110 | ("getDateReceived", { |
||
111 | "title": _("Date Received"), |
||
112 | "toggle": False}), |
||
113 | ("getDueDate", { |
||
114 | "title": _("Due Date"), |
||
115 | "toggle": False}), |
||
116 | ("getDateVerified", { |
||
117 | "title": _("Date Verified"), |
||
118 | "input_width": "10", |
||
119 | "toggle": False}), |
||
120 | ("getDatePublished", { |
||
121 | "title": _("Date Published"), |
||
122 | "toggle": False}), |
||
123 | ("BatchID", { |
||
124 | "title": _("Batch ID"), |
||
125 | "index": "getBatchID", |
||
126 | "sortable": True, |
||
127 | "toggle": False}), |
||
128 | ("Client", { |
||
129 | "title": _("Client"), |
||
130 | "index": "getClientTitle", |
||
131 | "attr": "getClientTitle", |
||
132 | "replace_url": "getClientURL", |
||
133 | "toggle": True}), |
||
134 | ("ClientID", { |
||
135 | "title": _("Client ID"), |
||
136 | "index": "getClientID", |
||
137 | "attr": "getClientID", |
||
138 | "replace_url": "getClientURL", |
||
139 | "toggle": True}), |
||
140 | ("Province", { |
||
141 | "title": _("Province"), |
||
142 | "sortable": True, |
||
143 | "index": "getProvince", |
||
144 | "attr": "getProvince", |
||
145 | "toggle": False}), |
||
146 | ("District", { |
||
147 | "title": _("District"), |
||
148 | "sortable": True, |
||
149 | "index": "getDistrict", |
||
150 | "attr": "getDistrict", |
||
151 | "toggle": False}), |
||
152 | ("getClientReference", { |
||
153 | "title": _("Client Ref"), |
||
154 | "sortable": True, |
||
155 | "index": "getClientReference", |
||
156 | "toggle": False}), |
||
157 | ("getClientSampleID", { |
||
158 | "title": _("Client SID"), |
||
159 | "toggle": False}), |
||
160 | ("ClientContact", { |
||
161 | "title": _("Contact"), |
||
162 | "sortable": True, |
||
163 | "index": "getContactFullName", |
||
164 | "toggle": False}), |
||
165 | ("getSampleTypeTitle", { |
||
166 | "title": _("Sample Type"), |
||
167 | "sortable": True, |
||
168 | "toggle": True}), |
||
169 | ("getSamplePointTitle", { |
||
170 | "title": _("Sample Point"), |
||
171 | "sortable": True, |
||
172 | "index": "getSamplePointTitle", |
||
173 | "toggle": False}), |
||
174 | ("getStorageLocation", { |
||
175 | "title": _("Storage Location"), |
||
176 | "sortable": True, |
||
177 | "index": "getStorageLocationTitle", |
||
178 | "toggle": False}), |
||
179 | ("SamplingDeviation", { |
||
180 | "title": _("Sampling Deviation"), |
||
181 | "sortable": True, |
||
182 | "index": "getSamplingDeviationTitle", |
||
183 | "toggle": False}), |
||
184 | ("getSampler", { |
||
185 | "title": _("Sampler"), |
||
186 | "toggle": sampling_enabled}), |
||
187 | ("getPreserver", { |
||
188 | "title": _("Preserver"), |
||
189 | "sortable": False, |
||
190 | "toggle": False}), |
||
191 | ("getProfilesTitle", { |
||
192 | "title": _("Profile"), |
||
193 | "sortable": True, |
||
194 | "index": "getProfilesTitle", |
||
195 | "toggle": False}), |
||
196 | ("getAnalysesNum", { |
||
197 | "title": _("Number of Analyses"), |
||
198 | "sortable": True, |
||
199 | "index": "getAnalysesNum", |
||
200 | "toggle": False}), |
||
201 | ("getTemplateTitle", { |
||
202 | "title": _("Template"), |
||
203 | "sortable": True, |
||
204 | "index": "getTemplateTitle", |
||
205 | "toggle": False}), |
||
206 | ("Printed", { |
||
207 | "title": _("Printed"), |
||
208 | "sortable": False, |
||
209 | "index": "getPrinted", |
||
210 | "toggle": False}), |
||
211 | ("state_title", { |
||
212 | "title": _("State"), |
||
213 | "sortable": True, |
||
214 | "index": "review_state"}), |
||
215 | )) |
||
216 | |||
217 | # custom print transition |
||
218 | print_stickers = { |
||
219 | "id": "print_stickers", |
||
220 | "title": _("Print stickers"), |
||
221 | "url": "workflow_action?action=print_stickers" |
||
222 | } |
||
223 | |||
224 | self.review_states = [ |
||
225 | { |
||
226 | "id": "default", |
||
227 | "title": _("Active"), |
||
228 | "contentFilter": { |
||
229 | "review_state": ( |
||
230 | "sample_registered", |
||
231 | "scheduled_sampling", |
||
232 | "to_be_sampled", |
||
233 | "sample_due", |
||
234 | "sample_received", |
||
235 | "to_be_preserved", |
||
236 | "to_be_verified", |
||
237 | "verified", |
||
238 | ), |
||
239 | "sort_on": "created", |
||
240 | "sort_order": "descending", |
||
241 | }, |
||
242 | "custom_transitions": [print_stickers], |
||
243 | "columns": self.columns.keys(), |
||
244 | }, { |
||
245 | "id": "to_be_sampled", |
||
246 | "title": _("To Be Sampled"), |
||
247 | "contentFilter": { |
||
248 | "review_state": ("to_be_sampled",), |
||
249 | "sort_on": "created", |
||
250 | "sort_order": "descending"}, |
||
251 | "custom_transitions": [print_stickers], |
||
252 | "columns": self.columns.keys() |
||
253 | }, { |
||
254 | "id": "to_be_preserved", |
||
255 | "title": _("To Be Preserved"), |
||
256 | "contentFilter": { |
||
257 | "review_state": ("to_be_preserved",), |
||
258 | "sort_on": "created", |
||
259 | "sort_order": "descending", |
||
260 | }, |
||
261 | "custom_transitions": [print_stickers], |
||
262 | "columns": self.columns.keys(), |
||
263 | }, { |
||
264 | "id": "scheduled_sampling", |
||
265 | "title": _("Scheduled sampling"), |
||
266 | "contentFilter": { |
||
267 | "review_state": ("scheduled_sampling",), |
||
268 | "sort_on": "created", |
||
269 | "sort_order": "descending", |
||
270 | }, |
||
271 | "custom_transitions": [print_stickers], |
||
272 | "columns": self.columns.keys(), |
||
273 | }, { |
||
274 | "id": "sample_due", |
||
275 | "title": _("Due"), |
||
276 | "contentFilter": { |
||
277 | "review_state": ( |
||
278 | "to_be_sampled", |
||
279 | "to_be_preserved", |
||
280 | "sample_due"), |
||
281 | "sort_on": "created", |
||
282 | "sort_order": "descending"}, |
||
283 | "custom_transitions": [print_stickers], |
||
284 | "columns": self.columns.keys(), |
||
285 | }, { |
||
286 | "id": "sample_received", |
||
287 | "title": _("Received"), |
||
288 | "contentFilter": { |
||
289 | "review_state": "sample_received", |
||
290 | "sort_on": "created", |
||
291 | "sort_order": "descending", |
||
292 | }, |
||
293 | "custom_transitions": [print_stickers], |
||
294 | "columns": self.columns.keys(), |
||
295 | }, { |
||
296 | "id": "to_be_verified", |
||
297 | "title": _("To be verified"), |
||
298 | "contentFilter": { |
||
299 | "review_state": "to_be_verified", |
||
300 | "sort_on": "created", |
||
301 | "sort_order": "descending", |
||
302 | }, |
||
303 | "custom_transitions": [print_stickers], |
||
304 | "columns": self.columns.keys(), |
||
305 | }, { |
||
306 | "id": "verified", |
||
307 | "title": _("Verified"), |
||
308 | "contentFilter": { |
||
309 | "review_state": "verified", |
||
310 | "sort_on": "created", |
||
311 | "sort_order": "descending", |
||
312 | }, |
||
313 | "custom_transitions": [print_stickers], |
||
314 | "columns": self.columns.keys(), |
||
315 | }, { |
||
316 | "id": "published", |
||
317 | "title": _("Published"), |
||
318 | "contentFilter": { |
||
319 | "review_state": ("published"), |
||
320 | "sort_on": "created", |
||
321 | "sort_order": "descending", |
||
322 | }, |
||
323 | "custom_transitions": [], |
||
324 | "columns": self.columns.keys(), |
||
325 | }, { |
||
326 | "id": "cancelled", |
||
327 | "title": _("Cancelled"), |
||
328 | "contentFilter": { |
||
329 | "review_state": "cancelled", |
||
330 | "sort_on": "created", |
||
331 | "sort_order": "descending", |
||
332 | }, |
||
333 | "custom_transitions": [], |
||
334 | "columns": self.columns.keys(), |
||
335 | }, { |
||
336 | "id": "invalid", |
||
337 | "title": _("Invalid"), |
||
338 | "contentFilter": { |
||
339 | "review_state": "invalid", |
||
340 | "sort_on": "created", |
||
341 | "sort_order": "descending", |
||
342 | }, |
||
343 | "custom_transitions": [print_stickers], |
||
344 | "columns": self.columns.keys(), |
||
345 | }, { |
||
346 | "id": "all", |
||
347 | "title": _("All"), |
||
348 | "contentFilter": { |
||
349 | "sort_on": "created", |
||
350 | "sort_order": "descending", |
||
351 | }, |
||
352 | "custom_transitions": [print_stickers], |
||
353 | "columns": self.columns.keys(), |
||
354 | }, { |
||
355 | "id": "rejected", |
||
356 | "title": _("Rejected"), |
||
357 | "contentFilter": { |
||
358 | "review_state": "rejected", |
||
359 | "sort_on": "created", |
||
360 | "sort_order": "descending", |
||
361 | }, |
||
362 | "custom_transitions": [ |
||
363 | { |
||
364 | "id": "print_stickers", |
||
365 | "title": _("Print stickers"), |
||
366 | "url": "workflow_action?action=print_stickers"}, |
||
367 | ], |
||
368 | "columns": self.columns.keys(), |
||
369 | }, { |
||
370 | "id": "assigned", |
||
371 | "title": get_image("assigned.png", |
||
372 | title=t(_("Assigned"))), |
||
373 | "contentFilter": { |
||
374 | "assigned_state": "assigned", |
||
375 | "review_state": ("sample_received",), |
||
376 | "sort_on": "created", |
||
377 | "sort_order": "descending", |
||
378 | }, |
||
379 | "custom_transitions": [print_stickers], |
||
380 | "columns": self.columns.keys(), |
||
381 | }, { |
||
382 | "id": "unassigned", |
||
383 | "title": get_image("unassigned.png", |
||
384 | title=t(_("Unsassigned"))), |
||
385 | "contentFilter": { |
||
386 | "assigned_state": "unassigned", |
||
387 | "review_state": ( |
||
388 | "sample_received", |
||
389 | ), |
||
390 | "sort_on": "created", |
||
391 | "sort_order": "descending", |
||
392 | }, |
||
393 | "custom_transitions": [print_stickers], |
||
394 | "columns": self.columns.keys(), |
||
395 | }, { |
||
396 | "id": "late", |
||
397 | "title": get_image("late.png", |
||
398 | title=t(_("Late"))), |
||
399 | "contentFilter": { |
||
400 | # Query only for unpublished ARs that are late |
||
401 | "review_state": ( |
||
402 | "sample_received", |
||
403 | "to_be_verified", |
||
404 | "verified", |
||
405 | ), |
||
406 | "getDueDate": { |
||
407 | "query": DateTime(), |
||
408 | "range": "max", |
||
409 | }, |
||
410 | "sort_on": "created", |
||
411 | "sort_order": "descending", |
||
412 | }, |
||
413 | "custom_transitions": [print_stickers], |
||
414 | "columns": self.columns.keys(), |
||
415 | } |
||
718 |