def test_conf_reg_block_without_question_or_answer_passes_validation(self): block = ConferenceRegistrationForm() value = block.to_python({ 'govdelivery_code': 'USCFPB_999', 'capacity': 123, 'success_message': 'Success message', 'at_capacity_message': 'At capacity message', 'failure_message': 'Failure message' }) self.assertTrue(block.clean(value))
def test_conf_reg_block_without_question_or_answer_passes_validation(self): block = ConferenceRegistrationForm() value = block.to_python({ 'govdelivery_code': 'USCFPB_999', 'capacity': 123, 'success_message': 'Success message', 'at_capacity_message': 'At capacity message', 'failure_message': 'Failure message' }) try: block.clean(value) except ValidationError: self.fail('no question and no answer should not fail validation')
def test_conf_reg_block_with_answer_but_no_question_fails_validation(self): block = ConferenceRegistrationForm() value = block.to_python({ 'govdelivery_code': 'USCFPB_999', 'govdelivery_question_id': '', 'govdelivery_answer_id': '67890', 'capacity': 123, 'success_message': 'Success message', 'at_capacity_message': 'At capacity message', 'failure_message': 'Failure message' }) with self.assertRaises(ValidationError): block.clean(value)
class BrowsePage(CFGOVPage): header = StreamField([ ('text_introduction', molecules.TextIntroduction()), ('featured_content', molecules.FeaturedContent()), ], blank=True) content = StreamField([ ('bureau_structure', organisms.BureauStructure()), ('image_text_25_75_group', organisms.ImageText2575Group()), ('image_text_50_50_group', organisms.ImageText5050Group()), ('half_width_link_blob_group', organisms.HalfWidthLinkBlobGroup()), ('third_width_link_blob_group', organisms.ThirdWidthLinkBlobGroup()), ('well', organisms.Well()), ('full_width_text', organisms.FullWidthText()), ('expandable', organisms.Expandable()), ('expandable_group', organisms.ExpandableGroup()), ('table', organisms.Table(editable=False)), ('table_block', organisms.AtomicTableBlock(table_options={'renderer': 'html'})), ('job_listing_table', JobListingTable()), ('feedback', v1_blocks.Feedback()), ('conference_registration_form', ConferenceRegistrationForm()), ('html_block', organisms.HTMLBlock()), ('chart_block', organisms.ChartBlock()), ('snippet_list', organisms.SnippetList()), ], blank=True) secondary_nav_exclude_sibling_pages = models.BooleanField(default=False) # General content tab content_panels = CFGOVPage.content_panels + [ StreamFieldPanel('header'), StreamFieldPanel('content'), ] sidefoot_panels = CFGOVPage.sidefoot_panels + [ FieldPanel('secondary_nav_exclude_sibling_pages'), ] # Tab handler interface edit_handler = TabbedInterface([ ObjectList(content_panels, heading='General Content'), ObjectList(sidefoot_panels, heading='Sidebar'), ObjectList(CFGOVPage.settings_panels, heading='Configuration'), ]) template = 'browse-basic/index.html' objects = PageManager() def add_page_js(self, js): super(BrowsePage, self).add_page_js(js) js['template'] += ['secondary-navigation.js'] def get_context(self, request, *args, **kwargs): context = super(BrowsePage, self).get_context(request, *args, **kwargs) context.update({'get_secondary_nav_items': get_secondary_nav_items}) return context
class BrowsePage(CFGOVPage): header = StreamField([ ('text_introduction', molecules.TextIntroduction()), ('featured_content', organisms.FeaturedContent()), ], blank=True) content = StreamField([ ('full_width_text', organisms.FullWidthText()), ('info_unit_group', organisms.InfoUnitGroup()), ('expandable_group', organisms.ExpandableGroup()), ('expandable', organisms.Expandable()), ('well', organisms.Well()), ('video_player', organisms.VideoPlayer()), ('snippet_list', organisms.ResourceList()), ('table_block', organisms.AtomicTableBlock(table_options={'renderer': 'html'})), ('feedback', v1_blocks.Feedback()), ('raw_html_block', blocks.RawHTMLBlock(label='Raw HTML block')), ('conference_registration_form', ConferenceRegistrationForm()), ('chart_block', organisms.ChartBlock()), ('mortgage_chart_block', organisms.MortgageChartBlock()), ('mortgage_map_block', organisms.MortgageMapBlock()), ('mortgage_downloads_block', MortgageDataDownloads()), ('data_snapshot', organisms.DataSnapshot()), ('job_listing_table', JobListingTable()), ('bureau_structure', organisms.BureauStructure()), ('yes_checklist', YESChecklist()), ], blank=True) secondary_nav_exclude_sibling_pages = models.BooleanField(default=False) share_and_print = models.BooleanField( default=False, help_text="Include share and print buttons above page content.") # General content tab content_panels = CFGOVPage.content_panels + [ StreamFieldPanel('header'), FieldPanel('share_and_print'), StreamFieldPanel('content'), ] sidefoot_panels = CFGOVPage.sidefoot_panels + [ FieldPanel('secondary_nav_exclude_sibling_pages'), ] # Tab handler interface edit_handler = TabbedInterface([ ObjectList(content_panels, heading='General Content'), ObjectList(sidefoot_panels, heading='Sidebar'), ObjectList(CFGOVPage.settings_panels, heading='Configuration'), ]) template = 'browse-basic/index.html' objects = PageManager() search_fields = CFGOVPage.search_fields + [ index.SearchField('content'), index.SearchField('header') ] @property def page_js(self): return (super(BrowsePage, self).page_js + ['secondary-navigation.js']) def get_context(self, request, *args, **kwargs): context = super(BrowsePage, self).get_context(request, *args, **kwargs) context.update({'get_secondary_nav_items': get_secondary_nav_items}) return context
def test_conf_reg_block_with_answer_but_no_question_fails_validation(self): block = ConferenceRegistrationForm() value = block.to_python({'govdelivery_answer_id': '67890'}) with self.assertRaises(ValidationError): block.clean(value)