diff --git a/yal/endline_terms_and_conditions.py b/yal/endline_terms_and_conditions.py index 36db565b..94ee43b8 100644 --- a/yal/endline_terms_and_conditions.py +++ b/yal/endline_terms_and_conditions.py @@ -173,6 +173,7 @@ async def state_monthly_household_income_endline(self): Choice("R51201_R102 400", self._("R51 201 - R102 400")), Choice("R102401_R204 800", self._("R102 401 - R204 800")), Choice("R204801_or_more", self._("R204 801 or more")), + Choice("not_say", self._("Rather not say")), Choice("skip_question", self._("Skip question")), ] diff --git a/yal/question_sets/endline/platform_review_endline.py b/yal/question_sets/endline/platform_review_endline.py index 62e1f7bd..6677e65d 100644 --- a/yal/question_sets/endline/platform_review_endline.py +++ b/yal/question_sets/endline/platform_review_endline.py @@ -71,14 +71,15 @@ "type": "list", "text": "\n".join( [ - "*Did you know BWise is on Facebook and, if so, " - "have you ever visited?*", + "*Did you know BWise is on Facebook and, if so, have you ever " + "visited their page?*", ] ), "options": [ ("yes_weekly", "Yes, every week"), ("yes_monthly", "Yes, every month"), ("yes_no_much", "Yes, not that much"), + ("yes_never_user", "Yes, never used it"), ("no", "No, didn't know that"), ("dont_understand", "I don't understand"), ("skip_question", "Skip question"), @@ -107,8 +108,8 @@ "type": "list", "text": "\n".join( [ - "*Since joining BWise, have you ever felt like you needed " - "to see a medical service about your mental or sexual health?*", + "*Since joining BWise, have you ever felt like you needed to " + "visit a health facility about your mental or sexual health?*", ] ), "options": [ @@ -117,6 +118,105 @@ ("dont_understand", "I don't understand"), ("skip_question", "Skip question"), ], + "next": { + "yes": "endline_12_q6a_platform_review", + "no": "endline_12_q6e_platform_review", + "dont_understand": "endline_12_q6e_platform_review", + "skip_question": "endline_12_q6e_platform_review", + }, + }, + "endline_12_q6a_platform_review": { + "type": "list", + "text": "\n".join( + [ + "*How many times have you visited a clinic or other health " + "facility for your sexual health since joining BWise? (We " + "know it may be hard to remember, we'd appreciate your best " + "guess)*" + ] + ), + "options": [ + ("none", "None"), + ("1", "1 time"), + ("2", "2 times"), + ("3", "3 times"), + ("4", "4 times"), + ("5", "5 times"), + ("6", "6 times"), + ("7", "7 times"), + ("8_or_more", "8 or more"), + ("skip_question", "Skip question"), + ], + "next": { + "none": "endline_12_q6c_platform_review", + "1": "endline_12_q6d_platform_review", + "2": "endline_12_q6d_platform_review", + "3": "endline_12_q6d_platform_review", + "4": "endline_12_q6d_platform_review", + "5": "endline_12_q6d_platform_review", + "6": "endline_12_q6d_platform_review", + "7": "endline_12_q6d_platform_review", + "8_or_more": "endline_12_q6d_platform_review", + "skip_question": "endline_12_q6e_platform_review", + }, + }, + "endline_12_q6c_platform_review": { + "type": "list", + "text": "\n".join( + [ + "*Was there a reason you didn’t go to the clinic or other " + "health facility?*" + ] + ), + "options": [ + ("where", "Didn't know where"), + ("time", "Didn't have time"), + ("money", "Didn't have money "), + ("judgement", "Fear of judgement"), + ("bad_service", "Fear of bad service"), + ("elsewhere", "Got help elsewhere"), + ("no_need", "No longer needed"), + ("dont_understand", "I don't understand"), + ("skip_question", "Skip question"), + ], + "next": "endline_12_q6e_platform_review", + }, + "endline_12_q6d_platform_review": { + "type": "list", + "text": "\n".join( + [ + "*When you visited the clinic or other health facility, what " + "was the outcome? (If you had different experiences, please " + "pick the response that was true most of the time).*" + ] + ), + "options": [ + ("treated", "Helped, got treated"), + ("no_result", "Helped, no result"), + ("not_seen", "Visited, not seen"), + ("dont_understand", "I don't understand "), + ("skip_question", "Skip question"), + ], + "next": "endline_12_q6e_platform_review", + }, + "endline_12_q6e_platform_review": { + "type": "list", + "text": "\n".join( + [ + "*Do you think that your time on BWise has changed how likely " + "you are to visit a clinic or health facility for your sexual " + "and mental health?*" + ] + ), + "options": [ + ("a_lot", "A lot more likely"), + ("little_more", "Little more likely"), + ("no_change", "No change"), + ("little_less", "Little less likely"), + ("lot_less", "A lot less likely"), + ("dont_understand", "I don't understand"), + ("skip_question", "Skip question"), + ], "next": "endline_12_q7_platform_review", }, "endline_12_q7_platform_review": { @@ -175,9 +275,8 @@ "type": "list", "text": "\n".join( [ - "*Did you know you can request a callback from a " - "LoveLife counsellor " - "through the B-Wise WhatsApp chatbot?*" + "*Did you know you can request a callback from a LoveLife " + "counsellor through the BWise WhatsApp chatbot?*" ] ), "options": [ @@ -188,8 +287,84 @@ ("dont_understand", "I don't understand"), ("skip_question", "Skip question"), ], + "next": "endline_12_q10b_platform_review", + }, + "endline_12_q10b_platform_review": { + "type": "list", + "text": "\n".join( + [ + "*Other than using LoveLife, have you visited another mental " + "or sexual health counselor (since joining BWise) and if so, " + "how many times? (We know it may be hard to remember, we'd " + "appreciate your best guess)*" + ] + ), + "options": [ + ("none", "None"), + ("1", "1 time"), + ("2", "2 times"), + ("3", "3 times"), + ("4", "4 times"), + ("5", "5 times"), + ("6_or_more", "6 or more"), + ("none_but_needed", "None but needed to"), + ("dont_understand", "I don't understand"), + ("skip_question", "Skip question"), + ], + "next": { + "none": "endline_12_q10c_platform_review", + "1": "endline_12_q10c_platform_review", + "2": "endline_12_q10c_platform_review", + "3": "endline_12_q10c_platform_review", + "4": "endline_12_q10c_platform_review", + "5": "endline_12_q10c_platform_review", + "6_or_more": "endline_12_q10c_platform_review", + "none_but_needed": "endline_12_q10d_platform_review", + "dont_understand": "endline_12_q10c_platform_review", + "skip_question": "endline_12_q10c_platform_review", + }, + }, + "endline_12_q10c_platform_review": { + "type": "list", + "text": "\n".join( + [ + "*Do you think that your time on BWise has changed how likely " + "you are to speak to a counsellor about your mental or sexual " + "health?*" + ] + ), + "options": [ + ("a_lot", "A lot more likely"), + ("little_more", "Little more likely"), + ("no_change", "No change"), + ("little_less", "Little less likely"), + ("lot_less", "A lot less likely"), + ("dont_understand", "I don't understand"), + ("skip_question", "Skip question"), + ], "next": None, }, + "endline_12_q10d_platform_review": { + "type": "list", + "text": "\n".join( + [ + "*What was the main reason you didn't speak to a counsellor " + "about your mental or sexual health?*" + ] + ), + "options": [ + ("where", "Didn't know where"), + ("time", "Didn't have time"), + ("money", "Didn't have money "), + ("judgement", "Fear of judgement"), + ("bad_service", "Fear of bad service"), + ("elsewhere", "Got help elsewhere"), + ("no_need", "No longer needed"), + ("dont_understand", "I don't understand"), + ("skip_question", "Skip question"), + ], + "next": "endline_12_q10c_platform_review", + }, }, }, } diff --git a/yal/question_sets/endline/self_esteem_endline.py b/yal/question_sets/endline/self_esteem_endline.py index bf2a7701..a0c3a40a 100644 --- a/yal/question_sets/endline/self_esteem_endline.py +++ b/yal/question_sets/endline/self_esteem_endline.py @@ -230,6 +230,31 @@ "dont_understand": 0, "skip_question": 0, }, + "next": "endline_2_q10_self_esteem", + }, + "endline_2_q10_self_esteem": { + "type": "list", + "text": "\n".join( + [ + "*At times I think I am no good at all.*", + ] + ), + "options": [ + ("strongly_agree", "Strongly agree"), + ("agree", "Agree"), + ("disagree", "Disagree"), + ("strongly_disagree", "Strongly disagree"), + ("dont_understand", "I don't understand"), + ("skip_question", "Skip question"), + ], + "scoring": { + "strongly_agree": 0, + "agree": 1, + "disagree": 2, + "strongly_disagree": 3, + "dont_understand": 0, + "skip_question": 0, + }, "next": None, }, }, diff --git a/yal/question_sets/endline/sexual_consent_endline.py b/yal/question_sets/endline/sexual_consent_endline.py index 6d298374..98c70b3d 100644 --- a/yal/question_sets/endline/sexual_consent_endline.py +++ b/yal/question_sets/endline/sexual_consent_endline.py @@ -83,13 +83,14 @@ "type": "list", "text": "\n".join( [ - "*Which of these has most influenced your attitudes " - "about sexual relationships and interactions?*", + "*Which of these has most influenced your attitudes about " + "sexual relationships and interactions?*", ] ), "options": [ ("social_media", "Web / social media"), - ("bwise_facebook", "B-Wise / facebook "), + ("bwise_whatsapp", "BWise WhatsApp"), + ("bwise_facebook", "BWise facebook page"), ("friends_partner", "Friends / partner"), ("school_university", "School / university"), ("health_facility", "Health facility"), @@ -99,6 +100,7 @@ "next": { "other": "endline_10_q3B_sexual_consent", "social_media": None, + "bwise_whatsapp": None, "bwise_facebook": None, "friends_partner": None, "school_university": None, diff --git a/yal/question_sets/endline/sexual_health_literacy_endline.py b/yal/question_sets/endline/sexual_health_literacy_endline.py index 9eca36ee..1dbaee45 100644 --- a/yal/question_sets/endline/sexual_health_literacy_endline.py +++ b/yal/question_sets/endline/sexual_health_literacy_endline.py @@ -346,13 +346,14 @@ "type": "list", "text": "\n".join( [ - "*Which of these has most influenced your knowledge " - "about using condoms?*", + "*Which of these has most influenced your knowledge about " + "using condoms?*", ] ), "options": [ ("social_media", "Web / social media"), - ("bwise_facebook", "B-Wise / facebook "), + ("bwise_whatsapp", "BWise WhatsApp"), + ("bwise_facebook", "BWise facebook page"), ("friends_partner", "Friends / partner"), ("school_university", "School / university"), ("health_facility", "Health facility"), @@ -363,6 +364,7 @@ "next": { "other": "endline_8_q13B_sexual_health_lit", "social_media": "endline_8_q14_sexual_health_lit", + "bwise_whatsapp": "endline_8_q14_sexual_health_lit", "bwise_facebook": "endline_8_q14_sexual_health_lit", "friends_partner": "endline_8_q14_sexual_health_lit", "school_university": "endline_8_q14_sexual_health_lit", @@ -400,17 +402,17 @@ "type": "list", "text": "\n".join( [ - "*Do you now plan to use condoms more consistently " - "than you did 5 months ago?*", + "*Do you now plan to use condoms more consistently than you " + "did 5 months ago?*", ] ), "options": [ ("yes_lot_more", "Yes, a lot more"), ("yes_little_more", "Yes, a little more"), - ("no", "No"), + ("no", "No change"), ("no_little_less", "No, a little less"), ("no_lot_less", "No, a lot less"), - ("dont_understand", "I don’t understand"), + ("dont_understand", "I don`t understand"), ("skip_question", "Skip question"), ], "next": "endline_8_q16_sexual_health_lit", @@ -419,17 +421,17 @@ "type": "list", "text": "\n".join( [ - "*Do you now plan to go for STI or HIV tests more " - "often than you did 5 months ago?*", + "*Do you now plan to go for STI or HIV tests more often than " + "you did 5 months ago?*", ] ), "options": [ ("yes_lot_more", "Yes, a lot more"), ("yes_little_more", "Yes, a little more"), - ("no", "No"), + ("no", "No change"), ("no_little_less", "No, a little less"), ("no_lot_less", "No, a lot less"), - ("dont_understand", "I don’t understand"), + ("dont_understand", "I don`t understand"), ("skip_question", "Skip question"), ], "next": "endline_8_q17_sexual_health_lit", @@ -438,13 +440,14 @@ "type": "list", "text": "\n".join( [ - "*Which of these has most influenced your plans to " - "use condoms or test for STIs/HIV?*", + "*Which of these has most influenced your plans to use " + "condoms or test for STIs/HIV?*", ] ), "options": [ ("social_media", "Web / social media"), - ("bwise_facebook", "B-Wise / facebook "), + ("bwise_whatsapp", "BWise WhatsApp"), + ("bwise_facebook", "BWise facebook page"), ("friends_partner", "Friends / partner"), ("school_university", "School / university"), ("health_facility", "Health facility"), @@ -455,6 +458,7 @@ "next": { "other": "endline_8_q17B_sexual_health_lit", "social_media": None, + "bwise_whatsapp": None, "bwise_facebook": None, "friends_partner": None, "school_university": None, diff --git a/yal/tests/surveys/test_endline.py b/yal/tests/surveys/test_endline.py index ff59feda..d44965ab 100644 --- a/yal/tests/surveys/test_endline.py +++ b/yal/tests/surveys/test_endline.py @@ -1000,7 +1000,7 @@ async def test_state_alcohol_assessment_endline_end(tester: AppTester): message = "\n".join( [ - "◼️◽️◽️◽️◽️◽️◽️◽️◽️◽️", + "◼️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️", "-----", "", "You have received a lot of content from BWise.", @@ -1080,7 +1080,7 @@ async def test_endline_flow(tester: AppTester, rapidpro_mock): # Self Esteem message = "\n".join( [ - "◼️◽️◽️◽️◽️◽️◽️◽️◽️", + "◼️◽️◽️◽️◽️◽️◽️◽️◽️◽️", "-----", "", "How do you feel about the following statements?", @@ -1099,6 +1099,7 @@ async def test_endline_flow(tester: AppTester, rapidpro_mock): await tester.user_input("Agree") await tester.user_input("Skip question") await tester.user_input("Skip question") + await tester.user_input("Skip question") # Connectedness message = "\n".join( @@ -1210,8 +1211,8 @@ async def test_endline_flow(tester: AppTester, rapidpro_mock): await tester.user_input("Yes, improved a lot") await tester.user_input("TV / radio") await tester.user_input("Yes") - await tester.user_input("No") - await tester.user_input("No") + await tester.user_input("No change") + await tester.user_input("No change") await tester.user_input("No change") # Gender @@ -1277,7 +1278,7 @@ async def test_endline_flow(tester: AppTester, rapidpro_mock): # Platform message = "\n".join( [ - "◼️◽️◽️◽️◽️◽️◽️◽️◽️◽️", + "◼️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️◽️", "-----", "", "You have received a lot of content from BWise.",