Steps Progression

This commit is contained in:
Sewmina
2022-04-15 22:22:44 +05:30
parent 39a9a66f56
commit 1f35254b5b

View File

@@ -28,6 +28,7 @@ class _ProjectDetailsState extends State<ProjectDetails> {
int totalTimeSpent = 0;
List<ProjectChartData> timeSpentData = [];
List<ProjectChartData> timeProgressionData = [];
List<ProjectChartData> stepsProgressionData = [];
String chartOption = 'Time Spent';
DateTimeRange? chartRange;
@@ -75,6 +76,21 @@ class _ProjectDetailsState extends State<ProjectDetails> {
}
});
chartRange ??= (lastDateTime != null && firstDateTime != null) ? DateTimeRange(end: lastDateTime!, start: firstDateTime!) : null;
List<ProjectStep> steps = project.steps;
steps.sort((a,b)=> (a.finishedDate??DateTime(0,0,0)).compareTo(b.finishedDate?? DateTime(0,0,0)));
int stepsCompleted = 1;
stepsProgressionData=[];
for(int i =0; i < steps.length; i++){
if(steps[i].finishedDate==null){continue;}
if(steps[i].finishedDate!.isAfter(chartRange!.start) && steps[i].finishedDate!.isBefore(chartRange!.end)){
stepsCompleted+= steps[i].eta ;
stepsProgressionData.add(ProjectChartData(steps[i].finishedDate!, stepsCompleted,metadata: steps[i].stepName));
}
}
return Scaffold(
appBar: AppBar(
title: Row(
@@ -168,7 +184,7 @@ class _ProjectDetailsState extends State<ProjectDetails> {
"I'll show you detailed info about this day in future, When my master creates the feature");
},
color: Colors.blue),
if (chartOption == 'Time Progression')
if (chartOption == 'Time Progression' || chartOption == 'Time & Steps Progression')
LineSeries<ProjectChartData, String>(
// Bind data source
dataSource: timeProgressionData,
@@ -180,7 +196,20 @@ class _ProjectDetailsState extends State<ProjectDetails> {
showAlertDialog(context, DateFormat("MM/dd").format(timeSpentData[point.pointIndex!].day),
"I'll show you detailed info about this day in future, When my master creates the feature");
},
color: Colors.blue)
color: Colors.blue),
if (chartOption == 'Steps Progression'|| chartOption == 'Time & Steps Progression')
LineSeries<ProjectChartData, String>(
// Bind data source
dataSource: stepsProgressionData,
xValueMapper: (ProjectChartData sales, _) => DateFormat("MM/dd").format(sales.day),
yValueMapper: (ProjectChartData sales, _) => sales.timeSpent,
dataLabelMapper: (ProjectChartData sales, _) => sales.metadata,
dataLabelSettings: DataLabelSettings(overflowMode: OverflowMode.hide, showZeroValue: false, isVisible: true),
onPointTap: (ChartPointDetails point) {
showAlertDialog(context, DateFormat("MM/dd").format(timeSpentData[point.pointIndex!].day),
"I'll show you detailed info about this day in future, When my master creates the feature");
},
color: Colors.yellow)
]),
],
))),
@@ -451,8 +480,9 @@ class _ProjectDetailsState extends State<ProjectDetails> {
}
class ProjectChartData {
ProjectChartData(this.day, this.timeSpent);
ProjectChartData(this.day, this.timeSpent,{this.metadata});
DateTime day;
int timeSpent;
String? metadata;
}