Skip to content
This repository was archived by the owner on Aug 8, 2019. It is now read-only.

Commit 3b4ee7f

Browse files
committed
API returns necessary filed to calculate project progress
1 parent 20625e9 commit 3b4ee7f

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

rails-time-track/app/serializers/project_serializer.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
class ProjectSerializer < ActiveModel::Serializer
2-
attributes :id, :name, :client, :category, :start_date, :end_date, :closed, :estimated_cost, :real_cost, :members, :weekly, :user_detail
2+
attributes :id, :name, :client, :category, :start_date, :end_date, :closed, :estimated_cost, :real_cost, :members, :weekly, :user_detail#, :daily
33

44
def members
5-
self.object.users.select("users.id, users.name, users.role")
5+
Project.joins(:users, :project_members).select("users.id, users.name, users.role, project_members.estimated_cost, project_members.real_cost")
6+
# self.object.users.select("users.id, users.name, users.role")
7+
# Project.joins(:users, :project_members).select("users.id, users.name, users.role, project_members.estimated_cost, project_members.real_cost")
68
end
7-
8-
9+
=begin
10+
def daily
11+
self.object.daily_logs.select("daily_logs.id, daily_logs.project_member_id, daily_logs.date, daily_logs.amount")
12+
end
13+
=end
914
def weekly
1015
self.object.weekly_project_reports.select("weekly_project_reports.id, weekly_project_reports.week, weekly_project_reports.estimated_cost, weekly_project_reports.real_cost")
1116
end

react-time-track/src/views/project.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,28 @@ import CloseProjectModal from "../components/close-project-modal";
99
import { getProjectDetail, closeProject } from "../services/project";
1010
import { getWeeklyReport } from "../services/weekly_report";
1111

12+
import Modal from "../components/modal";
13+
import CloseProjectModal from "../components/close-project-modal";
14+
import calculateProgress from "../utils/calculateProgress";
15+
import calculateRisk from "../utils/calculateRisk";
16+
17+
// const weeklyData = [
18+
// {
19+
// id: 1,
20+
// project_id: 1,
21+
// week: "28",
22+
// estimated_cost: 96600,
23+
// real_cost: 117000
24+
// },
25+
// {
26+
// id: 2,
27+
// project_id: 1,
28+
// week: "29",
29+
// estimated_cost: 96600,
30+
// real_cost: 117000
31+
// }
32+
// ];
33+
1234
const card = {
1335
display: "flex",
1436
justifyContent: "space-between",
@@ -49,7 +71,7 @@ function Project({ project_id }) {
4971
.then(response => setWeeklyData(response))
5072
.catch(error => console.log(error));
5173
}, [project]);
52-
74+
console.log("Project:", project);
5375
React.useEffect(() => {
5476
let acumEstimated = 0;
5577
let acumReal = 0;
@@ -155,6 +177,7 @@ function Project({ project_id }) {
155177
}}
156178
>
157179
{project.members.map(member => {
180+
console.log("Member:", member);
158181
return (
159182
<Card styles={card} key={member.id}>
160183
<Link
@@ -174,7 +197,9 @@ function Project({ project_id }) {
174197
<span>{member.name}</span>
175198
<span css={{ fontSize: "0.8em" }}>{member.role}</span>
176199
</div>
177-
<Circle>30%</Circle>
200+
<Circle>
201+
{calculateProgress(member.real_cost, member.estimated_cost)}
202+
</Circle>
178203
</Link>
179204
</Card>
180205
//

0 commit comments

Comments
 (0)