1
+ import logging
2
+
3
+ from django .utils .functional import cached_property
1
4
from django .utils .translation import gettext_lazy as _
2
5
from sites_faciles .content_manager import blocks as sites_faciles_blocks
3
6
from sites_faciles .content_manager .blocks import (
9
12
from wagtail import blocks
10
13
from wagtail .snippets .blocks import SnippetChooserBlock
11
14
15
+ logger = logging .getLogger (__name__ )
16
+
12
17
13
18
class ProductBlock (blocks .StructBlock ):
14
19
champ = blocks .ChoiceBlock (
15
- choices = [("Bon état" , "bon_etat" ), ("Mauvais état" , "mauvais_etat" )]
20
+ choices = [("Bon état" , "bon_etat" ), ("Mauvais état" , "mauvais_etat" )],
16
21
)
17
22
produit = SnippetChooserBlock ("qfdmd.produit" , label = "produit" )
18
23
19
24
25
+ def get_choices (* args , ** kwargs ) -> list :
26
+ logger .info (f"{ args = } { kwargs = } " )
27
+ return [("coucou" , "coucou" )]
28
+
29
+
20
30
class ExtendedCommonStreamBlock (CommonStreamBlock ):
21
31
reusable = SnippetChooserBlock (
22
32
"qfdmd.reusablecontent" ,
@@ -37,8 +47,37 @@ class TabsBlock(sites_faciles_blocks.TabsBlock):
37
47
tabs = TabBlock (label = _ ("Tab" ), min_num = 1 , max_num = 15 )
38
48
39
49
50
+ class Bonus (blocks .StaticBlock ):
51
+ class Meta :
52
+ template = "blocks/bonus.html"
53
+ label = "Bonus réparation"
54
+
55
+
56
+ class WagtailBlockChoiceBlock (blocks .ChooserBlock ):
57
+ @cached_property
58
+ def target_model (self ):
59
+ from qfdmd .views import WagtailBlock
60
+
61
+ return WagtailBlock
62
+
63
+ @cached_property
64
+ def widget (self ):
65
+ from qfdmd .wagtail_hooks import WagtailBlockChooserWidget
66
+
67
+ return WagtailBlockChooserWidget (
68
+ linked_fields = {"parent_page_id" : "#id_parent_page_id" }
69
+ )
70
+
71
+
72
+ class Override (blocks .StructBlock ):
73
+ block = WagtailBlockChoiceBlock ()
74
+ content = ExtendedCommonStreamBlock ()
75
+
76
+
40
77
STREAMFIELD_COMMON_BLOCKS = [
41
78
* SITES_FACILES_BLOCKS ,
79
+ ("override" , Override ()),
80
+ ("bonus" , Bonus ()),
42
81
(
43
82
"reusable" ,
44
83
SnippetChooserBlock (
0 commit comments