From d0a0e46660ca695e76a65b08be267f845e95e16d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 13 Jan 2007 14:27:15 +0000 Subject: [PATCH] issue relations import git-svn-id: http://redmine.rubyforge.org/svn/branches/work@163 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- issue_relations/app/models/issue_relation.rb | 19 +++++++ .../app/views/issues/relations.rhtml | 49 ++++++++++++++++++ .../db/migrate/017_create_issue_relations.rb | 11 ++++ .../public/images/relation_from.png | Bin 0 -> 1013 bytes issue_relations/public/images/relation_to.png | Bin 0 -> 1014 bytes .../test/fixtures/issue_relations.yml | 5 ++ .../test/unit/issue_relation_test.rb | 10 ++++ 7 files changed, 94 insertions(+) create mode 100644 issue_relations/app/models/issue_relation.rb create mode 100644 issue_relations/app/views/issues/relations.rhtml create mode 100644 issue_relations/db/migrate/017_create_issue_relations.rb create mode 100644 issue_relations/public/images/relation_from.png create mode 100644 issue_relations/public/images/relation_to.png create mode 100644 issue_relations/test/fixtures/issue_relations.yml create mode 100644 issue_relations/test/unit/issue_relation_test.rb diff --git a/issue_relations/app/models/issue_relation.rb b/issue_relations/app/models/issue_relation.rb new file mode 100644 index 000000000..f0c760278 --- /dev/null +++ b/issue_relations/app/models/issue_relation.rb @@ -0,0 +1,19 @@ +class IssueRelation < ActiveRecord::Base + belongs_to :issue + belongs_to :issue_to, :class_name => 'Issue', :foreign_key => 'issue_to_id' + + TYPES = { "ES" => { :name => :label_rel_end_to_start, :order => 1 }, + "EE" => { :name => :label_rel_end_to_end, :order => 2 }, + "SS" => { :name => :label_rel_start_to_start, :order => 3 }, + "SE" => { :name => :label_rel_start_to_end, :order => 4 } + }.freeze + + validates_presence_of :issue, :issue_to, :relation_type, :delay + validates_inclusion_of :relation_type, :in => TYPES.keys + validates_numericality_of :delay, :allow_nil => true + + def validate + errors.add :issue_to_id, :activerecord_error_invalid if issue_id == issue_to_id + end + +end diff --git a/issue_relations/app/views/issues/relations.rhtml b/issue_relations/app/views/issues/relations.rhtml new file mode 100644 index 000000000..5e96a9d3b --- /dev/null +++ b/issue_relations/app/views/issues/relations.rhtml @@ -0,0 +1,49 @@ +

<%= @issue.tracker.name %> #<%= @issue.id %> - <%=h @issue.subject %>

+ + + + + + + + + + + + +<% @issue.relations_from.each do |relation| %> + + + + + + + + +<% end %> + +<% @issue.relations_to.each do |relation| %> + + + + + + + + +<% end %> + +
TaskDebutFinTypeRetard
Predecesseurs
<%= image_tag 'relation_from.png' %><%= relation.issue_id %>: <%= relation.issue.subject %><%= format_date(relation.issue.start_date) %><%= format_date(relation.issue.due_date) %><%= l(IssueRelation::TYPES[relation.relation_type][:name]) %><%= relation.delay %> jours
Successeurs
<%= image_tag 'relation_to.png' %><%= relation.issue_to_id %>: <%= relation.issue_to.subject %><%= format_date(relation.issue_to.start_date) %><%= format_date(relation.issue_to.due_date) %><%= l(IssueRelation::TYPES[relation.relation_type][:name]) %><%= relation.delay %> jours
+
+ +

Nouveau predecesseur

+ +<% form_for :relation, @relation, :url => { :action => 'add_predecessor', :id => @issue } do |f| %> +<%= error_messages_for 'relation' %> +

+<%= f.text_field :issue_id, :required => true %> +<%= f.select :relation_type, relation_types_for_select, :required => true %> +<%= f.text_field :delay, :required => true, :size => 3 %> jours +<%= submit_tag l(:button_add) %> +

+<% end %> \ No newline at end of file diff --git a/issue_relations/db/migrate/017_create_issue_relations.rb b/issue_relations/db/migrate/017_create_issue_relations.rb new file mode 100644 index 000000000..a0dea293f --- /dev/null +++ b/issue_relations/db/migrate/017_create_issue_relations.rb @@ -0,0 +1,11 @@ +class CreateIssueRelations < ActiveRecord::Migration + def self.up + create_table :issue_relations do |t| + # t.column :name, :string + end + end + + def self.down + drop_table :issue_relations + end +end diff --git a/issue_relations/public/images/relation_from.png b/issue_relations/public/images/relation_from.png new file mode 100644 index 0000000000000000000000000000000000000000..5b09f4fd8e484b400fc2c96938a37dc6acbb8389 GIT binary patch literal 1013 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!eu-;DiE~kEVo7FxoQop|L_%VqTe^f{}rNxq_jIm7$T9k(q+FfuVtcz-$(0pjP%0PhVH|>x{g7-0an_ z#VmkAoCO|{#S9EwA3&JVX^qJYpdd@Sqpu?a!^VE@KZ&di49pAxJ|V9E!5};Pe@jct zv17-8%0|Ix2#lN%U|M=)DbTk}B|(0{{~4ZcH}C@T^gUf1Ln>}1C%7>4NHFOLI7Bo^ za$E>~Ak^?OwJpmjg4>kkq-;i%#7u>TT}%NC3||&9u6A3Y`X3Z*p00i_>zopr04V55 AQop|L_%VqTe^f{}rNxq_jIm7$T9k(q+FfuVtcz-$(0pjP%0PhVH|>x{g7+-y8= z)YbuoI14-?iy0WWK7cTz(;AZ*KtYytM_)$E)e-c?47?>FXd_r7XT3U`BJNDnn z>HjDg4S|st0+SD1y9de}B|(0{K;JVsXs!GLlj2B7=pJmWoLA8a{_fTc)I$ztaD0e0sz3)H}?Pl literal 0 HcmV?d00001 diff --git a/issue_relations/test/fixtures/issue_relations.yml b/issue_relations/test/fixtures/issue_relations.yml new file mode 100644 index 000000000..8794d28ae --- /dev/null +++ b/issue_relations/test/fixtures/issue_relations.yml @@ -0,0 +1,5 @@ +# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html +first: + id: 1 +another: + id: 2 diff --git a/issue_relations/test/unit/issue_relation_test.rb b/issue_relations/test/unit/issue_relation_test.rb new file mode 100644 index 000000000..cf3fc93de --- /dev/null +++ b/issue_relations/test/unit/issue_relation_test.rb @@ -0,0 +1,10 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class IssueRelationTest < Test::Unit::TestCase + fixtures :issue_relations + + # Replace this with your real tests. + def test_truth + assert true + end +end