]> git.parisson.com Git - teleforma.git/commitdiff
https://trackers.pilotsystems.net/prebarreau/0591 : remove training from cart when...
authorYoan Le Clanche <yoanl@pilotsystems.net>
Wed, 12 Jul 2023 12:38:42 +0000 (14:38 +0200)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Wed, 12 Jul 2023 12:38:42 +0000 (14:38 +0200)
teleforma/admin.py

index 52da49e60ea84027f810324a3efa9d85eebd3cd9..57f058c9888a81b33ba01c39bd7bdad7ed7c0e47 100644 (file)
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+from pbcart.models import Cart
 from teleforma.utils.unicode import UnicodeWriter
 from teleforma.models import *
 from teleforma.templatetags.teleforma_tags import fancy_duration_shop_like, fancy_seconds
@@ -46,6 +47,17 @@ class UserProfileAdmin(UserAdmin):
 
     actions = ['export_user_profiles']
 
+    def save_model(self, request, obj, form, change):
+        auditor = obj.auditor.get()
+        # remove conference / seminars from user draft cart
+        carts = Cart.objects.filter(user=obj, status=Cart.STATE_DRAFT)
+        for cart in carts:
+            for item in cart.items.all():
+                if item.content in auditor.seminars.all() or item.content in auditor.conferences.all():
+                    item.delete()
+
+        super().save_model(request, obj, form, change)
+
     def export_user_profiles(self, request, queryset):
         response = HttpResponse(content_type='text/csv')
         filename = "export-utilisateurs-%s" % time.strftime('%Y-%m-%d')