@@ -20,7 +20,7 @@ class WidgetController extends GetxController {
20
20
final HomeController storageWidget = Get .find <HomeController >();
21
21
late Storage storage;
22
22
late final Filters filters; // Use RxList for observable list
23
- List <ChartSeries > dailyBurnDown = [];
23
+ List <CartesianSeries > dailyBurnDown = [];
24
24
Directory ? baseDirectory;
25
25
RxList <Task > allData = < Task > [].obs; // Use RxList for observable list
26
26
bool stopTraver = false ;
@@ -31,103 +31,108 @@ class WidgetController extends GetxController {
31
31
// var currentProfile = ProfilesWidget.of(context!).currentProfile;
32
32
var currentProfile = Get .find <SplashController >().currentProfile.value;
33
33
baseDirectory = Get .find <SplashController >().baseDirectory ();
34
- storage =
34
+ storage =
35
35
Storage (Directory ('${baseDirectory !.path }/profiles/$currentProfile ' ));
36
36
allData.assignAll (storage.data.allData ());
37
37
sendAndUpdate ();
38
38
}
39
39
}
40
+
40
41
Future <void > sendAndUpdate () async {
41
42
await sendData ();
42
43
await updateWidget ();
43
44
}
44
-
45
+
45
46
Future <void > sendData () async {
46
47
final HomeController taskController = Get .find <HomeController >();
47
48
int lengthBeforeFilters = allData.length;
48
49
List <Task > tasks = allData;
49
- debugPrint ('Tasks: ${tasks .length }, ${taskController .projectFilter }, ${taskController .pendingFilter .value }, ${taskController .selectedSort .value }' );
50
- if (taskController.projectFilter.value != 'All Projects' && taskController.projectFilter.toString ().isNotEmpty) {
51
- tasks = tasks.where ((task) => task.project == taskController.projectFilter.value).toList ();
50
+ debugPrint (
51
+ 'Tasks: ${tasks .length }, ${taskController .projectFilter }, ${taskController .pendingFilter .value }, ${taskController .selectedSort .value }' );
52
+ if (taskController.projectFilter.value != 'All Projects' &&
53
+ taskController.projectFilter.toString ().isNotEmpty) {
54
+ tasks = tasks
55
+ .where ((task) => task.project == taskController.projectFilter.value)
56
+ .toList ();
57
+ } else {
58
+ tasks = List <Task >.from (tasks);
59
+ }
60
+
61
+ // Apply other filters and sorting
62
+ tasks.sort ((a, b) => a.id! .compareTo (b.id! ));
63
+
64
+ tasks = tasks.where ((task) {
65
+ if (taskController.pendingFilter.value) {
66
+ return task.status == 'pending' ;
52
67
} else {
53
- tasks = List < Task >. from (tasks) ;
68
+ return task.status == 'completed' ;
54
69
}
70
+ }).toList ();
55
71
56
- // Apply other filters and sorting
57
- tasks.sort ((a, b) => a.id! .compareTo (b.id! ));
58
-
59
- tasks = tasks.where ((task) {
60
- if (taskController.pendingFilter.value) {
61
- return task.status == 'pending' ;
62
- } else {
63
- return task.status == 'completed' ;
72
+ tasks = tasks.where ((task) {
73
+ var tags = task.tags? .toSet () ?? {};
74
+ if (taskController.tagUnion.value) {
75
+ if (taskController.selectedTags.isEmpty) {
76
+ return true ;
64
77
}
65
- }).toList ();
78
+ return taskController.selectedTags.any ((tag) => (tag.startsWith ('+' ))
79
+ ? tags.contains (tag.substring (1 ))
80
+ : ! tags.contains (tag.substring (1 )));
81
+ } else {
82
+ return taskController.selectedTags.every ((tag) => (tag.startsWith ('+' ))
83
+ ? tags.contains (tag.substring (1 ))
84
+ : ! tags.contains (tag.substring (1 )));
85
+ }
86
+ }).toList ();
66
87
67
- tasks = tasks.where ((task) {
68
- var tags = task.tags? .toSet () ?? {};
69
- if (taskController.tagUnion.value) {
70
- if (taskController.selectedTags.isEmpty) {
71
- return true ;
72
- }
73
- return taskController.selectedTags.any ((tag) => (tag.startsWith ('+' ))
74
- ? tags.contains (tag.substring (1 ))
75
- : ! tags.contains (tag.substring (1 )));
76
- } else {
77
- return taskController.selectedTags.every ((tag) => (tag.startsWith ('+' ))
78
- ? tags.contains (tag.substring (1 ))
79
- : ! tags.contains (tag.substring (1 )));
80
- }
81
- }).toList ();
82
-
83
- // Apply sorting based on selectedSort
84
- tasks.sort ((a, b) {
85
- switch (taskController.selectedSort.value) {
86
- case 'Created+' :
87
- return a.entry.compareTo (b.entry);
88
- case 'Created-' :
89
- return b.entry.compareTo (a.entry);
90
- case 'Modified+' :
91
- return a.modified! .compareTo (b.modified! );
92
- case 'Modified-' :
93
- return b.modified! .compareTo (a.modified! );
94
- case 'Due till+' :
95
- return a.due! .compareTo (b.due! );
96
- case 'Due till-' :
97
- return b.due! .compareTo (a.due! );
98
- case 'Priority-' :
99
- return a.priority! .compareTo (b.priority! );
100
- case 'Priority+' :
101
- return b.priority! .compareTo (a.priority! );
102
- case 'Project+' :
103
- return a.project! .compareTo (b.project! );
104
- case 'Project-' :
105
- return b.project! .compareTo (a.project! );
106
- case 'Urgency-' :
107
- return b.urgency! .compareTo (a.urgency! );
108
- case 'Urgency+' :
109
- return a.urgency! .compareTo (b.urgency! );
110
- default :
111
- return 0 ;
112
- }
113
- });
88
+ // Apply sorting based on selectedSort
89
+ tasks.sort ((a, b) {
90
+ switch (taskController.selectedSort.value) {
91
+ case 'Created+' :
92
+ return a.entry.compareTo (b.entry);
93
+ case 'Created-' :
94
+ return b.entry.compareTo (a.entry);
95
+ case 'Modified+' :
96
+ return a.modified! .compareTo (b.modified! );
97
+ case 'Modified-' :
98
+ return b.modified! .compareTo (a.modified! );
99
+ case 'Due till+' :
100
+ return a.due! .compareTo (b.due! );
101
+ case 'Due till-' :
102
+ return b.due! .compareTo (a.due! );
103
+ case 'Priority-' :
104
+ return a.priority! .compareTo (b.priority! );
105
+ case 'Priority+' :
106
+ return b.priority! .compareTo (a.priority! );
107
+ case 'Project+' :
108
+ return a.project! .compareTo (b.project! );
109
+ case 'Project-' :
110
+ return b.project! .compareTo (a.project! );
111
+ case 'Urgency-' :
112
+ return b.urgency! .compareTo (a.urgency! );
113
+ case 'Urgency+' :
114
+ return a.urgency! .compareTo (b.urgency! );
115
+ default :
116
+ return 0 ;
117
+ }
118
+ });
114
119
List <Map <String , String >> l = [];
115
120
for (var task in tasks) {
116
- l.add ({
117
- "description" : task.description,
118
- "urgency" : 'urgencyLevel : ${urgency (task )}' ,
119
- "uuid" : task.uuid,
120
- "priority" : task.priority ?? "N"
121
- });
121
+ l.add ({
122
+ "description" : task.description,
123
+ "urgency" : 'urgencyLevel : ${urgency (task )}' ,
124
+ "uuid" : task.uuid,
125
+ "priority" : task.priority ?? "N"
126
+ });
122
127
}
123
- if (l.isEmpty&& lengthBeforeFilters> 0 ) {
128
+ if (l.isEmpty && lengthBeforeFilters > 0 ) {
124
129
l.add ({
125
130
"description" : "No tasks found because of filter" ,
126
131
"urgency" : "urgencyLevel : 0" ,
127
132
"priority" : "2" ,
128
133
"uuid" : "NO_TASK"
129
134
});
130
- }else if (l.isEmpty&& lengthBeforeFilters== 0 ) {
135
+ } else if (l.isEmpty && lengthBeforeFilters == 0 ) {
131
136
l.add ({
132
137
"description" : "No tasks found" ,
133
138
"urgency" : "urgencyLevel : 0" ,
0 commit comments