Multiple Issue Boards - Backend
Summary
This is a meta issue to index Backend tasks related to the #929 (closed).
Backend
-
Models
-
Board
- name (String)
- backlog_list_enabled (Boolean - default: true)
- done_list_enabled (Boolean - default: true)
-
Project
- boards (has_many)
- restrict numbers of boards to 1 on CE
-
-
Services
-
Boards
-
Update
CreateService
- Create a new board
-
Create
ListService
-
Create
UpdateService
-
Create
DestroyService
- can't delete board if project have only 1 board
-
Update
-
Boards::Lists
-
Create
ListService
- List lists for a specific board
-
Update
CreateService
-
Update
DestroyService
-
Update
GenerateService
-
Update
MoveService
-
Create
-
Boards::Issues
-
Update
ListService
-
Update
MoveService
- When moving from the backlog, just add the new label.
- Moving an issue between lists removes the label from the list it came from (exception: backlog) and adds the label of the list it goes to.
-
When moving to
Done
, remove all list-labels from project boards -
When moving to
Done
, remove all list-labels for boards that use the pre-definedDone
list and close the issue.
-
Update
-
-
Endpoints
-
Create
GET /:namespace_id/:project_id/boards
- Create if doesn't have one
- Returns issues boards
- Filter boards by name
-
Create
POST /:namespace_id/:project_id/boards
- Create a new board
-
Create
PATCH /:namespace_id/:project_id/board/:id
- Update board (name)
-
Create
DESTROY /:namespace_id/:project_id/boards/:id
- Remove board from project
-
Update
GET /:namespace_id/:project_id/boards/:id
- Should receive the board
id
- Renders the issue board
- Should receive the board
-
Update
GET /:namespace_id/:project_id/board/:board_id/lists
- Returns board lists
-
Update
POST /:namespace_id/:project_id/board/:board_id/lists
- Create a new list for the selected label
-
Update
POST /:namespace_id/:project_id/board/:board_id/lists/generate
- Generate the default board lists for a specific board
-
Update
PATCH /:namespace_id/:project_id/board/:board_id/lists/:id
- Move list (position)
-
Update
DESTROY /:namespace_id/:project_id/boards/:board_id/lists/:id
- Remove list from board
-
Update
GET /:namespace_id/:project_id/board/:board_id/lists/:id/issues
- Retrieve issues for a label/list that matches filter params
-
Update
PATCH /:namespace_id/:project_id/board/:board_id/issues/:id
- Move issues between lists (
:form_list_id
,:to_list_id
)
- Move issues between lists (
-
Create
- Check authorization to issues board related controllers
- Minimize conflicts between CE/EE
-
Remove unused code
-
Projects::BoardListsController
- CE -
Projects::BoardListsController
- EE
-