Example #1
0
    def change_view(self, request, object_id, extra_context=None):
        changeset = Changeset.objects.get(pk=object_id)

        if not changeset.object_pk:
            changeset.delete()
            messages.error(request, _(u'Object ID not present, changeset is invalid and is deleted'))
            return redirect('..')

        if not changeset.content_object:
            changeset.delete()
            messages.error(request, _(u'Object had been deleted, changeset is invalid and is deleted'))
            return redirect('..')

        children = changeset.get_children()

        if request.POST:
            admin_form = self.get_form(request, changeset)(request.POST)

            if admin_form.is_valid():
                reason = admin_form.cleaned_data['moderation_reason']
                if 'approve' in request.POST:
                    changeset.approve(request.user, reason)
                    for c in children:
                        c.approve(request.user, reason)
                        [c1.approve(request.user, reason) for c1 in c.get_children()]
                elif 'reject' in request.POST:
                    changeset.reject(request.user, reason)
                    for c in children:
                        c.reject(request.user, reason)
                        [c1.reject(request.user, reason) for c1 in c.get_children()]

        full_diff = calculate_full_diff(changeset.content_object, changeset.object_diff)

        extra_context = {
            'changeset': changeset,
            'changes': full_diff,
            'children': children,
            'django_version': django.get_version()[:3],
        }
        return super(ModeratedObjectAdmin, self).change_view(request,
            object_id, extra_context=extra_context)
Example #2
0
 def get_changes_data(self):
     return {
         'obj': self,
         'diff': calculate_full_diff(self.content_object, self.object_diff),
         'children':self.get_children(),
     }