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)