def copy_releases()

in nucleus/rna/admin.py [0:0]


    def copy_releases(self, request, queryset):
        release_count = 0
        for release in queryset:
            release_count += 1
            copy_count = self.model.objects.filter(version__endswith=release.version, product=release.product).count()
            notes = list(release.note_set.all())
            copy = release
            copy.id = None
            if copy_count > 1:
                copy.version = f"copy{copy_count}-{copy.version}"
            else:
                copy.version = "copy-" + copy.version
            # By default, set it to public. Usually, the copy feature is
            # used when copying beta => release. We want to review it
            # before going live.
            copy.is_public = False
            copy.save()
            copy.note_set.add(*notes)
            copy.note_set.update(modified=now())
        if release_count == 1:
            self.message_user(request, "Copied Release")
        else:
            self.message_user(request, "Copied %s Releases" % release_count)