Code Duplication    Length = 18-18 lines in 4 locations

django-data/image/common/views.py 2 locations

@@ 175-192 (lines=18) @@
172
class DeleteMaterialMixin(OwnerMixin):
173
    """A common DeleteMixin for Material classes (Sample/Animal)"""
174
175
    def dispatch(self, request, *args, **kwargs):
176
        handler = super(DeleteMaterialMixin, self).dispatch(
177
                request, *args, **kwargs)
178
179
        # here I've done get_queryset. Check for submission status
180
        if hasattr(self, "object") and not self.object.can_edit():
181
            message = "Cannot delete %s: submission status is: %s" % (
182
                    self.object, self.object.submission.get_status_display())
183
184
            logger.warning(message)
185
            messages.warning(
186
                request=self.request,
187
                message=message,
188
                extra_tags="alert alert-dismissible alert-warning")
189
190
            return redirect(self.object.get_absolute_url())
191
192
        return handler
193
194
    def get_success_url(self):
195
        return reverse(
@@ 107-124 (lines=18) @@
104
    # override this attribute with a real validation class
105
    validationresult_class = None
106
107
    def dispatch(self, request, *args, **kwargs):
108
        handler = super(UpdateMaterialMixin, self).dispatch(
109
                request, *args, **kwargs)
110
111
        # here I've done get_queryset. Check for submission status
112
        if hasattr(self, "object") and not self.object.can_edit():
113
            message = "Cannot edit %s: submission status is: %s" % (
114
                    self.object, self.object.submission.get_status_display())
115
116
            logger.warning(message)
117
            messages.warning(
118
                request=self.request,
119
                message=message,
120
                extra_tags="alert alert-dismissible alert-warning")
121
122
            return redirect(self.object.get_absolute_url())
123
124
        return handler
125
126
    # add the request to the kwargs
127
    # https://chriskief.com/2012/12/18/django-modelform-formview-and-the-request-object/

django-data/image/submissions/views.py 2 locations

@@ 342-359 (lines=18) @@
339
    template_name = "submissions/submission_confirm_delete.html"
340
    success_url = reverse_lazy('image_app:dashboard')
341
342
    def dispatch(self, request, *args, **kwargs):
343
        handler = super(DeleteSubmissionView, self).dispatch(
344
                request, *args, **kwargs)
345
346
        # here I've done get_queryset. Check for submission status
347
        if hasattr(self, "object") and not self.object.can_edit():
348
            message = "Cannot delete %s: submission status is: %s" % (
349
                    self.object, self.object.get_status_display())
350
351
            logger.warning(message)
352
            messages.warning(
353
                request=self.request,
354
                message=message,
355
                extra_tags="alert alert-dismissible alert-warning")
356
357
            return redirect(self.object.get_absolute_url())
358
359
        return handler
360
361
    # https://stackoverflow.com/a/39533619/4385116
362
    def get_context_data(self, **kwargs):
@@ 249-266 (lines=18) @@
246
                Q(animal__isnull=False) | Q(sample__isnull=False))
247
            ).order_by('id')
248
249
    def dispatch(self, request, *args, **kwargs):
250
        handler = super(EditSubmissionView, self).dispatch(
251
                request, *args, **kwargs)
252
253
        # here I've done get_queryset. Check for submission status
254
        if hasattr(self, "submission") and not self.submission.can_edit():
255
            message = "Cannot edit submission: current status is: %s" % (
256
                    self.submission.get_status_display())
257
258
            logger.warning(message)
259
            messages.warning(
260
                request=self.request,
261
                message=message,
262
                extra_tags="alert alert-dismissible alert-warning")
263
264
            return redirect(self.submission.get_absolute_url())
265
266
        return handler
267
268
    def get_context_data(self, **kwargs):
269
        # Call the base implementation first to get a context