@@ -55,18 +55,18 @@ def get_survey_result(
55
55
if result :
56
56
# Get all the available responses for each question within the survey.
57
57
available_response = (db .session .query (AvailableResponseOptionModel .request_key ,
58
- AvailableResponseOptionModel .value )
59
- .filter (and_ (AvailableResponseOptionModel .survey_id .in_ (
60
- analytics_survey_id ), AvailableResponseOptionModel .is_active == true ()))
61
- .subquery ())
58
+ AvailableResponseOptionModel .value )
59
+ .filter (and_ (AvailableResponseOptionModel .survey_id .in_ (
60
+ analytics_survey_id ), AvailableResponseOptionModel .is_active == true ()))
61
+ .subquery ())
62
62
# Get all the survey responses with the counts for each response specific to a survey id which
63
63
# are in active status.
64
64
survey_response = (db .session .query (ResponseTypeOptionModel .request_key , ResponseTypeOptionModel .value ,
65
65
func .count (ResponseTypeOptionModel .request_key ).label ('response' ))
66
- .filter (and_ (ResponseTypeOptionModel .survey_id .in_ (analytics_survey_id ),
66
+ .filter (and_ (ResponseTypeOptionModel .survey_id .in_ (analytics_survey_id ),
67
67
ResponseTypeOptionModel .is_active == true ()))
68
- .group_by (ResponseTypeOptionModel .request_key , ResponseTypeOptionModel .value )
69
- .subquery ())
68
+ .group_by (ResponseTypeOptionModel .request_key , ResponseTypeOptionModel .value )
69
+ .subquery ())
70
70
71
71
survey_response_exists = db .session .query (survey_response .c .request_key ).first ()
72
72
available_response_exists = db .session .query (available_response .c .request_key ).first ()
@@ -81,33 +81,33 @@ def get_survey_result(
81
81
# which fetches all the available responses along with the corresponding reponses.
82
82
if survey_response_exists and available_response_exists :
83
83
survey_result = (db .session .query ((survey_question .c .position ).label ('position' ),
84
- (survey_question .c .label ).label ('question' ),
85
- func .json_agg (func .json_build_object (
86
- 'value' , available_response .c .value ,
87
- 'count' , func .coalesce (survey_response .c .response , 0 )))
88
- .label ('result' ))
89
- .outerjoin (available_response , survey_question .c .key == available_response .c .request_key )
90
- .outerjoin (survey_response ,
84
+ (survey_question .c .label ).label ('question' ),
85
+ func .json_agg (func .json_build_object (
86
+ 'value' , available_response .c .value ,
87
+ 'count' , func .coalesce (survey_response .c .response , 0 )))
88
+ .label ('result' ))
89
+ .outerjoin (available_response , survey_question .c .key == available_response .c .request_key )
90
+ .outerjoin (survey_response ,
91
91
(available_response .c .value == survey_response .c .value ) &
92
92
(available_response .c .request_key == survey_response .c .request_key ),
93
93
full = True )
94
- .filter (survey_question .c .position .isnot (None ))
95
- .filter (survey_question .c .label .isnot (None ))
96
- .group_by (survey_question .c .position , survey_question .c .label ))
94
+ .filter (survey_question .c .position .isnot (None ))
95
+ .filter (survey_question .c .label .isnot (None ))
96
+ .group_by (survey_question .c .position , survey_question .c .label ))
97
97
98
98
return survey_result .all ()
99
99
# Check if there are records in survey_response before executing the final query which fetches reponses
100
100
# even if the available_response table is not yet populated.
101
101
if survey_response_exists :
102
102
survey_result = (db .session .query ((survey_question .c .position ).label ('position' ),
103
- (survey_question .c .label ).label ('question' ),
104
- func .json_agg (func .json_build_object ('value' ,
105
- survey_response .c .value ,
106
- 'count' ,
107
- survey_response .c .response ))
108
- .label ('result' ))
109
- .join (survey_response , survey_response .c .request_key == survey_question .c .key )
110
- .group_by (survey_question .c .position , survey_question .c .label ))
103
+ (survey_question .c .label ).label ('question' ),
104
+ func .json_agg (func .json_build_object ('value' ,
105
+ survey_response .c .value ,
106
+ 'count' ,
107
+ survey_response .c .response ))
108
+ .label ('result' ))
109
+ .join (survey_response , survey_response .c .request_key == survey_question .c .key )
110
+ .group_by (survey_question .c .position , survey_question .c .label ))
111
111
112
112
return survey_result .all ()
113
113
0 commit comments