moved from list to projects

This commit is contained in:
Benimautner 2023-07-22 22:54:50 +02:00
parent 16fa80f8df
commit 2893a4e7f9
4 changed files with 17 additions and 13 deletions

View File

@ -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);

View File

@ -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,

View File

@ -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;
});
}); });
} }
} }

View File

@ -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;