Skip to content

Comments

Claude/add project states 016j l at5g ukix zm mg lgz ws2 n#8

Open
pqhung3007 wants to merge 2 commits intopreviewfrom
claude/add-project-states-016jLAt5gUkixZMMgLgzWs2N
Open

Claude/add project states 016j l at5g ukix zm mg lgz ws2 n#8
pqhung3007 wants to merge 2 commits intopreviewfrom
claude/add-project-states-016jLAt5gUkixZMMgLgzWs2N

Conversation

@pqhung3007
Copy link
Owner

Description

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Improvement (change that would cause existing functionality to not work as expected)
  • Code refactoring
  • Performance improvements
  • Documentation update

Screenshots and Media (if applicable)

Test Scenarios

References

This commit implements a comprehensive Project States feature that allows
workspace administrators to track the overall progress of projects with
customizable states.

Backend Changes:
- Add ProjectState model with support for 6 default state groups (Draft, Planning, Execution, Monitoring, Completed, Cancelled)
- Create API endpoints for CRUD operations on project states at workspace level
- Add state field to Project model with foreign key to ProjectState
- Create migration to set up ProjectState table and add default states for existing workspaces
- Add serializers and views for ProjectState management

Frontend Changes:
- Add TypeScript types for IProjectState and TProjectStateGroups
- Create WorkspaceProjectStateService for API calls
- Implement ProjectStateStore with MobX for state management
- Integrate store into CoreRootStore
- Add workspace settings page at /settings/project-states
- Create UI components for managing project states (list, create, edit, delete)
- Add "Project States" navigation link in workspace settings sidebar under Features category

Key Features:
- Workspace admins can create, update, and delete project states
- States are organized into predefined groups for consistency
- Each state has a name, description, color, and group
- Default states are automatically created for all workspaces
- Full CRUD operations with proper validation and error handling
- Clean and intuitive UI consistent with existing Plane design patterns

This is a premium feature that has been implemented in the free version as requested.
This commit enhances the Project States feature with visual display on
project cards and comprehensive filtering capabilities.

Changes:
- Display project state badge on project cards with color indicator and name
- Add state filter dropdown in project filters menu
- Integrate state filtering into project list
- Update TypeScript types to support state filtering
- Add state_detail field to project serializer for efficient data loading

Frontend Changes:
- Update IProject type to include state_detail field
- Add state to TProjectFilters type for filter support
- Create FilterState component with search and selection
- Integrate state filter into ProjectFiltersSelection component
- Update project card to show state badge below description
- Add state filtering logic to shouldFilterProject utility

Backend Changes:
- Add state_detail serializer method field to ProjectSerializer
- Include state name, color, and group in API responses
- Optimize data loading by including state details in project list

User Experience:
- State badge displays with colored indicator and name on each project card
- Filter projects by one or multiple states using the filters dropdown
- Search for states within the filter dropdown
- Visual consistency with other filter options (access, lead, members)
- Collapsible filter sections with preview counts

The implementation follows existing patterns for project filtering and
provides a seamless user experience consistent with other Plane features.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants