@@ -221,7 +221,7 @@ def get_button_link(self):
221221 # Ensure page exists and is live.
222222 if block .value and block .value .live :
223223 return block .value .url
224- elif block_type == "external_link" :
224+ elif block_type == "external_link" or block_type == "modal_iframe" :
225225 return block .value
226226 elif block_type == "email" :
227227 return f"mailto:{ block .value } "
@@ -248,6 +248,7 @@ class CallToActionBlock(blocks.StructBlock):
248248 ("external_link" , blocks .URLBlock ()),
249249 ("email" , blocks .EmailBlock ()),
250250 ("document_link" , DocumentChooserBlock ()),
251+ ("modal_iframe" , blocks .URLBlock ()),
251252 ],
252253 required = True ,
253254 max_num = 1 ,
@@ -268,6 +269,26 @@ class Meta:
268269 template = "patterns/molecules/streamfield/blocks/contact_call_to_action.html"
269270
270271
272+ class StickyCTABlock (blocks .StructBlock ):
273+ sticky_text = blocks .CharBlock (max_length = 40 )
274+ sticky_subtext = blocks .CharBlock (max_length = 55 )
275+ button_link = blocks .StreamBlock (
276+ [
277+ ("internal_link" , blocks .PageChooserBlock ()),
278+ ("external_link" , blocks .URLBlock ()),
279+ ("email" , blocks .EmailBlock ()),
280+ ("document_link" , DocumentChooserBlock ()),
281+ ("modal_iframe" , blocks .URLBlock ()),
282+ ],
283+ required = True ,
284+ max_num = 1 ,
285+ )
286+
287+ class Meta :
288+ template = "patterns/molecules/streamfield/blocks/sticky_call_to_action.html"
289+ value_class = ButtonLinkStructValue
290+
291+
271292class DynamicHeroBlock (blocks .StructBlock ):
272293 """
273294 This block displays text that will be cycled through.
@@ -1233,6 +1254,11 @@ class StoryBlock(blocks.StreamBlock):
12331254 template = "patterns/molecules/streamfield/blocks/contact_call_to_action.html" ,
12341255 group = "Calls to action" ,
12351256 )
1257+ sticky_call_to_action = StickyCTABlock (
1258+ label = "Sticky Call to Action" ,
1259+ template = "patterns/molecules/streamfield/blocks/sticky_call_to_action.html" ,
1260+ group = "Calls to action" ,
1261+ )
12361262 pullquote = PullQuoteBlock (
12371263 template = "patterns/molecules/streamfield/blocks/pullquote_block.html" ,
12381264 group = "Basics" ,
0 commit comments