| @@ 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( |
|