Merged in feature/IO-2677-Tasks (pull request #1427)

Feature/IO-2677 Tasks

Approved-by: Patrick Fic
This commit is contained in:
Allan Carr
2024-04-19 16:29:32 +00:00
committed by Patrick Fic
38 changed files with 165 additions and 60 deletions

View File

@@ -236,6 +236,7 @@ export function ReportCenterModalComponent({ reportCenterModal, bodyshop }) {
<EmployeeSearchSelect options={employeeData ? employeeData.employees : []} />
</Form.Item>
);
//This was introduced with tasks before assigned_to was shifted to UUID. Keeping in place for reference in the future if needed.
if (idtype === "employeeWithEmail")
return (
<Form.Item

View File

@@ -149,7 +149,7 @@ function TaskListComponent({
sorter: true,
sortOrder: sortcolumn === "assigned_to" && sortorder,
render: (text, record) => {
const employee = bodyshop?.employees?.find((e) => e.user_email === record.assigned_to);
const employee = bodyshop?.employees?.find((e) => e.id === record.assigned_to);
return employee ? `${employee.first_name} ${employee.last_name}` : t("general.labels.na");
}
});

View File

@@ -48,8 +48,8 @@ export function TaskListContainer({
bodyshop: bodyshop.id,
[relationshipType]: relationshipId,
deleted: deleted === "true",
completed: completed === "true",
assigned_to: mine === "true" ? currentUser.email : undefined, // replace currentUserID with the actual ID of the current user
completed: completed === "true", //TODO: Find where mine is set.
assigned_to: onlyMine ? bodyshop?.employees?.find((e) => e.user_email === currentUser.email)?.id : undefined, // replace currentUserID with the actual ID of the current user
offset: page ? (page - 1) * pageLimit : 0,
limit: pageLimit,
order: [

View File

@@ -224,9 +224,7 @@ export function TaskUpsertModalComponent({
label={t("tasks.fields.assigned_to")}
name="assigned_to"
initialValue={
bodyshop.employees.find((employee) => employee?.user_email === currentUser.email && employee.active)
? currentUser.email
: undefined
bodyshop.employees.find((employee) => employee?.user_email === currentUser.email && employee.active)?.id
}
rules={[
{
@@ -240,7 +238,7 @@ export function TaskUpsertModalComponent({
.filter((x) => x.active && x.user_email)
.map((employee) => ({
key: employee.id,
value: employee.user_email,
value: employee.id,
label: `${employee.first_name} ${employee.last_name}`
}))}
/>

View File

@@ -12,6 +12,10 @@ export const PARTIAL_TASK_FIELDS = gql`
due_date
created_by
assigned_to
assigned_to_employee {
id
user_email
}
completed
completed_at
remind_at
@@ -80,7 +84,7 @@ export const QUERY_ALL_TASKS_PAGINATED = gql`
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: String
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
@@ -121,7 +125,7 @@ export const QUERY_JOBLINE_TASKS_PAGINATED = gql`
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: String
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
@@ -164,7 +168,7 @@ export const QUERY_PARTSORDER_TASKS_PAGINATED = gql`
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: String
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
@@ -207,7 +211,7 @@ export const QUERY_BILL_TASKS_PAGINATED = gql`
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: String
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
@@ -250,7 +254,7 @@ export const QUERY_JOB_TASKS_PAGINATED = gql`
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: String
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
@@ -288,7 +292,7 @@ export const QUERY_MY_TASKS_PAGINATED = gql`
query QUERY_MY_TASKS_PAGINATED(
$offset: Int
$limit: Int
$user: String!
$assigned_to: uuid!
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
@@ -299,7 +303,7 @@ export const QUERY_MY_TASKS_PAGINATED = gql`
limit: $limit
order_by: $order
where: {
assigned_to: { _eq: $user }
assigned_to: { _eq: $assigned_to }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
completed: { _eq: $completed }
@@ -309,7 +313,7 @@ export const QUERY_MY_TASKS_PAGINATED = gql`
}
tasks_aggregate(
where: {
assigned_to: { _eq: $user }
assigned_to: { _eq: $assigned_to }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
completed: { _eq: $completed }

View File

@@ -3,24 +3,25 @@ import TaskListContainer from "../../components/task-list/task-list.container.js
import { QUERY_ALL_TASKS_PAGINATED, QUERY_MY_TASKS_PAGINATED } from "../../graphql/tasks.queries.js";
import taskPageTypes from "./taskPageTypes.jsx";
import { createStructuredSelector } from "reselect";
import { selectCurrentUser } from "../../redux/user/user.selectors.js";
import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors.js";
import { connect } from "react-redux";
const mapStateToProps = createStructuredSelector({
currentUser: selectCurrentUser
currentUser: selectCurrentUser,
bodyshop: selectBodyshop
});
const mapDispatchToProps = (dispatch) => ({});
export default connect(mapStateToProps, mapDispatchToProps)(TasksPageComponent);
export function TasksPageComponent({ currentUser, type }) {
export function TasksPageComponent({ bodyshop, currentUser, type }) {
switch (type) {
case taskPageTypes.MY_TASKS:
return (
<TaskListContainer
onlyMine={true}
relationshipId={currentUser.email}
relationshipType={"user"}
relationshipId={bodyshop?.employees?.find((e) => e.user_email === currentUser.email)?.id}
relationshipType={"assigned_to"}
query={{ QUERY_MY_TASKS_PAGINATED }}
titleTranslation={"tasks.titles.my_tasks"}
disableJobRefetch={true}

View File

@@ -2114,7 +2114,7 @@ export const TemplateList = (type, context) => {
title: i18n.t("reportcenter.templates.tasks_date_employee"),
subject: i18n.t("reportcenter.templates.tasks_date_employee"),
key: "tasks_date_employee",
idtype: "employeeWithEmail",
idtype: "employee",
disabled: false,
rangeFilter: {
object: i18n.t("reportcenter.labels.objects.tasks"),