From 350e11c31014c40a822ef354e8e945792a8cc3b8 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 24 Feb 2020 21:07:12 +0200 Subject: [PATCH] Mock data --- lib/data/models/project_model.dart | 3 ++- lib/data/models/task_model.dart | 2 ++ lib/ui/app/menu_drawer.dart | 14 ++++++++------ lib/ui/app/presenters/project_presenter.dart | 20 ++++++++++++++++++++ lib/ui/app/presenters/task_presenter.dart | 13 +++++++++++++ 5 files changed, 45 insertions(+), 7 deletions(-) diff --git a/lib/data/models/project_model.dart b/lib/data/models/project_model.dart index 21ab739ab..80e44fb4e 100644 --- a/lib/data/models/project_model.dart +++ b/lib/data/models/project_model.dart @@ -36,7 +36,8 @@ abstract class ProjectItemResponse class ProjectFields { static const String name = 'name'; - static const String clientId = 'clientAt'; + static const String clientId = 'clientId'; + static const String client = 'client'; static const String taskRate = 'taskRate'; static const String dueDate = 'due_date'; static const String privateNotes = 'privateNotes'; diff --git a/lib/data/models/task_model.dart b/lib/data/models/task_model.dart index c4974b2ed..643be89e8 100644 --- a/lib/data/models/task_model.dart +++ b/lib/data/models/task_model.dart @@ -42,7 +42,9 @@ class TaskFields { static const String description = 'description'; static const String duration = 'duration'; static const String invoiceId = 'invoiceId'; + static const String client = 'client'; static const String clientId = 'clientId'; + static const String project = 'project'; static const String projectId = 'projectId'; static const String timeLog = 'timeLog'; static const String isRunning = 'isRunning'; diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index 1c927f53b..6a8618b56 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -221,12 +221,14 @@ class MenuDrawer extends StatelessWidget { icon: getEntityIcon(EntityType.payment), title: localization.payments, ), - DrawerTile( - company: company, - entityType: EntityType.quote, - icon: getEntityIcon(EntityType.quote), - title: localization.quotes, - ), + // TODO remove this + if (!Config.DEMO_MODE) + DrawerTile( + company: company, + entityType: EntityType.quote, + icon: getEntityIcon(EntityType.quote), + title: localization.quotes, + ), DrawerTile( company: company, entityType: EntityType.project, diff --git a/lib/ui/app/presenters/project_presenter.dart b/lib/ui/app/presenters/project_presenter.dart index a37c32bcf..a45192266 100644 --- a/lib/ui/app/presenters/project_presenter.dart +++ b/lib/ui/app/presenters/project_presenter.dart @@ -1,11 +1,19 @@ import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart'; +import 'package:invoiceninja_flutter/utils/formatting.dart'; class ProjectPresenter extends EntityPresenter { static List getTableFields(UserCompanyEntity userCompany) { return [ ProjectFields.name, + ProjectFields.client, + ProjectFields.taskRate, + ProjectFields.dueDate, + ProjectFields.privateNotes, + ProjectFields.budgetedHours, EntityFields.state, ]; } @@ -13,10 +21,22 @@ class ProjectPresenter extends EntityPresenter { @override Widget getField({String field, BuildContext context}) { final project = entity as ProjectEntity; + final state = StoreProvider.of(context).state; switch (field) { case ProjectFields.name: return Text(project.name); + case ProjectFields.client: + return Text(state.clientState.map[project.clientId] ?? ''); + case ProjectFields.taskRate: + return Text(formatNumber(project.taskRate, context)); + case ProjectFields.dueDate: + return Text(formatDate(project.dueDate, context)); + case ProjectFields.privateNotes: + return Text(project.privateNotes); + case ProjectFields.budgetedHours: + return Text(formatNumber(project.budgetedHours, context, + formatNumberType: FormatNumberType.double)); } return super.getField(field: field, context: context); diff --git a/lib/ui/app/presenters/task_presenter.dart b/lib/ui/app/presenters/task_presenter.dart index 14b54b105..156ee40c2 100644 --- a/lib/ui/app/presenters/task_presenter.dart +++ b/lib/ui/app/presenters/task_presenter.dart @@ -1,23 +1,36 @@ import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/models/task_model.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart'; +import 'package:invoiceninja_flutter/utils/formatting.dart'; class TaskPresenter extends EntityPresenter { static List getTableFields(UserCompanyEntity userCompany) { return [ + TaskFields.client, + TaskFields.project, TaskFields.description, + TaskFields.duration, EntityFields.state, ]; } @override Widget getField({String field, BuildContext context}) { + final state = StoreProvider.of(context).state; final task = entity as TaskEntity; switch (field) { + case TaskFields.client: + return Text(state.clientState.map[task.clientId] ?? ''); + case TaskFields.project: + return Text(state.productState.map[task.projectId] ?? ''); case TaskFields.description: return Text(task.description); + case TaskFields.duration: + return Text(''); } return super.getField(field: field, context: context);