WIP: Persisted issue board filters BE
What does this MR do?
Implement the backend for persisted issue boards.
Are there points in the code the reviewer needs to double check?
Roadmap
Group issue board
-
Create tables -
Create model relationships -
Groups::BoardsController#create
should be able to receive filter params (and work for boardname
)
Current request:
Started POST "/groups/test/boards.json" for 127.0.0.1 at 2017-09-20 17:18:23 -0300 Processing by Groups::BoardsController#create as JSON Parameters: {"id"=>false, "name"=>"group board", "milestone"=>{"id"=>nil, "title"=>"Any Milestone"}, "milestone_id"=>nil, "group_id"=>"test", "board"=>{"id"=>false, "name"=>"group board", "milestone_id"=>nil}}
- [ ] FE should be able to fetch each fields data (check existing endpoints)
- [x] `Groups::BoardsController#update` should be able to receive filter params (and work for board `name`)
> Current request:
> ```
Started PUT "/groups/test/boards/5.json" for 127.0.0.1 at 2017-09-20 18:08:31 -0300
Processing by Groups::BoardsController#update as JSON
Parameters: {"id"=>"5", "name"=>"group board", "milestone_id"=>nil, "group_id"=>"test", "board"=>{"id"=>"5", "name"=>"group board", "milestone_id"=>nil}}
-
Groups::BoardsController#index
should be able to use the persisted filters to actually filter -
Return the data needed to build the Edit board
on controllersshow
action
Projects issue board
-
Projects::BoardsController#update
should be able to receive filter params (and keep working for boardname
)
Current request:
Started PUT "/groups/test/boards/5.json" for 127.0.0.1 at 2017-09-20 17:25:28 -0300
GeoNode Exists (0.4ms) SELECT 1 AS one FROM "geo_nodes" LIMIT 1
Processing by Groups::BoardsController#update as JSON
Parameters: {"id"=>"5", "name"=>"group boar", "milestone_id"=>nil, "group_id"=>"test", "board"=>{"id"=>"5", "name"=>"group boar", "milestone_id"=>nil}}
Endpoints to use
http://localhost:3001/a-group/x/milestones.json
http://localhost:3001/a-group/x/labels.json
http://localhost:3001/autocomplete/users.json?search=&per_page=20&active=true&project_id=28&group_id=x
Migrations
db:migrate
== 20170926200545 AddBoardFilterFields: migrating =============================
-- add_column(:boards, :weight, :integer, {:index=>true})
-> 0.0015s
-- add_reference(:boards, :author, {:index=>true})
-> 0.0064s
-- add_reference(:boards, :assignee, {:index=>true})
-> 0.0048s
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE boards\nADD CONSTRAINT fk_58e8fc64f3\nFOREIGN KEY (author_id)\nREFERENCES users (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0030s
-- execute("ALTER TABLE boards VALIDATE CONSTRAINT fk_58e8fc64f3;")
-> 0.0027s
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE boards\nADD CONSTRAINT fk_2a3450e77c\nFOREIGN KEY (assignee_id)\nREFERENCES users (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0025s
-- execute("ALTER TABLE boards VALIDATE CONSTRAINT fk_2a3450e77c;")
-> 0.0020s
== 20170926200545 AddBoardFilterFields: migrated (0.0255s) ====================
== 20170926202731 AddMilestoneForeignKeyToBoards: migrating ===================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE boards\nADD CONSTRAINT fk_b93160e8ee\nFOREIGN KEY (milestone_id)\nREFERENCES milestones (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0015s
-- execute("ALTER TABLE boards VALIDATE CONSTRAINT fk_b93160e8ee;")
-> 0.0022s
== 20170926202731 AddMilestoneForeignKeyToBoards: migrated (0.0047s) ==========
== 20170926203418 CreateBoardFilterLabels: migrating ==========================
-- create_table(:board_filter_labels)
-> 0.0130s
-- add_index(:board_filter_labels, [:board_id, :label_id], {:unique=>true})
-> 0.0039s
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE board_filter_labels\nADD CONSTRAINT fk_53e44f3a07\nFOREIGN KEY (board_id)\nREFERENCES boards (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0019s
-- execute("ALTER TABLE board_filter_labels VALIDATE CONSTRAINT fk_53e44f3a07;")
-> 0.0044s
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE board_filter_labels\nADD CONSTRAINT fk_91e18fdcee\nFOREIGN KEY (label_id)\nREFERENCES labels (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0015s
-- execute("ALTER TABLE board_filter_labels VALIDATE CONSTRAINT fk_91e18fdcee;")
-> 0.0019s
== 20170926203418 CreateBoardFilterLabels: migrated (0.0295s) =================
db:rollback STEP=3
== 20170926203418 CreateBoardFilterLabels: reverting ==========================
-- drop_table(:board_filter_labels)
-> 0.0051s
== 20170926203418 CreateBoardFilterLabels: reverted (0.0054s) =================
== 20170926202731 AddMilestoneForeignKeyToBoards: reverting ===================
-- remove_foreign_key(:boards, {:column=>:milestone_id})
-> 0.0070s
== 20170926202731 AddMilestoneForeignKeyToBoards: reverted (0.0071s) ==========
== 20170926200545 AddBoardFilterFields: reverting =============================
-- remove_column(:boards, :weight)
-> 0.0012s
-- remove_foreign_key(:boards, {:column=>:author_id})
-> 0.0059s
-- remove_reference(:boards, :author)
-> 0.0018s
-- remove_foreign_key(:boards, {:column=>:assignee_id})
-> 0.0056s
-- remove_reference(:boards, :assignee)
-> 0.0013s
== 20170926200545 AddBoardFilterFields: reverted (0.0165s) ====================
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
API support added -
Tests added for this feature/bug - Review
-
Has been reviewed by UX -
Has been reviewed by Frontend -
Has been reviewed by Backend -
Has been reviewed by Database
-
-
Conform by the merge request performance guides -
Conform by the style guides -
Squashed related commits together
What are the relevant issue numbers?
Closes #2518 (closed)
Edited by Oswaldo Ferreir