1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-12-26 04:48:51 +00:00

Do not render survey pie chart which have not response

This commit is contained in:
Pierre HUBERT 2020-04-25 17:28:13 +02:00
parent cbc0de944e
commit e1f8ad1466
2 changed files with 20 additions and 6 deletions

View File

@ -33,6 +33,9 @@ class Survey {
bool get hasResponded => this.userChoice != null && this.userChoice > 0;
bool get hasResponses =>
this.choices.where((f) => f.responses > 0).length > 0;
SurveyChoice get userResponse {
if (!hasResponded) return null;

View File

@ -42,9 +42,7 @@ class _SurveyWidgetState extends State<SurveyWidget> {
style: TextStyle(fontWeight: FontWeight.bold),
),
_buildUserResponse(),
PieChart(
dataMap: _buildDataMap(),
),
survey.hasResponses ? _buildChart() : _buildNoResponseNotice(),
],
);
}
@ -98,15 +96,28 @@ class _SurveyWidgetState extends State<SurveyWidget> {
items: survey.choices
.map(
(f) => DropdownMenuItem<SurveyChoice>(
value: f,
child: Text(f.name),
),
value: f,
child: Text(f.name),
),
)
.toList(),
onChanged: _respondToSurvey,
);
}
Widget _buildChart() {
return PieChart(
dataMap: _buildDataMap(),
);
}
Widget _buildNoResponseNotice() {
return Padding(
padding: const EdgeInsets.all(16.0),
child: Text(tr("No response yet to this survey.")),
);
}
/// Respond to survey
Future<void> _respondToSurvey(SurveyChoice choice) async {
// Send the response to the server