From 94d2f4f8257baf261ab40039ef45030f7db45668 Mon Sep 17 00:00:00 2001 From: Codie Roelf Date: Mon, 12 Feb 2018 16:56:57 +0000 Subject: [PATCH 1/5] add homepage introduction field (BED) --- .../0025_add homepage introduction.py | 20 +++++++++++++++++++ molo/surveys/models.py | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 molo/surveys/migrations/0025_add homepage introduction.py diff --git a/molo/surveys/migrations/0025_add homepage introduction.py b/molo/surveys/migrations/0025_add homepage introduction.py new file mode 100644 index 0000000..7361004 --- /dev/null +++ b/molo/surveys/migrations/0025_add homepage introduction.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-02-12 16:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('surveys', '0024_add_molo_page'), + ] + + operations = [ + migrations.AddField( + model_name='molosurveypage', + name='homepage_introduction', + field=models.TextField(blank=True), + ), + ] diff --git a/molo/surveys/models.py b/molo/surveys/models.py index ce45caf..555aab1 100644 --- a/molo/surveys/models.py +++ b/molo/surveys/models.py @@ -108,6 +108,7 @@ class MoloSurveyPage( base_form_class = MoloSurveyForm introduction = TextField(blank=True) + homepage_introduction = TextField(blank=True) image = models.ForeignKey( 'wagtailimages.Image', null=True, @@ -178,6 +179,7 @@ class MoloSurveyPage( content_panels = surveys_models.AbstractSurvey.content_panels + [ ImageChooserPanel('image'), FieldPanel('introduction', classname='full'), + FieldPanel('homepage_introduction', classname='full'), FieldPanel('homepage_button_text', classname='full'), StreamFieldPanel('description'), InlinePanel('survey_form_fields', label='Form fields'), From c6c6d0d30fa48ce071c3e95c6a9c84854eca5677 Mon Sep 17 00:00:00 2001 From: Codie Roelf Date: Mon, 12 Feb 2018 23:53:56 +0000 Subject: [PATCH 2/5] add a test --- molo/surveys/templates/surveys/surveys_list.html | 2 +- molo/surveys/tests/test_models.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/molo/surveys/templates/surveys/surveys_list.html b/molo/surveys/templates/surveys/surveys_list.html index 4a3cda8..644eaeb 100644 --- a/molo/surveys/templates/surveys/surveys_list.html +++ b/molo/surveys/templates/surveys/surveys_list.html @@ -7,7 +7,7 @@

{{ survey.title }}

-

{{ survey.introduction }}

+

{{ survey.homepage_introduction }}

{% if not survey.display_survey_directly %} {% trans "Take The Survey" as button_text %} diff --git a/molo/surveys/tests/test_models.py b/molo/surveys/tests/test_models.py index d809730..e24410c 100644 --- a/molo/surveys/tests/test_models.py +++ b/molo/surveys/tests/test_models.py @@ -160,6 +160,7 @@ def create_molo_survey_page(parent, **kwargs): molo_survey_page = MoloSurveyPage( title='Test Survey', slug='test-survey', introduction='Introduction to Test Survey ...', + homepage_introduction='Shorter homepage introduction', thank_you_text='Thank you for taking the Test Survey', submit_text='survey submission text', **kwargs @@ -179,6 +180,7 @@ def create_survey(fields={}, **kwargs): for index, field in enumerate(reversed(fields)): sort_order = num_questions - (index + 1) create_molo_survey_form_field(survey, sort_order, field) + return survey class TestPageBreakWithTwoQuestionsInOneStep(TestCase, MoloTestCaseMixin): @@ -204,6 +206,13 @@ def test_setup2(self): self.assertEquals(1, MoloSurveyPage.objects.count()) + def test_homepage_introduction(self): + survey = create_survey() + survey.allow_anonymous_submissions = True + survey.save() + response = self.client.get('/') + self.assertContains(response, 'Shorter homepage introduction') + def test_two_questions_in_one_step_when_one_required(self): create_survey([ { From 3cc743988e0e11e721d931730c758b509715ff63 Mon Sep 17 00:00:00 2001 From: Codie Roelf Date: Tue, 13 Feb 2018 00:09:56 +0000 Subject: [PATCH 3/5] refactor --- molo/surveys/tests/test_models.py | 8 -------- molo/surveys/tests/test_views.py | 23 +++++++++++------------ 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/molo/surveys/tests/test_models.py b/molo/surveys/tests/test_models.py index e24410c..e44c88e 100644 --- a/molo/surveys/tests/test_models.py +++ b/molo/surveys/tests/test_models.py @@ -160,7 +160,6 @@ def create_molo_survey_page(parent, **kwargs): molo_survey_page = MoloSurveyPage( title='Test Survey', slug='test-survey', introduction='Introduction to Test Survey ...', - homepage_introduction='Shorter homepage introduction', thank_you_text='Thank you for taking the Test Survey', submit_text='survey submission text', **kwargs @@ -206,13 +205,6 @@ def test_setup2(self): self.assertEquals(1, MoloSurveyPage.objects.count()) - def test_homepage_introduction(self): - survey = create_survey() - survey.allow_anonymous_submissions = True - survey.save() - response = self.client.get('/') - self.assertContains(response, 'Shorter homepage introduction') - def test_two_questions_in_one_step_when_one_required(self): create_survey([ { diff --git a/molo/surveys/tests/test_views.py b/molo/surveys/tests/test_views.py index 0bc08a7..87b9b6c 100644 --- a/molo/surveys/tests/test_views.py +++ b/molo/surveys/tests/test_views.py @@ -70,6 +70,7 @@ def create_molo_survey_page(self, parent, **kwargs): molo_survey_page = MoloSurveyPage( title='Test Survey', slug='test-survey', introduction='Introduction to Test Survey ...', + homepage_introduction='Shorter homepage introduction', thank_you_text='Thank you for taking the Test Survey', submit_text='survey submission text', **kwargs @@ -96,6 +97,16 @@ def test_homepage_button_text_customisable(self): self.assertContains(response, 'share your story yo') self.assertNotContains(response, 'Take the Survey') + def test_correct_intro_shows_on_homepage(self): + molo_survey_page, molo_survey_form_field = \ + self.create_molo_survey_page( + parent=self.surveys_index, + homepage_button_text='share your story yo') + self.client.login(username='tester', password='tester') + response = self.client.get('/') + self.assertContains(response, 'Shorter homepage introduction') + self.assertNotContains(response, 'Introduction to Test Survey ...') + def test_anonymous_submissions_not_allowed_by_default(self): molo_survey_page, molo_survey_form_field = \ self.create_molo_survey_page(parent=self.section_index) @@ -113,7 +124,6 @@ def test_submit_survey_as_logged_in_user(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) self.assertContains(response, molo_survey_page.submit_text) @@ -136,7 +146,6 @@ def test_anonymous_submissions_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { molo_survey_form_field.label.lower().replace(' ', '-'): 'python' @@ -177,7 +186,6 @@ def test_multiple_submissions_option(self, anonymous=False): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { @@ -200,7 +208,6 @@ def test_show_results_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { @@ -223,7 +230,6 @@ def test_show_results_as_percentage_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { @@ -261,7 +267,6 @@ def test_multi_step_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) self.assertNotContains(response, extra_molo_survey_form_field.label) self.assertContains(response, 'Next Question') @@ -271,7 +276,6 @@ def test_multi_step_option(self): }) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertNotContains(response, molo_survey_form_field.label) self.assertContains(response, extra_molo_survey_form_field.label) self.assertContains(response, molo_survey_page.submit_text) @@ -296,7 +300,6 @@ def test_can_submit_after_validation_error(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) - self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, {}) @@ -326,7 +329,6 @@ def test_survey_template_tag_on_home_page_specific(self): self.create_molo_survey_page(parent=self.surveys_index) response = self.client.get("/") self.assertContains(response, 'Take The Survey') - self.assertContains(response, molo_survey_page.introduction) user = User.objects.create_superuser( username='testuser', password='password', email='test@email.com') self.client2.login(user=user) @@ -338,7 +340,6 @@ def test_can_only_see_sites_surveys_in_admin(self): self.create_molo_survey_page(parent=self.surveys_index) response = self.client.get("/") self.assertContains(response, 'Take The Survey') - self.assertContains(response, molo_survey_page.introduction) user = User.objects.create_superuser( username='testuser', password='password', email='test@email.com') self.client2.login(user=user) @@ -443,7 +444,6 @@ def test_survey_template_tag_on_section_page(self): response = self.client.get(self.section.url) self.assertContains(response, 'Take The Survey') - self.assertContains(response, molo_survey_page.introduction) def test_translated_survey_on_section_page(self): self.user = self.login() @@ -481,7 +481,6 @@ def test_survey_template_tag_on_article_page(self): self.assertContains(response, 'Take The Survey'.format( molo_survey_page.url)) - self.assertContains(response, molo_survey_page.introduction) def test_survey_list_display_direct_logged_out(self): molo_survey_page, molo_survey_form_field = \ From d530fdd36dea9d158f48529cf815187d1857f2c8 Mon Sep 17 00:00:00 2001 From: Codie Roelf Date: Tue, 13 Feb 2018 00:24:08 +0000 Subject: [PATCH 4/5] add back introduction tests --- molo/surveys/tests/test_views.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/molo/surveys/tests/test_views.py b/molo/surveys/tests/test_views.py index 87b9b6c..6587833 100644 --- a/molo/surveys/tests/test_views.py +++ b/molo/surveys/tests/test_views.py @@ -105,7 +105,7 @@ def test_correct_intro_shows_on_homepage(self): self.client.login(username='tester', password='tester') response = self.client.get('/') self.assertContains(response, 'Shorter homepage introduction') - self.assertNotContains(response, 'Introduction to Test Survey ...') + self.assertNotContains(response, 'Take the Survey') def test_anonymous_submissions_not_allowed_by_default(self): molo_survey_page, molo_survey_form_field = \ @@ -124,6 +124,7 @@ def test_submit_survey_as_logged_in_user(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) self.assertContains(response, molo_survey_page.submit_text) @@ -146,6 +147,7 @@ def test_anonymous_submissions_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { molo_survey_form_field.label.lower().replace(' ', '-'): 'python' @@ -186,6 +188,7 @@ def test_multiple_submissions_option(self, anonymous=False): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { @@ -208,6 +211,7 @@ def test_show_results_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { @@ -230,6 +234,7 @@ def test_show_results_as_percentage_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, { @@ -267,6 +272,7 @@ def test_multi_step_option(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) self.assertNotContains(response, extra_molo_survey_form_field.label) self.assertContains(response, 'Next Question') @@ -276,6 +282,7 @@ def test_multi_step_option(self): }) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertNotContains(response, molo_survey_form_field.label) self.assertContains(response, extra_molo_survey_form_field.label) self.assertContains(response, molo_survey_page.submit_text) @@ -300,6 +307,7 @@ def test_can_submit_after_validation_error(self): response = self.client.get(molo_survey_page.url) self.assertContains(response, molo_survey_page.title) + self.assertContains(response, molo_survey_page.introduction) self.assertContains(response, molo_survey_form_field.label) response = self.client.post(molo_survey_page.url, {}) @@ -329,6 +337,7 @@ def test_survey_template_tag_on_home_page_specific(self): self.create_molo_survey_page(parent=self.surveys_index) response = self.client.get("/") self.assertContains(response, 'Take The Survey') + self.assertContains(response, molo_survey_page.homepage_introduction) user = User.objects.create_superuser( username='testuser', password='password', email='test@email.com') self.client2.login(user=user) @@ -340,6 +349,7 @@ def test_can_only_see_sites_surveys_in_admin(self): self.create_molo_survey_page(parent=self.surveys_index) response = self.client.get("/") self.assertContains(response, 'Take The Survey') + self.assertContains(response, molo_survey_page.homepage_introduction) user = User.objects.create_superuser( username='testuser', password='password', email='test@email.com') self.client2.login(user=user) @@ -444,6 +454,7 @@ def test_survey_template_tag_on_section_page(self): response = self.client.get(self.section.url) self.assertContains(response, 'Take The Survey') + self.assertContains(response, molo_survey_page.homepage_introduction) def test_translated_survey_on_section_page(self): self.user = self.login() @@ -481,6 +492,7 @@ def test_survey_template_tag_on_article_page(self): self.assertContains(response, 'Take The Survey'.format( molo_survey_page.url)) + self.assertContains(response, molo_survey_page.homepage_introduction) def test_survey_list_display_direct_logged_out(self): molo_survey_page, molo_survey_form_field = \ From 53d6f6a98b9729982e2094c688b2d8bb37d6c8a9 Mon Sep 17 00:00:00 2001 From: Codie Roelf Date: Tue, 13 Feb 2018 10:15:41 +0000 Subject: [PATCH 5/5] rename migration --- ...homepage introduction.py => 0025_add_homepage_introduction.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename molo/surveys/migrations/{0025_add homepage introduction.py => 0025_add_homepage_introduction.py} (100%) diff --git a/molo/surveys/migrations/0025_add homepage introduction.py b/molo/surveys/migrations/0025_add_homepage_introduction.py similarity index 100% rename from molo/surveys/migrations/0025_add homepage introduction.py rename to molo/surveys/migrations/0025_add_homepage_introduction.py