diff --git a/app/models/issue_status.rb b/app/models/issue_status.rb index a58346ea7..819313866 100644 --- a/app/models/issue_status.rb +++ b/app/models/issue_status.rb @@ -20,10 +20,25 @@ class IssueStatus < ApplicationRecord ADD = 1 SOLVING = 2 SOLVED = 3 - FEEDBACK = 4 + # FEEDBACK = 4 CLOSED = 5 REJECTED = 6 has_many :issues belongs_to :project, optional: true + + def self.init_data + map = { + "1" => "新增", + "2" => "正在解决", + "3" => "已解决", + "5" => "关闭", + "6" => "拒绝" + } + IssueStatus.order(id: :asc).each do |stat| + next if map[stat.id] == stat.name + Issue.where(status_id: stat.id).each{|i| i.update_column(:status_id, 1)} + stat.destroy! + end + end end diff --git a/app/models/issue_tag.rb b/app/models/issue_tag.rb index 2c62117d0..b111ad2db 100644 --- a/app/models/issue_tag.rb +++ b/app/models/issue_tag.rb @@ -26,4 +26,24 @@ class IssueTag < ApplicationRecord belongs_to :project, optional: true, counter_cache: true belongs_to :user, optional: true + def self.init_data(project_id) + data = [ + ["缺陷", "表示项目存在问题", "#d92d4c"], + ["功能", "表示新功能申请", "#ee955a"], + ["疑问", "表示存在的问题", "#2d6ddc"], + ["支持", "表示特定功能或特定需求", "#019549"], + ["任务", "表示需要分配的任务", "#01a30d"], + ["协助", "表示需要社区用户协助", "#2a0dc1"], + ["搁置", "表示此问题不会继续处理", "#892794"], + ["文档", "表示文档材料补充", "#9ed600"], + ["测试", "表示需要测试的需求", "#2897b9"], + ["重复", "表示已存在类似的疑修", "#bb5332"] + ] + data.each do |item| + next if IssueTag.exists?(project_id: project_id, name: item[0]) + IssueTag.create!(project_id: project_id, name: item[0], description: item[1], color: item[2]) + end + end + + end diff --git a/lib/tasks/fix_issue_project_issues_index.rake b/lib/tasks/fix_issue_project_issues_index.rake deleted file mode 100644 index 010df5f4b..000000000 --- a/lib/tasks/fix_issue_project_issues_index.rake +++ /dev/null @@ -1,22 +0,0 @@ -# 执行示例 bundle exec rake sync_version_issues:update_issues -# 线上环境执行示例 RAILS_ENV=production bundle exec rake sync_version_issues:update_issues - -namespace :fix_issue_project_issues_index do - desc "update issue project_issues_index" - - task update_issues: :environment do - puts "____________fix start________________" - - Issue.update_all(project_issues_index: nil) - - Issue.where(project_issues_index: nil).group(:project_id).count.each do |pid, count| - p = Project.find_by_id(pid) - issues = p.issues.order(created_on: :asc) - issues.find_each.with_index do |issue, index| - issue.update_column(:project_issues_index, index+1) - end - end - puts "____________fix end________________" - end - -end \ No newline at end of file diff --git a/lib/tasks/upgrade_issue_generate_data.rake b/lib/tasks/upgrade_issue_generate_data.rake new file mode 100644 index 000000000..47cfb145d --- /dev/null +++ b/lib/tasks/upgrade_issue_generate_data.rake @@ -0,0 +1,53 @@ + + +namespace :upgrade_issue_generate_data do + # 执行示例 bundle exec rake upgrade_issue_generate_data:project_issues_index + # 线上环境执行示例 RAILS_ENV=production bundle exec rake upgrade_issue_generate_data:project_issues_index + desc "upgrade_issue_generate_data: fix issue project_issues_index" + + task project_issues_index: :environment do + puts "____________fix start________________" + + Issue.update_all(project_issues_index: nil) + count = 0 + Issue.where(project_issues_index: nil).group(:project_id).count.each do |pid, count| + p = Project.find_by_id(pid) + issues = p.issues.order(created_on: :asc) + issues.find_each.with_index do |issue, index| + count += 1 + issue.update_column(:project_issues_index, index+1) + end + end + puts "____________fix end_______total:#{count}_________" + end + + # 执行示例 bundle exec rake upgrade_issue_generate_data:project_init_issue_tags_and_status + # 线上环境执行示例 RAILS_ENV=production bundle exec rake upgrade_issue_generate_data:project_init_issue_tags_and_status + desc "upgrade_issue_generate_data: fix project init issue_tags" + + task project_init_issue_tags_and_status: :environment do + puts "____________fix start________________" + IssueStatus.init_data + IssueTag.where(user_id: nil).destroy_all + count = 0 + Project.order(created_at: :desc).find_each do |project| + count += 1 + IssueTag.init_data(project.id) + end + puts "____________fix end____total:#{count}__________" + end + + # 执行示例 bundle exec rake upgrade_issue_generate_data:move_assigned_to_id_to_assigners + # 线上环境执行示例 RAILS_ENV=production bundle exec rake upgrade_issue_generate_data:move_assigned_to_id_to_assigners + desc "upgrade_issue_generate_data: fix issue assigner to assigners" + + task move_assigned_to_id_to_assigners: :environment do + puts "____________fix start________________" + count = 0 + Issue.where.not(assigned_to_id: nil).find_each do |issue| + count += 1 + issue.assigners = User.where(id: issue.assigned_to_id) + end + puts "____________fix end____total:#{count}__________" + end +end \ No newline at end of file