Source code for thecut.authorship.admin

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from .models import Authorship


class AuthorshipInlineMixin(object):
    """Mixin for a model admin to set created/updated by on save for related
    inline models."""

    def save_formset(self, request, form, formset, *args, **kwargs):
        if issubclass(formset.model, Authorship):
            instances = formset.save(commit=False)
            for instance in instances:
                instance.save(user=request.user)
            formset.save_m2m()
            for obj in formset.deleted_objects:
                obj.delete()
        else:
            return super(AuthorshipInlineMixin, self).save_formset(
                request, form, formset, *args, **kwargs)


[docs]class AuthorshipMixin(AuthorshipInlineMixin): """Mixin for a model admin to set created/updated by on save.""" def save_model(self, request, obj, form, change, *args, **kwargs): # Set created_by / updated_by fields using request.user if not change: obj.created_by = request.user obj.updated_by = request.user return super(AuthorshipMixin, self).save_model(request, obj, form, change, *args, **kwargs)