From: Guillaume Pellerin Date: Sun, 14 Nov 2021 18:40:17 +0000 (+0100) Subject: add training duplication function X-Git-Tag: 2.5.0~43 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=988c3d86320e449e75735854143baaf607f5d7c1;p=teleforma.git add training duplication function --- diff --git a/teleforma/admin.py b/teleforma/admin.py index 4e3601d4..e49b494a 100644 --- a/teleforma/admin.py +++ b/teleforma/admin.py @@ -235,12 +235,30 @@ class UserProfileAdmin(UserAdmin): user_actions.short_description = 'Actions' user_actions.allow_tags = True +@admin.action(description='Duplicate selected trainings') +def duplicate_trainings(modeladmin, request, queryset): + properties = ['synthesis_note', 'obligation', 'procedure', 'oral_speciality', + 'written_speciality', 'oral_1', 'oral_2', 'options', 'magistral'] + for training in queryset: + t = deepcopy(training) + t.pk = None + t.save() + t.synthesis_note.add(*training.synthesis_note.all()) + t.obligation.add(*training.obligation.all()) + t.procedure.add(*training.procedure.all()) + t.oral_speciality.add(*training.oral_speciality.all()) + t.written_speciality.add(*training.written_speciality.all()) + t.oral_1.add(*training.oral_1.all()) + t.oral_2.add(*training.oral_2.all()) + t.options.add(*training.options.all()) + t.magistral.add(*training.magistral.all()) class TrainingAdmin(admin.ModelAdmin): model = Training filter_horizontal = ['synthesis_note', 'obligation', 'procedure', 'oral_speciality', 'written_speciality', 'oral_1', 'oral_2', 'magistral'] exclude = ['options'] + actions = [duplicate_trainings,] class CourseTypeAdmin(admin.ModelAdmin): model = CourseType