projects: add tracker_url and project create modal

This commit is contained in:
Mikhail Chusavitin
2026-02-06 16:42:32 +03:00
parent 8a8ea10dc2
commit 2f0ac2f6d2
11 changed files with 233 additions and 23 deletions

View File

@@ -201,6 +201,7 @@ func (s *Service) ImportProjectsToLocal() (*ProjectImportResult, error) {
existing.OwnerUsername = project.OwnerUsername
existing.Name = project.Name
existing.TrackerURL = project.TrackerURL
existing.IsActive = project.IsActive
existing.IsSystem = project.IsSystem
existing.CreatedAt = project.CreatedAt
@@ -757,20 +758,8 @@ func (s *Service) pushProjectChange(change *localdb.PendingChange) error {
project := payload.Snapshot
project.UUID = payload.ProjectUUID
serverProject, err := projectRepo.GetByUUID(project.UUID)
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
if createErr := projectRepo.Create(&project); createErr != nil {
return fmt.Errorf("create project on server: %w", createErr)
}
} else {
return fmt.Errorf("get project on server: %w", err)
}
} else {
project.ID = serverProject.ID
if updateErr := projectRepo.Update(&project); updateErr != nil {
return fmt.Errorf("update project on server: %w", updateErr)
}
if err := projectRepo.UpsertByUUID(&project); err != nil {
return fmt.Errorf("upsert project on server: %w", err)
}
localProject, localErr := s.localDB.GetProjectByUUID(project.UUID)
@@ -1032,7 +1021,7 @@ func (s *Service) ensureConfigurationProject(mariaDB *gorm.DB, cfg *models.Confi
if modelProject.OwnerUsername == "" {
modelProject.OwnerUsername = cfg.OwnerUsername
}
if createErr := projectRepo.Create(modelProject); createErr != nil {
if createErr := projectRepo.UpsertByUUID(modelProject); createErr != nil {
return createErr
}
if modelProject.ID > 0 {