@@ 171-188 (lines=18) @@ | ||
168 | class DeleteMaterialMixin(OwnerMixin): |
|
169 | """A common DeleteMixin for Material classes (Sample/Animal)""" |
|
170 | ||
171 | def dispatch(self, request, *args, **kwargs): |
|
172 | handler = super(DeleteMaterialMixin, self).dispatch( |
|
173 | request, *args, **kwargs) |
|
174 | ||
175 | # here I've done get_queryset. Check for submission status |
|
176 | if hasattr(self, "object") and not self.object.can_delete(): |
|
177 | message = "Cannot delete %s: submission status is: %s" % ( |
|
178 | self.object, self.object.submission.get_status_display()) |
|
179 | ||
180 | logger.warning(message) |
|
181 | messages.warning( |
|
182 | request=self.request, |
|
183 | message=message, |
|
184 | extra_tags="alert alert-dismissible alert-warning") |
|
185 | ||
186 | return redirect(self.object.get_absolute_url()) |
|
187 | ||
188 | return handler |
|
189 | ||
190 | def get_success_url(self): |
|
191 | return reverse( |
@@ 462-479 (lines=18) @@ | ||
459 | class DeleteSubmissionMixin(): |
|
460 | """Prevent a delete relying on statuses""" |
|
461 | ||
462 | def dispatch(self, request, *args, **kwargs): |
|
463 | handler = super(DeleteSubmissionMixin, self).dispatch( |
|
464 | request, *args, **kwargs) |
|
465 | ||
466 | # here I've done get_queryset. Check for submission status |
|
467 | if hasattr(self, "object") and not self.object.can_delete(): |
|
468 | message = "Cannot delete %s: submission status is: %s" % ( |
|
469 | self.object, self.object.get_status_display()) |
|
470 | ||
471 | logger.warning(message) |
|
472 | messages.warning( |
|
473 | request=self.request, |
|
474 | message=message, |
|
475 | extra_tags="alert alert-dismissible alert-warning") |
|
476 | ||
477 | return redirect(self.object.get_absolute_url()) |
|
478 | ||
479 | return handler |
|
480 | ||
481 | ||
482 | class BatchDeleteMixin( |