moved from list to projects
This commit is contained in:
parent
16fa80f8df
commit
2893a4e7f9
|
@ -20,6 +20,7 @@ import 'package:vikunja_app/service/services.dart';
|
||||||
import 'package:timezone/data/latest_all.dart' as tz;
|
import 'package:timezone/data/latest_all.dart' as tz;
|
||||||
import 'package:workmanager/workmanager.dart';
|
import 'package:workmanager/workmanager.dart';
|
||||||
|
|
||||||
|
import 'api/project.dart';
|
||||||
import 'main.dart';
|
import 'main.dart';
|
||||||
|
|
||||||
|
|
||||||
|
@ -68,6 +69,8 @@ class VikunjaGlobalState extends State<VikunjaGlobal> {
|
||||||
|
|
||||||
NamespaceService get namespaceService => new NamespaceAPIService(client);
|
NamespaceService get namespaceService => new NamespaceAPIService(client);
|
||||||
|
|
||||||
|
ProjectService get projectService => new ProjectAPIService(client);
|
||||||
|
|
||||||
TaskService get taskService => new TaskAPIService(client);
|
TaskService get taskService => new TaskAPIService(client);
|
||||||
|
|
||||||
BucketService get bucketService => new BucketAPIService(client);
|
BucketService get bucketService => new BucketAPIService(client);
|
||||||
|
|
|
@ -10,7 +10,8 @@ import 'package:vikunja_app/utils/checkboxes_in_text.dart';
|
||||||
class Task {
|
class Task {
|
||||||
final int id;
|
final int id;
|
||||||
final int? parentTaskId, priority, bucketId;
|
final int? parentTaskId, priority, bucketId;
|
||||||
final int? listId;
|
//final int? listId;
|
||||||
|
final int? projectId;
|
||||||
final DateTime created, updated;
|
final DateTime created, updated;
|
||||||
DateTime? dueDate, startDate, endDate;
|
DateTime? dueDate, startDate, endDate;
|
||||||
final List<DateTime> reminderDates;
|
final List<DateTime> reminderDates;
|
||||||
|
@ -50,7 +51,8 @@ class Task {
|
||||||
DateTime? created,
|
DateTime? created,
|
||||||
DateTime? updated,
|
DateTime? updated,
|
||||||
required this.createdBy,
|
required this.createdBy,
|
||||||
required this.listId,
|
//required this.listId,
|
||||||
|
required this.projectId,
|
||||||
this.bucketId,
|
this.bucketId,
|
||||||
}) : this.created = created ?? DateTime.now(),
|
}) : this.created = created ?? DateTime.now(),
|
||||||
this.updated = updated ?? DateTime.now();
|
this.updated = updated ?? DateTime.now();
|
||||||
|
@ -105,7 +107,8 @@ class Task {
|
||||||
: [],
|
: [],
|
||||||
updated = DateTime.parse(json['updated']),
|
updated = DateTime.parse(json['updated']),
|
||||||
created = DateTime.parse(json['created']),
|
created = DateTime.parse(json['created']),
|
||||||
listId = json['list_id'],
|
//listId = json['list_id'],
|
||||||
|
projectId = json['project_id'],
|
||||||
bucketId = json['bucket_id'],
|
bucketId = json['bucket_id'],
|
||||||
createdBy = User.fromJson(json['created_by']);
|
createdBy = User.fromJson(json['created_by']);
|
||||||
|
|
||||||
|
@ -163,7 +166,8 @@ class Task {
|
||||||
id: id ?? this.id,
|
id: id ?? this.id,
|
||||||
parentTaskId: parentTaskId ?? this.parentTaskId,
|
parentTaskId: parentTaskId ?? this.parentTaskId,
|
||||||
priority: priority ?? this.priority,
|
priority: priority ?? this.priority,
|
||||||
listId: listId ?? this.listId,
|
//listId: listId ?? this.listId,
|
||||||
|
projectId: projectId ?? this.projectId,
|
||||||
bucketId: bucketId ?? this.bucketId,
|
bucketId: bucketId ?? this.bucketId,
|
||||||
created: created ?? this.created,
|
created: created ?? this.created,
|
||||||
updated: updated ?? this.updated,
|
updated: updated ?? this.updated,
|
||||||
|
|
|
@ -35,7 +35,7 @@ class LandingPage extends HomeScreenWidget {
|
||||||
class LandingPageState extends State<LandingPage>
|
class LandingPageState extends State<LandingPage>
|
||||||
with AfterLayoutMixin<LandingPage> {
|
with AfterLayoutMixin<LandingPage> {
|
||||||
int? defaultList;
|
int? defaultList;
|
||||||
List<Task> _list = [];
|
List<Task> _tasks = [];
|
||||||
PageStatus landingPageStatus = PageStatus.built;
|
PageStatus landingPageStatus = PageStatus.built;
|
||||||
static const platform = const MethodChannel('vikunja');
|
static const platform = const MethodChannel('vikunja');
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ class LandingPageState extends State<LandingPage>
|
||||||
title: title,
|
title: title,
|
||||||
dueDate: dueDate,
|
dueDate: dueDate,
|
||||||
createdBy: globalState.currentUser!,
|
createdBy: globalState.currentUser!,
|
||||||
listId: defaultList!,
|
projectId: defaultList!,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ class LandingPageState extends State<LandingPage>
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Widget> _listTasks(BuildContext context) {
|
List<Widget> _listTasks(BuildContext context) {
|
||||||
var tasks = (_list.map((task) => _buildTile(task, context))).toList();
|
var tasks = (_tasks.map((task) => _buildTile(task, context))).toList();
|
||||||
//tasks.addAll(_loadingTasks.map(_buildLoadingTile));
|
//tasks.addAll(_loadingTasks.map(_buildLoadingTile));
|
||||||
return tasks;
|
return tasks;
|
||||||
}
|
}
|
||||||
|
@ -193,8 +193,7 @@ class LandingPageState extends State<LandingPage>
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _loadList(BuildContext context) {
|
Future<void> _loadList(BuildContext context) {
|
||||||
log("reloading list");
|
_tasks = [];
|
||||||
_list = [];
|
|
||||||
landingPageStatus = PageStatus.loading;
|
landingPageStatus = PageStatus.loading;
|
||||||
// FIXME: loads and reschedules tasks each time list is updated
|
// FIXME: loads and reschedules tasks each time list is updated
|
||||||
VikunjaGlobal.of(context).notifications.scheduleDueNotifications(VikunjaGlobal.of(context).taskService);
|
VikunjaGlobal.of(context).notifications.scheduleDueNotifications(VikunjaGlobal.of(context).taskService);
|
||||||
|
@ -208,18 +207,16 @@ class LandingPageState extends State<LandingPage>
|
||||||
});
|
});
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return VikunjaGlobal.of(context).listService.getAll().then((lists) {
|
|
||||||
//taskList.forEach((task) {task.list = lists.firstWhere((element) => element.id == task.list_id);});
|
//taskList.forEach((task) {task.list = lists.firstWhere((element) => element.id == task.list_id);});
|
||||||
setState(() {
|
setState(() {
|
||||||
if (taskList != null) {
|
if (taskList != null) {
|
||||||
_list = taskList;
|
_tasks = taskList;
|
||||||
landingPageStatus = PageStatus.success;
|
landingPageStatus = PageStatus.success;
|
||||||
} else {
|
} else {
|
||||||
landingPageStatus = PageStatus.error;
|
landingPageStatus = PageStatus.error;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return null;
|
return null;
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ class ListProvider with ChangeNotifier {
|
||||||
title: title,
|
title: title,
|
||||||
createdBy: globalState.currentUser!,
|
createdBy: globalState.currentUser!,
|
||||||
done: false,
|
done: false,
|
||||||
listId: listId,
|
projectId: listId,
|
||||||
);
|
);
|
||||||
pageStatus = PageStatus.loading;
|
pageStatus = PageStatus.loading;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue