Skip to content

[CEP] Allow deprecating unused case properties  #30724

@ctsims

Description

@ctsims

Abstract
Allow project spaces to specify that case properties are deprecated and should not longer appear as options in predictive lists of properties

Motivation
Forum Link: https://forum.dimagi.com/t/export-case-data-unable-to-remove-old-case-properties/8569

It's common for app builders to rename or change what properties they intend to associate with a Case Type, but currently those older unused properties continue to appear everywhere that properties are listed (Exports, Form Builder, etc), which can be potentially error inducing (say, a property was mis-spelled initially and now both are listed) or just cumbersome.

Specification
The system should provide a UI or other mechanism to visualize what model properties are inferred about a case type, and allow tagging metadata on them as deprecated. Deprecated properties shouldn't appear in UI's unless they are actively used by the config. IE: If an export currently includes a deprecated property, it should continue to appear on the config page as an option, but if the export does not currently include a deprecated property it should not.

Impact on users
End users will be able to configure a more streamlined experience, but will also have a more "complex" experience since there will be additional factors impacting how the interface functions. During implementation, we should explore options to mitigate the latter, say by introducing "alternative" views of pages with a "Not showing 23 deprecated properties... [View all properties]" type option at the bottom of the export view to provide transparency about state and an alternative workflow when needed.

Impact on hosting
N/A

Backwards compatibility
N/A

Release Timeline

Open questions and issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    CEPCommCare Enhancement Proposal

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions