Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 22 additions & 6 deletions graphql.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -1880,8 +1880,8 @@
"isOneOf": null,
"fields": [
{
"name": "canDeleteAssessments",
"description": null,
"name": "canDeleteAssessment",
"description": "Whether the user can delete this assessment",
"args": [],
"type": {
"kind": "NON_NULL",
Expand All @@ -1895,6 +1895,22 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "canDeleteAssessments",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "Boolean",
"ofType": null
}
},
"isDeprecated": true,
"deprecationReason": "Use assessment.access.canDeleteAssessment"
},
{
"name": "canDeleteEnrollments",
"description": null,
Expand All @@ -1908,8 +1924,8 @@
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
"isDeprecated": true,
"deprecationReason": "Use assessment.access.canDeleteAssessment"
},
{
"name": "canEditEnrollments",
Expand All @@ -1924,8 +1940,8 @@
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
"isDeprecated": true,
"deprecationReason": "Use enrollment.access.canEditEnrollments for enrollment edit checks"
},
{
"name": "id",
Expand Down
4 changes: 1 addition & 3 deletions src/api/operations/access.fragments.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,7 @@ fragment EnrollmentAccessFields on EnrollmentAccess {

fragment AssessmentAccessFields on AssessmentAccess {
id
canDeleteAssessments
canDeleteEnrollments
canEditEnrollments
canDeleteAssessment
}

fragment ProjectAccessFields on ProjectAccess {
Expand Down
23 changes: 1 addition & 22 deletions src/modules/assessments/components/AssessmentFormActions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import AssessmentAutofillButton from '@/modules/assessments/components/Assessmen
import { isHeadOfMultiMemberHousehold } from '@/modules/hmis/hmisUtil';
import { EnrollmentDashboardRoutes } from '@/routes/routes';
import {
AssessmentRole,
EnrollmentFieldsFragment,
FullAssessmentFragment,
} from '@/types/gqlTypes';
Expand Down Expand Up @@ -44,27 +43,7 @@ const AssessmentFormActions: React.FC<Props> = ({
[enrollment, navigate]
);

const showDeleteAssessmentButton = useMemo(() => {
if (!assessment) return false;

const { canDeleteAssessments, canEditEnrollments, canDeleteEnrollments } =
assessment.access;

// canEditEnrollments is required for deleting WIP or Submitted assessments
if (!canEditEnrollments) return false;

const isSubmitted = !assessment.inProgress;
const deletesEnrollment = assessment.role === AssessmentRole.Intake;
if (isSubmitted) {
// canDeleteAssessments is required for deleting submitted assessments
if (!canDeleteAssessments) return false;

// canDeleteEnrollments is required for deleting submitted INTAKE assessments
if (!canDeleteEnrollments && deletesEnrollment) return false;
}

return true;
}, [assessment]);
const showDeleteAssessmentButton = assessment?.access.canDeleteAssessment;

const showPrintViewButton = !isPrintView && locked && assessment;

Expand Down
8 changes: 8 additions & 0 deletions src/types/gqlObjects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,14 @@ export const HmisObjectSchemas: GqlSchema[] = [
{
name: 'AssessmentAccess',
fields: [
{
name: 'canDeleteAssessment',
type: {
kind: 'NON_NULL',
name: null,
ofType: { kind: 'SCALAR', name: 'Boolean', ofType: null },
},
},
{
name: 'canDeleteAssessments',
type: {
Expand Down
37 changes: 13 additions & 24 deletions src/types/gqlTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,8 +293,13 @@ export type Assessment = {

export type AssessmentAccess = {
__typename?: 'AssessmentAccess';
/** Whether the user can delete this assessment */
canDeleteAssessment: Scalars['Boolean']['output'];
/** @deprecated Use assessment.access.canDeleteAssessment */
canDeleteAssessments: Scalars['Boolean']['output'];
/** @deprecated Use assessment.access.canDeleteAssessment */
canDeleteEnrollments: Scalars['Boolean']['output'];
/** @deprecated Use enrollment.access.canEditEnrollments for enrollment edit checks */
canEditEnrollments: Scalars['Boolean']['output'];
id: Scalars['ID']['output'];
};
Expand Down Expand Up @@ -9166,9 +9171,7 @@ export type EnrollmentAccessFieldsFragment = {
export type AssessmentAccessFieldsFragment = {
__typename?: 'AssessmentAccess';
id: string;
canDeleteAssessments: boolean;
canDeleteEnrollments: boolean;
canEditEnrollments: boolean;
canDeleteAssessment: boolean;
};

export type ProjectAccessFieldsFragment = {
Expand Down Expand Up @@ -10297,9 +10300,7 @@ export type AssessmentWithRecordsFragment = {
access: {
__typename?: 'AssessmentAccess';
id: string;
canDeleteAssessments: boolean;
canDeleteEnrollments: boolean;
canEditEnrollments: boolean;
canDeleteAssessment: boolean;
};
geolocation?: {
__typename?: 'Geolocation';
Expand Down Expand Up @@ -11165,9 +11166,7 @@ export type FullAssessmentFragment = {
access: {
__typename?: 'AssessmentAccess';
id: string;
canDeleteAssessments: boolean;
canDeleteEnrollments: boolean;
canEditEnrollments: boolean;
canDeleteAssessment: boolean;
};
geolocation?: {
__typename?: 'Geolocation';
Expand Down Expand Up @@ -13201,9 +13200,7 @@ export type GetAssessmentQuery = {
access: {
__typename?: 'AssessmentAccess';
id: string;
canDeleteAssessments: boolean;
canDeleteEnrollments: boolean;
canEditEnrollments: boolean;
canDeleteAssessment: boolean;
};
geolocation?: {
__typename?: 'Geolocation';
Expand Down Expand Up @@ -14694,9 +14691,7 @@ export type SubmitAssessmentMutation = {
access: {
__typename?: 'AssessmentAccess';
id: string;
canDeleteAssessments: boolean;
canDeleteEnrollments: boolean;
canEditEnrollments: boolean;
canDeleteAssessment: boolean;
};
geolocation?: {
__typename?: 'Geolocation';
Expand Down Expand Up @@ -15549,9 +15544,7 @@ export type SubmitHouseholdAssessmentsMutation = {
access: {
__typename?: 'AssessmentAccess';
id: string;
canDeleteAssessments: boolean;
canDeleteEnrollments: boolean;
canEditEnrollments: boolean;
canDeleteAssessment: boolean;
};
geolocation?: {
__typename?: 'Geolocation';
Expand Down Expand Up @@ -16421,9 +16414,7 @@ export type GetAssessmentsForPopulationQuery = {
access: {
__typename?: 'AssessmentAccess';
id: string;
canDeleteAssessments: boolean;
canDeleteEnrollments: boolean;
canEditEnrollments: boolean;
canDeleteAssessment: boolean;
};
geolocation?: {
__typename?: 'Geolocation';
Expand Down Expand Up @@ -50254,9 +50245,7 @@ export const EmploymentEducationValuesFragmentDoc = gql`
export const AssessmentAccessFieldsFragmentDoc = gql`
fragment AssessmentAccessFields on AssessmentAccess {
id
canDeleteAssessments
canDeleteEnrollments
canEditEnrollments
canDeleteAssessment
}
`;
export const GeolocationFieldsFragmentDoc = gql`
Expand Down
Loading