@@ -31,6 +31,7 @@ class Meta:
3131 initial = False ,
3232 )
3333
34+
3435@components .register
3536class Features (CMSFrontendComponent ):
3637 """Features section container with accordion and content area"""
@@ -74,6 +75,7 @@ class Meta:
7475 required = False ,
7576 initial = "default" ,
7677 )
78+
7779
7880@components .register
7981class TimelineContainer (CMSFrontendComponent ):
@@ -113,6 +115,66 @@ class Meta:
113115 widget = ColoredButtonGroup (attrs = {"class" : "flex-wrap" }),
114116 )
115117
118+
119+ @components .register
120+ class Footer (CMSFrontendComponent ):
121+ """Footer component with divider color option"""
122+
123+ class Meta :
124+ name = _ ("Footer" )
125+ render_template = "footer/footer.html"
126+ allow_children = True
127+ child_classes = [
128+ "GridRowPlugin" ,
129+ "TextPlugin" ,
130+ "TextLinkPlugin" ,
131+ "ImagePlugin" ,
132+ "HeadingPlugin" ,
133+ ]
134+ mixins = ["Background" , "Spacing" , "Attributes" ]
135+
136+ divider_color = forms .ChoiceField (
137+ label = _ ("Divider line color" ),
138+ choices = settings .DJANGOCMS_FRONTEND_COLOR_STYLE_CHOICES ,
139+ required = False ,
140+ initial = "white" ,
141+ help_text = _ ("Color of the horizontal divider line." ),
142+ widget = ColoredButtonGroup (attrs = {"class" : "flex-wrap" }),
143+ )
144+
145+
146+ @components .register
147+ class FooterLinksList (CMSFrontendComponent ):
148+ """Footer Links List component"""
149+
150+ class Meta :
151+ name = _ ("Footer Links List" )
152+ render_template = "footer/footer_links_list.html"
153+ requires_parent = True
154+ parent_classes = ["Footer" , "GridColumnPlugin" ]
155+ allow_children = True
156+ child_classes = [
157+ "TextLinkPlugin" ,
158+ ]
159+ mixins = ["Attributes" , "Spacing" ]
160+
161+ item_spacing = forms .ChoiceField (
162+ label = _ ("Item Spacing" ),
163+ choices = settings .DJANGOCMS_FRONTEND_SPACER_SIZES ,
164+ required = False ,
165+ )
166+
167+ item_alignment = forms .ChoiceField (
168+ label = _ ("Item Alignment" ),
169+ choices = [
170+ ("flex-row" , _ ("One line" )),
171+ ("flex-column" , _ ("Stacked" )),
172+ ],
173+ required = False ,
174+ initial = "flex-column" ,
175+ )
176+
177+
116178@components .register
117179class CTAPanel (CMSFrontendComponent ):
118180 """CTAPanel component with background grid option"""
0 commit comments