diff --git a/app/models/issue.rb b/app/models/issue.rb index 45a8e43b03db03ffc59d185811c6d246c4d624ff..b9f7ea0bf86e004fea8e394eb771038463cde2b0 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -31,6 +31,12 @@ class Issue < ActiveRecord::Base scope :of_group, ->(group) { where(project_id: group.project_ids) } scope :of_user_team, ->(team) { where(project_id: team.project_ids, assignee_id: team.member_ids) } + + # attr_accessible :title, :assignee_id, :position, :description, + # :milestone_id, :label_list, :state_event, :metadata + + # acts_as_taggable_on :labels + scope :cared, ->(user) { where(assignee_id: user) } scope :open_for, ->(user) { opened.assigned_to(user) } diff --git a/db/migrate/20140701130425_add_metadata_to_issues.rb b/db/migrate/20140701130425_add_metadata_to_issues.rb new file mode 100644 index 0000000000000000000000000000000000000000..e0cafbb2d6d58d1f319ba9cd8d8610f3cad35744 --- /dev/null +++ b/db/migrate/20140701130425_add_metadata_to_issues.rb @@ -0,0 +1,5 @@ +class AddMetadataToIssues < ActiveRecord::Migration + def change + add_column :issues, :metadata, :string + end +end diff --git a/lib/api/entities.rb b/lib/api/entities.rb index ffa3e8a149edcc63f069f14dbddea75bcd24a5a4..66d435117c62b99614c151194e86360309979cec 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -130,6 +130,7 @@ module API expose :label_names, as: :labels expose :milestone, using: Entities::Milestone expose :assignee, :author, using: Entities::UserBasic + expose :metadata end class MergeRequest < ProjectEntity diff --git a/lib/api/issues.rb b/lib/api/issues.rb index 30170c657bafeda9977d60881b0beea3bda39869..c51fef38df4df7ff8e195e6c33cdb5dde9c0fe48 100644 --- a/lib/api/issues.rb +++ b/lib/api/issues.rb @@ -91,6 +91,10 @@ module API # POST /projects/:id/issues post ":id/issues" do required_attributes! [:title] + +# attrs = attributes_for_keys [:title, :description, :assignee_id, :milestone_id, :metadata] +# attrs[:label_list] = params[:labels] if params[:labels].present? + attrs = attributes_for_keys [:title, :description, :assignee_id, :milestone_id] # Validate label names in advance @@ -129,12 +133,18 @@ module API put ":id/issues/:issue_id" do issue = user_project.issues.find(params[:issue_id]) authorize! :modify_issue, issue +<<<<<<< HEAD + + attrs = attributes_for_keys [:title, :description, :assignee_id, :milestone_id, :state_event, :metadata] + attrs[:label_list] = params[:labels] if params[:labels].present? +======= attrs = attributes_for_keys [:title, :description, :assignee_id, :milestone_id, :state_event] # Validate label names in advance if (errors = validate_label_params(params)).any? render_api_error!({ labels: errors }, 400) end +>>>>>>> upstream/master issue = ::Issues::UpdateService.new(user_project, current_user, attrs).execute(issue)