- EditProject: wrap field updates and ChangeProjectStatus in db.WithTx so
a status-change failure doesn't leave a partially applied PATCH.
- Validate EditProjectOption.State against open/closed; 422 on other
values instead of silently treating them as open.
- Align missing-issue status to 404 (the URL targets a missing resource);
update existing test that was asserting the old 422.
- RemoveIssueFromProjectColumn: verify the project_issue row matches the
URL column before clearing the issue's project assignment, since
IssueAssignOrRemoveProject(projectID=0) detaches the issue from any
project regardless of column. Returns 404 if the issue isn't in this
column. New test covers the cross-column case.
Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
- Use ParseIssueFilterStateIsClosed for ListProjects state parsing
- Add SortTypeProjectColumnSorting const, replace magic string
- Use GetIssueByRepoID and dedupe Add/Remove issue handlers
- Migrate Column.Sorting from int8 to int (drops 127-column limit, allows
the API to expose a normal int without truncation)
- Introduce project_service.UpdateProject with optional.Option fields,
use it from the API EditProject handler
Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
Fix team members missing from assignee list when `team_unit.access_mode`
is 0 but the doer is owner.
Fix #34871
1. Use `GetTeamUserIDsWithAccessToAnyRepoUnit` for repo assignee list
2. Load assignee list for project issues directly
3. Use `GetTeamUserIDsWithAccessToAnyRepoUnit` for repo reviewer list
Signed-off-by: Jakub Pisarczyk <pisarz77@gmail.com>
Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
Co-authored-by: Giteabot <teabot@gitea.io>
Fix various legacy problems, including:
* Don't create default column when viewing an empty project
* Fix layouts for Windows
* Fix (partially) #15509
* Fix (partially) #17705
The sidebar refactoring: it is a clear partial-reloading approach,
brings better user experiences, and it makes "Multiple projects" /
"Project column on issue sidebar" feature easy to be added.
---------
Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>