##// END OF EJS Templates
Adds missing native eol properties....
Jean-Philippe Lang -
r2781:21e18c1eb4ac
parent child
Show More
@@ -1,38 +1,38
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 class Principal < ActiveRecord::Base
18 class Principal < ActiveRecord::Base
19 set_table_name 'users'
19 set_table_name 'users'
20
20
21 has_many :members, :foreign_key => 'user_id', :dependent => :destroy
21 has_many :members, :foreign_key => 'user_id', :dependent => :destroy
22 has_many :memberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :project, :roles ], :conditions => "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}", :order => "#{Project.table_name}.name"
22 has_many :memberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :project, :roles ], :conditions => "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}", :order => "#{Project.table_name}.name"
23 has_many :projects, :through => :memberships
23 has_many :projects, :through => :memberships
24
24
25 # Groups and active users
25 # Groups and active users
26 named_scope :active, :conditions => "#{Principal.table_name}.type='Group' OR (#{Principal.table_name}.type='User' AND #{Principal.table_name}.status = 1)"
26 named_scope :active, :conditions => "#{Principal.table_name}.type='Group' OR (#{Principal.table_name}.type='User' AND #{Principal.table_name}.status = 1)"
27
27
28 named_scope :like, lambda {|q|
28 named_scope :like, lambda {|q|
29 s = "%#{q.to_s.strip.downcase}%"
29 s = "%#{q.to_s.strip.downcase}%"
30 {:conditions => ["LOWER(login) LIKE ? OR LOWER(firstname) LIKE ? OR LOWER(lastname) LIKE ?", s, s, s],
30 {:conditions => ["LOWER(login) LIKE ? OR LOWER(firstname) LIKE ? OR LOWER(lastname) LIKE ?", s, s, s],
31 :order => 'type, login, lastname, firstname'
31 :order => 'type, login, lastname, firstname'
32 }
32 }
33 }
33 }
34
34
35 def <=>(principal)
35 def <=>(principal)
36 self.to_s.downcase <=> principal.to_s.downcase
36 self.to_s.downcase <=> principal.to_s.downcase
37 end
37 end
38 end
38 end
@@ -1,16 +1,16
1 <h3><%=l(:label_watched_issues)%> (<%= Issue.visible.count(:include => :watchers,
1 <h3><%=l(:label_watched_issues)%> (<%= Issue.visible.count(:include => :watchers,
2 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id]) %>)</h3>
2 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id]) %>)</h3>
3 <% watched_issues = Issue.visible.find(:all,
3 <% watched_issues = Issue.visible.find(:all,
4 :include => [:status, :project, :tracker, :watchers],
4 :include => [:status, :project, :tracker, :watchers],
5 :limit => 10,
5 :limit => 10,
6 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id],
6 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id],
7 :order => "#{Issue.table_name}.updated_on DESC") %>
7 :order => "#{Issue.table_name}.updated_on DESC") %>
8
8
9 <%= render :partial => 'issues/list_simple', :locals => { :issues => watched_issues } %>
9 <%= render :partial => 'issues/list_simple', :locals => { :issues => watched_issues } %>
10 <% if watched_issues.length > 0 %>
10 <% if watched_issues.length > 0 %>
11 <p class="small"><%= link_to l(:label_issue_view_all), :controller => 'issues',
11 <p class="small"><%= link_to l(:label_issue_view_all), :controller => 'issues',
12 :action => 'index',
12 :action => 'index',
13 :set_filter => 1,
13 :set_filter => 1,
14 :watcher_id => 'me',
14 :watcher_id => 'me',
15 :sort => 'updated_on:desc' %></p>
15 :sort => 'updated_on:desc' %></p>
16 <% end %>
16 <% end %>
@@ -1,6 +1,6
1 <h2><%= l(:label_query_new) %></h2>
1 <h2><%= l(:label_query_new) %></h2>
2
2
3 <% form_tag({:action => 'new', :project_id => @query.project}, :onsubmit => 'selectAllOptions("selected_columns");') do %>
3 <% form_tag({:action => 'new', :project_id => @query.project}, :onsubmit => 'selectAllOptions("selected_columns");') do %>
4 <%= render :partial => 'form', :locals => {:query => @query} %>
4 <%= render :partial => 'form', :locals => {:query => @query} %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <% end %>
6 <% end %>
@@ -1,12 +1,12
1 <h2><%= l(:label_statistics) %></h2>
1 <h2><%= l(:label_statistics) %></h2>
2
2
3 <p>
3 <p>
4 <%= tag("embed", :width => 800, :height => 300, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :graph => "commits_per_month")) %>
4 <%= tag("embed", :width => 800, :height => 300, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :graph => "commits_per_month")) %>
5 </p>
5 </p>
6 <p>
6 <p>
7 <%= tag("embed", :width => 800, :height => 400, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :graph => "commits_per_author")) %>
7 <%= tag("embed", :width => 800, :height => 400, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :graph => "commits_per_author")) %>
8 </p>
8 </p>
9
9
10 <p><%= link_to l(:button_back), :action => 'show', :id => @project %></p>
10 <p><%= link_to l(:button_back), :action => 'show', :id => @project %></p>
11
11
12 <% html_title(l(:label_repository), l(:label_statistics)) -%>
12 <% html_title(l(:label_repository), l(:label_statistics)) -%>
@@ -1,51 +1,51
1 <h2><%= l(:label_search) %></h2>
1 <h2><%= l(:label_search) %></h2>
2
2
3 <div class="box">
3 <div class="box">
4 <% form_tag({}, :method => :get) do %>
4 <% form_tag({}, :method => :get) do %>
5 <p><%= text_field_tag 'q', @question, :size => 60, :id => 'search-input' %>
5 <p><%= text_field_tag 'q', @question, :size => 60, :id => 'search-input' %>
6 <%= javascript_tag "Field.focus('search-input')" %>
6 <%= javascript_tag "Field.focus('search-input')" %>
7 <%= project_select_tag %>
7 <%= project_select_tag %>
8 <label><%= check_box_tag 'all_words', 1, @all_words %> <%= l(:label_all_words) %></label>
8 <label><%= check_box_tag 'all_words', 1, @all_words %> <%= l(:label_all_words) %></label>
9 <label><%= check_box_tag 'titles_only', 1, @titles_only %> <%= l(:label_search_titles_only) %></label>
9 <label><%= check_box_tag 'titles_only', 1, @titles_only %> <%= l(:label_search_titles_only) %></label>
10 </p>
10 </p>
11 <p>
11 <p>
12 <% @object_types.each do |t| %>
12 <% @object_types.each do |t| %>
13 <label><%= check_box_tag t, 1, @scope.include?(t) %> <%= type_label(t) %></label>
13 <label><%= check_box_tag t, 1, @scope.include?(t) %> <%= type_label(t) %></label>
14 <% end %>
14 <% end %>
15 </p>
15 </p>
16
16
17 <p><%= submit_tag l(:button_submit), :name => 'submit' %></p>
17 <p><%= submit_tag l(:button_submit), :name => 'submit' %></p>
18 <% end %>
18 <% end %>
19 </div>
19 </div>
20
20
21 <% if @results %>
21 <% if @results %>
22 <div id="search-results-counts">
22 <div id="search-results-counts">
23 <%= render_results_by_type(@results_by_type) unless @scope.size == 1 %>
23 <%= render_results_by_type(@results_by_type) unless @scope.size == 1 %>
24 </div>
24 </div>
25
25
26 <h3><%= l(:label_result_plural) %> (<%= @results_by_type.values.sum %>)</h3>
26 <h3><%= l(:label_result_plural) %> (<%= @results_by_type.values.sum %>)</h3>
27 <dl id="search-results">
27 <dl id="search-results">
28 <% @results.each do |e| %>
28 <% @results.each do |e| %>
29 <dt class="<%= e.event_type %>"><%= content_tag('span', h(e.project), :class => 'project') unless @project == e.project %> <%= link_to highlight_tokens(truncate(e.event_title, :length => 255), @tokens), e.event_url %></dt>
29 <dt class="<%= e.event_type %>"><%= content_tag('span', h(e.project), :class => 'project') unless @project == e.project %> <%= link_to highlight_tokens(truncate(e.event_title, :length => 255), @tokens), e.event_url %></dt>
30 <dd><span class="description"><%= highlight_tokens(e.event_description, @tokens) %></span>
30 <dd><span class="description"><%= highlight_tokens(e.event_description, @tokens) %></span>
31 <span class="author"><%= format_time(e.event_datetime) %></span></dd>
31 <span class="author"><%= format_time(e.event_datetime) %></span></dd>
32 <% end %>
32 <% end %>
33 </dl>
33 </dl>
34 <% end %>
34 <% end %>
35
35
36 <p><center>
36 <p><center>
37 <% if @pagination_previous_date %>
37 <% if @pagination_previous_date %>
38 <%= link_to_remote ('&#171; ' + l(:label_previous)),
38 <%= link_to_remote ('&#171; ' + l(:label_previous)),
39 {:update => :content,
39 {:update => :content,
40 :url => params.merge(:previous => 1, :offset => @pagination_previous_date.strftime("%Y%m%d%H%M%S"))
40 :url => params.merge(:previous => 1, :offset => @pagination_previous_date.strftime("%Y%m%d%H%M%S"))
41 }, :href => url_for(params.merge(:previous => 1, :offset => @pagination_previous_date.strftime("%Y%m%d%H%M%S"))) %>&nbsp;
41 }, :href => url_for(params.merge(:previous => 1, :offset => @pagination_previous_date.strftime("%Y%m%d%H%M%S"))) %>&nbsp;
42 <% end %>
42 <% end %>
43 <% if @pagination_next_date %>
43 <% if @pagination_next_date %>
44 <%= link_to_remote (l(:label_next) + ' &#187;'),
44 <%= link_to_remote (l(:label_next) + ' &#187;'),
45 {:update => :content,
45 {:update => :content,
46 :url => params.merge(:previous => nil, :offset => @pagination_next_date.strftime("%Y%m%d%H%M%S"))
46 :url => params.merge(:previous => nil, :offset => @pagination_next_date.strftime("%Y%m%d%H%M%S"))
47 }, :href => url_for(params.merge(:previous => nil, :offset => @pagination_next_date.strftime("%Y%m%d%H%M%S"))) %>
47 }, :href => url_for(params.merge(:previous => nil, :offset => @pagination_next_date.strftime("%Y%m%d%H%M%S"))) %>
48 <% end %>
48 <% end %>
49 </center></p>
49 </center></p>
50
50
51 <% html_title(l(:label_search)) -%>
51 <% html_title(l(:label_search)) -%>
@@ -1,35 +1,35
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time-add' %>
2 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time-add' %>
3 </div>
3 </div>
4
4
5 <%= render_timelog_breadcrumb %>
5 <%= render_timelog_breadcrumb %>
6
6
7 <h2><%= l(:label_spent_time) %></h2>
7 <h2><%= l(:label_spent_time) %></h2>
8
8
9 <% form_remote_tag( :url => {}, :html => {:method => :get, :id => 'query_form'}, :method => :get, :update => 'content' ) do %>
9 <% form_remote_tag( :url => {}, :html => {:method => :get, :id => 'query_form'}, :method => :get, :update => 'content' ) do %>
10 <%# TOOD: remove the project_id and issue_id hidden fields, that information is
10 <%# TOOD: remove the project_id and issue_id hidden fields, that information is
11 already in the URI %>
11 already in the URI %>
12 <%= hidden_field_tag('project_id', params[:project_id]) if @project %>
12 <%= hidden_field_tag('project_id', params[:project_id]) if @project %>
13 <%= hidden_field_tag 'issue_id', params[:issue_id] if @issue %>
13 <%= hidden_field_tag 'issue_id', params[:issue_id] if @issue %>
14 <%= render :partial => 'date_range' %>
14 <%= render :partial => 'date_range' %>
15 <% end %>
15 <% end %>
16
16
17 <div class="total-hours">
17 <div class="total-hours">
18 <p><%= l(:label_total) %>: <%= html_hours(l_hours(@total_hours)) %></p>
18 <p><%= l(:label_total) %>: <%= html_hours(l_hours(@total_hours)) %></p>
19 </div>
19 </div>
20
20
21 <% unless @entries.empty? %>
21 <% unless @entries.empty? %>
22 <%= render :partial => 'list', :locals => { :entries => @entries }%>
22 <%= render :partial => 'list', :locals => { :entries => @entries }%>
23 <p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p>
23 <p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p>
24
24
25 <% other_formats_links do |f| %>
25 <% other_formats_links do |f| %>
26 <%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
26 <%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
27 <%= f.link_to 'CSV', :url => params %>
27 <%= f.link_to 'CSV', :url => params %>
28 <% end %>
28 <% end %>
29 <% end %>
29 <% end %>
30
30
31 <% html_title l(:label_spent_time), l(:label_details) %>
31 <% html_title l(:label_spent_time), l(:label_details) %>
32
32
33 <% content_for :header_tags do %>
33 <% content_for :header_tags do %>
34 <%= auto_discovery_link_tag(:atom, {:issue_id => @issue, :format => 'atom', :key => User.current.rss_key}, :title => l(:label_spent_time)) %>
34 <%= auto_discovery_link_tag(:atom, {:issue_id => @issue, :format => 'atom', :key => User.current.rss_key}, :title => l(:label_spent_time)) %>
35 <% end %>
35 <% end %>
@@ -1,21 +1,21
1 <h2><%= l(:label_spent_time) %></h2>
1 <h2><%= l(:label_spent_time) %></h2>
2
2
3 <% labelled_tabular_form_for :time_entry, @time_entry, :url => {:action => 'edit', :id => @time_entry, :project_id => @time_entry.project} do |f| %>
3 <% labelled_tabular_form_for :time_entry, @time_entry, :url => {:action => 'edit', :id => @time_entry, :project_id => @time_entry.project} do |f| %>
4 <%= error_messages_for 'time_entry' %>
4 <%= error_messages_for 'time_entry' %>
5 <%= back_url_hidden_field_tag %>
5 <%= back_url_hidden_field_tag %>
6
6
7 <div class="box">
7 <div class="box">
8 <p><%= f.text_field :issue_id, :size => 6 %> <em><%= h("#{@time_entry.issue.tracker.name} ##{@time_entry.issue.id}: #{@time_entry.issue.subject}") if @time_entry.issue %></em></p>
8 <p><%= f.text_field :issue_id, :size => 6 %> <em><%= h("#{@time_entry.issue.tracker.name} ##{@time_entry.issue.id}: #{@time_entry.issue.subject}") if @time_entry.issue %></em></p>
9 <p><%= f.text_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p>
9 <p><%= f.text_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p>
10 <p><%= f.text_field :hours, :size => 6, :required => true %></p>
10 <p><%= f.text_field :hours, :size => 6, :required => true %></p>
11 <p><%= f.text_field :comments, :size => 100 %></p>
11 <p><%= f.text_field :comments, :size => 100 %></p>
12 <p><%= f.select :activity_id, activity_collection_for_select_options, :required => true %></p>
12 <p><%= f.select :activity_id, activity_collection_for_select_options, :required => true %></p>
13 <% @time_entry.custom_field_values.each do |value| %>
13 <% @time_entry.custom_field_values.each do |value| %>
14 <p><%= custom_field_tag_with_label :time_entry, value %></p>
14 <p><%= custom_field_tag_with_label :time_entry, value %></p>
15 <% end %>
15 <% end %>
16 <%= call_hook(:view_timelog_edit_form_bottom, { :time_entry => @time_entry, :form => f }) %>
16 <%= call_hook(:view_timelog_edit_form_bottom, { :time_entry => @time_entry, :form => f }) %>
17 </div>
17 </div>
18
18
19 <%= submit_tag l(:button_save) %>
19 <%= submit_tag l(:button_save) %>
20
20
21 <% end %>
21 <% end %>
@@ -821,20 +821,20 bs:
821 label_descending: Opadajuće
821 label_descending: Opadajuće
822 label_greater_or_equal: ">="
822 label_greater_or_equal: ">="
823 label_less_or_equal: <=
823 label_less_or_equal: <=
824 text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
824 text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
825 text_wiki_page_reassign_children: Reassign child pages to this parent page
825 text_wiki_page_reassign_children: Reassign child pages to this parent page
826 text_wiki_page_nullify_children: Keep child pages as root pages
826 text_wiki_page_nullify_children: Keep child pages as root pages
827 text_wiki_page_destroy_children: Delete child pages and all their descendants
827 text_wiki_page_destroy_children: Delete child pages and all their descendants
828 setting_password_min_length: Minimum password length
828 setting_password_min_length: Minimum password length
829 field_group_by: Group results by
829 field_group_by: Group results by
830 mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
830 mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
831 label_wiki_content_added: Wiki page added
831 label_wiki_content_added: Wiki page added
832 mail_subject_wiki_content_added: "'{{page}}' wiki page has been added"
832 mail_subject_wiki_content_added: "'{{page}}' wiki page has been added"
833 mail_body_wiki_content_added: The '{{page}}' wiki page has been added by {{author}}.
833 mail_body_wiki_content_added: The '{{page}}' wiki page has been added by {{author}}.
834 label_wiki_content_updated: Wiki page updated
834 label_wiki_content_updated: Wiki page updated
835 mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}.
835 mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}.
836 permission_add_project: Create project
836 permission_add_project: Create project
837 setting_new_project_user_role_id: Role given to a non-admin user who creates a project
837 setting_new_project_user_role_id: Role given to a non-admin user who creates a project
838 label_view_all_revisions: View all revisions
838 label_view_all_revisions: View all revisions
839 label_tag: Tag
839 label_tag: Tag
840 label_branch: Branch
840 label_branch: Branch
@@ -843,7 +843,7 bs:
843 text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
843 text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
844 text_journal_set_to: "{{label}} set to {{value}}"
844 text_journal_set_to: "{{label}} set to {{value}}"
845 text_journal_deleted: "{{label}} deleted"
845 text_journal_deleted: "{{label}} deleted"
846 label_group_plural: Groups
846 label_group_plural: Groups
847 label_group: Group
847 label_group: Group
848 label_group_new: New group
848 label_group_new: New group
849 label_time_entry_plural: Spent time
849 label_time_entry_plural: Spent time
@@ -825,7 +825,7 el:
825 text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
825 text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
826 text_journal_set_to: "{{label}} set to {{value}}"
826 text_journal_set_to: "{{label}} set to {{value}}"
827 text_journal_deleted: "{{label}} deleted"
827 text_journal_deleted: "{{label}} deleted"
828 label_group_plural: Groups
828 label_group_plural: Groups
829 label_group: Group
829 label_group: Group
830 label_group_new: New group
830 label_group_new: New group
831 label_time_entry_plural: Spent time
831 label_time_entry_plural: Spent time
@@ -1,124 +1,124
1 ---
1 ---
2 attachments_001:
2 attachments_001:
3 created_on: 2006-07-19 21:07:27 +02:00
3 created_on: 2006-07-19 21:07:27 +02:00
4 downloads: 0
4 downloads: 0
5 content_type: text/plain
5 content_type: text/plain
6 disk_filename: 060719210727_error281.txt
6 disk_filename: 060719210727_error281.txt
7 container_id: 3
7 container_id: 3
8 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
8 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
9 id: 1
9 id: 1
10 container_type: Issue
10 container_type: Issue
11 filesize: 28
11 filesize: 28
12 filename: error281.txt
12 filename: error281.txt
13 author_id: 2
13 author_id: 2
14 attachments_002:
14 attachments_002:
15 created_on: 2006-07-19 21:07:27 +02:00
15 created_on: 2006-07-19 21:07:27 +02:00
16 downloads: 0
16 downloads: 0
17 content_type: text/plain
17 content_type: text/plain
18 disk_filename: 060719210727_document.txt
18 disk_filename: 060719210727_document.txt
19 container_id: 1
19 container_id: 1
20 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
20 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
21 id: 2
21 id: 2
22 container_type: Document
22 container_type: Document
23 filesize: 28
23 filesize: 28
24 filename: document.txt
24 filename: document.txt
25 author_id: 2
25 author_id: 2
26 attachments_003:
26 attachments_003:
27 created_on: 2006-07-19 21:07:27 +02:00
27 created_on: 2006-07-19 21:07:27 +02:00
28 downloads: 0
28 downloads: 0
29 content_type: image/gif
29 content_type: image/gif
30 disk_filename: 060719210727_logo.gif
30 disk_filename: 060719210727_logo.gif
31 container_id: 4
31 container_id: 4
32 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
32 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
33 id: 3
33 id: 3
34 container_type: WikiPage
34 container_type: WikiPage
35 filesize: 280
35 filesize: 280
36 filename: logo.gif
36 filename: logo.gif
37 description: This is a logo
37 description: This is a logo
38 author_id: 2
38 author_id: 2
39 attachments_004:
39 attachments_004:
40 created_on: 2006-07-19 21:07:27 +02:00
40 created_on: 2006-07-19 21:07:27 +02:00
41 container_type: Issue
41 container_type: Issue
42 container_id: 3
42 container_id: 3
43 downloads: 0
43 downloads: 0
44 disk_filename: 060719210727_source.rb
44 disk_filename: 060719210727_source.rb
45 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
45 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
46 id: 4
46 id: 4
47 filesize: 153
47 filesize: 153
48 filename: source.rb
48 filename: source.rb
49 author_id: 2
49 author_id: 2
50 description: This is a Ruby source file
50 description: This is a Ruby source file
51 content_type: application/x-ruby
51 content_type: application/x-ruby
52 attachments_005:
52 attachments_005:
53 created_on: 2006-07-19 21:07:27 +02:00
53 created_on: 2006-07-19 21:07:27 +02:00
54 container_type: Issue
54 container_type: Issue
55 container_id: 3
55 container_id: 3
56 downloads: 0
56 downloads: 0
57 disk_filename: 060719210727_changeset.diff
57 disk_filename: 060719210727_changeset.diff
58 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
58 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
59 id: 5
59 id: 5
60 filesize: 687
60 filesize: 687
61 filename: changeset.diff
61 filename: changeset.diff
62 author_id: 2
62 author_id: 2
63 content_type: text/x-diff
63 content_type: text/x-diff
64 attachments_006:
64 attachments_006:
65 created_on: 2006-07-19 21:07:27 +02:00
65 created_on: 2006-07-19 21:07:27 +02:00
66 container_type: Issue
66 container_type: Issue
67 container_id: 3
67 container_id: 3
68 downloads: 0
68 downloads: 0
69 disk_filename: 060719210727_archive.zip
69 disk_filename: 060719210727_archive.zip
70 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
70 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
71 id: 6
71 id: 6
72 filesize: 157
72 filesize: 157
73 filename: archive.zip
73 filename: archive.zip
74 author_id: 2
74 author_id: 2
75 content_type: application/octet-stream
75 content_type: application/octet-stream
76 attachments_007:
76 attachments_007:
77 created_on: 2006-07-19 21:07:27 +02:00
77 created_on: 2006-07-19 21:07:27 +02:00
78 container_type: Issue
78 container_type: Issue
79 container_id: 4
79 container_id: 4
80 downloads: 0
80 downloads: 0
81 disk_filename: 060719210727_archive.zip
81 disk_filename: 060719210727_archive.zip
82 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
82 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
83 id: 7
83 id: 7
84 filesize: 157
84 filesize: 157
85 filename: archive.zip
85 filename: archive.zip
86 author_id: 1
86 author_id: 1
87 content_type: application/octet-stream
87 content_type: application/octet-stream
88 attachments_008:
88 attachments_008:
89 created_on: 2006-07-19 21:07:27 +02:00
89 created_on: 2006-07-19 21:07:27 +02:00
90 container_type: Project
90 container_type: Project
91 container_id: 1
91 container_id: 1
92 downloads: 0
92 downloads: 0
93 disk_filename: 060719210727_project_file.zip
93 disk_filename: 060719210727_project_file.zip
94 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
94 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
95 id: 8
95 id: 8
96 filesize: 320
96 filesize: 320
97 filename: project_file.zip
97 filename: project_file.zip
98 author_id: 2
98 author_id: 2
99 content_type: application/octet-stream
99 content_type: application/octet-stream
100 attachments_009:
100 attachments_009:
101 created_on: 2006-07-19 21:07:27 +02:00
101 created_on: 2006-07-19 21:07:27 +02:00
102 container_type: Version
102 container_type: Version
103 container_id: 1
103 container_id: 1
104 downloads: 0
104 downloads: 0
105 disk_filename: 060719210727_version_file.zip
105 disk_filename: 060719210727_version_file.zip
106 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
106 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
107 id: 9
107 id: 9
108 filesize: 452
108 filesize: 452
109 filename: version_file.zip
109 filename: version_file.zip
110 author_id: 2
110 author_id: 2
111 content_type: application/octet-stream
111 content_type: application/octet-stream
112 attachments_010:
112 attachments_010:
113 created_on: 2006-07-19 21:07:27 +02:00
113 created_on: 2006-07-19 21:07:27 +02:00
114 container_type: Issue
114 container_type: Issue
115 container_id: 2
115 container_id: 2
116 downloads: 0
116 downloads: 0
117 disk_filename: 060719210727_picture.jpg
117 disk_filename: 060719210727_picture.jpg
118 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
118 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
119 id: 10
119 id: 10
120 filesize: 452
120 filesize: 452
121 filename: picture.jpg
121 filename: picture.jpg
122 author_id: 2
122 author_id: 2
123 content_type: image/jpeg
123 content_type: image/jpeg
124 No newline at end of file
124
@@ -1,2 +1,2
1 --- {}
1 --- {}
2
2
@@ -1,19 +1,19
1 ---
1 ---
2 boards_001:
2 boards_001:
3 name: Help
3 name: Help
4 project_id: 1
4 project_id: 1
5 topics_count: 2
5 topics_count: 2
6 id: 1
6 id: 1
7 description: Help board
7 description: Help board
8 position: 1
8 position: 1
9 last_message_id: 6
9 last_message_id: 6
10 messages_count: 6
10 messages_count: 6
11 boards_002:
11 boards_002:
12 name: Discussion
12 name: Discussion
13 project_id: 1
13 project_id: 1
14 topics_count: 0
14 topics_count: 0
15 id: 2
15 id: 2
16 description: Discussion board
16 description: Discussion board
17 position: 2
17 position: 2
18 last_message_id:
18 last_message_id:
19 messages_count: 0
19 messages_count: 0
@@ -1,23 +1,23
1 ---
1 ---
2 changes_001:
2 changes_001:
3 id: 1
3 id: 1
4 changeset_id: 100
4 changeset_id: 100
5 action: A
5 action: A
6 path: /test/some/path/in/the/repo
6 path: /test/some/path/in/the/repo
7 from_path:
7 from_path:
8 from_revision:
8 from_revision:
9 changes_002:
9 changes_002:
10 id: 2
10 id: 2
11 changeset_id: 100
11 changeset_id: 100
12 action: A
12 action: A
13 path: /test/some/path/elsewhere/in/the/repo
13 path: /test/some/path/elsewhere/in/the/repo
14 from_path:
14 from_path:
15 from_revision:
15 from_revision:
16 changes_003:
16 changes_003:
17 id: 3
17 id: 3
18 changeset_id: 101
18 changeset_id: 101
19 action: M
19 action: M
20 path: /test/some/path/in/the/repo
20 path: /test/some/path/in/the/repo
21 from_path:
21 from_path:
22 from_revision:
22 from_revision:
23 No newline at end of file
23
@@ -1,84 +1,84
1 ---
1 ---
2 changesets_001:
2 changesets_001:
3 commit_date: 2007-04-11
3 commit_date: 2007-04-11
4 committed_on: 2007-04-11 15:14:44 +02:00
4 committed_on: 2007-04-11 15:14:44 +02:00
5 revision: 1
5 revision: 1
6 id: 100
6 id: 100
7 comments: My very first commit
7 comments: My very first commit
8 repository_id: 10
8 repository_id: 10
9 committer: dlopper
9 committer: dlopper
10 user_id: 3
10 user_id: 3
11 changesets_002:
11 changesets_002:
12 commit_date: 2007-04-12
12 commit_date: 2007-04-12
13 committed_on: 2007-04-12 15:14:44 +02:00
13 committed_on: 2007-04-12 15:14:44 +02:00
14 revision: 2
14 revision: 2
15 id: 101
15 id: 101
16 comments: 'This commit fixes #1, #2 and references #1 & #3'
16 comments: 'This commit fixes #1, #2 and references #1 & #3'
17 repository_id: 10
17 repository_id: 10
18 committer: dlopper
18 committer: dlopper
19 user_id: 3
19 user_id: 3
20 changesets_003:
20 changesets_003:
21 commit_date: 2007-04-12
21 commit_date: 2007-04-12
22 committed_on: 2007-04-12 15:14:44 +02:00
22 committed_on: 2007-04-12 15:14:44 +02:00
23 revision: 3
23 revision: 3
24 id: 102
24 id: 102
25 comments: |-
25 comments: |-
26 A commit with wrong issue ids
26 A commit with wrong issue ids
27 IssueID 666 3
27 IssueID 666 3
28 repository_id: 10
28 repository_id: 10
29 committer: dlopper
29 committer: dlopper
30 user_id: 3
30 user_id: 3
31 changesets_004:
31 changesets_004:
32 commit_date: 2007-04-12
32 commit_date: 2007-04-12
33 committed_on: 2007-04-12 15:14:44 +02:00
33 committed_on: 2007-04-12 15:14:44 +02:00
34 revision: 4
34 revision: 4
35 id: 103
35 id: 103
36 comments: |-
36 comments: |-
37 A commit with an issue id of an other project
37 A commit with an issue id of an other project
38 IssueID 4 2
38 IssueID 4 2
39 repository_id: 10
39 repository_id: 10
40 committer: dlopper
40 committer: dlopper
41 user_id: 3
41 user_id: 3
42 changesets_005:
42 changesets_005:
43 commit_date: "2007-09-10"
43 commit_date: "2007-09-10"
44 comments: Modified one file in the folder.
44 comments: Modified one file in the folder.
45 committed_on: 2007-09-10 19:01:08
45 committed_on: 2007-09-10 19:01:08
46 revision: "5"
46 revision: "5"
47 id: 104
47 id: 104
48 scmid:
48 scmid:
49 user_id: 3
49 user_id: 3
50 repository_id: 10
50 repository_id: 10
51 committer: dlopper
51 committer: dlopper
52 changesets_006:
52 changesets_006:
53 commit_date: "2007-09-10"
53 commit_date: "2007-09-10"
54 comments: Moved helloworld.rb from / to /folder.
54 comments: Moved helloworld.rb from / to /folder.
55 committed_on: 2007-09-10 19:01:47
55 committed_on: 2007-09-10 19:01:47
56 revision: "6"
56 revision: "6"
57 id: 105
57 id: 105
58 scmid:
58 scmid:
59 user_id: 3
59 user_id: 3
60 repository_id: 10
60 repository_id: 10
61 committer: dlopper
61 committer: dlopper
62 changesets_007:
62 changesets_007:
63 commit_date: "2007-09-10"
63 commit_date: "2007-09-10"
64 comments: Removed one file.
64 comments: Removed one file.
65 committed_on: 2007-09-10 19:02:16
65 committed_on: 2007-09-10 19:02:16
66 revision: "7"
66 revision: "7"
67 id: 106
67 id: 106
68 scmid:
68 scmid:
69 user_id: 3
69 user_id: 3
70 repository_id: 10
70 repository_id: 10
71 committer: dlopper
71 committer: dlopper
72 changesets_008:
72 changesets_008:
73 commit_date: "2007-09-10"
73 commit_date: "2007-09-10"
74 comments: |-
74 comments: |-
75 This commits references an issue.
75 This commits references an issue.
76 Refs #2
76 Refs #2
77 committed_on: 2007-09-10 19:04:35
77 committed_on: 2007-09-10 19:04:35
78 revision: "8"
78 revision: "8"
79 id: 107
79 id: 107
80 scmid:
80 scmid:
81 user_id: 3
81 user_id: 3
82 repository_id: 10
82 repository_id: 10
83 committer: dlopper
83 committer: dlopper
84 No newline at end of file
84
@@ -1,90 +1,90
1 ---
1 ---
2 custom_fields_001:
2 custom_fields_001:
3 name: Database
3 name: Database
4 min_length: 0
4 min_length: 0
5 regexp: ""
5 regexp: ""
6 is_for_all: true
6 is_for_all: true
7 is_filter: true
7 is_filter: true
8 type: IssueCustomField
8 type: IssueCustomField
9 max_length: 0
9 max_length: 0
10 possible_values:
10 possible_values:
11 - MySQL
11 - MySQL
12 - PostgreSQL
12 - PostgreSQL
13 - Oracle
13 - Oracle
14 id: 1
14 id: 1
15 is_required: false
15 is_required: false
16 field_format: list
16 field_format: list
17 default_value: ""
17 default_value: ""
18 editable: true
18 editable: true
19 custom_fields_002:
19 custom_fields_002:
20 name: Searchable field
20 name: Searchable field
21 min_length: 1
21 min_length: 1
22 regexp: ""
22 regexp: ""
23 is_for_all: true
23 is_for_all: true
24 type: IssueCustomField
24 type: IssueCustomField
25 max_length: 100
25 max_length: 100
26 possible_values: ""
26 possible_values: ""
27 id: 2
27 id: 2
28 is_required: false
28 is_required: false
29 field_format: string
29 field_format: string
30 searchable: true
30 searchable: true
31 default_value: "Default string"
31 default_value: "Default string"
32 editable: true
32 editable: true
33 custom_fields_003:
33 custom_fields_003:
34 name: Development status
34 name: Development status
35 min_length: 0
35 min_length: 0
36 regexp: ""
36 regexp: ""
37 is_for_all: false
37 is_for_all: false
38 is_filter: true
38 is_filter: true
39 type: ProjectCustomField
39 type: ProjectCustomField
40 max_length: 0
40 max_length: 0
41 possible_values:
41 possible_values:
42 - Stable
42 - Stable
43 - Beta
43 - Beta
44 - Alpha
44 - Alpha
45 - Planning
45 - Planning
46 id: 3
46 id: 3
47 is_required: true
47 is_required: true
48 field_format: list
48 field_format: list
49 default_value: ""
49 default_value: ""
50 editable: true
50 editable: true
51 custom_fields_004:
51 custom_fields_004:
52 name: Phone number
52 name: Phone number
53 min_length: 0
53 min_length: 0
54 regexp: ""
54 regexp: ""
55 is_for_all: false
55 is_for_all: false
56 type: UserCustomField
56 type: UserCustomField
57 max_length: 0
57 max_length: 0
58 possible_values: ""
58 possible_values: ""
59 id: 4
59 id: 4
60 is_required: false
60 is_required: false
61 field_format: string
61 field_format: string
62 default_value: ""
62 default_value: ""
63 editable: true
63 editable: true
64 custom_fields_005:
64 custom_fields_005:
65 name: Money
65 name: Money
66 min_length: 0
66 min_length: 0
67 regexp: ""
67 regexp: ""
68 is_for_all: false
68 is_for_all: false
69 type: UserCustomField
69 type: UserCustomField
70 max_length: 0
70 max_length: 0
71 possible_values: ""
71 possible_values: ""
72 id: 5
72 id: 5
73 is_required: false
73 is_required: false
74 field_format: float
74 field_format: float
75 default_value: ""
75 default_value: ""
76 editable: true
76 editable: true
77 custom_fields_006:
77 custom_fields_006:
78 name: Float field
78 name: Float field
79 min_length: 0
79 min_length: 0
80 regexp: ""
80 regexp: ""
81 is_for_all: true
81 is_for_all: true
82 type: IssueCustomField
82 type: IssueCustomField
83 max_length: 0
83 max_length: 0
84 possible_values: ""
84 possible_values: ""
85 id: 6
85 id: 6
86 is_required: false
86 is_required: false
87 field_format: float
87 field_format: float
88 default_value: ""
88 default_value: ""
89 editable: true
89 editable: true
90 No newline at end of file
90
@@ -1,2 +1,2
1 --- {}
1 --- {}
2
2
@@ -1,19 +1,19
1 ---
1 ---
2 custom_fields_trackers_001:
2 custom_fields_trackers_001:
3 custom_field_id: 1
3 custom_field_id: 1
4 tracker_id: 1
4 tracker_id: 1
5 custom_fields_trackers_002:
5 custom_fields_trackers_002:
6 custom_field_id: 2
6 custom_field_id: 2
7 tracker_id: 1
7 tracker_id: 1
8 custom_fields_trackers_003:
8 custom_fields_trackers_003:
9 custom_field_id: 2
9 custom_field_id: 2
10 tracker_id: 3
10 tracker_id: 3
11 custom_fields_trackers_004:
11 custom_fields_trackers_004:
12 custom_field_id: 6
12 custom_field_id: 6
13 tracker_id: 1
13 tracker_id: 1
14 custom_fields_trackers_005:
14 custom_fields_trackers_005:
15 custom_field_id: 6
15 custom_field_id: 6
16 tracker_id: 2
16 tracker_id: 2
17 custom_fields_trackers_006:
17 custom_fields_trackers_006:
18 custom_field_id: 6
18 custom_field_id: 6
19 tracker_id: 3
19 tracker_id: 3
@@ -1,86 +1,86
1 ---
1 ---
2 custom_values_006:
2 custom_values_006:
3 customized_type: Issue
3 customized_type: Issue
4 custom_field_id: 2
4 custom_field_id: 2
5 customized_id: 3
5 customized_id: 3
6 id: 6
6 id: 6
7 value: "125"
7 value: "125"
8 custom_values_007:
8 custom_values_007:
9 customized_type: Project
9 customized_type: Project
10 custom_field_id: 3
10 custom_field_id: 3
11 customized_id: 1
11 customized_id: 1
12 id: 7
12 id: 7
13 value: Stable
13 value: Stable
14 custom_values_001:
14 custom_values_001:
15 customized_type: User
15 customized_type: User
16 custom_field_id: 4
16 custom_field_id: 4
17 customized_id: 3
17 customized_id: 3
18 id: 1
18 id: 1
19 value: ""
19 value: ""
20 custom_values_002:
20 custom_values_002:
21 customized_type: User
21 customized_type: User
22 custom_field_id: 4
22 custom_field_id: 4
23 customized_id: 4
23 customized_id: 4
24 id: 2
24 id: 2
25 value: 01 23 45 67 89
25 value: 01 23 45 67 89
26 custom_values_003:
26 custom_values_003:
27 customized_type: User
27 customized_type: User
28 custom_field_id: 4
28 custom_field_id: 4
29 customized_id: 2
29 customized_id: 2
30 id: 3
30 id: 3
31 value: ""
31 value: ""
32 custom_values_004:
32 custom_values_004:
33 customized_type: Issue
33 customized_type: Issue
34 custom_field_id: 2
34 custom_field_id: 2
35 customized_id: 1
35 customized_id: 1
36 id: 4
36 id: 4
37 value: "125"
37 value: "125"
38 custom_values_005:
38 custom_values_005:
39 customized_type: Issue
39 customized_type: Issue
40 custom_field_id: 2
40 custom_field_id: 2
41 customized_id: 2
41 customized_id: 2
42 id: 5
42 id: 5
43 value: ""
43 value: ""
44 custom_values_008:
44 custom_values_008:
45 customized_type: Issue
45 customized_type: Issue
46 custom_field_id: 1
46 custom_field_id: 1
47 customized_id: 3
47 customized_id: 3
48 id: 8
48 id: 8
49 value: "MySQL"
49 value: "MySQL"
50 custom_values_009:
50 custom_values_009:
51 customized_type: Issue
51 customized_type: Issue
52 custom_field_id: 2
52 custom_field_id: 2
53 customized_id: 3
53 customized_id: 3
54 id: 9
54 id: 9
55 value: "this is a stringforcustomfield search"
55 value: "this is a stringforcustomfield search"
56 custom_values_010:
56 custom_values_010:
57 customized_type: Issue
57 customized_type: Issue
58 custom_field_id: 6
58 custom_field_id: 6
59 customized_id: 1
59 customized_id: 1
60 id: 10
60 id: 10
61 value: "2.1"
61 value: "2.1"
62 custom_values_011:
62 custom_values_011:
63 customized_type: Issue
63 customized_type: Issue
64 custom_field_id: 6
64 custom_field_id: 6
65 customized_id: 2
65 customized_id: 2
66 id: 11
66 id: 11
67 value: "2.05"
67 value: "2.05"
68 custom_values_012:
68 custom_values_012:
69 customized_type: Issue
69 customized_type: Issue
70 custom_field_id: 6
70 custom_field_id: 6
71 customized_id: 3
71 customized_id: 3
72 id: 12
72 id: 12
73 value: "11.65"
73 value: "11.65"
74 custom_values_013:
74 custom_values_013:
75 customized_type: Issue
75 customized_type: Issue
76 custom_field_id: 6
76 custom_field_id: 6
77 customized_id: 7
77 customized_id: 7
78 id: 13
78 id: 13
79 value: ""
79 value: ""
80 custom_values_014:
80 custom_values_014:
81 customized_type: Issue
81 customized_type: Issue
82 custom_field_id: 6
82 custom_field_id: 6
83 customized_id: 5
83 customized_id: 5
84 id: 14
84 id: 14
85 value: "-7.6"
85 value: "-7.6"
86 No newline at end of file
86
@@ -1,7 +1,7
1 documents_001:
1 documents_001:
2 created_on: 2007-01-27 15:08:27 +01:00
2 created_on: 2007-01-27 15:08:27 +01:00
3 project_id: 1
3 project_id: 1
4 title: "Test document"
4 title: "Test document"
5 id: 1
5 id: 1
6 description: "Document description"
6 description: "Document description"
7 category_id: 1 No newline at end of file
7 category_id: 1
@@ -1,69 +1,69
1 ---
1 ---
2 enumerations_001:
2 enumerations_001:
3 name: Uncategorized
3 name: Uncategorized
4 id: 1
4 id: 1
5 opt: DCAT
5 opt: DCAT
6 type: DocumentCategory
6 type: DocumentCategory
7 enumerations_002:
7 enumerations_002:
8 name: User documentation
8 name: User documentation
9 id: 2
9 id: 2
10 opt: DCAT
10 opt: DCAT
11 type: DocumentCategory
11 type: DocumentCategory
12 enumerations_003:
12 enumerations_003:
13 name: Technical documentation
13 name: Technical documentation
14 id: 3
14 id: 3
15 opt: DCAT
15 opt: DCAT
16 type: DocumentCategory
16 type: DocumentCategory
17 enumerations_004:
17 enumerations_004:
18 name: Low
18 name: Low
19 id: 4
19 id: 4
20 opt: IPRI
20 opt: IPRI
21 type: IssuePriority
21 type: IssuePriority
22 enumerations_005:
22 enumerations_005:
23 name: Normal
23 name: Normal
24 id: 5
24 id: 5
25 opt: IPRI
25 opt: IPRI
26 type: IssuePriority
26 type: IssuePriority
27 is_default: true
27 is_default: true
28 enumerations_006:
28 enumerations_006:
29 name: High
29 name: High
30 id: 6
30 id: 6
31 opt: IPRI
31 opt: IPRI
32 type: IssuePriority
32 type: IssuePriority
33 enumerations_007:
33 enumerations_007:
34 name: Urgent
34 name: Urgent
35 id: 7
35 id: 7
36 opt: IPRI
36 opt: IPRI
37 type: IssuePriority
37 type: IssuePriority
38 enumerations_008:
38 enumerations_008:
39 name: Immediate
39 name: Immediate
40 id: 8
40 id: 8
41 opt: IPRI
41 opt: IPRI
42 type: IssuePriority
42 type: IssuePriority
43 enumerations_009:
43 enumerations_009:
44 name: Design
44 name: Design
45 id: 9
45 id: 9
46 opt: ACTI
46 opt: ACTI
47 type: TimeEntryActivity
47 type: TimeEntryActivity
48 enumerations_010:
48 enumerations_010:
49 name: Development
49 name: Development
50 id: 10
50 id: 10
51 opt: ACTI
51 opt: ACTI
52 type: TimeEntryActivity
52 type: TimeEntryActivity
53 is_default: true
53 is_default: true
54 enumerations_011:
54 enumerations_011:
55 name: QA
55 name: QA
56 id: 11
56 id: 11
57 opt: ACTI
57 opt: ACTI
58 type: TimeEntryActivity
58 type: TimeEntryActivity
59 enumerations_012:
59 enumerations_012:
60 name: Default Enumeration
60 name: Default Enumeration
61 id: 12
61 id: 12
62 opt: ''
62 opt: ''
63 type: Enumeration
63 type: Enumeration
64 is_default: true
64 is_default: true
65 enumerations_013:
65 enumerations_013:
66 name: Another Enumeration
66 name: Another Enumeration
67 id: 13
67 id: 13
68 opt: ''
68 opt: ''
69 type: Enumeration
69 type: Enumeration
@@ -1,22 +1,22
1 ---
1 ---
2 issue_categories_001:
2 issue_categories_001:
3 name: Printing
3 name: Printing
4 project_id: 1
4 project_id: 1
5 assigned_to_id: 2
5 assigned_to_id: 2
6 id: 1
6 id: 1
7 issue_categories_002:
7 issue_categories_002:
8 name: Recipes
8 name: Recipes
9 project_id: 1
9 project_id: 1
10 assigned_to_id:
10 assigned_to_id:
11 id: 2
11 id: 2
12 issue_categories_003:
12 issue_categories_003:
13 name: Stock management
13 name: Stock management
14 project_id: 2
14 project_id: 2
15 assigned_to_id:
15 assigned_to_id:
16 id: 3
16 id: 3
17 issue_categories_004:
17 issue_categories_004:
18 name: Printing
18 name: Printing
19 project_id: 2
19 project_id: 2
20 assigned_to_id:
20 assigned_to_id:
21 id: 4
21 id: 4
22 No newline at end of file
22
@@ -1,31 +1,31
1 ---
1 ---
2 issue_statuses_006:
2 issue_statuses_006:
3 name: Rejected
3 name: Rejected
4 is_default: false
4 is_default: false
5 is_closed: true
5 is_closed: true
6 id: 6
6 id: 6
7 issue_statuses_001:
7 issue_statuses_001:
8 name: New
8 name: New
9 is_default: true
9 is_default: true
10 is_closed: false
10 is_closed: false
11 id: 1
11 id: 1
12 issue_statuses_002:
12 issue_statuses_002:
13 name: Assigned
13 name: Assigned
14 is_default: false
14 is_default: false
15 is_closed: false
15 is_closed: false
16 id: 2
16 id: 2
17 issue_statuses_003:
17 issue_statuses_003:
18 name: Resolved
18 name: Resolved
19 is_default: false
19 is_default: false
20 is_closed: false
20 is_closed: false
21 id: 3
21 id: 3
22 issue_statuses_004:
22 issue_statuses_004:
23 name: Feedback
23 name: Feedback
24 is_default: false
24 is_default: false
25 is_closed: false
25 is_closed: false
26 id: 4
26 id: 4
27 issue_statuses_005:
27 issue_statuses_005:
28 name: Closed
28 name: Closed
29 is_default: false
29 is_default: false
30 is_closed: true
30 is_closed: true
31 id: 5
31 id: 5
@@ -1,159 +1,159
1 ---
1 ---
2 issues_001:
2 issues_001:
3 created_on: <%= 3.days.ago.to_date.to_s(:db) %>
3 created_on: <%= 3.days.ago.to_date.to_s(:db) %>
4 project_id: 1
4 project_id: 1
5 updated_on: <%= 1.day.ago.to_date.to_s(:db) %>
5 updated_on: <%= 1.day.ago.to_date.to_s(:db) %>
6 priority_id: 4
6 priority_id: 4
7 subject: Can't print recipes
7 subject: Can't print recipes
8 id: 1
8 id: 1
9 fixed_version_id:
9 fixed_version_id:
10 category_id: 1
10 category_id: 1
11 description: Unable to print recipes
11 description: Unable to print recipes
12 tracker_id: 1
12 tracker_id: 1
13 assigned_to_id:
13 assigned_to_id:
14 author_id: 2
14 author_id: 2
15 status_id: 1
15 status_id: 1
16 start_date: <%= 1.day.ago.to_date.to_s(:db) %>
16 start_date: <%= 1.day.ago.to_date.to_s(:db) %>
17 due_date: <%= 10.day.from_now.to_date.to_s(:db) %>
17 due_date: <%= 10.day.from_now.to_date.to_s(:db) %>
18 issues_002:
18 issues_002:
19 created_on: 2006-07-19 21:04:21 +02:00
19 created_on: 2006-07-19 21:04:21 +02:00
20 project_id: 1
20 project_id: 1
21 updated_on: 2006-07-19 21:09:50 +02:00
21 updated_on: 2006-07-19 21:09:50 +02:00
22 priority_id: 5
22 priority_id: 5
23 subject: Add ingredients categories
23 subject: Add ingredients categories
24 id: 2
24 id: 2
25 fixed_version_id: 2
25 fixed_version_id: 2
26 category_id:
26 category_id:
27 description: Ingredients of the recipe should be classified by categories
27 description: Ingredients of the recipe should be classified by categories
28 tracker_id: 2
28 tracker_id: 2
29 assigned_to_id: 3
29 assigned_to_id: 3
30 author_id: 2
30 author_id: 2
31 status_id: 2
31 status_id: 2
32 start_date: <%= 2.day.ago.to_date.to_s(:db) %>
32 start_date: <%= 2.day.ago.to_date.to_s(:db) %>
33 due_date:
33 due_date:
34 issues_003:
34 issues_003:
35 created_on: 2006-07-19 21:07:27 +02:00
35 created_on: 2006-07-19 21:07:27 +02:00
36 project_id: 1
36 project_id: 1
37 updated_on: 2006-07-19 21:07:27 +02:00
37 updated_on: 2006-07-19 21:07:27 +02:00
38 priority_id: 4
38 priority_id: 4
39 subject: Error 281 when updating a recipe
39 subject: Error 281 when updating a recipe
40 id: 3
40 id: 3
41 fixed_version_id:
41 fixed_version_id:
42 category_id:
42 category_id:
43 description: Error 281 is encountered when saving a recipe
43 description: Error 281 is encountered when saving a recipe
44 tracker_id: 1
44 tracker_id: 1
45 assigned_to_id: 3
45 assigned_to_id: 3
46 author_id: 2
46 author_id: 2
47 status_id: 1
47 status_id: 1
48 start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
48 start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
49 due_date: <%= 40.day.ago.to_date.to_s(:db) %>
49 due_date: <%= 40.day.ago.to_date.to_s(:db) %>
50 issues_004:
50 issues_004:
51 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
51 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
52 project_id: 2
52 project_id: 2
53 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
53 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
54 priority_id: 4
54 priority_id: 4
55 subject: Issue on project 2
55 subject: Issue on project 2
56 id: 4
56 id: 4
57 fixed_version_id:
57 fixed_version_id:
58 category_id:
58 category_id:
59 description: Issue on project 2
59 description: Issue on project 2
60 tracker_id: 1
60 tracker_id: 1
61 assigned_to_id: 2
61 assigned_to_id: 2
62 author_id: 2
62 author_id: 2
63 status_id: 1
63 status_id: 1
64 issues_005:
64 issues_005:
65 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
65 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
66 project_id: 3
66 project_id: 3
67 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
67 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
68 priority_id: 4
68 priority_id: 4
69 subject: Subproject issue
69 subject: Subproject issue
70 id: 5
70 id: 5
71 fixed_version_id:
71 fixed_version_id:
72 category_id:
72 category_id:
73 description: This is an issue on a cookbook subproject
73 description: This is an issue on a cookbook subproject
74 tracker_id: 1
74 tracker_id: 1
75 assigned_to_id:
75 assigned_to_id:
76 author_id: 2
76 author_id: 2
77 status_id: 1
77 status_id: 1
78 issues_006:
78 issues_006:
79 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
79 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
80 project_id: 5
80 project_id: 5
81 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
81 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
82 priority_id: 4
82 priority_id: 4
83 subject: Issue of a private subproject
83 subject: Issue of a private subproject
84 id: 6
84 id: 6
85 fixed_version_id:
85 fixed_version_id:
86 category_id:
86 category_id:
87 description: This is an issue of a private subproject of cookbook
87 description: This is an issue of a private subproject of cookbook
88 tracker_id: 1
88 tracker_id: 1
89 assigned_to_id:
89 assigned_to_id:
90 author_id: 2
90 author_id: 2
91 status_id: 1
91 status_id: 1
92 start_date: <%= Date.today.to_s(:db) %>
92 start_date: <%= Date.today.to_s(:db) %>
93 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
93 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
94 issues_007:
94 issues_007:
95 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
95 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
96 project_id: 1
96 project_id: 1
97 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
97 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
98 priority_id: 5
98 priority_id: 5
99 subject: Issue due today
99 subject: Issue due today
100 id: 7
100 id: 7
101 fixed_version_id:
101 fixed_version_id:
102 category_id:
102 category_id:
103 description: This is an issue that is due today
103 description: This is an issue that is due today
104 tracker_id: 1
104 tracker_id: 1
105 assigned_to_id:
105 assigned_to_id:
106 author_id: 2
106 author_id: 2
107 status_id: 1
107 status_id: 1
108 start_date: <%= 10.days.ago.to_s(:db) %>
108 start_date: <%= 10.days.ago.to_s(:db) %>
109 due_date: <%= Date.today.to_s(:db) %>
109 due_date: <%= Date.today.to_s(:db) %>
110 lock_version: 0
110 lock_version: 0
111 issues_008:
111 issues_008:
112 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
112 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
113 project_id: 1
113 project_id: 1
114 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
114 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
115 priority_id: 5
115 priority_id: 5
116 subject: Closed issue
116 subject: Closed issue
117 id: 8
117 id: 8
118 fixed_version_id:
118 fixed_version_id:
119 category_id:
119 category_id:
120 description: This is a closed issue.
120 description: This is a closed issue.
121 tracker_id: 1
121 tracker_id: 1
122 assigned_to_id:
122 assigned_to_id:
123 author_id: 2
123 author_id: 2
124 status_id: 5
124 status_id: 5
125 start_date:
125 start_date:
126 due_date:
126 due_date:
127 lock_version: 0
127 lock_version: 0
128 issues_009:
128 issues_009:
129 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
129 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
130 project_id: 5
130 project_id: 5
131 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
131 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
132 priority_id: 5
132 priority_id: 5
133 subject: Blocked Issue
133 subject: Blocked Issue
134 id: 9
134 id: 9
135 fixed_version_id:
135 fixed_version_id:
136 category_id:
136 category_id:
137 description: This is an issue that is blocked by issue #10
137 description: This is an issue that is blocked by issue #10
138 tracker_id: 1
138 tracker_id: 1
139 assigned_to_id:
139 assigned_to_id:
140 author_id: 2
140 author_id: 2
141 status_id: 1
141 status_id: 1
142 start_date: <%= Date.today.to_s(:db) %>
142 start_date: <%= Date.today.to_s(:db) %>
143 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
143 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
144 issues_010:
144 issues_010:
145 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
145 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
146 project_id: 5
146 project_id: 5
147 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
147 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
148 priority_id: 5
148 priority_id: 5
149 subject: Issue Doing the Blocking
149 subject: Issue Doing the Blocking
150 id: 10
150 id: 10
151 fixed_version_id:
151 fixed_version_id:
152 category_id:
152 category_id:
153 description: This is an issue that blocks issue #9
153 description: This is an issue that blocks issue #9
154 tracker_id: 1
154 tracker_id: 1
155 assigned_to_id:
155 assigned_to_id:
156 author_id: 2
156 author_id: 2
157 status_id: 1
157 status_id: 1
158 start_date: <%= Date.today.to_s(:db) %>
158 start_date: <%= Date.today.to_s(:db) %>
159 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
159 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
@@ -1,15 +1,15
1 ---
1 ---
2 journal_details_001:
2 journal_details_001:
3 old_value: "1"
3 old_value: "1"
4 property: attr
4 property: attr
5 id: 1
5 id: 1
6 value: "2"
6 value: "2"
7 prop_key: status_id
7 prop_key: status_id
8 journal_id: 1
8 journal_id: 1
9 journal_details_002:
9 journal_details_002:
10 old_value: "40"
10 old_value: "40"
11 property: attr
11 property: attr
12 id: 2
12 id: 2
13 value: "30"
13 value: "30"
14 prop_key: done_ratio
14 prop_key: done_ratio
15 journal_id: 1
15 journal_id: 1
@@ -1,23 +1,23
1 ---
1 ---
2 journals_001:
2 journals_001:
3 created_on: <%= 2.days.ago.to_date.to_s(:db) %>
3 created_on: <%= 2.days.ago.to_date.to_s(:db) %>
4 notes: "Journal notes"
4 notes: "Journal notes"
5 id: 1
5 id: 1
6 journalized_type: Issue
6 journalized_type: Issue
7 user_id: 1
7 user_id: 1
8 journalized_id: 1
8 journalized_id: 1
9 journals_002:
9 journals_002:
10 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
10 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
11 notes: "Some notes with Redmine links: #2, r2."
11 notes: "Some notes with Redmine links: #2, r2."
12 id: 2
12 id: 2
13 journalized_type: Issue
13 journalized_type: Issue
14 user_id: 2
14 user_id: 2
15 journalized_id: 1
15 journalized_id: 1
16 journals_003:
16 journals_003:
17 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
17 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
18 notes: "A comment with inline image: !picture.jpg!"
18 notes: "A comment with inline image: !picture.jpg!"
19 id: 3
19 id: 3
20 journalized_type: Issue
20 journalized_type: Issue
21 user_id: 2
21 user_id: 2
22 journalized_id: 2
22 journalized_id: 2
23 No newline at end of file
23
@@ -1,45 +1,45
1 ---
1 ---
2 members_001:
2 members_001:
3 created_on: 2006-07-19 19:35:33 +02:00
3 created_on: 2006-07-19 19:35:33 +02:00
4 project_id: 1
4 project_id: 1
5 id: 1
5 id: 1
6 user_id: 2
6 user_id: 2
7 mail_notification: true
7 mail_notification: true
8 members_002:
8 members_002:
9 created_on: 2006-07-19 19:35:36 +02:00
9 created_on: 2006-07-19 19:35:36 +02:00
10 project_id: 1
10 project_id: 1
11 id: 2
11 id: 2
12 user_id: 3
12 user_id: 3
13 mail_notification: true
13 mail_notification: true
14 members_003:
14 members_003:
15 created_on: 2006-07-19 19:35:36 +02:00
15 created_on: 2006-07-19 19:35:36 +02:00
16 project_id: 2
16 project_id: 2
17 id: 3
17 id: 3
18 user_id: 2
18 user_id: 2
19 mail_notification: true
19 mail_notification: true
20 members_004:
20 members_004:
21 id: 4
21 id: 4
22 created_on: 2006-07-19 19:35:36 +02:00
22 created_on: 2006-07-19 19:35:36 +02:00
23 project_id: 1
23 project_id: 1
24 # Locked user
24 # Locked user
25 user_id: 5
25 user_id: 5
26 mail_notification: true
26 mail_notification: true
27 members_005:
27 members_005:
28 id: 5
28 id: 5
29 created_on: 2006-07-19 19:35:33 +02:00
29 created_on: 2006-07-19 19:35:33 +02:00
30 project_id: 5
30 project_id: 5
31 user_id: 2
31 user_id: 2
32 mail_notification: true
32 mail_notification: true
33 members_006:
33 members_006:
34 id: 6
34 id: 6
35 created_on: 2006-07-19 19:35:33 +02:00
35 created_on: 2006-07-19 19:35:33 +02:00
36 project_id: 5
36 project_id: 5
37 user_id: 10
37 user_id: 10
38 mail_notification: false
38 mail_notification: false
39 members_007:
39 members_007:
40 id: 7
40 id: 7
41 created_on: 2006-07-19 19:35:33 +02:00
41 created_on: 2006-07-19 19:35:33 +02:00
42 project_id: 5
42 project_id: 5
43 user_id: 8
43 user_id: 8
44 mail_notification: false
44 mail_notification: false
45 No newline at end of file
45
@@ -1,68 +1,68
1 ---
1 ---
2 messages_001:
2 messages_001:
3 created_on: 2007-05-12 17:15:32 +02:00
3 created_on: 2007-05-12 17:15:32 +02:00
4 updated_on: 2007-05-12 17:15:32 +02:00
4 updated_on: 2007-05-12 17:15:32 +02:00
5 subject: First post
5 subject: First post
6 id: 1
6 id: 1
7 replies_count: 2
7 replies_count: 2
8 last_reply_id: 3
8 last_reply_id: 3
9 content: "This is the very first post\n\
9 content: "This is the very first post\n\
10 in the forum"
10 in the forum"
11 author_id: 1
11 author_id: 1
12 parent_id:
12 parent_id:
13 board_id: 1
13 board_id: 1
14 messages_002:
14 messages_002:
15 created_on: 2007-05-12 17:18:00 +02:00
15 created_on: 2007-05-12 17:18:00 +02:00
16 updated_on: 2007-05-12 17:18:00 +02:00
16 updated_on: 2007-05-12 17:18:00 +02:00
17 subject: First reply
17 subject: First reply
18 id: 2
18 id: 2
19 replies_count: 0
19 replies_count: 0
20 last_reply_id:
20 last_reply_id:
21 content: "Reply to the first post"
21 content: "Reply to the first post"
22 author_id: 1
22 author_id: 1
23 parent_id: 1
23 parent_id: 1
24 board_id: 1
24 board_id: 1
25 messages_003:
25 messages_003:
26 created_on: 2007-05-12 17:18:02 +02:00
26 created_on: 2007-05-12 17:18:02 +02:00
27 updated_on: 2007-05-12 17:18:02 +02:00
27 updated_on: 2007-05-12 17:18:02 +02:00
28 subject: "RE: First post"
28 subject: "RE: First post"
29 id: 3
29 id: 3
30 replies_count: 0
30 replies_count: 0
31 last_reply_id:
31 last_reply_id:
32 content: "An other reply"
32 content: "An other reply"
33 author_id: 2
33 author_id: 2
34 parent_id: 1
34 parent_id: 1
35 board_id: 1
35 board_id: 1
36 messages_004:
36 messages_004:
37 created_on: 2007-08-12 17:15:32 +02:00
37 created_on: 2007-08-12 17:15:32 +02:00
38 updated_on: 2007-08-12 17:15:32 +02:00
38 updated_on: 2007-08-12 17:15:32 +02:00
39 subject: Post 2
39 subject: Post 2
40 id: 4
40 id: 4
41 replies_count: 2
41 replies_count: 2
42 last_reply_id: 6
42 last_reply_id: 6
43 content: "This is an other post"
43 content: "This is an other post"
44 author_id:
44 author_id:
45 parent_id:
45 parent_id:
46 board_id: 1
46 board_id: 1
47 messages_005:
47 messages_005:
48 created_on: <%= 3.days.ago.to_date.to_s(:db) %>
48 created_on: <%= 3.days.ago.to_date.to_s(:db) %>
49 updated_on: <%= 3.days.ago.to_date.to_s(:db) %>
49 updated_on: <%= 3.days.ago.to_date.to_s(:db) %>
50 subject: 'RE: post 2'
50 subject: 'RE: post 2'
51 id: 5
51 id: 5
52 replies_count: 0
52 replies_count: 0
53 last_reply_id:
53 last_reply_id:
54 content: "Reply to the second post"
54 content: "Reply to the second post"
55 author_id: 1
55 author_id: 1
56 parent_id: 4
56 parent_id: 4
57 board_id: 1
57 board_id: 1
58 messages_006:
58 messages_006:
59 created_on: <%= 2.days.ago.to_date.to_s(:db) %>
59 created_on: <%= 2.days.ago.to_date.to_s(:db) %>
60 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
60 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
61 subject: 'RE: post 2'
61 subject: 'RE: post 2'
62 id: 6
62 id: 6
63 replies_count: 0
63 replies_count: 0
64 last_reply_id:
64 last_reply_id:
65 content: "Another reply to the second post"
65 content: "Another reply to the second post"
66 author_id: 3
66 author_id: 3
67 parent_id: 4
67 parent_id: 4
68 board_id: 1
68 board_id: 1
@@ -1,22 +1,22
1 ---
1 ---
2 news_001:
2 news_001:
3 created_on: 2006-07-19 22:40:26 +02:00
3 created_on: 2006-07-19 22:40:26 +02:00
4 project_id: 1
4 project_id: 1
5 title: eCookbook first release !
5 title: eCookbook first release !
6 id: 1
6 id: 1
7 description: |-
7 description: |-
8 eCookbook 1.0 has been released.
8 eCookbook 1.0 has been released.
9
9
10 Visit http://ecookbook.somenet.foo/
10 Visit http://ecookbook.somenet.foo/
11 summary: First version was released...
11 summary: First version was released...
12 author_id: 2
12 author_id: 2
13 comments_count: 1
13 comments_count: 1
14 news_002:
14 news_002:
15 created_on: 2006-07-19 22:42:58 +02:00
15 created_on: 2006-07-19 22:42:58 +02:00
16 project_id: 1
16 project_id: 1
17 title: 100,000 downloads for eCookbook
17 title: 100,000 downloads for eCookbook
18 id: 2
18 id: 2
19 description: eCookbook 1.0 have downloaded 100,000 times
19 description: eCookbook 1.0 have downloaded 100,000 times
20 summary: eCookbook 1.0 have downloaded 100,000 times
20 summary: eCookbook 1.0 have downloaded 100,000 times
21 author_id: 2
21 author_id: 2
22 comments_count: 0
22 comments_count: 0
@@ -1,74 +1,74
1 ---
1 ---
2 projects_001:
2 projects_001:
3 created_on: 2006-07-19 19:13:59 +02:00
3 created_on: 2006-07-19 19:13:59 +02:00
4 name: eCookbook
4 name: eCookbook
5 updated_on: 2006-07-19 22:53:01 +02:00
5 updated_on: 2006-07-19 22:53:01 +02:00
6 id: 1
6 id: 1
7 description: Recipes management application
7 description: Recipes management application
8 homepage: http://ecookbook.somenet.foo/
8 homepage: http://ecookbook.somenet.foo/
9 is_public: true
9 is_public: true
10 identifier: ecookbook
10 identifier: ecookbook
11 parent_id:
11 parent_id:
12 lft: 1
12 lft: 1
13 rgt: 10
13 rgt: 10
14 projects_002:
14 projects_002:
15 created_on: 2006-07-19 19:14:19 +02:00
15 created_on: 2006-07-19 19:14:19 +02:00
16 name: OnlineStore
16 name: OnlineStore
17 updated_on: 2006-07-19 19:14:19 +02:00
17 updated_on: 2006-07-19 19:14:19 +02:00
18 id: 2
18 id: 2
19 description: E-commerce web site
19 description: E-commerce web site
20 homepage: ""
20 homepage: ""
21 is_public: false
21 is_public: false
22 identifier: onlinestore
22 identifier: onlinestore
23 parent_id:
23 parent_id:
24 lft: 11
24 lft: 11
25 rgt: 12
25 rgt: 12
26 projects_003:
26 projects_003:
27 created_on: 2006-07-19 19:15:21 +02:00
27 created_on: 2006-07-19 19:15:21 +02:00
28 name: eCookbook Subproject 1
28 name: eCookbook Subproject 1
29 updated_on: 2006-07-19 19:18:12 +02:00
29 updated_on: 2006-07-19 19:18:12 +02:00
30 id: 3
30 id: 3
31 description: eCookBook Subproject 1
31 description: eCookBook Subproject 1
32 homepage: ""
32 homepage: ""
33 is_public: true
33 is_public: true
34 identifier: subproject1
34 identifier: subproject1
35 parent_id: 1
35 parent_id: 1
36 lft: 6
36 lft: 6
37 rgt: 7
37 rgt: 7
38 projects_004:
38 projects_004:
39 created_on: 2006-07-19 19:15:51 +02:00
39 created_on: 2006-07-19 19:15:51 +02:00
40 name: eCookbook Subproject 2
40 name: eCookbook Subproject 2
41 updated_on: 2006-07-19 19:17:07 +02:00
41 updated_on: 2006-07-19 19:17:07 +02:00
42 id: 4
42 id: 4
43 description: eCookbook Subproject 2
43 description: eCookbook Subproject 2
44 homepage: ""
44 homepage: ""
45 is_public: true
45 is_public: true
46 identifier: subproject2
46 identifier: subproject2
47 parent_id: 1
47 parent_id: 1
48 lft: 8
48 lft: 8
49 rgt: 9
49 rgt: 9
50 projects_005:
50 projects_005:
51 created_on: 2006-07-19 19:15:51 +02:00
51 created_on: 2006-07-19 19:15:51 +02:00
52 name: Private child of eCookbook
52 name: Private child of eCookbook
53 updated_on: 2006-07-19 19:17:07 +02:00
53 updated_on: 2006-07-19 19:17:07 +02:00
54 id: 5
54 id: 5
55 description: This is a private subproject of a public project
55 description: This is a private subproject of a public project
56 homepage: ""
56 homepage: ""
57 is_public: false
57 is_public: false
58 identifier: private-child
58 identifier: private-child
59 parent_id: 1
59 parent_id: 1
60 lft: 2
60 lft: 2
61 rgt: 5
61 rgt: 5
62 projects_006:
62 projects_006:
63 created_on: 2006-07-19 19:15:51 +02:00
63 created_on: 2006-07-19 19:15:51 +02:00
64 name: Child of private child
64 name: Child of private child
65 updated_on: 2006-07-19 19:17:07 +02:00
65 updated_on: 2006-07-19 19:17:07 +02:00
66 id: 6
66 id: 6
67 description: This is a public subproject of a private project
67 description: This is a public subproject of a private project
68 homepage: ""
68 homepage: ""
69 is_public: true
69 is_public: true
70 identifier: project6
70 identifier: project6
71 parent_id: 5
71 parent_id: 5
72 lft: 3
72 lft: 3
73 rgt: 4
73 rgt: 4
74 No newline at end of file
74
@@ -1,137 +1,137
1 ---
1 ---
2 queries_001:
2 queries_001:
3 id: 1
3 id: 1
4 project_id: 1
4 project_id: 1
5 is_public: true
5 is_public: true
6 name: Multiple custom fields query
6 name: Multiple custom fields query
7 filters: |
7 filters: |
8 ---
8 ---
9 cf_1:
9 cf_1:
10 :values:
10 :values:
11 - MySQL
11 - MySQL
12 :operator: "="
12 :operator: "="
13 status_id:
13 status_id:
14 :values:
14 :values:
15 - "1"
15 - "1"
16 :operator: o
16 :operator: o
17 cf_2:
17 cf_2:
18 :values:
18 :values:
19 - "125"
19 - "125"
20 :operator: "="
20 :operator: "="
21
21
22 user_id: 1
22 user_id: 1
23 column_names:
23 column_names:
24 queries_002:
24 queries_002:
25 id: 2
25 id: 2
26 project_id: 1
26 project_id: 1
27 is_public: false
27 is_public: false
28 name: Private query for cookbook
28 name: Private query for cookbook
29 filters: |
29 filters: |
30 ---
30 ---
31 tracker_id:
31 tracker_id:
32 :values:
32 :values:
33 - "3"
33 - "3"
34 :operator: "="
34 :operator: "="
35 status_id:
35 status_id:
36 :values:
36 :values:
37 - "1"
37 - "1"
38 :operator: o
38 :operator: o
39
39
40 user_id: 3
40 user_id: 3
41 column_names:
41 column_names:
42 queries_003:
42 queries_003:
43 id: 3
43 id: 3
44 project_id:
44 project_id:
45 is_public: false
45 is_public: false
46 name: Private query for all projects
46 name: Private query for all projects
47 filters: |
47 filters: |
48 ---
48 ---
49 tracker_id:
49 tracker_id:
50 :values:
50 :values:
51 - "3"
51 - "3"
52 :operator: "="
52 :operator: "="
53
53
54 user_id: 3
54 user_id: 3
55 column_names:
55 column_names:
56 queries_004:
56 queries_004:
57 id: 4
57 id: 4
58 project_id:
58 project_id:
59 is_public: true
59 is_public: true
60 name: Public query for all projects
60 name: Public query for all projects
61 filters: |
61 filters: |
62 ---
62 ---
63 tracker_id:
63 tracker_id:
64 :values:
64 :values:
65 - "3"
65 - "3"
66 :operator: "="
66 :operator: "="
67
67
68 user_id: 2
68 user_id: 2
69 column_names:
69 column_names:
70 queries_005:
70 queries_005:
71 id: 5
71 id: 5
72 project_id:
72 project_id:
73 is_public: true
73 is_public: true
74 name: Open issues by priority and tracker
74 name: Open issues by priority and tracker
75 filters: |
75 filters: |
76 ---
76 ---
77 status_id:
77 status_id:
78 :values:
78 :values:
79 - "1"
79 - "1"
80 :operator: o
80 :operator: o
81
81
82 user_id: 1
82 user_id: 1
83 column_names:
83 column_names:
84 sort_criteria: |
84 sort_criteria: |
85 ---
85 ---
86 - - priority
86 - - priority
87 - desc
87 - desc
88 - - tracker
88 - - tracker
89 - asc
89 - asc
90 queries_006:
90 queries_006:
91 id: 6
91 id: 6
92 project_id:
92 project_id:
93 is_public: true
93 is_public: true
94 name: Open issues grouped by tracker
94 name: Open issues grouped by tracker
95 filters: |
95 filters: |
96 ---
96 ---
97 status_id:
97 status_id:
98 :values:
98 :values:
99 - "1"
99 - "1"
100 :operator: o
100 :operator: o
101
101
102 user_id: 1
102 user_id: 1
103 column_names:
103 column_names:
104 group_by: tracker
104 group_by: tracker
105 sort_criteria: |
105 sort_criteria: |
106 ---
106 ---
107 - - priority
107 - - priority
108 - desc
108 - desc
109 queries_007:
109 queries_007:
110 id: 7
110 id: 7
111 project_id: 2
111 project_id: 2
112 is_public: true
112 is_public: true
113 name: Public query for project 2
113 name: Public query for project 2
114 filters: |
114 filters: |
115 ---
115 ---
116 tracker_id:
116 tracker_id:
117 :values:
117 :values:
118 - "3"
118 - "3"
119 :operator: "="
119 :operator: "="
120
120
121 user_id: 2
121 user_id: 2
122 column_names:
122 column_names:
123 queries_008:
123 queries_008:
124 id: 8
124 id: 8
125 project_id: 2
125 project_id: 2
126 is_public: false
126 is_public: false
127 name: Private query for project 2
127 name: Private query for project 2
128 filters: |
128 filters: |
129 ---
129 ---
130 tracker_id:
130 tracker_id:
131 :values:
131 :values:
132 - "3"
132 - "3"
133 :operator: "="
133 :operator: "="
134
134
135 user_id: 2
135 user_id: 2
136 column_names:
136 column_names:
137
137
@@ -1,17 +1,17
1 ---
1 ---
2 repositories_001:
2 repositories_001:
3 project_id: 1
3 project_id: 1
4 url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
4 url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
5 id: 10
5 id: 10
6 root_url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
6 root_url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
7 password: ""
7 password: ""
8 login: ""
8 login: ""
9 type: Subversion
9 type: Subversion
10 repositories_002:
10 repositories_002:
11 project_id: 2
11 project_id: 2
12 url: svn://localhost/test
12 url: svn://localhost/test
13 id: 11
13 id: 11
14 root_url: svn://localhost
14 root_url: svn://localhost
15 password: ""
15 password: ""
16 login: ""
16 login: ""
17 type: Subversion
17 type: Subversion
@@ -1,177 +1,177
1 ---
1 ---
2 roles_001:
2 roles_001:
3 name: Manager
3 name: Manager
4 id: 1
4 id: 1
5 builtin: 0
5 builtin: 0
6 permissions: |
6 permissions: |
7 ---
7 ---
8 - :add_project
8 - :add_project
9 - :edit_project
9 - :edit_project
10 - :manage_members
10 - :manage_members
11 - :manage_versions
11 - :manage_versions
12 - :manage_categories
12 - :manage_categories
13 - :add_issues
13 - :add_issues
14 - :edit_issues
14 - :edit_issues
15 - :manage_issue_relations
15 - :manage_issue_relations
16 - :add_issue_notes
16 - :add_issue_notes
17 - :move_issues
17 - :move_issues
18 - :delete_issues
18 - :delete_issues
19 - :view_issue_watchers
19 - :view_issue_watchers
20 - :add_issue_watchers
20 - :add_issue_watchers
21 - :manage_public_queries
21 - :manage_public_queries
22 - :save_queries
22 - :save_queries
23 - :view_gantt
23 - :view_gantt
24 - :view_calendar
24 - :view_calendar
25 - :log_time
25 - :log_time
26 - :view_time_entries
26 - :view_time_entries
27 - :edit_time_entries
27 - :edit_time_entries
28 - :delete_time_entries
28 - :delete_time_entries
29 - :manage_news
29 - :manage_news
30 - :comment_news
30 - :comment_news
31 - :view_documents
31 - :view_documents
32 - :manage_documents
32 - :manage_documents
33 - :view_wiki_pages
33 - :view_wiki_pages
34 - :view_wiki_edits
34 - :view_wiki_edits
35 - :edit_wiki_pages
35 - :edit_wiki_pages
36 - :delete_wiki_pages_attachments
36 - :delete_wiki_pages_attachments
37 - :protect_wiki_pages
37 - :protect_wiki_pages
38 - :delete_wiki_pages
38 - :delete_wiki_pages
39 - :rename_wiki_pages
39 - :rename_wiki_pages
40 - :add_messages
40 - :add_messages
41 - :edit_messages
41 - :edit_messages
42 - :delete_messages
42 - :delete_messages
43 - :manage_boards
43 - :manage_boards
44 - :view_files
44 - :view_files
45 - :manage_files
45 - :manage_files
46 - :browse_repository
46 - :browse_repository
47 - :manage_repository
47 - :manage_repository
48 - :view_changesets
48 - :view_changesets
49
49
50 position: 1
50 position: 1
51 roles_002:
51 roles_002:
52 name: Developer
52 name: Developer
53 id: 2
53 id: 2
54 builtin: 0
54 builtin: 0
55 permissions: |
55 permissions: |
56 ---
56 ---
57 - :edit_project
57 - :edit_project
58 - :manage_members
58 - :manage_members
59 - :manage_versions
59 - :manage_versions
60 - :manage_categories
60 - :manage_categories
61 - :add_issues
61 - :add_issues
62 - :edit_issues
62 - :edit_issues
63 - :manage_issue_relations
63 - :manage_issue_relations
64 - :add_issue_notes
64 - :add_issue_notes
65 - :move_issues
65 - :move_issues
66 - :delete_issues
66 - :delete_issues
67 - :view_issue_watchers
67 - :view_issue_watchers
68 - :save_queries
68 - :save_queries
69 - :view_gantt
69 - :view_gantt
70 - :view_calendar
70 - :view_calendar
71 - :log_time
71 - :log_time
72 - :view_time_entries
72 - :view_time_entries
73 - :edit_own_time_entries
73 - :edit_own_time_entries
74 - :manage_news
74 - :manage_news
75 - :comment_news
75 - :comment_news
76 - :view_documents
76 - :view_documents
77 - :manage_documents
77 - :manage_documents
78 - :view_wiki_pages
78 - :view_wiki_pages
79 - :view_wiki_edits
79 - :view_wiki_edits
80 - :edit_wiki_pages
80 - :edit_wiki_pages
81 - :protect_wiki_pages
81 - :protect_wiki_pages
82 - :delete_wiki_pages
82 - :delete_wiki_pages
83 - :add_messages
83 - :add_messages
84 - :edit_own_messages
84 - :edit_own_messages
85 - :delete_own_messages
85 - :delete_own_messages
86 - :manage_boards
86 - :manage_boards
87 - :view_files
87 - :view_files
88 - :manage_files
88 - :manage_files
89 - :browse_repository
89 - :browse_repository
90 - :view_changesets
90 - :view_changesets
91
91
92 position: 2
92 position: 2
93 roles_003:
93 roles_003:
94 name: Reporter
94 name: Reporter
95 id: 3
95 id: 3
96 builtin: 0
96 builtin: 0
97 permissions: |
97 permissions: |
98 ---
98 ---
99 - :edit_project
99 - :edit_project
100 - :manage_members
100 - :manage_members
101 - :manage_versions
101 - :manage_versions
102 - :manage_categories
102 - :manage_categories
103 - :add_issues
103 - :add_issues
104 - :edit_issues
104 - :edit_issues
105 - :manage_issue_relations
105 - :manage_issue_relations
106 - :add_issue_notes
106 - :add_issue_notes
107 - :move_issues
107 - :move_issues
108 - :view_issue_watchers
108 - :view_issue_watchers
109 - :save_queries
109 - :save_queries
110 - :view_gantt
110 - :view_gantt
111 - :view_calendar
111 - :view_calendar
112 - :log_time
112 - :log_time
113 - :view_time_entries
113 - :view_time_entries
114 - :manage_news
114 - :manage_news
115 - :comment_news
115 - :comment_news
116 - :view_documents
116 - :view_documents
117 - :manage_documents
117 - :manage_documents
118 - :view_wiki_pages
118 - :view_wiki_pages
119 - :view_wiki_edits
119 - :view_wiki_edits
120 - :edit_wiki_pages
120 - :edit_wiki_pages
121 - :delete_wiki_pages
121 - :delete_wiki_pages
122 - :add_messages
122 - :add_messages
123 - :manage_boards
123 - :manage_boards
124 - :view_files
124 - :view_files
125 - :manage_files
125 - :manage_files
126 - :browse_repository
126 - :browse_repository
127 - :view_changesets
127 - :view_changesets
128
128
129 position: 3
129 position: 3
130 roles_004:
130 roles_004:
131 name: Non member
131 name: Non member
132 id: 4
132 id: 4
133 builtin: 1
133 builtin: 1
134 permissions: |
134 permissions: |
135 ---
135 ---
136 - :add_issues
136 - :add_issues
137 - :edit_issues
137 - :edit_issues
138 - :manage_issue_relations
138 - :manage_issue_relations
139 - :add_issue_notes
139 - :add_issue_notes
140 - :move_issues
140 - :move_issues
141 - :save_queries
141 - :save_queries
142 - :view_gantt
142 - :view_gantt
143 - :view_calendar
143 - :view_calendar
144 - :log_time
144 - :log_time
145 - :view_time_entries
145 - :view_time_entries
146 - :comment_news
146 - :comment_news
147 - :view_documents
147 - :view_documents
148 - :manage_documents
148 - :manage_documents
149 - :view_wiki_pages
149 - :view_wiki_pages
150 - :view_wiki_edits
150 - :view_wiki_edits
151 - :edit_wiki_pages
151 - :edit_wiki_pages
152 - :add_messages
152 - :add_messages
153 - :view_files
153 - :view_files
154 - :manage_files
154 - :manage_files
155 - :browse_repository
155 - :browse_repository
156 - :view_changesets
156 - :view_changesets
157
157
158 position: 4
158 position: 4
159 roles_005:
159 roles_005:
160 name: Anonymous
160 name: Anonymous
161 id: 5
161 id: 5
162 builtin: 2
162 builtin: 2
163 permissions: |
163 permissions: |
164 ---
164 ---
165 - :add_issue_notes
165 - :add_issue_notes
166 - :view_gantt
166 - :view_gantt
167 - :view_calendar
167 - :view_calendar
168 - :view_time_entries
168 - :view_time_entries
169 - :view_documents
169 - :view_documents
170 - :view_wiki_pages
170 - :view_wiki_pages
171 - :view_wiki_edits
171 - :view_wiki_edits
172 - :view_files
172 - :view_files
173 - :browse_repository
173 - :browse_repository
174 - :view_changesets
174 - :view_changesets
175
175
176 position: 5
176 position: 5
177 No newline at end of file
177
@@ -1,58 +1,58
1 ---
1 ---
2 time_entries_001:
2 time_entries_001:
3 created_on: 2007-03-23 12:54:18 +01:00
3 created_on: 2007-03-23 12:54:18 +01:00
4 tweek: 12
4 tweek: 12
5 tmonth: 3
5 tmonth: 3
6 project_id: 1
6 project_id: 1
7 comments: My hours
7 comments: My hours
8 updated_on: 2007-03-23 12:54:18 +01:00
8 updated_on: 2007-03-23 12:54:18 +01:00
9 activity_id: 9
9 activity_id: 9
10 spent_on: 2007-03-23
10 spent_on: 2007-03-23
11 issue_id: 1
11 issue_id: 1
12 id: 1
12 id: 1
13 hours: 4.25
13 hours: 4.25
14 user_id: 2
14 user_id: 2
15 tyear: 2007
15 tyear: 2007
16 time_entries_002:
16 time_entries_002:
17 created_on: 2007-03-23 14:11:04 +01:00
17 created_on: 2007-03-23 14:11:04 +01:00
18 tweek: 11
18 tweek: 11
19 tmonth: 3
19 tmonth: 3
20 project_id: 1
20 project_id: 1
21 comments: ""
21 comments: ""
22 updated_on: 2007-03-23 14:11:04 +01:00
22 updated_on: 2007-03-23 14:11:04 +01:00
23 activity_id: 9
23 activity_id: 9
24 spent_on: 2007-03-12
24 spent_on: 2007-03-12
25 issue_id: 1
25 issue_id: 1
26 id: 2
26 id: 2
27 hours: 150.0
27 hours: 150.0
28 user_id: 1
28 user_id: 1
29 tyear: 2007
29 tyear: 2007
30 time_entries_003:
30 time_entries_003:
31 created_on: 2007-04-21 12:20:48 +02:00
31 created_on: 2007-04-21 12:20:48 +02:00
32 tweek: 16
32 tweek: 16
33 tmonth: 4
33 tmonth: 4
34 project_id: 1
34 project_id: 1
35 comments: ""
35 comments: ""
36 updated_on: 2007-04-21 12:20:48 +02:00
36 updated_on: 2007-04-21 12:20:48 +02:00
37 activity_id: 9
37 activity_id: 9
38 spent_on: 2007-04-21
38 spent_on: 2007-04-21
39 issue_id: 3
39 issue_id: 3
40 id: 3
40 id: 3
41 hours: 1.0
41 hours: 1.0
42 user_id: 1
42 user_id: 1
43 tyear: 2007
43 tyear: 2007
44 time_entries_004:
44 time_entries_004:
45 created_on: 2007-04-22 12:20:48 +02:00
45 created_on: 2007-04-22 12:20:48 +02:00
46 tweek: 16
46 tweek: 16
47 tmonth: 4
47 tmonth: 4
48 project_id: 3
48 project_id: 3
49 comments: Time spent on a subproject
49 comments: Time spent on a subproject
50 updated_on: 2007-04-22 12:20:48 +02:00
50 updated_on: 2007-04-22 12:20:48 +02:00
51 activity_id: 10
51 activity_id: 10
52 spent_on: 2007-04-22
52 spent_on: 2007-04-22
53 issue_id:
53 issue_id:
54 id: 4
54 id: 4
55 hours: 7.65
55 hours: 7.65
56 user_id: 1
56 user_id: 1
57 tyear: 2007
57 tyear: 2007
58 No newline at end of file
58
@@ -1,13 +1,13
1 ---
1 ---
2 tokens_001:
2 tokens_001:
3 created_on: 2007-01-21 00:39:12 +01:00
3 created_on: 2007-01-21 00:39:12 +01:00
4 action: register
4 action: register
5 id: 1
5 id: 1
6 value: DwMJ2yIxBNeAk26znMYzYmz5dAiIina0GFrPnGTM
6 value: DwMJ2yIxBNeAk26znMYzYmz5dAiIina0GFrPnGTM
7 user_id: 1
7 user_id: 1
8 tokens_002:
8 tokens_002:
9 created_on: 2007-01-21 00:39:52 +01:00
9 created_on: 2007-01-21 00:39:52 +01:00
10 action: recovery
10 action: recovery
11 id: 2
11 id: 2
12 value: sahYSIaoYrsZUef86sTHrLISdznW6ApF36h5WSnm
12 value: sahYSIaoYrsZUef86sTHrLISdznW6ApF36h5WSnm
13 user_id: 2
13 user_id: 2
@@ -1,16 +1,16
1 ---
1 ---
2 trackers_001:
2 trackers_001:
3 name: Bug
3 name: Bug
4 id: 1
4 id: 1
5 is_in_chlog: true
5 is_in_chlog: true
6 position: 1
6 position: 1
7 trackers_002:
7 trackers_002:
8 name: Feature request
8 name: Feature request
9 id: 2
9 id: 2
10 is_in_chlog: true
10 is_in_chlog: true
11 position: 2
11 position: 2
12 trackers_003:
12 trackers_003:
13 name: Support request
13 name: Support request
14 id: 3
14 id: 3
15 is_in_chlog: false
15 is_in_chlog: false
16 position: 3
16 position: 3
@@ -1,156 +1,156
1 ---
1 ---
2 users_004:
2 users_004:
3 created_on: 2006-07-19 19:34:07 +02:00
3 created_on: 2006-07-19 19:34:07 +02:00
4 status: 1
4 status: 1
5 last_login_on:
5 last_login_on:
6 language: en
6 language: en
7 hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
7 hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
8 updated_on: 2006-07-19 19:34:07 +02:00
8 updated_on: 2006-07-19 19:34:07 +02:00
9 admin: false
9 admin: false
10 mail: rhill@somenet.foo
10 mail: rhill@somenet.foo
11 lastname: Hill
11 lastname: Hill
12 firstname: Robert
12 firstname: Robert
13 id: 4
13 id: 4
14 auth_source_id:
14 auth_source_id:
15 mail_notification: true
15 mail_notification: true
16 login: rhill
16 login: rhill
17 type: User
17 type: User
18 users_001:
18 users_001:
19 created_on: 2006-07-19 19:12:21 +02:00
19 created_on: 2006-07-19 19:12:21 +02:00
20 status: 1
20 status: 1
21 last_login_on: 2006-07-19 22:57:52 +02:00
21 last_login_on: 2006-07-19 22:57:52 +02:00
22 language: en
22 language: en
23 hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
23 hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
24 updated_on: 2006-07-19 22:57:52 +02:00
24 updated_on: 2006-07-19 22:57:52 +02:00
25 admin: true
25 admin: true
26 mail: admin@somenet.foo
26 mail: admin@somenet.foo
27 lastname: Admin
27 lastname: Admin
28 firstname: redMine
28 firstname: redMine
29 id: 1
29 id: 1
30 auth_source_id:
30 auth_source_id:
31 mail_notification: true
31 mail_notification: true
32 login: admin
32 login: admin
33 type: User
33 type: User
34 users_002:
34 users_002:
35 created_on: 2006-07-19 19:32:09 +02:00
35 created_on: 2006-07-19 19:32:09 +02:00
36 status: 1
36 status: 1
37 last_login_on: 2006-07-19 22:42:15 +02:00
37 last_login_on: 2006-07-19 22:42:15 +02:00
38 language: en
38 language: en
39 hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
39 hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
40 updated_on: 2006-07-19 22:42:15 +02:00
40 updated_on: 2006-07-19 22:42:15 +02:00
41 admin: false
41 admin: false
42 mail: jsmith@somenet.foo
42 mail: jsmith@somenet.foo
43 lastname: Smith
43 lastname: Smith
44 firstname: John
44 firstname: John
45 id: 2
45 id: 2
46 auth_source_id:
46 auth_source_id:
47 mail_notification: true
47 mail_notification: true
48 login: jsmith
48 login: jsmith
49 type: User
49 type: User
50 users_003:
50 users_003:
51 created_on: 2006-07-19 19:33:19 +02:00
51 created_on: 2006-07-19 19:33:19 +02:00
52 status: 1
52 status: 1
53 last_login_on:
53 last_login_on:
54 language: en
54 language: en
55 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
55 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
56 updated_on: 2006-07-19 19:33:19 +02:00
56 updated_on: 2006-07-19 19:33:19 +02:00
57 admin: false
57 admin: false
58 mail: dlopper@somenet.foo
58 mail: dlopper@somenet.foo
59 lastname: Lopper
59 lastname: Lopper
60 firstname: Dave
60 firstname: Dave
61 id: 3
61 id: 3
62 auth_source_id:
62 auth_source_id:
63 mail_notification: true
63 mail_notification: true
64 login: dlopper
64 login: dlopper
65 type: User
65 type: User
66 users_005:
66 users_005:
67 id: 5
67 id: 5
68 created_on: 2006-07-19 19:33:19 +02:00
68 created_on: 2006-07-19 19:33:19 +02:00
69 # Locked
69 # Locked
70 status: 3
70 status: 3
71 last_login_on:
71 last_login_on:
72 language: en
72 language: en
73 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
73 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
74 updated_on: 2006-07-19 19:33:19 +02:00
74 updated_on: 2006-07-19 19:33:19 +02:00
75 admin: false
75 admin: false
76 mail: dlopper2@somenet.foo
76 mail: dlopper2@somenet.foo
77 lastname: Lopper2
77 lastname: Lopper2
78 firstname: Dave2
78 firstname: Dave2
79 auth_source_id:
79 auth_source_id:
80 mail_notification: true
80 mail_notification: true
81 login: dlopper2
81 login: dlopper2
82 type: User
82 type: User
83 users_006:
83 users_006:
84 id: 6
84 id: 6
85 created_on: 2006-07-19 19:33:19 +02:00
85 created_on: 2006-07-19 19:33:19 +02:00
86 status: 1
86 status: 1
87 last_login_on:
87 last_login_on:
88 language: ''
88 language: ''
89 hashed_password: 1
89 hashed_password: 1
90 updated_on: 2006-07-19 19:33:19 +02:00
90 updated_on: 2006-07-19 19:33:19 +02:00
91 admin: false
91 admin: false
92 mail: ''
92 mail: ''
93 lastname: Anonymous
93 lastname: Anonymous
94 firstname: ''
94 firstname: ''
95 auth_source_id:
95 auth_source_id:
96 mail_notification: false
96 mail_notification: false
97 login: ''
97 login: ''
98 type: AnonymousUser
98 type: AnonymousUser
99 users_007:
99 users_007:
100 id: 7
100 id: 7
101 created_on: 2006-07-19 19:33:19 +02:00
101 created_on: 2006-07-19 19:33:19 +02:00
102 status: 1
102 status: 1
103 last_login_on:
103 last_login_on:
104 language: ''
104 language: ''
105 hashed_password: 1
105 hashed_password: 1
106 updated_on: 2006-07-19 19:33:19 +02:00
106 updated_on: 2006-07-19 19:33:19 +02:00
107 admin: false
107 admin: false
108 mail: someone@foo.bar
108 mail: someone@foo.bar
109 lastname: One
109 lastname: One
110 firstname: Some
110 firstname: Some
111 auth_source_id:
111 auth_source_id:
112 mail_notification: false
112 mail_notification: false
113 login: someone
113 login: someone
114 type: User
114 type: User
115 users_008:
115 users_008:
116 id: 8
116 id: 8
117 created_on: 2006-07-19 19:33:19 +02:00
117 created_on: 2006-07-19 19:33:19 +02:00
118 status: 1
118 status: 1
119 last_login_on:
119 last_login_on:
120 language: 'it'
120 language: 'it'
121 hashed_password: 1
121 hashed_password: 1
122 updated_on: 2006-07-19 19:33:19 +02:00
122 updated_on: 2006-07-19 19:33:19 +02:00
123 admin: false
123 admin: false
124 mail: miscuser8@foo.bar
124 mail: miscuser8@foo.bar
125 lastname: Misc
125 lastname: Misc
126 firstname: User
126 firstname: User
127 auth_source_id:
127 auth_source_id:
128 mail_notification: false
128 mail_notification: false
129 login: miscuser8
129 login: miscuser8
130 type: User
130 type: User
131 users_009:
131 users_009:
132 id: 9
132 id: 9
133 created_on: 2006-07-19 19:33:19 +02:00
133 created_on: 2006-07-19 19:33:19 +02:00
134 status: 1
134 status: 1
135 last_login_on:
135 last_login_on:
136 language: 'it'
136 language: 'it'
137 hashed_password: 1
137 hashed_password: 1
138 updated_on: 2006-07-19 19:33:19 +02:00
138 updated_on: 2006-07-19 19:33:19 +02:00
139 admin: false
139 admin: false
140 mail: miscuser9@foo.bar
140 mail: miscuser9@foo.bar
141 lastname: Misc
141 lastname: Misc
142 firstname: User
142 firstname: User
143 auth_source_id:
143 auth_source_id:
144 mail_notification: false
144 mail_notification: false
145 login: miscuser9
145 login: miscuser9
146 type: User
146 type: User
147 groups_010:
147 groups_010:
148 id: 10
148 id: 10
149 lastname: A Team
149 lastname: A Team
150 type: Group
150 type: Group
151 groups_011:
151 groups_011:
152 id: 11
152 id: 11
153 lastname: B Team
153 lastname: B Team
154 type: Group
154 type: Group
155
155
156 No newline at end of file
156
@@ -1,26 +1,26
1 ---
1 ---
2 versions_001:
2 versions_001:
3 created_on: 2006-07-19 21:00:07 +02:00
3 created_on: 2006-07-19 21:00:07 +02:00
4 name: "0.1"
4 name: "0.1"
5 project_id: 1
5 project_id: 1
6 updated_on: 2006-07-19 21:00:07 +02:00
6 updated_on: 2006-07-19 21:00:07 +02:00
7 id: 1
7 id: 1
8 description: Beta
8 description: Beta
9 effective_date: 2006-07-01
9 effective_date: 2006-07-01
10 versions_002:
10 versions_002:
11 created_on: 2006-07-19 21:00:33 +02:00
11 created_on: 2006-07-19 21:00:33 +02:00
12 name: "1.0"
12 name: "1.0"
13 project_id: 1
13 project_id: 1
14 updated_on: 2006-07-19 21:00:33 +02:00
14 updated_on: 2006-07-19 21:00:33 +02:00
15 id: 2
15 id: 2
16 description: Stable release
16 description: Stable release
17 effective_date: <%= 20.day.from_now.to_date.to_s(:db) %>
17 effective_date: <%= 20.day.from_now.to_date.to_s(:db) %>
18 versions_003:
18 versions_003:
19 created_on: 2006-07-19 21:00:33 +02:00
19 created_on: 2006-07-19 21:00:33 +02:00
20 name: "2.0"
20 name: "2.0"
21 project_id: 1
21 project_id: 1
22 updated_on: 2006-07-19 21:00:33 +02:00
22 updated_on: 2006-07-19 21:00:33 +02:00
23 id: 3
23 id: 3
24 description: Future version
24 description: Future version
25 effective_date:
25 effective_date:
26 No newline at end of file
26
@@ -1,52 +1,56
1 ---
1 ---
2 wiki_content_versions_001:
2 wiki_content_versions_001:
3 updated_on: 2007-03-07 00:08:07 +01:00
3 updated_on: 2007-03-07 00:08:07 +01:00
4 page_id: 1
4 page_id: 1
5 id: 1
5 id: 1
6 version: 1
6 version: 1
7 author_id: 2
7 author_id: 2
8 comments: Page creation
8 comments: Page creation
9 wiki_content_id: 1
9 wiki_content_id: 1
10 compression: ""
10 compression: ""
11 data: |-
11 data: |-
12 h1. CookBook documentation
12 h1. CookBook documentation
13
13
14
14
15
15
16 Some [[documentation]] here...
16 Some [[documentation]] here...
17 wiki_content_versions_002:
17 wiki_content_versions_002:
18 updated_on: 2007-03-07 00:08:34 +01:00
18 updated_on: 2007-03-07 00:08:34 +01:00
19 page_id: 1
19 page_id: 1
20 id: 2
20 id: 2
21 version: 2
21 version: 2
22 author_id: 1
22 author_id: 1
23 comments: Small update
23 comments: Small update
24 wiki_content_id: 1
24 wiki_content_id: 1
25 compression: ""
25 compression: ""
26 data: |-
26 data: |-
27 h1. CookBook documentation
27 h1. CookBook documentation
28
28
29
29
30
30
31 Some updated [[documentation]] here...
31 Some updated [[documentation]] here...
32 wiki_content_versions_003:
32 wiki_content_versions_003:
33 updated_on: 2007-03-07 00:10:51 +01:00
33 updated_on: 2007-03-07 00:10:51 +01:00
34 page_id: 1
34 page_id: 1
35 id: 3
35 id: 3
36 version: 3
36 version: 3
37 author_id: 1
37 author_id: 1
38 comments: ""
38 comments: ""
39 wiki_content_id: 1
39 wiki_content_id: 1
40 compression: ""
40 compression: ""
41 data: |-
41 data: |-
42 h1. CookBook documentation
42 h1. CookBook documentation
43 Some updated [[documentation]] here...
43 Some updated [[documentation]] here...
44 wiki_content_versions_004:
44 wiki_content_versions_004:
45 data: |-
45 data: |-
46 h1. Another page
46 h1. Another page
47
47
48 This is a link to a ticket: #2
48 This is a link to a ticket: #2
49 updated_on: 2007-03-08 00:18:07 +01:00
49 updated_on: 2007-03-08 00:18:07 +01:00
50 page_id: 2
50 page_id: 2
51 wiki_content_id: 2
51 wiki_content_id: 2
52 id: 4
52 id: 4
53 version: 1
54 author_id: 1
55 comments:
56
@@ -1,72 +1,74
1 ---
1 ---
2 wiki_contents_001:
2 wiki_contents_001:
3 text: |-
3 text: |-
4 h1. CookBook documentation
4 h1. CookBook documentation
5
5
6 {{child_pages}}
6 {{child_pages}}
7
7
8 Some updated [[documentation]] here with gzipped history
8 Some updated [[documentation]] here with gzipped history
9 updated_on: 2007-03-07 00:10:51 +01:00
9 updated_on: 2007-03-07 00:10:51 +01:00
10 page_id: 1
10 page_id: 1
11 id: 1
11 id: 1
12 version: 3
12 version: 3
13 author_id: 1
13 author_id: 1
14 comments: Gzip compression activated
14 comments: Gzip compression activated
15 wiki_contents_002:
15 wiki_contents_002:
16 text: |-
16 text: |-
17 h1. Another page
17 h1. Another page
18
18
19 This is a link to a ticket: #2
19 This is a link to a ticket: #2
20 And this is an included page:
20 And this is an included page:
21 {{include(Page with an inline image)}}
21 {{include(Page with an inline image)}}
22 updated_on: 2007-03-08 00:18:07 +01:00
22 updated_on: 2007-03-08 00:18:07 +01:00
23 page_id: 2
23 page_id: 2
24 id: 2
24 id: 2
25 version: 1
25 version: 1
26 author_id: 1
26 author_id: 1
27 comments:
27 comments:
28 wiki_contents_003:
28 wiki_contents_003:
29 text: |-
29 text: |-
30 h1. Start page
30 h1. Start page
31
31
32 E-commerce web site start page
32 E-commerce web site start page
33 updated_on: 2007-03-08 00:18:07 +01:00
33 updated_on: 2007-03-08 00:18:07 +01:00
34 page_id: 3
34 page_id: 3
35 id: 3
35 id: 3
36 version: 1
36 version: 1
37 author_id: 1
37 author_id: 1
38 comments:
38 comments:
39 wiki_contents_004:
39 wiki_contents_004:
40 text: |-
40 text: |-
41 h1. Page with an inline image
41 h1. Page with an inline image
42
42
43 This is an inline image:
43 This is an inline image:
44
44
45 !logo.gif!
45 !logo.gif!
46 updated_on: 2007-03-08 00:18:07 +01:00
46 updated_on: 2007-03-08 00:18:07 +01:00
47 page_id: 4
47 page_id: 4
48 id: 4
48 id: 4
49 version: 1
49 version: 1
50 author_id: 1
50 author_id: 1
51 comments:
51 comments:
52 wiki_contents_005:
52 wiki_contents_005:
53 text: |-
53 text: |-
54 h1. Child page 1
54 h1. Child page 1
55
55
56 This is a child page
56 This is a child page
57 updated_on: 2007-03-08 00:18:07 +01:00
57 updated_on: 2007-03-08 00:18:07 +01:00
58 page_id: 5
58 page_id: 5
59 id: 5
59 id: 5
60 version: 1
60 version: 1
61 author_id: 1
61 author_id: 1
62 comments:
62 comments:
63 wiki_contents_006:
63 wiki_contents_006:
64 text: |-
64 text: |-
65 h1. Child page 2
65 h1. Child page 2
66
66
67 This is a child page
67 This is a child page
68 updated_on: 2007-03-08 00:18:07 +01:00
68 updated_on: 2007-03-08 00:18:07 +01:00
69 page_id: 6
69 page_id: 6
70 id: 6
70 id: 6
71 version: 1
71 version: 1
72 author_id: 1
73 comments:
72 author_id: 1 No newline at end of file
74
@@ -1,44 +1,44
1 ---
1 ---
2 wiki_pages_001:
2 wiki_pages_001:
3 created_on: 2007-03-07 00:08:07 +01:00
3 created_on: 2007-03-07 00:08:07 +01:00
4 title: CookBook_documentation
4 title: CookBook_documentation
5 id: 1
5 id: 1
6 wiki_id: 1
6 wiki_id: 1
7 protected: true
7 protected: true
8 parent_id:
8 parent_id:
9 wiki_pages_002:
9 wiki_pages_002:
10 created_on: 2007-03-08 00:18:07 +01:00
10 created_on: 2007-03-08 00:18:07 +01:00
11 title: Another_page
11 title: Another_page
12 id: 2
12 id: 2
13 wiki_id: 1
13 wiki_id: 1
14 protected: false
14 protected: false
15 parent_id:
15 parent_id:
16 wiki_pages_003:
16 wiki_pages_003:
17 created_on: 2007-03-08 00:18:07 +01:00
17 created_on: 2007-03-08 00:18:07 +01:00
18 title: Start_page
18 title: Start_page
19 id: 3
19 id: 3
20 wiki_id: 2
20 wiki_id: 2
21 protected: false
21 protected: false
22 parent_id:
22 parent_id:
23 wiki_pages_004:
23 wiki_pages_004:
24 created_on: 2007-03-08 00:18:07 +01:00
24 created_on: 2007-03-08 00:18:07 +01:00
25 title: Page_with_an_inline_image
25 title: Page_with_an_inline_image
26 id: 4
26 id: 4
27 wiki_id: 1
27 wiki_id: 1
28 protected: false
28 protected: false
29 parent_id: 1
29 parent_id: 1
30 wiki_pages_005:
30 wiki_pages_005:
31 created_on: 2007-03-08 00:18:07 +01:00
31 created_on: 2007-03-08 00:18:07 +01:00
32 title: Child_1
32 title: Child_1
33 id: 5
33 id: 5
34 wiki_id: 1
34 wiki_id: 1
35 protected: false
35 protected: false
36 parent_id: 2
36 parent_id: 2
37 wiki_pages_006:
37 wiki_pages_006:
38 created_on: 2007-03-08 00:18:07 +01:00
38 created_on: 2007-03-08 00:18:07 +01:00
39 title: Child_2
39 title: Child_2
40 id: 6
40 id: 6
41 wiki_id: 1
41 wiki_id: 1
42 protected: false
42 protected: false
43 parent_id: 2
43 parent_id: 2
44 No newline at end of file
44
@@ -1,12 +1,12
1 ---
1 ---
2 wikis_001:
2 wikis_001:
3 status: 1
3 status: 1
4 start_page: CookBook documentation
4 start_page: CookBook documentation
5 project_id: 1
5 project_id: 1
6 id: 1
6 id: 1
7 wikis_002:
7 wikis_002:
8 status: 1
8 status: 1
9 start_page: Start page
9 start_page: Start page
10 project_id: 2
10 project_id: 2
11 id: 2
11 id: 2
12 No newline at end of file
12
This diff has been collapsed as it changes many lines, (3230 lines changed) Show them Hide them
@@ -1,1615 +1,1615
1 ---
1 ---
2 workflows_189:
2 workflows_189:
3 new_status_id: 5
3 new_status_id: 5
4 role_id: 1
4 role_id: 1
5 old_status_id: 2
5 old_status_id: 2
6 id: 189
6 id: 189
7 tracker_id: 3
7 tracker_id: 3
8 workflows_001:
8 workflows_001:
9 new_status_id: 2
9 new_status_id: 2
10 role_id: 1
10 role_id: 1
11 old_status_id: 1
11 old_status_id: 1
12 id: 1
12 id: 1
13 tracker_id: 1
13 tracker_id: 1
14 workflows_002:
14 workflows_002:
15 new_status_id: 3
15 new_status_id: 3
16 role_id: 1
16 role_id: 1
17 old_status_id: 1
17 old_status_id: 1
18 id: 2
18 id: 2
19 tracker_id: 1
19 tracker_id: 1
20 workflows_003:
20 workflows_003:
21 new_status_id: 4
21 new_status_id: 4
22 role_id: 1
22 role_id: 1
23 old_status_id: 1
23 old_status_id: 1
24 id: 3
24 id: 3
25 tracker_id: 1
25 tracker_id: 1
26 workflows_110:
26 workflows_110:
27 new_status_id: 6
27 new_status_id: 6
28 role_id: 1
28 role_id: 1
29 old_status_id: 4
29 old_status_id: 4
30 id: 110
30 id: 110
31 tracker_id: 2
31 tracker_id: 2
32 workflows_004:
32 workflows_004:
33 new_status_id: 5
33 new_status_id: 5
34 role_id: 1
34 role_id: 1
35 old_status_id: 1
35 old_status_id: 1
36 id: 4
36 id: 4
37 tracker_id: 1
37 tracker_id: 1
38 workflows_030:
38 workflows_030:
39 new_status_id: 5
39 new_status_id: 5
40 role_id: 1
40 role_id: 1
41 old_status_id: 6
41 old_status_id: 6
42 id: 30
42 id: 30
43 tracker_id: 1
43 tracker_id: 1
44 workflows_111:
44 workflows_111:
45 new_status_id: 1
45 new_status_id: 1
46 role_id: 1
46 role_id: 1
47 old_status_id: 5
47 old_status_id: 5
48 id: 111
48 id: 111
49 tracker_id: 2
49 tracker_id: 2
50 workflows_005:
50 workflows_005:
51 new_status_id: 6
51 new_status_id: 6
52 role_id: 1
52 role_id: 1
53 old_status_id: 1
53 old_status_id: 1
54 id: 5
54 id: 5
55 tracker_id: 1
55 tracker_id: 1
56 workflows_031:
56 workflows_031:
57 new_status_id: 2
57 new_status_id: 2
58 role_id: 2
58 role_id: 2
59 old_status_id: 1
59 old_status_id: 1
60 id: 31
60 id: 31
61 tracker_id: 1
61 tracker_id: 1
62 workflows_112:
62 workflows_112:
63 new_status_id: 2
63 new_status_id: 2
64 role_id: 1
64 role_id: 1
65 old_status_id: 5
65 old_status_id: 5
66 id: 112
66 id: 112
67 tracker_id: 2
67 tracker_id: 2
68 workflows_006:
68 workflows_006:
69 new_status_id: 1
69 new_status_id: 1
70 role_id: 1
70 role_id: 1
71 old_status_id: 2
71 old_status_id: 2
72 id: 6
72 id: 6
73 tracker_id: 1
73 tracker_id: 1
74 workflows_032:
74 workflows_032:
75 new_status_id: 3
75 new_status_id: 3
76 role_id: 2
76 role_id: 2
77 old_status_id: 1
77 old_status_id: 1
78 id: 32
78 id: 32
79 tracker_id: 1
79 tracker_id: 1
80 workflows_113:
80 workflows_113:
81 new_status_id: 3
81 new_status_id: 3
82 role_id: 1
82 role_id: 1
83 old_status_id: 5
83 old_status_id: 5
84 id: 113
84 id: 113
85 tracker_id: 2
85 tracker_id: 2
86 workflows_220:
86 workflows_220:
87 new_status_id: 6
87 new_status_id: 6
88 role_id: 2
88 role_id: 2
89 old_status_id: 2
89 old_status_id: 2
90 id: 220
90 id: 220
91 tracker_id: 3
91 tracker_id: 3
92 workflows_007:
92 workflows_007:
93 new_status_id: 3
93 new_status_id: 3
94 role_id: 1
94 role_id: 1
95 old_status_id: 2
95 old_status_id: 2
96 id: 7
96 id: 7
97 tracker_id: 1
97 tracker_id: 1
98 workflows_033:
98 workflows_033:
99 new_status_id: 4
99 new_status_id: 4
100 role_id: 2
100 role_id: 2
101 old_status_id: 1
101 old_status_id: 1
102 id: 33
102 id: 33
103 tracker_id: 1
103 tracker_id: 1
104 workflows_060:
104 workflows_060:
105 new_status_id: 5
105 new_status_id: 5
106 role_id: 2
106 role_id: 2
107 old_status_id: 6
107 old_status_id: 6
108 id: 60
108 id: 60
109 tracker_id: 1
109 tracker_id: 1
110 workflows_114:
110 workflows_114:
111 new_status_id: 4
111 new_status_id: 4
112 role_id: 1
112 role_id: 1
113 old_status_id: 5
113 old_status_id: 5
114 id: 114
114 id: 114
115 tracker_id: 2
115 tracker_id: 2
116 workflows_140:
116 workflows_140:
117 new_status_id: 6
117 new_status_id: 6
118 role_id: 2
118 role_id: 2
119 old_status_id: 4
119 old_status_id: 4
120 id: 140
120 id: 140
121 tracker_id: 2
121 tracker_id: 2
122 workflows_221:
122 workflows_221:
123 new_status_id: 1
123 new_status_id: 1
124 role_id: 2
124 role_id: 2
125 old_status_id: 3
125 old_status_id: 3
126 id: 221
126 id: 221
127 tracker_id: 3
127 tracker_id: 3
128 workflows_008:
128 workflows_008:
129 new_status_id: 4
129 new_status_id: 4
130 role_id: 1
130 role_id: 1
131 old_status_id: 2
131 old_status_id: 2
132 id: 8
132 id: 8
133 tracker_id: 1
133 tracker_id: 1
134 workflows_034:
134 workflows_034:
135 new_status_id: 5
135 new_status_id: 5
136 role_id: 2
136 role_id: 2
137 old_status_id: 1
137 old_status_id: 1
138 id: 34
138 id: 34
139 tracker_id: 1
139 tracker_id: 1
140 workflows_115:
140 workflows_115:
141 new_status_id: 6
141 new_status_id: 6
142 role_id: 1
142 role_id: 1
143 old_status_id: 5
143 old_status_id: 5
144 id: 115
144 id: 115
145 tracker_id: 2
145 tracker_id: 2
146 workflows_141:
146 workflows_141:
147 new_status_id: 1
147 new_status_id: 1
148 role_id: 2
148 role_id: 2
149 old_status_id: 5
149 old_status_id: 5
150 id: 141
150 id: 141
151 tracker_id: 2
151 tracker_id: 2
152 workflows_222:
152 workflows_222:
153 new_status_id: 2
153 new_status_id: 2
154 role_id: 2
154 role_id: 2
155 old_status_id: 3
155 old_status_id: 3
156 id: 222
156 id: 222
157 tracker_id: 3
157 tracker_id: 3
158 workflows_223:
158 workflows_223:
159 new_status_id: 4
159 new_status_id: 4
160 role_id: 2
160 role_id: 2
161 old_status_id: 3
161 old_status_id: 3
162 id: 223
162 id: 223
163 tracker_id: 3
163 tracker_id: 3
164 workflows_009:
164 workflows_009:
165 new_status_id: 5
165 new_status_id: 5
166 role_id: 1
166 role_id: 1
167 old_status_id: 2
167 old_status_id: 2
168 id: 9
168 id: 9
169 tracker_id: 1
169 tracker_id: 1
170 workflows_035:
170 workflows_035:
171 new_status_id: 6
171 new_status_id: 6
172 role_id: 2
172 role_id: 2
173 old_status_id: 1
173 old_status_id: 1
174 id: 35
174 id: 35
175 tracker_id: 1
175 tracker_id: 1
176 workflows_061:
176 workflows_061:
177 new_status_id: 2
177 new_status_id: 2
178 role_id: 3
178 role_id: 3
179 old_status_id: 1
179 old_status_id: 1
180 id: 61
180 id: 61
181 tracker_id: 1
181 tracker_id: 1
182 workflows_116:
182 workflows_116:
183 new_status_id: 1
183 new_status_id: 1
184 role_id: 1
184 role_id: 1
185 old_status_id: 6
185 old_status_id: 6
186 id: 116
186 id: 116
187 tracker_id: 2
187 tracker_id: 2
188 workflows_142:
188 workflows_142:
189 new_status_id: 2
189 new_status_id: 2
190 role_id: 2
190 role_id: 2
191 old_status_id: 5
191 old_status_id: 5
192 id: 142
192 id: 142
193 tracker_id: 2
193 tracker_id: 2
194 workflows_250:
194 workflows_250:
195 new_status_id: 6
195 new_status_id: 6
196 role_id: 3
196 role_id: 3
197 old_status_id: 2
197 old_status_id: 2
198 id: 250
198 id: 250
199 tracker_id: 3
199 tracker_id: 3
200 workflows_224:
200 workflows_224:
201 new_status_id: 5
201 new_status_id: 5
202 role_id: 2
202 role_id: 2
203 old_status_id: 3
203 old_status_id: 3
204 id: 224
204 id: 224
205 tracker_id: 3
205 tracker_id: 3
206 workflows_036:
206 workflows_036:
207 new_status_id: 1
207 new_status_id: 1
208 role_id: 2
208 role_id: 2
209 old_status_id: 2
209 old_status_id: 2
210 id: 36
210 id: 36
211 tracker_id: 1
211 tracker_id: 1
212 workflows_062:
212 workflows_062:
213 new_status_id: 3
213 new_status_id: 3
214 role_id: 3
214 role_id: 3
215 old_status_id: 1
215 old_status_id: 1
216 id: 62
216 id: 62
217 tracker_id: 1
217 tracker_id: 1
218 workflows_117:
218 workflows_117:
219 new_status_id: 2
219 new_status_id: 2
220 role_id: 1
220 role_id: 1
221 old_status_id: 6
221 old_status_id: 6
222 id: 117
222 id: 117
223 tracker_id: 2
223 tracker_id: 2
224 workflows_143:
224 workflows_143:
225 new_status_id: 3
225 new_status_id: 3
226 role_id: 2
226 role_id: 2
227 old_status_id: 5
227 old_status_id: 5
228 id: 143
228 id: 143
229 tracker_id: 2
229 tracker_id: 2
230 workflows_170:
230 workflows_170:
231 new_status_id: 6
231 new_status_id: 6
232 role_id: 3
232 role_id: 3
233 old_status_id: 4
233 old_status_id: 4
234 id: 170
234 id: 170
235 tracker_id: 2
235 tracker_id: 2
236 workflows_251:
236 workflows_251:
237 new_status_id: 1
237 new_status_id: 1
238 role_id: 3
238 role_id: 3
239 old_status_id: 3
239 old_status_id: 3
240 id: 251
240 id: 251
241 tracker_id: 3
241 tracker_id: 3
242 workflows_225:
242 workflows_225:
243 new_status_id: 6
243 new_status_id: 6
244 role_id: 2
244 role_id: 2
245 old_status_id: 3
245 old_status_id: 3
246 id: 225
246 id: 225
247 tracker_id: 3
247 tracker_id: 3
248 workflows_063:
248 workflows_063:
249 new_status_id: 4
249 new_status_id: 4
250 role_id: 3
250 role_id: 3
251 old_status_id: 1
251 old_status_id: 1
252 id: 63
252 id: 63
253 tracker_id: 1
253 tracker_id: 1
254 workflows_090:
254 workflows_090:
255 new_status_id: 5
255 new_status_id: 5
256 role_id: 3
256 role_id: 3
257 old_status_id: 6
257 old_status_id: 6
258 id: 90
258 id: 90
259 tracker_id: 1
259 tracker_id: 1
260 workflows_118:
260 workflows_118:
261 new_status_id: 3
261 new_status_id: 3
262 role_id: 1
262 role_id: 1
263 old_status_id: 6
263 old_status_id: 6
264 id: 118
264 id: 118
265 tracker_id: 2
265 tracker_id: 2
266 workflows_144:
266 workflows_144:
267 new_status_id: 4
267 new_status_id: 4
268 role_id: 2
268 role_id: 2
269 old_status_id: 5
269 old_status_id: 5
270 id: 144
270 id: 144
271 tracker_id: 2
271 tracker_id: 2
272 workflows_252:
272 workflows_252:
273 new_status_id: 2
273 new_status_id: 2
274 role_id: 3
274 role_id: 3
275 old_status_id: 3
275 old_status_id: 3
276 id: 252
276 id: 252
277 tracker_id: 3
277 tracker_id: 3
278 workflows_226:
278 workflows_226:
279 new_status_id: 1
279 new_status_id: 1
280 role_id: 2
280 role_id: 2
281 old_status_id: 4
281 old_status_id: 4
282 id: 226
282 id: 226
283 tracker_id: 3
283 tracker_id: 3
284 workflows_038:
284 workflows_038:
285 new_status_id: 4
285 new_status_id: 4
286 role_id: 2
286 role_id: 2
287 old_status_id: 2
287 old_status_id: 2
288 id: 38
288 id: 38
289 tracker_id: 1
289 tracker_id: 1
290 workflows_064:
290 workflows_064:
291 new_status_id: 5
291 new_status_id: 5
292 role_id: 3
292 role_id: 3
293 old_status_id: 1
293 old_status_id: 1
294 id: 64
294 id: 64
295 tracker_id: 1
295 tracker_id: 1
296 workflows_091:
296 workflows_091:
297 new_status_id: 2
297 new_status_id: 2
298 role_id: 1
298 role_id: 1
299 old_status_id: 1
299 old_status_id: 1
300 id: 91
300 id: 91
301 tracker_id: 2
301 tracker_id: 2
302 workflows_119:
302 workflows_119:
303 new_status_id: 4
303 new_status_id: 4
304 role_id: 1
304 role_id: 1
305 old_status_id: 6
305 old_status_id: 6
306 id: 119
306 id: 119
307 tracker_id: 2
307 tracker_id: 2
308 workflows_145:
308 workflows_145:
309 new_status_id: 6
309 new_status_id: 6
310 role_id: 2
310 role_id: 2
311 old_status_id: 5
311 old_status_id: 5
312 id: 145
312 id: 145
313 tracker_id: 2
313 tracker_id: 2
314 workflows_171:
314 workflows_171:
315 new_status_id: 1
315 new_status_id: 1
316 role_id: 3
316 role_id: 3
317 old_status_id: 5
317 old_status_id: 5
318 id: 171
318 id: 171
319 tracker_id: 2
319 tracker_id: 2
320 workflows_253:
320 workflows_253:
321 new_status_id: 4
321 new_status_id: 4
322 role_id: 3
322 role_id: 3
323 old_status_id: 3
323 old_status_id: 3
324 id: 253
324 id: 253
325 tracker_id: 3
325 tracker_id: 3
326 workflows_227:
326 workflows_227:
327 new_status_id: 2
327 new_status_id: 2
328 role_id: 2
328 role_id: 2
329 old_status_id: 4
329 old_status_id: 4
330 id: 227
330 id: 227
331 tracker_id: 3
331 tracker_id: 3
332 workflows_039:
332 workflows_039:
333 new_status_id: 5
333 new_status_id: 5
334 role_id: 2
334 role_id: 2
335 old_status_id: 2
335 old_status_id: 2
336 id: 39
336 id: 39
337 tracker_id: 1
337 tracker_id: 1
338 workflows_065:
338 workflows_065:
339 new_status_id: 6
339 new_status_id: 6
340 role_id: 3
340 role_id: 3
341 old_status_id: 1
341 old_status_id: 1
342 id: 65
342 id: 65
343 tracker_id: 1
343 tracker_id: 1
344 workflows_092:
344 workflows_092:
345 new_status_id: 3
345 new_status_id: 3
346 role_id: 1
346 role_id: 1
347 old_status_id: 1
347 old_status_id: 1
348 id: 92
348 id: 92
349 tracker_id: 2
349 tracker_id: 2
350 workflows_146:
350 workflows_146:
351 new_status_id: 1
351 new_status_id: 1
352 role_id: 2
352 role_id: 2
353 old_status_id: 6
353 old_status_id: 6
354 id: 146
354 id: 146
355 tracker_id: 2
355 tracker_id: 2
356 workflows_172:
356 workflows_172:
357 new_status_id: 2
357 new_status_id: 2
358 role_id: 3
358 role_id: 3
359 old_status_id: 5
359 old_status_id: 5
360 id: 172
360 id: 172
361 tracker_id: 2
361 tracker_id: 2
362 workflows_254:
362 workflows_254:
363 new_status_id: 5
363 new_status_id: 5
364 role_id: 3
364 role_id: 3
365 old_status_id: 3
365 old_status_id: 3
366 id: 254
366 id: 254
367 tracker_id: 3
367 tracker_id: 3
368 workflows_228:
368 workflows_228:
369 new_status_id: 3
369 new_status_id: 3
370 role_id: 2
370 role_id: 2
371 old_status_id: 4
371 old_status_id: 4
372 id: 228
372 id: 228
373 tracker_id: 3
373 tracker_id: 3
374 workflows_066:
374 workflows_066:
375 new_status_id: 1
375 new_status_id: 1
376 role_id: 3
376 role_id: 3
377 old_status_id: 2
377 old_status_id: 2
378 id: 66
378 id: 66
379 tracker_id: 1
379 tracker_id: 1
380 workflows_093:
380 workflows_093:
381 new_status_id: 4
381 new_status_id: 4
382 role_id: 1
382 role_id: 1
383 old_status_id: 1
383 old_status_id: 1
384 id: 93
384 id: 93
385 tracker_id: 2
385 tracker_id: 2
386 workflows_147:
386 workflows_147:
387 new_status_id: 2
387 new_status_id: 2
388 role_id: 2
388 role_id: 2
389 old_status_id: 6
389 old_status_id: 6
390 id: 147
390 id: 147
391 tracker_id: 2
391 tracker_id: 2
392 workflows_173:
392 workflows_173:
393 new_status_id: 3
393 new_status_id: 3
394 role_id: 3
394 role_id: 3
395 old_status_id: 5
395 old_status_id: 5
396 id: 173
396 id: 173
397 tracker_id: 2
397 tracker_id: 2
398 workflows_255:
398 workflows_255:
399 new_status_id: 6
399 new_status_id: 6
400 role_id: 3
400 role_id: 3
401 old_status_id: 3
401 old_status_id: 3
402 id: 255
402 id: 255
403 tracker_id: 3
403 tracker_id: 3
404 workflows_229:
404 workflows_229:
405 new_status_id: 5
405 new_status_id: 5
406 role_id: 2
406 role_id: 2
407 old_status_id: 4
407 old_status_id: 4
408 id: 229
408 id: 229
409 tracker_id: 3
409 tracker_id: 3
410 workflows_067:
410 workflows_067:
411 new_status_id: 3
411 new_status_id: 3
412 role_id: 3
412 role_id: 3
413 old_status_id: 2
413 old_status_id: 2
414 id: 67
414 id: 67
415 tracker_id: 1
415 tracker_id: 1
416 workflows_148:
416 workflows_148:
417 new_status_id: 3
417 new_status_id: 3
418 role_id: 2
418 role_id: 2
419 old_status_id: 6
419 old_status_id: 6
420 id: 148
420 id: 148
421 tracker_id: 2
421 tracker_id: 2
422 workflows_174:
422 workflows_174:
423 new_status_id: 4
423 new_status_id: 4
424 role_id: 3
424 role_id: 3
425 old_status_id: 5
425 old_status_id: 5
426 id: 174
426 id: 174
427 tracker_id: 2
427 tracker_id: 2
428 workflows_256:
428 workflows_256:
429 new_status_id: 1
429 new_status_id: 1
430 role_id: 3
430 role_id: 3
431 old_status_id: 4
431 old_status_id: 4
432 id: 256
432 id: 256
433 tracker_id: 3
433 tracker_id: 3
434 workflows_068:
434 workflows_068:
435 new_status_id: 4
435 new_status_id: 4
436 role_id: 3
436 role_id: 3
437 old_status_id: 2
437 old_status_id: 2
438 id: 68
438 id: 68
439 tracker_id: 1
439 tracker_id: 1
440 workflows_094:
440 workflows_094:
441 new_status_id: 5
441 new_status_id: 5
442 role_id: 1
442 role_id: 1
443 old_status_id: 1
443 old_status_id: 1
444 id: 94
444 id: 94
445 tracker_id: 2
445 tracker_id: 2
446 workflows_149:
446 workflows_149:
447 new_status_id: 4
447 new_status_id: 4
448 role_id: 2
448 role_id: 2
449 old_status_id: 6
449 old_status_id: 6
450 id: 149
450 id: 149
451 tracker_id: 2
451 tracker_id: 2
452 workflows_175:
452 workflows_175:
453 new_status_id: 6
453 new_status_id: 6
454 role_id: 3
454 role_id: 3
455 old_status_id: 5
455 old_status_id: 5
456 id: 175
456 id: 175
457 tracker_id: 2
457 tracker_id: 2
458 workflows_257:
458 workflows_257:
459 new_status_id: 2
459 new_status_id: 2
460 role_id: 3
460 role_id: 3
461 old_status_id: 4
461 old_status_id: 4
462 id: 257
462 id: 257
463 tracker_id: 3
463 tracker_id: 3
464 workflows_069:
464 workflows_069:
465 new_status_id: 5
465 new_status_id: 5
466 role_id: 3
466 role_id: 3
467 old_status_id: 2
467 old_status_id: 2
468 id: 69
468 id: 69
469 tracker_id: 1
469 tracker_id: 1
470 workflows_095:
470 workflows_095:
471 new_status_id: 6
471 new_status_id: 6
472 role_id: 1
472 role_id: 1
473 old_status_id: 1
473 old_status_id: 1
474 id: 95
474 id: 95
475 tracker_id: 2
475 tracker_id: 2
476 workflows_176:
476 workflows_176:
477 new_status_id: 1
477 new_status_id: 1
478 role_id: 3
478 role_id: 3
479 old_status_id: 6
479 old_status_id: 6
480 id: 176
480 id: 176
481 tracker_id: 2
481 tracker_id: 2
482 workflows_258:
482 workflows_258:
483 new_status_id: 3
483 new_status_id: 3
484 role_id: 3
484 role_id: 3
485 old_status_id: 4
485 old_status_id: 4
486 id: 258
486 id: 258
487 tracker_id: 3
487 tracker_id: 3
488 workflows_096:
488 workflows_096:
489 new_status_id: 1
489 new_status_id: 1
490 role_id: 1
490 role_id: 1
491 old_status_id: 2
491 old_status_id: 2
492 id: 96
492 id: 96
493 tracker_id: 2
493 tracker_id: 2
494 workflows_177:
494 workflows_177:
495 new_status_id: 2
495 new_status_id: 2
496 role_id: 3
496 role_id: 3
497 old_status_id: 6
497 old_status_id: 6
498 id: 177
498 id: 177
499 tracker_id: 2
499 tracker_id: 2
500 workflows_259:
500 workflows_259:
501 new_status_id: 5
501 new_status_id: 5
502 role_id: 3
502 role_id: 3
503 old_status_id: 4
503 old_status_id: 4
504 id: 259
504 id: 259
505 tracker_id: 3
505 tracker_id: 3
506 workflows_097:
506 workflows_097:
507 new_status_id: 3
507 new_status_id: 3
508 role_id: 1
508 role_id: 1
509 old_status_id: 2
509 old_status_id: 2
510 id: 97
510 id: 97
511 tracker_id: 2
511 tracker_id: 2
512 workflows_178:
512 workflows_178:
513 new_status_id: 3
513 new_status_id: 3
514 role_id: 3
514 role_id: 3
515 old_status_id: 6
515 old_status_id: 6
516 id: 178
516 id: 178
517 tracker_id: 2
517 tracker_id: 2
518 workflows_098:
518 workflows_098:
519 new_status_id: 4
519 new_status_id: 4
520 role_id: 1
520 role_id: 1
521 old_status_id: 2
521 old_status_id: 2
522 id: 98
522 id: 98
523 tracker_id: 2
523 tracker_id: 2
524 workflows_179:
524 workflows_179:
525 new_status_id: 4
525 new_status_id: 4
526 role_id: 3
526 role_id: 3
527 old_status_id: 6
527 old_status_id: 6
528 id: 179
528 id: 179
529 tracker_id: 2
529 tracker_id: 2
530 workflows_099:
530 workflows_099:
531 new_status_id: 5
531 new_status_id: 5
532 role_id: 1
532 role_id: 1
533 old_status_id: 2
533 old_status_id: 2
534 id: 99
534 id: 99
535 tracker_id: 2
535 tracker_id: 2
536 workflows_100:
536 workflows_100:
537 new_status_id: 6
537 new_status_id: 6
538 role_id: 1
538 role_id: 1
539 old_status_id: 2
539 old_status_id: 2
540 id: 100
540 id: 100
541 tracker_id: 2
541 tracker_id: 2
542 workflows_020:
542 workflows_020:
543 new_status_id: 6
543 new_status_id: 6
544 role_id: 1
544 role_id: 1
545 old_status_id: 4
545 old_status_id: 4
546 id: 20
546 id: 20
547 tracker_id: 1
547 tracker_id: 1
548 workflows_101:
548 workflows_101:
549 new_status_id: 1
549 new_status_id: 1
550 role_id: 1
550 role_id: 1
551 old_status_id: 3
551 old_status_id: 3
552 id: 101
552 id: 101
553 tracker_id: 2
553 tracker_id: 2
554 workflows_021:
554 workflows_021:
555 new_status_id: 1
555 new_status_id: 1
556 role_id: 1
556 role_id: 1
557 old_status_id: 5
557 old_status_id: 5
558 id: 21
558 id: 21
559 tracker_id: 1
559 tracker_id: 1
560 workflows_102:
560 workflows_102:
561 new_status_id: 2
561 new_status_id: 2
562 role_id: 1
562 role_id: 1
563 old_status_id: 3
563 old_status_id: 3
564 id: 102
564 id: 102
565 tracker_id: 2
565 tracker_id: 2
566 workflows_210:
566 workflows_210:
567 new_status_id: 5
567 new_status_id: 5
568 role_id: 1
568 role_id: 1
569 old_status_id: 6
569 old_status_id: 6
570 id: 210
570 id: 210
571 tracker_id: 3
571 tracker_id: 3
572 workflows_022:
572 workflows_022:
573 new_status_id: 2
573 new_status_id: 2
574 role_id: 1
574 role_id: 1
575 old_status_id: 5
575 old_status_id: 5
576 id: 22
576 id: 22
577 tracker_id: 1
577 tracker_id: 1
578 workflows_103:
578 workflows_103:
579 new_status_id: 4
579 new_status_id: 4
580 role_id: 1
580 role_id: 1
581 old_status_id: 3
581 old_status_id: 3
582 id: 103
582 id: 103
583 tracker_id: 2
583 tracker_id: 2
584 workflows_023:
584 workflows_023:
585 new_status_id: 3
585 new_status_id: 3
586 role_id: 1
586 role_id: 1
587 old_status_id: 5
587 old_status_id: 5
588 id: 23
588 id: 23
589 tracker_id: 1
589 tracker_id: 1
590 workflows_104:
590 workflows_104:
591 new_status_id: 5
591 new_status_id: 5
592 role_id: 1
592 role_id: 1
593 old_status_id: 3
593 old_status_id: 3
594 id: 104
594 id: 104
595 tracker_id: 2
595 tracker_id: 2
596 workflows_130:
596 workflows_130:
597 new_status_id: 6
597 new_status_id: 6
598 role_id: 2
598 role_id: 2
599 old_status_id: 2
599 old_status_id: 2
600 id: 130
600 id: 130
601 tracker_id: 2
601 tracker_id: 2
602 workflows_211:
602 workflows_211:
603 new_status_id: 2
603 new_status_id: 2
604 role_id: 2
604 role_id: 2
605 old_status_id: 1
605 old_status_id: 1
606 id: 211
606 id: 211
607 tracker_id: 3
607 tracker_id: 3
608 workflows_024:
608 workflows_024:
609 new_status_id: 4
609 new_status_id: 4
610 role_id: 1
610 role_id: 1
611 old_status_id: 5
611 old_status_id: 5
612 id: 24
612 id: 24
613 tracker_id: 1
613 tracker_id: 1
614 workflows_050:
614 workflows_050:
615 new_status_id: 6
615 new_status_id: 6
616 role_id: 2
616 role_id: 2
617 old_status_id: 4
617 old_status_id: 4
618 id: 50
618 id: 50
619 tracker_id: 1
619 tracker_id: 1
620 workflows_105:
620 workflows_105:
621 new_status_id: 6
621 new_status_id: 6
622 role_id: 1
622 role_id: 1
623 old_status_id: 3
623 old_status_id: 3
624 id: 105
624 id: 105
625 tracker_id: 2
625 tracker_id: 2
626 workflows_131:
626 workflows_131:
627 new_status_id: 1
627 new_status_id: 1
628 role_id: 2
628 role_id: 2
629 old_status_id: 3
629 old_status_id: 3
630 id: 131
630 id: 131
631 tracker_id: 2
631 tracker_id: 2
632 workflows_212:
632 workflows_212:
633 new_status_id: 3
633 new_status_id: 3
634 role_id: 2
634 role_id: 2
635 old_status_id: 1
635 old_status_id: 1
636 id: 212
636 id: 212
637 tracker_id: 3
637 tracker_id: 3
638 workflows_025:
638 workflows_025:
639 new_status_id: 6
639 new_status_id: 6
640 role_id: 1
640 role_id: 1
641 old_status_id: 5
641 old_status_id: 5
642 id: 25
642 id: 25
643 tracker_id: 1
643 tracker_id: 1
644 workflows_051:
644 workflows_051:
645 new_status_id: 1
645 new_status_id: 1
646 role_id: 2
646 role_id: 2
647 old_status_id: 5
647 old_status_id: 5
648 id: 51
648 id: 51
649 tracker_id: 1
649 tracker_id: 1
650 workflows_106:
650 workflows_106:
651 new_status_id: 1
651 new_status_id: 1
652 role_id: 1
652 role_id: 1
653 old_status_id: 4
653 old_status_id: 4
654 id: 106
654 id: 106
655 tracker_id: 2
655 tracker_id: 2
656 workflows_132:
656 workflows_132:
657 new_status_id: 2
657 new_status_id: 2
658 role_id: 2
658 role_id: 2
659 old_status_id: 3
659 old_status_id: 3
660 id: 132
660 id: 132
661 tracker_id: 2
661 tracker_id: 2
662 workflows_213:
662 workflows_213:
663 new_status_id: 4
663 new_status_id: 4
664 role_id: 2
664 role_id: 2
665 old_status_id: 1
665 old_status_id: 1
666 id: 213
666 id: 213
667 tracker_id: 3
667 tracker_id: 3
668 workflows_240:
668 workflows_240:
669 new_status_id: 5
669 new_status_id: 5
670 role_id: 2
670 role_id: 2
671 old_status_id: 6
671 old_status_id: 6
672 id: 240
672 id: 240
673 tracker_id: 3
673 tracker_id: 3
674 workflows_026:
674 workflows_026:
675 new_status_id: 1
675 new_status_id: 1
676 role_id: 1
676 role_id: 1
677 old_status_id: 6
677 old_status_id: 6
678 id: 26
678 id: 26
679 tracker_id: 1
679 tracker_id: 1
680 workflows_052:
680 workflows_052:
681 new_status_id: 2
681 new_status_id: 2
682 role_id: 2
682 role_id: 2
683 old_status_id: 5
683 old_status_id: 5
684 id: 52
684 id: 52
685 tracker_id: 1
685 tracker_id: 1
686 workflows_107:
686 workflows_107:
687 new_status_id: 2
687 new_status_id: 2
688 role_id: 1
688 role_id: 1
689 old_status_id: 4
689 old_status_id: 4
690 id: 107
690 id: 107
691 tracker_id: 2
691 tracker_id: 2
692 workflows_133:
692 workflows_133:
693 new_status_id: 4
693 new_status_id: 4
694 role_id: 2
694 role_id: 2
695 old_status_id: 3
695 old_status_id: 3
696 id: 133
696 id: 133
697 tracker_id: 2
697 tracker_id: 2
698 workflows_214:
698 workflows_214:
699 new_status_id: 5
699 new_status_id: 5
700 role_id: 2
700 role_id: 2
701 old_status_id: 1
701 old_status_id: 1
702 id: 214
702 id: 214
703 tracker_id: 3
703 tracker_id: 3
704 workflows_241:
704 workflows_241:
705 new_status_id: 2
705 new_status_id: 2
706 role_id: 3
706 role_id: 3
707 old_status_id: 1
707 old_status_id: 1
708 id: 241
708 id: 241
709 tracker_id: 3
709 tracker_id: 3
710 workflows_027:
710 workflows_027:
711 new_status_id: 2
711 new_status_id: 2
712 role_id: 1
712 role_id: 1
713 old_status_id: 6
713 old_status_id: 6
714 id: 27
714 id: 27
715 tracker_id: 1
715 tracker_id: 1
716 workflows_053:
716 workflows_053:
717 new_status_id: 3
717 new_status_id: 3
718 role_id: 2
718 role_id: 2
719 old_status_id: 5
719 old_status_id: 5
720 id: 53
720 id: 53
721 tracker_id: 1
721 tracker_id: 1
722 workflows_080:
722 workflows_080:
723 new_status_id: 6
723 new_status_id: 6
724 role_id: 3
724 role_id: 3
725 old_status_id: 4
725 old_status_id: 4
726 id: 80
726 id: 80
727 tracker_id: 1
727 tracker_id: 1
728 workflows_108:
728 workflows_108:
729 new_status_id: 3
729 new_status_id: 3
730 role_id: 1
730 role_id: 1
731 old_status_id: 4
731 old_status_id: 4
732 id: 108
732 id: 108
733 tracker_id: 2
733 tracker_id: 2
734 workflows_134:
734 workflows_134:
735 new_status_id: 5
735 new_status_id: 5
736 role_id: 2
736 role_id: 2
737 old_status_id: 3
737 old_status_id: 3
738 id: 134
738 id: 134
739 tracker_id: 2
739 tracker_id: 2
740 workflows_160:
740 workflows_160:
741 new_status_id: 6
741 new_status_id: 6
742 role_id: 3
742 role_id: 3
743 old_status_id: 2
743 old_status_id: 2
744 id: 160
744 id: 160
745 tracker_id: 2
745 tracker_id: 2
746 workflows_215:
746 workflows_215:
747 new_status_id: 6
747 new_status_id: 6
748 role_id: 2
748 role_id: 2
749 old_status_id: 1
749 old_status_id: 1
750 id: 215
750 id: 215
751 tracker_id: 3
751 tracker_id: 3
752 workflows_242:
752 workflows_242:
753 new_status_id: 3
753 new_status_id: 3
754 role_id: 3
754 role_id: 3
755 old_status_id: 1
755 old_status_id: 1
756 id: 242
756 id: 242
757 tracker_id: 3
757 tracker_id: 3
758 workflows_028:
758 workflows_028:
759 new_status_id: 3
759 new_status_id: 3
760 role_id: 1
760 role_id: 1
761 old_status_id: 6
761 old_status_id: 6
762 id: 28
762 id: 28
763 tracker_id: 1
763 tracker_id: 1
764 workflows_054:
764 workflows_054:
765 new_status_id: 4
765 new_status_id: 4
766 role_id: 2
766 role_id: 2
767 old_status_id: 5
767 old_status_id: 5
768 id: 54
768 id: 54
769 tracker_id: 1
769 tracker_id: 1
770 workflows_081:
770 workflows_081:
771 new_status_id: 1
771 new_status_id: 1
772 role_id: 3
772 role_id: 3
773 old_status_id: 5
773 old_status_id: 5
774 id: 81
774 id: 81
775 tracker_id: 1
775 tracker_id: 1
776 workflows_109:
776 workflows_109:
777 new_status_id: 5
777 new_status_id: 5
778 role_id: 1
778 role_id: 1
779 old_status_id: 4
779 old_status_id: 4
780 id: 109
780 id: 109
781 tracker_id: 2
781 tracker_id: 2
782 workflows_135:
782 workflows_135:
783 new_status_id: 6
783 new_status_id: 6
784 role_id: 2
784 role_id: 2
785 old_status_id: 3
785 old_status_id: 3
786 id: 135
786 id: 135
787 tracker_id: 2
787 tracker_id: 2
788 workflows_161:
788 workflows_161:
789 new_status_id: 1
789 new_status_id: 1
790 role_id: 3
790 role_id: 3
791 old_status_id: 3
791 old_status_id: 3
792 id: 161
792 id: 161
793 tracker_id: 2
793 tracker_id: 2
794 workflows_216:
794 workflows_216:
795 new_status_id: 1
795 new_status_id: 1
796 role_id: 2
796 role_id: 2
797 old_status_id: 2
797 old_status_id: 2
798 id: 216
798 id: 216
799 tracker_id: 3
799 tracker_id: 3
800 workflows_243:
800 workflows_243:
801 new_status_id: 4
801 new_status_id: 4
802 role_id: 3
802 role_id: 3
803 old_status_id: 1
803 old_status_id: 1
804 id: 243
804 id: 243
805 tracker_id: 3
805 tracker_id: 3
806 workflows_029:
806 workflows_029:
807 new_status_id: 4
807 new_status_id: 4
808 role_id: 1
808 role_id: 1
809 old_status_id: 6
809 old_status_id: 6
810 id: 29
810 id: 29
811 tracker_id: 1
811 tracker_id: 1
812 workflows_055:
812 workflows_055:
813 new_status_id: 6
813 new_status_id: 6
814 role_id: 2
814 role_id: 2
815 old_status_id: 5
815 old_status_id: 5
816 id: 55
816 id: 55
817 tracker_id: 1
817 tracker_id: 1
818 workflows_082:
818 workflows_082:
819 new_status_id: 2
819 new_status_id: 2
820 role_id: 3
820 role_id: 3
821 old_status_id: 5
821 old_status_id: 5
822 id: 82
822 id: 82
823 tracker_id: 1
823 tracker_id: 1
824 workflows_136:
824 workflows_136:
825 new_status_id: 1
825 new_status_id: 1
826 role_id: 2
826 role_id: 2
827 old_status_id: 4
827 old_status_id: 4
828 id: 136
828 id: 136
829 tracker_id: 2
829 tracker_id: 2
830 workflows_162:
830 workflows_162:
831 new_status_id: 2
831 new_status_id: 2
832 role_id: 3
832 role_id: 3
833 old_status_id: 3
833 old_status_id: 3
834 id: 162
834 id: 162
835 tracker_id: 2
835 tracker_id: 2
836 workflows_217:
836 workflows_217:
837 new_status_id: 3
837 new_status_id: 3
838 role_id: 2
838 role_id: 2
839 old_status_id: 2
839 old_status_id: 2
840 id: 217
840 id: 217
841 tracker_id: 3
841 tracker_id: 3
842 workflows_270:
842 workflows_270:
843 new_status_id: 5
843 new_status_id: 5
844 role_id: 3
844 role_id: 3
845 old_status_id: 6
845 old_status_id: 6
846 id: 270
846 id: 270
847 tracker_id: 3
847 tracker_id: 3
848 workflows_244:
848 workflows_244:
849 new_status_id: 5
849 new_status_id: 5
850 role_id: 3
850 role_id: 3
851 old_status_id: 1
851 old_status_id: 1
852 id: 244
852 id: 244
853 tracker_id: 3
853 tracker_id: 3
854 workflows_056:
854 workflows_056:
855 new_status_id: 1
855 new_status_id: 1
856 role_id: 2
856 role_id: 2
857 old_status_id: 6
857 old_status_id: 6
858 id: 56
858 id: 56
859 tracker_id: 1
859 tracker_id: 1
860 workflows_137:
860 workflows_137:
861 new_status_id: 2
861 new_status_id: 2
862 role_id: 2
862 role_id: 2
863 old_status_id: 4
863 old_status_id: 4
864 id: 137
864 id: 137
865 tracker_id: 2
865 tracker_id: 2
866 workflows_163:
866 workflows_163:
867 new_status_id: 4
867 new_status_id: 4
868 role_id: 3
868 role_id: 3
869 old_status_id: 3
869 old_status_id: 3
870 id: 163
870 id: 163
871 tracker_id: 2
871 tracker_id: 2
872 workflows_190:
872 workflows_190:
873 new_status_id: 6
873 new_status_id: 6
874 role_id: 1
874 role_id: 1
875 old_status_id: 2
875 old_status_id: 2
876 id: 190
876 id: 190
877 tracker_id: 3
877 tracker_id: 3
878 workflows_218:
878 workflows_218:
879 new_status_id: 4
879 new_status_id: 4
880 role_id: 2
880 role_id: 2
881 old_status_id: 2
881 old_status_id: 2
882 id: 218
882 id: 218
883 tracker_id: 3
883 tracker_id: 3
884 workflows_245:
884 workflows_245:
885 new_status_id: 6
885 new_status_id: 6
886 role_id: 3
886 role_id: 3
887 old_status_id: 1
887 old_status_id: 1
888 id: 245
888 id: 245
889 tracker_id: 3
889 tracker_id: 3
890 workflows_057:
890 workflows_057:
891 new_status_id: 2
891 new_status_id: 2
892 role_id: 2
892 role_id: 2
893 old_status_id: 6
893 old_status_id: 6
894 id: 57
894 id: 57
895 tracker_id: 1
895 tracker_id: 1
896 workflows_083:
896 workflows_083:
897 new_status_id: 3
897 new_status_id: 3
898 role_id: 3
898 role_id: 3
899 old_status_id: 5
899 old_status_id: 5
900 id: 83
900 id: 83
901 tracker_id: 1
901 tracker_id: 1
902 workflows_138:
902 workflows_138:
903 new_status_id: 3
903 new_status_id: 3
904 role_id: 2
904 role_id: 2
905 old_status_id: 4
905 old_status_id: 4
906 id: 138
906 id: 138
907 tracker_id: 2
907 tracker_id: 2
908 workflows_164:
908 workflows_164:
909 new_status_id: 5
909 new_status_id: 5
910 role_id: 3
910 role_id: 3
911 old_status_id: 3
911 old_status_id: 3
912 id: 164
912 id: 164
913 tracker_id: 2
913 tracker_id: 2
914 workflows_191:
914 workflows_191:
915 new_status_id: 1
915 new_status_id: 1
916 role_id: 1
916 role_id: 1
917 old_status_id: 3
917 old_status_id: 3
918 id: 191
918 id: 191
919 tracker_id: 3
919 tracker_id: 3
920 workflows_219:
920 workflows_219:
921 new_status_id: 5
921 new_status_id: 5
922 role_id: 2
922 role_id: 2
923 old_status_id: 2
923 old_status_id: 2
924 id: 219
924 id: 219
925 tracker_id: 3
925 tracker_id: 3
926 workflows_246:
926 workflows_246:
927 new_status_id: 1
927 new_status_id: 1
928 role_id: 3
928 role_id: 3
929 old_status_id: 2
929 old_status_id: 2
930 id: 246
930 id: 246
931 tracker_id: 3
931 tracker_id: 3
932 workflows_058:
932 workflows_058:
933 new_status_id: 3
933 new_status_id: 3
934 role_id: 2
934 role_id: 2
935 old_status_id: 6
935 old_status_id: 6
936 id: 58
936 id: 58
937 tracker_id: 1
937 tracker_id: 1
938 workflows_084:
938 workflows_084:
939 new_status_id: 4
939 new_status_id: 4
940 role_id: 3
940 role_id: 3
941 old_status_id: 5
941 old_status_id: 5
942 id: 84
942 id: 84
943 tracker_id: 1
943 tracker_id: 1
944 workflows_139:
944 workflows_139:
945 new_status_id: 5
945 new_status_id: 5
946 role_id: 2
946 role_id: 2
947 old_status_id: 4
947 old_status_id: 4
948 id: 139
948 id: 139
949 tracker_id: 2
949 tracker_id: 2
950 workflows_165:
950 workflows_165:
951 new_status_id: 6
951 new_status_id: 6
952 role_id: 3
952 role_id: 3
953 old_status_id: 3
953 old_status_id: 3
954 id: 165
954 id: 165
955 tracker_id: 2
955 tracker_id: 2
956 workflows_192:
956 workflows_192:
957 new_status_id: 2
957 new_status_id: 2
958 role_id: 1
958 role_id: 1
959 old_status_id: 3
959 old_status_id: 3
960 id: 192
960 id: 192
961 tracker_id: 3
961 tracker_id: 3
962 workflows_247:
962 workflows_247:
963 new_status_id: 3
963 new_status_id: 3
964 role_id: 3
964 role_id: 3
965 old_status_id: 2
965 old_status_id: 2
966 id: 247
966 id: 247
967 tracker_id: 3
967 tracker_id: 3
968 workflows_059:
968 workflows_059:
969 new_status_id: 4
969 new_status_id: 4
970 role_id: 2
970 role_id: 2
971 old_status_id: 6
971 old_status_id: 6
972 id: 59
972 id: 59
973 tracker_id: 1
973 tracker_id: 1
974 workflows_085:
974 workflows_085:
975 new_status_id: 6
975 new_status_id: 6
976 role_id: 3
976 role_id: 3
977 old_status_id: 5
977 old_status_id: 5
978 id: 85
978 id: 85
979 tracker_id: 1
979 tracker_id: 1
980 workflows_166:
980 workflows_166:
981 new_status_id: 1
981 new_status_id: 1
982 role_id: 3
982 role_id: 3
983 old_status_id: 4
983 old_status_id: 4
984 id: 166
984 id: 166
985 tracker_id: 2
985 tracker_id: 2
986 workflows_248:
986 workflows_248:
987 new_status_id: 4
987 new_status_id: 4
988 role_id: 3
988 role_id: 3
989 old_status_id: 2
989 old_status_id: 2
990 id: 248
990 id: 248
991 tracker_id: 3
991 tracker_id: 3
992 workflows_086:
992 workflows_086:
993 new_status_id: 1
993 new_status_id: 1
994 role_id: 3
994 role_id: 3
995 old_status_id: 6
995 old_status_id: 6
996 id: 86
996 id: 86
997 tracker_id: 1
997 tracker_id: 1
998 workflows_167:
998 workflows_167:
999 new_status_id: 2
999 new_status_id: 2
1000 role_id: 3
1000 role_id: 3
1001 old_status_id: 4
1001 old_status_id: 4
1002 id: 167
1002 id: 167
1003 tracker_id: 2
1003 tracker_id: 2
1004 workflows_193:
1004 workflows_193:
1005 new_status_id: 4
1005 new_status_id: 4
1006 role_id: 1
1006 role_id: 1
1007 old_status_id: 3
1007 old_status_id: 3
1008 id: 193
1008 id: 193
1009 tracker_id: 3
1009 tracker_id: 3
1010 workflows_249:
1010 workflows_249:
1011 new_status_id: 5
1011 new_status_id: 5
1012 role_id: 3
1012 role_id: 3
1013 old_status_id: 2
1013 old_status_id: 2
1014 id: 249
1014 id: 249
1015 tracker_id: 3
1015 tracker_id: 3
1016 workflows_087:
1016 workflows_087:
1017 new_status_id: 2
1017 new_status_id: 2
1018 role_id: 3
1018 role_id: 3
1019 old_status_id: 6
1019 old_status_id: 6
1020 id: 87
1020 id: 87
1021 tracker_id: 1
1021 tracker_id: 1
1022 workflows_168:
1022 workflows_168:
1023 new_status_id: 3
1023 new_status_id: 3
1024 role_id: 3
1024 role_id: 3
1025 old_status_id: 4
1025 old_status_id: 4
1026 id: 168
1026 id: 168
1027 tracker_id: 2
1027 tracker_id: 2
1028 workflows_194:
1028 workflows_194:
1029 new_status_id: 5
1029 new_status_id: 5
1030 role_id: 1
1030 role_id: 1
1031 old_status_id: 3
1031 old_status_id: 3
1032 id: 194
1032 id: 194
1033 tracker_id: 3
1033 tracker_id: 3
1034 workflows_088:
1034 workflows_088:
1035 new_status_id: 3
1035 new_status_id: 3
1036 role_id: 3
1036 role_id: 3
1037 old_status_id: 6
1037 old_status_id: 6
1038 id: 88
1038 id: 88
1039 tracker_id: 1
1039 tracker_id: 1
1040 workflows_169:
1040 workflows_169:
1041 new_status_id: 5
1041 new_status_id: 5
1042 role_id: 3
1042 role_id: 3
1043 old_status_id: 4
1043 old_status_id: 4
1044 id: 169
1044 id: 169
1045 tracker_id: 2
1045 tracker_id: 2
1046 workflows_195:
1046 workflows_195:
1047 new_status_id: 6
1047 new_status_id: 6
1048 role_id: 1
1048 role_id: 1
1049 old_status_id: 3
1049 old_status_id: 3
1050 id: 195
1050 id: 195
1051 tracker_id: 3
1051 tracker_id: 3
1052 workflows_089:
1052 workflows_089:
1053 new_status_id: 4
1053 new_status_id: 4
1054 role_id: 3
1054 role_id: 3
1055 old_status_id: 6
1055 old_status_id: 6
1056 id: 89
1056 id: 89
1057 tracker_id: 1
1057 tracker_id: 1
1058 workflows_196:
1058 workflows_196:
1059 new_status_id: 1
1059 new_status_id: 1
1060 role_id: 1
1060 role_id: 1
1061 old_status_id: 4
1061 old_status_id: 4
1062 id: 196
1062 id: 196
1063 tracker_id: 3
1063 tracker_id: 3
1064 workflows_197:
1064 workflows_197:
1065 new_status_id: 2
1065 new_status_id: 2
1066 role_id: 1
1066 role_id: 1
1067 old_status_id: 4
1067 old_status_id: 4
1068 id: 197
1068 id: 197
1069 tracker_id: 3
1069 tracker_id: 3
1070 workflows_198:
1070 workflows_198:
1071 new_status_id: 3
1071 new_status_id: 3
1072 role_id: 1
1072 role_id: 1
1073 old_status_id: 4
1073 old_status_id: 4
1074 id: 198
1074 id: 198
1075 tracker_id: 3
1075 tracker_id: 3
1076 workflows_199:
1076 workflows_199:
1077 new_status_id: 5
1077 new_status_id: 5
1078 role_id: 1
1078 role_id: 1
1079 old_status_id: 4
1079 old_status_id: 4
1080 id: 199
1080 id: 199
1081 tracker_id: 3
1081 tracker_id: 3
1082 workflows_010:
1082 workflows_010:
1083 new_status_id: 6
1083 new_status_id: 6
1084 role_id: 1
1084 role_id: 1
1085 old_status_id: 2
1085 old_status_id: 2
1086 id: 10
1086 id: 10
1087 tracker_id: 1
1087 tracker_id: 1
1088 workflows_011:
1088 workflows_011:
1089 new_status_id: 1
1089 new_status_id: 1
1090 role_id: 1
1090 role_id: 1
1091 old_status_id: 3
1091 old_status_id: 3
1092 id: 11
1092 id: 11
1093 tracker_id: 1
1093 tracker_id: 1
1094 workflows_012:
1094 workflows_012:
1095 new_status_id: 2
1095 new_status_id: 2
1096 role_id: 1
1096 role_id: 1
1097 old_status_id: 3
1097 old_status_id: 3
1098 id: 12
1098 id: 12
1099 tracker_id: 1
1099 tracker_id: 1
1100 workflows_200:
1100 workflows_200:
1101 new_status_id: 6
1101 new_status_id: 6
1102 role_id: 1
1102 role_id: 1
1103 old_status_id: 4
1103 old_status_id: 4
1104 id: 200
1104 id: 200
1105 tracker_id: 3
1105 tracker_id: 3
1106 workflows_013:
1106 workflows_013:
1107 new_status_id: 4
1107 new_status_id: 4
1108 role_id: 1
1108 role_id: 1
1109 old_status_id: 3
1109 old_status_id: 3
1110 id: 13
1110 id: 13
1111 tracker_id: 1
1111 tracker_id: 1
1112 workflows_120:
1112 workflows_120:
1113 new_status_id: 5
1113 new_status_id: 5
1114 role_id: 1
1114 role_id: 1
1115 old_status_id: 6
1115 old_status_id: 6
1116 id: 120
1116 id: 120
1117 tracker_id: 2
1117 tracker_id: 2
1118 workflows_201:
1118 workflows_201:
1119 new_status_id: 1
1119 new_status_id: 1
1120 role_id: 1
1120 role_id: 1
1121 old_status_id: 5
1121 old_status_id: 5
1122 id: 201
1122 id: 201
1123 tracker_id: 3
1123 tracker_id: 3
1124 workflows_040:
1124 workflows_040:
1125 new_status_id: 6
1125 new_status_id: 6
1126 role_id: 2
1126 role_id: 2
1127 old_status_id: 2
1127 old_status_id: 2
1128 id: 40
1128 id: 40
1129 tracker_id: 1
1129 tracker_id: 1
1130 workflows_121:
1130 workflows_121:
1131 new_status_id: 2
1131 new_status_id: 2
1132 role_id: 2
1132 role_id: 2
1133 old_status_id: 1
1133 old_status_id: 1
1134 id: 121
1134 id: 121
1135 tracker_id: 2
1135 tracker_id: 2
1136 workflows_202:
1136 workflows_202:
1137 new_status_id: 2
1137 new_status_id: 2
1138 role_id: 1
1138 role_id: 1
1139 old_status_id: 5
1139 old_status_id: 5
1140 id: 202
1140 id: 202
1141 tracker_id: 3
1141 tracker_id: 3
1142 workflows_014:
1142 workflows_014:
1143 new_status_id: 5
1143 new_status_id: 5
1144 role_id: 1
1144 role_id: 1
1145 old_status_id: 3
1145 old_status_id: 3
1146 id: 14
1146 id: 14
1147 tracker_id: 1
1147 tracker_id: 1
1148 workflows_041:
1148 workflows_041:
1149 new_status_id: 1
1149 new_status_id: 1
1150 role_id: 2
1150 role_id: 2
1151 old_status_id: 3
1151 old_status_id: 3
1152 id: 41
1152 id: 41
1153 tracker_id: 1
1153 tracker_id: 1
1154 workflows_122:
1154 workflows_122:
1155 new_status_id: 3
1155 new_status_id: 3
1156 role_id: 2
1156 role_id: 2
1157 old_status_id: 1
1157 old_status_id: 1
1158 id: 122
1158 id: 122
1159 tracker_id: 2
1159 tracker_id: 2
1160 workflows_203:
1160 workflows_203:
1161 new_status_id: 3
1161 new_status_id: 3
1162 role_id: 1
1162 role_id: 1
1163 old_status_id: 5
1163 old_status_id: 5
1164 id: 203
1164 id: 203
1165 tracker_id: 3
1165 tracker_id: 3
1166 workflows_015:
1166 workflows_015:
1167 new_status_id: 6
1167 new_status_id: 6
1168 role_id: 1
1168 role_id: 1
1169 old_status_id: 3
1169 old_status_id: 3
1170 id: 15
1170 id: 15
1171 tracker_id: 1
1171 tracker_id: 1
1172 workflows_230:
1172 workflows_230:
1173 new_status_id: 6
1173 new_status_id: 6
1174 role_id: 2
1174 role_id: 2
1175 old_status_id: 4
1175 old_status_id: 4
1176 id: 230
1176 id: 230
1177 tracker_id: 3
1177 tracker_id: 3
1178 workflows_123:
1178 workflows_123:
1179 new_status_id: 4
1179 new_status_id: 4
1180 role_id: 2
1180 role_id: 2
1181 old_status_id: 1
1181 old_status_id: 1
1182 id: 123
1182 id: 123
1183 tracker_id: 2
1183 tracker_id: 2
1184 workflows_204:
1184 workflows_204:
1185 new_status_id: 4
1185 new_status_id: 4
1186 role_id: 1
1186 role_id: 1
1187 old_status_id: 5
1187 old_status_id: 5
1188 id: 204
1188 id: 204
1189 tracker_id: 3
1189 tracker_id: 3
1190 workflows_016:
1190 workflows_016:
1191 new_status_id: 1
1191 new_status_id: 1
1192 role_id: 1
1192 role_id: 1
1193 old_status_id: 4
1193 old_status_id: 4
1194 id: 16
1194 id: 16
1195 tracker_id: 1
1195 tracker_id: 1
1196 workflows_042:
1196 workflows_042:
1197 new_status_id: 2
1197 new_status_id: 2
1198 role_id: 2
1198 role_id: 2
1199 old_status_id: 3
1199 old_status_id: 3
1200 id: 42
1200 id: 42
1201 tracker_id: 1
1201 tracker_id: 1
1202 workflows_231:
1202 workflows_231:
1203 new_status_id: 1
1203 new_status_id: 1
1204 role_id: 2
1204 role_id: 2
1205 old_status_id: 5
1205 old_status_id: 5
1206 id: 231
1206 id: 231
1207 tracker_id: 3
1207 tracker_id: 3
1208 workflows_070:
1208 workflows_070:
1209 new_status_id: 6
1209 new_status_id: 6
1210 role_id: 3
1210 role_id: 3
1211 old_status_id: 2
1211 old_status_id: 2
1212 id: 70
1212 id: 70
1213 tracker_id: 1
1213 tracker_id: 1
1214 workflows_124:
1214 workflows_124:
1215 new_status_id: 5
1215 new_status_id: 5
1216 role_id: 2
1216 role_id: 2
1217 old_status_id: 1
1217 old_status_id: 1
1218 id: 124
1218 id: 124
1219 tracker_id: 2
1219 tracker_id: 2
1220 workflows_150:
1220 workflows_150:
1221 new_status_id: 5
1221 new_status_id: 5
1222 role_id: 2
1222 role_id: 2
1223 old_status_id: 6
1223 old_status_id: 6
1224 id: 150
1224 id: 150
1225 tracker_id: 2
1225 tracker_id: 2
1226 workflows_205:
1226 workflows_205:
1227 new_status_id: 6
1227 new_status_id: 6
1228 role_id: 1
1228 role_id: 1
1229 old_status_id: 5
1229 old_status_id: 5
1230 id: 205
1230 id: 205
1231 tracker_id: 3
1231 tracker_id: 3
1232 workflows_017:
1232 workflows_017:
1233 new_status_id: 2
1233 new_status_id: 2
1234 role_id: 1
1234 role_id: 1
1235 old_status_id: 4
1235 old_status_id: 4
1236 id: 17
1236 id: 17
1237 tracker_id: 1
1237 tracker_id: 1
1238 workflows_043:
1238 workflows_043:
1239 new_status_id: 4
1239 new_status_id: 4
1240 role_id: 2
1240 role_id: 2
1241 old_status_id: 3
1241 old_status_id: 3
1242 id: 43
1242 id: 43
1243 tracker_id: 1
1243 tracker_id: 1
1244 workflows_232:
1244 workflows_232:
1245 new_status_id: 2
1245 new_status_id: 2
1246 role_id: 2
1246 role_id: 2
1247 old_status_id: 5
1247 old_status_id: 5
1248 id: 232
1248 id: 232
1249 tracker_id: 3
1249 tracker_id: 3
1250 workflows_125:
1250 workflows_125:
1251 new_status_id: 6
1251 new_status_id: 6
1252 role_id: 2
1252 role_id: 2
1253 old_status_id: 1
1253 old_status_id: 1
1254 id: 125
1254 id: 125
1255 tracker_id: 2
1255 tracker_id: 2
1256 workflows_151:
1256 workflows_151:
1257 new_status_id: 2
1257 new_status_id: 2
1258 role_id: 3
1258 role_id: 3
1259 old_status_id: 1
1259 old_status_id: 1
1260 id: 151
1260 id: 151
1261 tracker_id: 2
1261 tracker_id: 2
1262 workflows_206:
1262 workflows_206:
1263 new_status_id: 1
1263 new_status_id: 1
1264 role_id: 1
1264 role_id: 1
1265 old_status_id: 6
1265 old_status_id: 6
1266 id: 206
1266 id: 206
1267 tracker_id: 3
1267 tracker_id: 3
1268 workflows_018:
1268 workflows_018:
1269 new_status_id: 3
1269 new_status_id: 3
1270 role_id: 1
1270 role_id: 1
1271 old_status_id: 4
1271 old_status_id: 4
1272 id: 18
1272 id: 18
1273 tracker_id: 1
1273 tracker_id: 1
1274 workflows_044:
1274 workflows_044:
1275 new_status_id: 5
1275 new_status_id: 5
1276 role_id: 2
1276 role_id: 2
1277 old_status_id: 3
1277 old_status_id: 3
1278 id: 44
1278 id: 44
1279 tracker_id: 1
1279 tracker_id: 1
1280 workflows_071:
1280 workflows_071:
1281 new_status_id: 1
1281 new_status_id: 1
1282 role_id: 3
1282 role_id: 3
1283 old_status_id: 3
1283 old_status_id: 3
1284 id: 71
1284 id: 71
1285 tracker_id: 1
1285 tracker_id: 1
1286 workflows_233:
1286 workflows_233:
1287 new_status_id: 3
1287 new_status_id: 3
1288 role_id: 2
1288 role_id: 2
1289 old_status_id: 5
1289 old_status_id: 5
1290 id: 233
1290 id: 233
1291 tracker_id: 3
1291 tracker_id: 3
1292 workflows_126:
1292 workflows_126:
1293 new_status_id: 1
1293 new_status_id: 1
1294 role_id: 2
1294 role_id: 2
1295 old_status_id: 2
1295 old_status_id: 2
1296 id: 126
1296 id: 126
1297 tracker_id: 2
1297 tracker_id: 2
1298 workflows_152:
1298 workflows_152:
1299 new_status_id: 3
1299 new_status_id: 3
1300 role_id: 3
1300 role_id: 3
1301 old_status_id: 1
1301 old_status_id: 1
1302 id: 152
1302 id: 152
1303 tracker_id: 2
1303 tracker_id: 2
1304 workflows_207:
1304 workflows_207:
1305 new_status_id: 2
1305 new_status_id: 2
1306 role_id: 1
1306 role_id: 1
1307 old_status_id: 6
1307 old_status_id: 6
1308 id: 207
1308 id: 207
1309 tracker_id: 3
1309 tracker_id: 3
1310 workflows_019:
1310 workflows_019:
1311 new_status_id: 5
1311 new_status_id: 5
1312 role_id: 1
1312 role_id: 1
1313 old_status_id: 4
1313 old_status_id: 4
1314 id: 19
1314 id: 19
1315 tracker_id: 1
1315 tracker_id: 1
1316 workflows_045:
1316 workflows_045:
1317 new_status_id: 6
1317 new_status_id: 6
1318 role_id: 2
1318 role_id: 2
1319 old_status_id: 3
1319 old_status_id: 3
1320 id: 45
1320 id: 45
1321 tracker_id: 1
1321 tracker_id: 1
1322 workflows_260:
1322 workflows_260:
1323 new_status_id: 6
1323 new_status_id: 6
1324 role_id: 3
1324 role_id: 3
1325 old_status_id: 4
1325 old_status_id: 4
1326 id: 260
1326 id: 260
1327 tracker_id: 3
1327 tracker_id: 3
1328 workflows_234:
1328 workflows_234:
1329 new_status_id: 4
1329 new_status_id: 4
1330 role_id: 2
1330 role_id: 2
1331 old_status_id: 5
1331 old_status_id: 5
1332 id: 234
1332 id: 234
1333 tracker_id: 3
1333 tracker_id: 3
1334 workflows_127:
1334 workflows_127:
1335 new_status_id: 3
1335 new_status_id: 3
1336 role_id: 2
1336 role_id: 2
1337 old_status_id: 2
1337 old_status_id: 2
1338 id: 127
1338 id: 127
1339 tracker_id: 2
1339 tracker_id: 2
1340 workflows_153:
1340 workflows_153:
1341 new_status_id: 4
1341 new_status_id: 4
1342 role_id: 3
1342 role_id: 3
1343 old_status_id: 1
1343 old_status_id: 1
1344 id: 153
1344 id: 153
1345 tracker_id: 2
1345 tracker_id: 2
1346 workflows_180:
1346 workflows_180:
1347 new_status_id: 5
1347 new_status_id: 5
1348 role_id: 3
1348 role_id: 3
1349 old_status_id: 6
1349 old_status_id: 6
1350 id: 180
1350 id: 180
1351 tracker_id: 2
1351 tracker_id: 2
1352 workflows_208:
1352 workflows_208:
1353 new_status_id: 3
1353 new_status_id: 3
1354 role_id: 1
1354 role_id: 1
1355 old_status_id: 6
1355 old_status_id: 6
1356 id: 208
1356 id: 208
1357 tracker_id: 3
1357 tracker_id: 3
1358 workflows_046:
1358 workflows_046:
1359 new_status_id: 1
1359 new_status_id: 1
1360 role_id: 2
1360 role_id: 2
1361 old_status_id: 4
1361 old_status_id: 4
1362 id: 46
1362 id: 46
1363 tracker_id: 1
1363 tracker_id: 1
1364 workflows_072:
1364 workflows_072:
1365 new_status_id: 2
1365 new_status_id: 2
1366 role_id: 3
1366 role_id: 3
1367 old_status_id: 3
1367 old_status_id: 3
1368 id: 72
1368 id: 72
1369 tracker_id: 1
1369 tracker_id: 1
1370 workflows_261:
1370 workflows_261:
1371 new_status_id: 1
1371 new_status_id: 1
1372 role_id: 3
1372 role_id: 3
1373 old_status_id: 5
1373 old_status_id: 5
1374 id: 261
1374 id: 261
1375 tracker_id: 3
1375 tracker_id: 3
1376 workflows_235:
1376 workflows_235:
1377 new_status_id: 6
1377 new_status_id: 6
1378 role_id: 2
1378 role_id: 2
1379 old_status_id: 5
1379 old_status_id: 5
1380 id: 235
1380 id: 235
1381 tracker_id: 3
1381 tracker_id: 3
1382 workflows_154:
1382 workflows_154:
1383 new_status_id: 5
1383 new_status_id: 5
1384 role_id: 3
1384 role_id: 3
1385 old_status_id: 1
1385 old_status_id: 1
1386 id: 154
1386 id: 154
1387 tracker_id: 2
1387 tracker_id: 2
1388 workflows_181:
1388 workflows_181:
1389 new_status_id: 2
1389 new_status_id: 2
1390 role_id: 1
1390 role_id: 1
1391 old_status_id: 1
1391 old_status_id: 1
1392 id: 181
1392 id: 181
1393 tracker_id: 3
1393 tracker_id: 3
1394 workflows_209:
1394 workflows_209:
1395 new_status_id: 4
1395 new_status_id: 4
1396 role_id: 1
1396 role_id: 1
1397 old_status_id: 6
1397 old_status_id: 6
1398 id: 209
1398 id: 209
1399 tracker_id: 3
1399 tracker_id: 3
1400 workflows_047:
1400 workflows_047:
1401 new_status_id: 2
1401 new_status_id: 2
1402 role_id: 2
1402 role_id: 2
1403 old_status_id: 4
1403 old_status_id: 4
1404 id: 47
1404 id: 47
1405 tracker_id: 1
1405 tracker_id: 1
1406 workflows_073:
1406 workflows_073:
1407 new_status_id: 4
1407 new_status_id: 4
1408 role_id: 3
1408 role_id: 3
1409 old_status_id: 3
1409 old_status_id: 3
1410 id: 73
1410 id: 73
1411 tracker_id: 1
1411 tracker_id: 1
1412 workflows_128:
1412 workflows_128:
1413 new_status_id: 4
1413 new_status_id: 4
1414 role_id: 2
1414 role_id: 2
1415 old_status_id: 2
1415 old_status_id: 2
1416 id: 128
1416 id: 128
1417 tracker_id: 2
1417 tracker_id: 2
1418 workflows_262:
1418 workflows_262:
1419 new_status_id: 2
1419 new_status_id: 2
1420 role_id: 3
1420 role_id: 3
1421 old_status_id: 5
1421 old_status_id: 5
1422 id: 262
1422 id: 262
1423 tracker_id: 3
1423 tracker_id: 3
1424 workflows_236:
1424 workflows_236:
1425 new_status_id: 1
1425 new_status_id: 1
1426 role_id: 2
1426 role_id: 2
1427 old_status_id: 6
1427 old_status_id: 6
1428 id: 236
1428 id: 236
1429 tracker_id: 3
1429 tracker_id: 3
1430 workflows_155:
1430 workflows_155:
1431 new_status_id: 6
1431 new_status_id: 6
1432 role_id: 3
1432 role_id: 3
1433 old_status_id: 1
1433 old_status_id: 1
1434 id: 155
1434 id: 155
1435 tracker_id: 2
1435 tracker_id: 2
1436 workflows_048:
1436 workflows_048:
1437 new_status_id: 3
1437 new_status_id: 3
1438 role_id: 2
1438 role_id: 2
1439 old_status_id: 4
1439 old_status_id: 4
1440 id: 48
1440 id: 48
1441 tracker_id: 1
1441 tracker_id: 1
1442 workflows_074:
1442 workflows_074:
1443 new_status_id: 5
1443 new_status_id: 5
1444 role_id: 3
1444 role_id: 3
1445 old_status_id: 3
1445 old_status_id: 3
1446 id: 74
1446 id: 74
1447 tracker_id: 1
1447 tracker_id: 1
1448 workflows_129:
1448 workflows_129:
1449 new_status_id: 5
1449 new_status_id: 5
1450 role_id: 2
1450 role_id: 2
1451 old_status_id: 2
1451 old_status_id: 2
1452 id: 129
1452 id: 129
1453 tracker_id: 2
1453 tracker_id: 2
1454 workflows_263:
1454 workflows_263:
1455 new_status_id: 3
1455 new_status_id: 3
1456 role_id: 3
1456 role_id: 3
1457 old_status_id: 5
1457 old_status_id: 5
1458 id: 263
1458 id: 263
1459 tracker_id: 3
1459 tracker_id: 3
1460 workflows_237:
1460 workflows_237:
1461 new_status_id: 2
1461 new_status_id: 2
1462 role_id: 2
1462 role_id: 2
1463 old_status_id: 6
1463 old_status_id: 6
1464 id: 237
1464 id: 237
1465 tracker_id: 3
1465 tracker_id: 3
1466 workflows_182:
1466 workflows_182:
1467 new_status_id: 3
1467 new_status_id: 3
1468 role_id: 1
1468 role_id: 1
1469 old_status_id: 1
1469 old_status_id: 1
1470 id: 182
1470 id: 182
1471 tracker_id: 3
1471 tracker_id: 3
1472 workflows_049:
1472 workflows_049:
1473 new_status_id: 5
1473 new_status_id: 5
1474 role_id: 2
1474 role_id: 2
1475 old_status_id: 4
1475 old_status_id: 4
1476 id: 49
1476 id: 49
1477 tracker_id: 1
1477 tracker_id: 1
1478 workflows_075:
1478 workflows_075:
1479 new_status_id: 6
1479 new_status_id: 6
1480 role_id: 3
1480 role_id: 3
1481 old_status_id: 3
1481 old_status_id: 3
1482 id: 75
1482 id: 75
1483 tracker_id: 1
1483 tracker_id: 1
1484 workflows_156:
1484 workflows_156:
1485 new_status_id: 1
1485 new_status_id: 1
1486 role_id: 3
1486 role_id: 3
1487 old_status_id: 2
1487 old_status_id: 2
1488 id: 156
1488 id: 156
1489 tracker_id: 2
1489 tracker_id: 2
1490 workflows_264:
1490 workflows_264:
1491 new_status_id: 4
1491 new_status_id: 4
1492 role_id: 3
1492 role_id: 3
1493 old_status_id: 5
1493 old_status_id: 5
1494 id: 264
1494 id: 264
1495 tracker_id: 3
1495 tracker_id: 3
1496 workflows_238:
1496 workflows_238:
1497 new_status_id: 3
1497 new_status_id: 3
1498 role_id: 2
1498 role_id: 2
1499 old_status_id: 6
1499 old_status_id: 6
1500 id: 238
1500 id: 238
1501 tracker_id: 3
1501 tracker_id: 3
1502 workflows_183:
1502 workflows_183:
1503 new_status_id: 4
1503 new_status_id: 4
1504 role_id: 1
1504 role_id: 1
1505 old_status_id: 1
1505 old_status_id: 1
1506 id: 183
1506 id: 183
1507 tracker_id: 3
1507 tracker_id: 3
1508 workflows_076:
1508 workflows_076:
1509 new_status_id: 1
1509 new_status_id: 1
1510 role_id: 3
1510 role_id: 3
1511 old_status_id: 4
1511 old_status_id: 4
1512 id: 76
1512 id: 76
1513 tracker_id: 1
1513 tracker_id: 1
1514 workflows_157:
1514 workflows_157:
1515 new_status_id: 3
1515 new_status_id: 3
1516 role_id: 3
1516 role_id: 3
1517 old_status_id: 2
1517 old_status_id: 2
1518 id: 157
1518 id: 157
1519 tracker_id: 2
1519 tracker_id: 2
1520 workflows_265:
1520 workflows_265:
1521 new_status_id: 6
1521 new_status_id: 6
1522 role_id: 3
1522 role_id: 3
1523 old_status_id: 5
1523 old_status_id: 5
1524 id: 265
1524 id: 265
1525 tracker_id: 3
1525 tracker_id: 3
1526 workflows_239:
1526 workflows_239:
1527 new_status_id: 4
1527 new_status_id: 4
1528 role_id: 2
1528 role_id: 2
1529 old_status_id: 6
1529 old_status_id: 6
1530 id: 239
1530 id: 239
1531 tracker_id: 3
1531 tracker_id: 3
1532 workflows_077:
1532 workflows_077:
1533 new_status_id: 2
1533 new_status_id: 2
1534 role_id: 3
1534 role_id: 3
1535 old_status_id: 4
1535 old_status_id: 4
1536 id: 77
1536 id: 77
1537 tracker_id: 1
1537 tracker_id: 1
1538 workflows_158:
1538 workflows_158:
1539 new_status_id: 4
1539 new_status_id: 4
1540 role_id: 3
1540 role_id: 3
1541 old_status_id: 2
1541 old_status_id: 2
1542 id: 158
1542 id: 158
1543 tracker_id: 2
1543 tracker_id: 2
1544 workflows_184:
1544 workflows_184:
1545 new_status_id: 5
1545 new_status_id: 5
1546 role_id: 1
1546 role_id: 1
1547 old_status_id: 1
1547 old_status_id: 1
1548 id: 184
1548 id: 184
1549 tracker_id: 3
1549 tracker_id: 3
1550 workflows_266:
1550 workflows_266:
1551 new_status_id: 1
1551 new_status_id: 1
1552 role_id: 3
1552 role_id: 3
1553 old_status_id: 6
1553 old_status_id: 6
1554 id: 266
1554 id: 266
1555 tracker_id: 3
1555 tracker_id: 3
1556 workflows_078:
1556 workflows_078:
1557 new_status_id: 3
1557 new_status_id: 3
1558 role_id: 3
1558 role_id: 3
1559 old_status_id: 4
1559 old_status_id: 4
1560 id: 78
1560 id: 78
1561 tracker_id: 1
1561 tracker_id: 1
1562 workflows_159:
1562 workflows_159:
1563 new_status_id: 5
1563 new_status_id: 5
1564 role_id: 3
1564 role_id: 3
1565 old_status_id: 2
1565 old_status_id: 2
1566 id: 159
1566 id: 159
1567 tracker_id: 2
1567 tracker_id: 2
1568 workflows_185:
1568 workflows_185:
1569 new_status_id: 6
1569 new_status_id: 6
1570 role_id: 1
1570 role_id: 1
1571 old_status_id: 1
1571 old_status_id: 1
1572 id: 185
1572 id: 185
1573 tracker_id: 3
1573 tracker_id: 3
1574 workflows_267:
1574 workflows_267:
1575 new_status_id: 2
1575 new_status_id: 2
1576 role_id: 3
1576 role_id: 3
1577 old_status_id: 6
1577 old_status_id: 6
1578 id: 267
1578 id: 267
1579 tracker_id: 3
1579 tracker_id: 3
1580 workflows_079:
1580 workflows_079:
1581 new_status_id: 5
1581 new_status_id: 5
1582 role_id: 3
1582 role_id: 3
1583 old_status_id: 4
1583 old_status_id: 4
1584 id: 79
1584 id: 79
1585 tracker_id: 1
1585 tracker_id: 1
1586 workflows_186:
1586 workflows_186:
1587 new_status_id: 1
1587 new_status_id: 1
1588 role_id: 1
1588 role_id: 1
1589 old_status_id: 2
1589 old_status_id: 2
1590 id: 186
1590 id: 186
1591 tracker_id: 3
1591 tracker_id: 3
1592 workflows_268:
1592 workflows_268:
1593 new_status_id: 3
1593 new_status_id: 3
1594 role_id: 3
1594 role_id: 3
1595 old_status_id: 6
1595 old_status_id: 6
1596 id: 268
1596 id: 268
1597 tracker_id: 3
1597 tracker_id: 3
1598 workflows_187:
1598 workflows_187:
1599 new_status_id: 3
1599 new_status_id: 3
1600 role_id: 1
1600 role_id: 1
1601 old_status_id: 2
1601 old_status_id: 2
1602 id: 187
1602 id: 187
1603 tracker_id: 3
1603 tracker_id: 3
1604 workflows_269:
1604 workflows_269:
1605 new_status_id: 4
1605 new_status_id: 4
1606 role_id: 3
1606 role_id: 3
1607 old_status_id: 6
1607 old_status_id: 6
1608 id: 269
1608 id: 269
1609 tracker_id: 3
1609 tracker_id: 3
1610 workflows_188:
1610 workflows_188:
1611 new_status_id: 4
1611 new_status_id: 4
1612 role_id: 1
1612 role_id: 1
1613 old_status_id: 2
1613 old_status_id: 2
1614 id: 188
1614 id: 188
1615 tracker_id: 3
1615 tracker_id: 3
@@ -1,61 +1,61
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.dirname(__FILE__) + '/../test_helper'
18 require File.dirname(__FILE__) + '/../test_helper'
19 require 'custom_fields_controller'
19 require 'custom_fields_controller'
20
20
21 # Re-raise errors caught by the controller.
21 # Re-raise errors caught by the controller.
22 class CustomFieldsController; def rescue_action(e) raise e end; end
22 class CustomFieldsController; def rescue_action(e) raise e end; end
23
23
24 class CustomFieldsControllerTest < ActionController::TestCase
24 class CustomFieldsControllerTest < ActionController::TestCase
25 fixtures :custom_fields, :trackers, :users
25 fixtures :custom_fields, :trackers, :users
26
26
27 def setup
27 def setup
28 @controller = CustomFieldsController.new
28 @controller = CustomFieldsController.new
29 @request = ActionController::TestRequest.new
29 @request = ActionController::TestRequest.new
30 @response = ActionController::TestResponse.new
30 @response = ActionController::TestResponse.new
31 @request.session[:user_id] = 1
31 @request.session[:user_id] = 1
32 end
32 end
33
33
34 def test_post_new_list_custom_field
34 def test_post_new_list_custom_field
35 assert_difference 'CustomField.count' do
35 assert_difference 'CustomField.count' do
36 post :new, :type => "IssueCustomField",
36 post :new, :type => "IssueCustomField",
37 :custom_field => {:name => "test_post_new_list",
37 :custom_field => {:name => "test_post_new_list",
38 :default_value => "",
38 :default_value => "",
39 :min_length => "0",
39 :min_length => "0",
40 :searchable => "0",
40 :searchable => "0",
41 :regexp => "",
41 :regexp => "",
42 :is_for_all => "1",
42 :is_for_all => "1",
43 :possible_values => "0.1\n0.2\n",
43 :possible_values => "0.1\n0.2\n",
44 :max_length => "0",
44 :max_length => "0",
45 :is_filter => "0",
45 :is_filter => "0",
46 :is_required =>"0",
46 :is_required =>"0",
47 :field_format => "list",
47 :field_format => "list",
48 :tracker_ids => ["1", ""]}
48 :tracker_ids => ["1", ""]}
49 end
49 end
50 assert_redirected_to '/custom_fields?tab=IssueCustomField'
50 assert_redirected_to '/custom_fields?tab=IssueCustomField'
51 field = IssueCustomField.find_by_name('test_post_new_list')
51 field = IssueCustomField.find_by_name('test_post_new_list')
52 assert_not_nil field
52 assert_not_nil field
53 assert_equal ["0.1", "0.2"], field.possible_values
53 assert_equal ["0.1", "0.2"], field.possible_values
54 assert_equal 1, field.trackers.size
54 assert_equal 1, field.trackers.size
55 end
55 end
56
56
57 def test_invalid_custom_field_class_should_redirect_to_list
57 def test_invalid_custom_field_class_should_redirect_to_list
58 get :new, :type => 'UnknownCustomField'
58 get :new, :type => 'UnknownCustomField'
59 assert_redirected_to '/custom_fields'
59 assert_redirected_to '/custom_fields'
60 end
60 end
61 end
61 end
This diff has been collapsed as it changes many lines, (1154 lines changed) Show them Hide them
@@ -1,577 +1,577
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2008 Jean-Philippe Lang
2 # Copyright (C) 2006-2008 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.dirname(__FILE__) + '/../test_helper'
18 require File.dirname(__FILE__) + '/../test_helper'
19 require 'projects_controller'
19 require 'projects_controller'
20
20
21 # Re-raise errors caught by the controller.
21 # Re-raise errors caught by the controller.
22 class ProjectsController; def rescue_action(e) raise e end; end
22 class ProjectsController; def rescue_action(e) raise e end; end
23
23
24 class ProjectsControllerTest < ActionController::TestCase
24 class ProjectsControllerTest < ActionController::TestCase
25 fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
25 fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
26 :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
26 :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
27 :attachments
27 :attachments
28
28
29 def setup
29 def setup
30 @controller = ProjectsController.new
30 @controller = ProjectsController.new
31 @request = ActionController::TestRequest.new
31 @request = ActionController::TestRequest.new
32 @response = ActionController::TestResponse.new
32 @response = ActionController::TestResponse.new
33 @request.session[:user_id] = nil
33 @request.session[:user_id] = nil
34 Setting.default_language = 'en'
34 Setting.default_language = 'en'
35 end
35 end
36
36
37 def test_index_routing
37 def test_index_routing
38 assert_routing(
38 assert_routing(
39 {:method => :get, :path => '/projects'},
39 {:method => :get, :path => '/projects'},
40 :controller => 'projects', :action => 'index'
40 :controller => 'projects', :action => 'index'
41 )
41 )
42 end
42 end
43
43
44 def test_index
44 def test_index
45 get :index
45 get :index
46 assert_response :success
46 assert_response :success
47 assert_template 'index'
47 assert_template 'index'
48 assert_not_nil assigns(:projects)
48 assert_not_nil assigns(:projects)
49
49
50 assert_tag :ul, :child => {:tag => 'li',
50 assert_tag :ul, :child => {:tag => 'li',
51 :descendant => {:tag => 'a', :content => 'eCookbook'},
51 :descendant => {:tag => 'a', :content => 'eCookbook'},
52 :child => { :tag => 'ul',
52 :child => { :tag => 'ul',
53 :descendant => { :tag => 'a',
53 :descendant => { :tag => 'a',
54 :content => 'Child of private child'
54 :content => 'Child of private child'
55 }
55 }
56 }
56 }
57 }
57 }
58
58
59 assert_no_tag :a, :content => /Private child of eCookbook/
59 assert_no_tag :a, :content => /Private child of eCookbook/
60 end
60 end
61
61
62 def test_index_atom_routing
62 def test_index_atom_routing
63 assert_routing(
63 assert_routing(
64 {:method => :get, :path => '/projects.atom'},
64 {:method => :get, :path => '/projects.atom'},
65 :controller => 'projects', :action => 'index', :format => 'atom'
65 :controller => 'projects', :action => 'index', :format => 'atom'
66 )
66 )
67 end
67 end
68
68
69 def test_index_atom
69 def test_index_atom
70 get :index, :format => 'atom'
70 get :index, :format => 'atom'
71 assert_response :success
71 assert_response :success
72 assert_template 'common/feed.atom.rxml'
72 assert_template 'common/feed.atom.rxml'
73 assert_select 'feed>title', :text => 'Redmine: Latest projects'
73 assert_select 'feed>title', :text => 'Redmine: Latest projects'
74 assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_by(User.current))
74 assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_by(User.current))
75 end
75 end
76
76
77 def test_add_routing
77 def test_add_routing
78 assert_routing(
78 assert_routing(
79 {:method => :get, :path => '/projects/new'},
79 {:method => :get, :path => '/projects/new'},
80 :controller => 'projects', :action => 'add'
80 :controller => 'projects', :action => 'add'
81 )
81 )
82 assert_recognizes(
82 assert_recognizes(
83 {:controller => 'projects', :action => 'add'},
83 {:controller => 'projects', :action => 'add'},
84 {:method => :post, :path => '/projects/new'}
84 {:method => :post, :path => '/projects/new'}
85 )
85 )
86 assert_recognizes(
86 assert_recognizes(
87 {:controller => 'projects', :action => 'add'},
87 {:controller => 'projects', :action => 'add'},
88 {:method => :post, :path => '/projects'}
88 {:method => :post, :path => '/projects'}
89 )
89 )
90 end
90 end
91
91
92 def test_get_add
92 def test_get_add
93 @request.session[:user_id] = 1
93 @request.session[:user_id] = 1
94 get :add
94 get :add
95 assert_response :success
95 assert_response :success
96 assert_template 'add'
96 assert_template 'add'
97 end
97 end
98
98
99 def test_get_add_by_non_admin
99 def test_get_add_by_non_admin
100 @request.session[:user_id] = 2
100 @request.session[:user_id] = 2
101 get :add
101 get :add
102 assert_response :success
102 assert_response :success
103 assert_template 'add'
103 assert_template 'add'
104 end
104 end
105
105
106 def test_post_add
106 def test_post_add
107 @request.session[:user_id] = 1
107 @request.session[:user_id] = 1
108 post :add, :project => { :name => "blog",
108 post :add, :project => { :name => "blog",
109 :description => "weblog",
109 :description => "weblog",
110 :identifier => "blog",
110 :identifier => "blog",
111 :is_public => 1,
111 :is_public => 1,
112 :custom_field_values => { '3' => 'Beta' }
112 :custom_field_values => { '3' => 'Beta' }
113 }
113 }
114 assert_redirected_to '/projects/blog/settings'
114 assert_redirected_to '/projects/blog/settings'
115
115
116 project = Project.find_by_name('blog')
116 project = Project.find_by_name('blog')
117 assert_kind_of Project, project
117 assert_kind_of Project, project
118 assert_equal 'weblog', project.description
118 assert_equal 'weblog', project.description
119 assert_equal true, project.is_public?
119 assert_equal true, project.is_public?
120 end
120 end
121
121
122 def test_post_add_by_non_admin
122 def test_post_add_by_non_admin
123 @request.session[:user_id] = 2
123 @request.session[:user_id] = 2
124 post :add, :project => { :name => "blog",
124 post :add, :project => { :name => "blog",
125 :description => "weblog",
125 :description => "weblog",
126 :identifier => "blog",
126 :identifier => "blog",
127 :is_public => 1,
127 :is_public => 1,
128 :custom_field_values => { '3' => 'Beta' }
128 :custom_field_values => { '3' => 'Beta' }
129 }
129 }
130 assert_redirected_to '/projects/blog/settings'
130 assert_redirected_to '/projects/blog/settings'
131
131
132 project = Project.find_by_name('blog')
132 project = Project.find_by_name('blog')
133 assert_kind_of Project, project
133 assert_kind_of Project, project
134 assert_equal 'weblog', project.description
134 assert_equal 'weblog', project.description
135 assert_equal true, project.is_public?
135 assert_equal true, project.is_public?
136
136
137 # User should be added as a project member
137 # User should be added as a project member
138 assert User.find(2).member_of?(project)
138 assert User.find(2).member_of?(project)
139 assert_equal 1, project.members.size
139 assert_equal 1, project.members.size
140 end
140 end
141
141
142 def test_show_routing
142 def test_show_routing
143 assert_routing(
143 assert_routing(
144 {:method => :get, :path => '/projects/test'},
144 {:method => :get, :path => '/projects/test'},
145 :controller => 'projects', :action => 'show', :id => 'test'
145 :controller => 'projects', :action => 'show', :id => 'test'
146 )
146 )
147 end
147 end
148
148
149 def test_show_by_id
149 def test_show_by_id
150 get :show, :id => 1
150 get :show, :id => 1
151 assert_response :success
151 assert_response :success
152 assert_template 'show'
152 assert_template 'show'
153 assert_not_nil assigns(:project)
153 assert_not_nil assigns(:project)
154 end
154 end
155
155
156 def test_show_by_identifier
156 def test_show_by_identifier
157 get :show, :id => 'ecookbook'
157 get :show, :id => 'ecookbook'
158 assert_response :success
158 assert_response :success
159 assert_template 'show'
159 assert_template 'show'
160 assert_not_nil assigns(:project)
160 assert_not_nil assigns(:project)
161 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
161 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
162 end
162 end
163
163
164 def test_show_should_not_fail_when_custom_values_are_nil
164 def test_show_should_not_fail_when_custom_values_are_nil
165 project = Project.find_by_identifier('ecookbook')
165 project = Project.find_by_identifier('ecookbook')
166 project.custom_values.first.update_attribute(:value, nil)
166 project.custom_values.first.update_attribute(:value, nil)
167 get :show, :id => 'ecookbook'
167 get :show, :id => 'ecookbook'
168 assert_response :success
168 assert_response :success
169 assert_template 'show'
169 assert_template 'show'
170 assert_not_nil assigns(:project)
170 assert_not_nil assigns(:project)
171 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
171 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
172 end
172 end
173
173
174 def test_private_subprojects_hidden
174 def test_private_subprojects_hidden
175 get :show, :id => 'ecookbook'
175 get :show, :id => 'ecookbook'
176 assert_response :success
176 assert_response :success
177 assert_template 'show'
177 assert_template 'show'
178 assert_no_tag :tag => 'a', :content => /Private child/
178 assert_no_tag :tag => 'a', :content => /Private child/
179 end
179 end
180
180
181 def test_private_subprojects_visible
181 def test_private_subprojects_visible
182 @request.session[:user_id] = 2 # manager who is a member of the private subproject
182 @request.session[:user_id] = 2 # manager who is a member of the private subproject
183 get :show, :id => 'ecookbook'
183 get :show, :id => 'ecookbook'
184 assert_response :success
184 assert_response :success
185 assert_template 'show'
185 assert_template 'show'
186 assert_tag :tag => 'a', :content => /Private child/
186 assert_tag :tag => 'a', :content => /Private child/
187 end
187 end
188
188
189 def test_settings_routing
189 def test_settings_routing
190 assert_routing(
190 assert_routing(
191 {:method => :get, :path => '/projects/4223/settings'},
191 {:method => :get, :path => '/projects/4223/settings'},
192 :controller => 'projects', :action => 'settings', :id => '4223'
192 :controller => 'projects', :action => 'settings', :id => '4223'
193 )
193 )
194 assert_routing(
194 assert_routing(
195 {:method => :get, :path => '/projects/4223/settings/members'},
195 {:method => :get, :path => '/projects/4223/settings/members'},
196 :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members'
196 :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members'
197 )
197 )
198 end
198 end
199
199
200 def test_settings
200 def test_settings
201 @request.session[:user_id] = 2 # manager
201 @request.session[:user_id] = 2 # manager
202 get :settings, :id => 1
202 get :settings, :id => 1
203 assert_response :success
203 assert_response :success
204 assert_template 'settings'
204 assert_template 'settings'
205 end
205 end
206
206
207 def test_edit
207 def test_edit
208 @request.session[:user_id] = 2 # manager
208 @request.session[:user_id] = 2 # manager
209 post :edit, :id => 1, :project => {:name => 'Test changed name',
209 post :edit, :id => 1, :project => {:name => 'Test changed name',
210 :issue_custom_field_ids => ['']}
210 :issue_custom_field_ids => ['']}
211 assert_redirected_to 'projects/ecookbook/settings'
211 assert_redirected_to 'projects/ecookbook/settings'
212 project = Project.find(1)
212 project = Project.find(1)
213 assert_equal 'Test changed name', project.name
213 assert_equal 'Test changed name', project.name
214 end
214 end
215
215
216 def test_add_version_routing
216 def test_add_version_routing
217 assert_routing(
217 assert_routing(
218 {:method => :get, :path => 'projects/64/versions/new'},
218 {:method => :get, :path => 'projects/64/versions/new'},
219 :controller => 'projects', :action => 'add_version', :id => '64'
219 :controller => 'projects', :action => 'add_version', :id => '64'
220 )
220 )
221 assert_routing(
221 assert_routing(
222 #TODO: use PUT
222 #TODO: use PUT
223 {:method => :post, :path => 'projects/64/versions/new'},
223 {:method => :post, :path => 'projects/64/versions/new'},
224 :controller => 'projects', :action => 'add_version', :id => '64'
224 :controller => 'projects', :action => 'add_version', :id => '64'
225 )
225 )
226 end
226 end
227
227
228 def test_add_issue_category_routing
228 def test_add_issue_category_routing
229 assert_routing(
229 assert_routing(
230 {:method => :get, :path => 'projects/test/categories/new'},
230 {:method => :get, :path => 'projects/test/categories/new'},
231 :controller => 'projects', :action => 'add_issue_category', :id => 'test'
231 :controller => 'projects', :action => 'add_issue_category', :id => 'test'
232 )
232 )
233 assert_routing(
233 assert_routing(
234 #TODO: use PUT and update form
234 #TODO: use PUT and update form
235 {:method => :post, :path => 'projects/64/categories/new'},
235 {:method => :post, :path => 'projects/64/categories/new'},
236 :controller => 'projects', :action => 'add_issue_category', :id => '64'
236 :controller => 'projects', :action => 'add_issue_category', :id => '64'
237 )
237 )
238 end
238 end
239
239
240 def test_destroy_routing
240 def test_destroy_routing
241 assert_routing(
241 assert_routing(
242 {:method => :get, :path => '/projects/567/destroy'},
242 {:method => :get, :path => '/projects/567/destroy'},
243 :controller => 'projects', :action => 'destroy', :id => '567'
243 :controller => 'projects', :action => 'destroy', :id => '567'
244 )
244 )
245 assert_routing(
245 assert_routing(
246 #TODO: use DELETE and update form
246 #TODO: use DELETE and update form
247 {:method => :post, :path => 'projects/64/destroy'},
247 {:method => :post, :path => 'projects/64/destroy'},
248 :controller => 'projects', :action => 'destroy', :id => '64'
248 :controller => 'projects', :action => 'destroy', :id => '64'
249 )
249 )
250 end
250 end
251
251
252 def test_get_destroy
252 def test_get_destroy
253 @request.session[:user_id] = 1 # admin
253 @request.session[:user_id] = 1 # admin
254 get :destroy, :id => 1
254 get :destroy, :id => 1
255 assert_response :success
255 assert_response :success
256 assert_template 'destroy'
256 assert_template 'destroy'
257 assert_not_nil Project.find_by_id(1)
257 assert_not_nil Project.find_by_id(1)
258 end
258 end
259
259
260 def test_post_destroy
260 def test_post_destroy
261 @request.session[:user_id] = 1 # admin
261 @request.session[:user_id] = 1 # admin
262 post :destroy, :id => 1, :confirm => 1
262 post :destroy, :id => 1, :confirm => 1
263 assert_redirected_to 'admin/projects'
263 assert_redirected_to 'admin/projects'
264 assert_nil Project.find_by_id(1)
264 assert_nil Project.find_by_id(1)
265 end
265 end
266
266
267 def test_add_file
267 def test_add_file
268 set_tmp_attachments_directory
268 set_tmp_attachments_directory
269 @request.session[:user_id] = 2
269 @request.session[:user_id] = 2
270 Setting.notified_events = ['file_added']
270 Setting.notified_events = ['file_added']
271 ActionMailer::Base.deliveries.clear
271 ActionMailer::Base.deliveries.clear
272
272
273 assert_difference 'Attachment.count' do
273 assert_difference 'Attachment.count' do
274 post :add_file, :id => 1, :version_id => '',
274 post :add_file, :id => 1, :version_id => '',
275 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
275 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
276 end
276 end
277 assert_redirected_to 'projects/ecookbook/files'
277 assert_redirected_to 'projects/ecookbook/files'
278 a = Attachment.find(:first, :order => 'created_on DESC')
278 a = Attachment.find(:first, :order => 'created_on DESC')
279 assert_equal 'testfile.txt', a.filename
279 assert_equal 'testfile.txt', a.filename
280 assert_equal Project.find(1), a.container
280 assert_equal Project.find(1), a.container
281
281
282 mail = ActionMailer::Base.deliveries.last
282 mail = ActionMailer::Base.deliveries.last
283 assert_kind_of TMail::Mail, mail
283 assert_kind_of TMail::Mail, mail
284 assert_equal "[eCookbook] New file", mail.subject
284 assert_equal "[eCookbook] New file", mail.subject
285 assert mail.body.include?('testfile.txt')
285 assert mail.body.include?('testfile.txt')
286 end
286 end
287
287
288 def test_add_file_routing
288 def test_add_file_routing
289 assert_routing(
289 assert_routing(
290 {:method => :get, :path => '/projects/33/files/new'},
290 {:method => :get, :path => '/projects/33/files/new'},
291 :controller => 'projects', :action => 'add_file', :id => '33'
291 :controller => 'projects', :action => 'add_file', :id => '33'
292 )
292 )
293 assert_routing(
293 assert_routing(
294 {:method => :post, :path => '/projects/33/files/new'},
294 {:method => :post, :path => '/projects/33/files/new'},
295 :controller => 'projects', :action => 'add_file', :id => '33'
295 :controller => 'projects', :action => 'add_file', :id => '33'
296 )
296 )
297 end
297 end
298
298
299 def test_add_version_file
299 def test_add_version_file
300 set_tmp_attachments_directory
300 set_tmp_attachments_directory
301 @request.session[:user_id] = 2
301 @request.session[:user_id] = 2
302 Setting.notified_events = ['file_added']
302 Setting.notified_events = ['file_added']
303
303
304 assert_difference 'Attachment.count' do
304 assert_difference 'Attachment.count' do
305 post :add_file, :id => 1, :version_id => '2',
305 post :add_file, :id => 1, :version_id => '2',
306 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
306 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
307 end
307 end
308 assert_redirected_to 'projects/ecookbook/files'
308 assert_redirected_to 'projects/ecookbook/files'
309 a = Attachment.find(:first, :order => 'created_on DESC')
309 a = Attachment.find(:first, :order => 'created_on DESC')
310 assert_equal 'testfile.txt', a.filename
310 assert_equal 'testfile.txt', a.filename
311 assert_equal Version.find(2), a.container
311 assert_equal Version.find(2), a.container
312 end
312 end
313
313
314 def test_list_files
314 def test_list_files
315 get :list_files, :id => 1
315 get :list_files, :id => 1
316 assert_response :success
316 assert_response :success
317 assert_template 'list_files'
317 assert_template 'list_files'
318 assert_not_nil assigns(:containers)
318 assert_not_nil assigns(:containers)
319
319
320 # file attached to the project
320 # file attached to the project
321 assert_tag :a, :content => 'project_file.zip',
321 assert_tag :a, :content => 'project_file.zip',
322 :attributes => { :href => '/attachments/download/8/project_file.zip' }
322 :attributes => { :href => '/attachments/download/8/project_file.zip' }
323
323
324 # file attached to a project's version
324 # file attached to a project's version
325 assert_tag :a, :content => 'version_file.zip',
325 assert_tag :a, :content => 'version_file.zip',
326 :attributes => { :href => '/attachments/download/9/version_file.zip' }
326 :attributes => { :href => '/attachments/download/9/version_file.zip' }
327 end
327 end
328
328
329 def test_list_files_routing
329 def test_list_files_routing
330 assert_routing(
330 assert_routing(
331 {:method => :get, :path => '/projects/33/files'},
331 {:method => :get, :path => '/projects/33/files'},
332 :controller => 'projects', :action => 'list_files', :id => '33'
332 :controller => 'projects', :action => 'list_files', :id => '33'
333 )
333 )
334 end
334 end
335
335
336 def test_changelog_routing
336 def test_changelog_routing
337 assert_routing(
337 assert_routing(
338 {:method => :get, :path => '/projects/44/changelog'},
338 {:method => :get, :path => '/projects/44/changelog'},
339 :controller => 'projects', :action => 'changelog', :id => '44'
339 :controller => 'projects', :action => 'changelog', :id => '44'
340 )
340 )
341 end
341 end
342
342
343 def test_changelog
343 def test_changelog
344 get :changelog, :id => 1
344 get :changelog, :id => 1
345 assert_response :success
345 assert_response :success
346 assert_template 'changelog'
346 assert_template 'changelog'
347 assert_not_nil assigns(:versions)
347 assert_not_nil assigns(:versions)
348 end
348 end
349
349
350 def test_roadmap_routing
350 def test_roadmap_routing
351 assert_routing(
351 assert_routing(
352 {:method => :get, :path => 'projects/33/roadmap'},
352 {:method => :get, :path => 'projects/33/roadmap'},
353 :controller => 'projects', :action => 'roadmap', :id => '33'
353 :controller => 'projects', :action => 'roadmap', :id => '33'
354 )
354 )
355 end
355 end
356
356
357 def test_roadmap
357 def test_roadmap
358 get :roadmap, :id => 1
358 get :roadmap, :id => 1
359 assert_response :success
359 assert_response :success
360 assert_template 'roadmap'
360 assert_template 'roadmap'
361 assert_not_nil assigns(:versions)
361 assert_not_nil assigns(:versions)
362 # Version with no date set appears
362 # Version with no date set appears
363 assert assigns(:versions).include?(Version.find(3))
363 assert assigns(:versions).include?(Version.find(3))
364 # Completed version doesn't appear
364 # Completed version doesn't appear
365 assert !assigns(:versions).include?(Version.find(1))
365 assert !assigns(:versions).include?(Version.find(1))
366 end
366 end
367
367
368 def test_roadmap_with_completed_versions
368 def test_roadmap_with_completed_versions
369 get :roadmap, :id => 1, :completed => 1
369 get :roadmap, :id => 1, :completed => 1
370 assert_response :success
370 assert_response :success
371 assert_template 'roadmap'
371 assert_template 'roadmap'
372 assert_not_nil assigns(:versions)
372 assert_not_nil assigns(:versions)
373 # Version with no date set appears
373 # Version with no date set appears
374 assert assigns(:versions).include?(Version.find(3))
374 assert assigns(:versions).include?(Version.find(3))
375 # Completed version appears
375 # Completed version appears
376 assert assigns(:versions).include?(Version.find(1))
376 assert assigns(:versions).include?(Version.find(1))
377 end
377 end
378
378
379 def test_project_activity_routing
379 def test_project_activity_routing
380 assert_routing(
380 assert_routing(
381 {:method => :get, :path => '/projects/1/activity'},
381 {:method => :get, :path => '/projects/1/activity'},
382 :controller => 'projects', :action => 'activity', :id => '1'
382 :controller => 'projects', :action => 'activity', :id => '1'
383 )
383 )
384 end
384 end
385
385
386 def test_project_activity_atom_routing
386 def test_project_activity_atom_routing
387 assert_routing(
387 assert_routing(
388 {:method => :get, :path => '/projects/1/activity.atom'},
388 {:method => :get, :path => '/projects/1/activity.atom'},
389 :controller => 'projects', :action => 'activity', :id => '1', :format => 'atom'
389 :controller => 'projects', :action => 'activity', :id => '1', :format => 'atom'
390 )
390 )
391 end
391 end
392
392
393 def test_project_activity
393 def test_project_activity
394 get :activity, :id => 1, :with_subprojects => 0
394 get :activity, :id => 1, :with_subprojects => 0
395 assert_response :success
395 assert_response :success
396 assert_template 'activity'
396 assert_template 'activity'
397 assert_not_nil assigns(:events_by_day)
397 assert_not_nil assigns(:events_by_day)
398
398
399 assert_tag :tag => "h3",
399 assert_tag :tag => "h3",
400 :content => /#{2.days.ago.to_date.day}/,
400 :content => /#{2.days.ago.to_date.day}/,
401 :sibling => { :tag => "dl",
401 :sibling => { :tag => "dl",
402 :child => { :tag => "dt",
402 :child => { :tag => "dt",
403 :attributes => { :class => /issue-edit/ },
403 :attributes => { :class => /issue-edit/ },
404 :child => { :tag => "a",
404 :child => { :tag => "a",
405 :content => /(#{IssueStatus.find(2).name})/,
405 :content => /(#{IssueStatus.find(2).name})/,
406 }
406 }
407 }
407 }
408 }
408 }
409 end
409 end
410
410
411 def test_previous_project_activity
411 def test_previous_project_activity
412 get :activity, :id => 1, :from => 3.days.ago.to_date
412 get :activity, :id => 1, :from => 3.days.ago.to_date
413 assert_response :success
413 assert_response :success
414 assert_template 'activity'
414 assert_template 'activity'
415 assert_not_nil assigns(:events_by_day)
415 assert_not_nil assigns(:events_by_day)
416
416
417 assert_tag :tag => "h3",
417 assert_tag :tag => "h3",
418 :content => /#{3.day.ago.to_date.day}/,
418 :content => /#{3.day.ago.to_date.day}/,
419 :sibling => { :tag => "dl",
419 :sibling => { :tag => "dl",
420 :child => { :tag => "dt",
420 :child => { :tag => "dt",
421 :attributes => { :class => /issue/ },
421 :attributes => { :class => /issue/ },
422 :child => { :tag => "a",
422 :child => { :tag => "a",
423 :content => /#{Issue.find(1).subject}/,
423 :content => /#{Issue.find(1).subject}/,
424 }
424 }
425 }
425 }
426 }
426 }
427 end
427 end
428
428
429 def test_global_activity_routing
429 def test_global_activity_routing
430 assert_routing({:method => :get, :path => '/activity'}, :controller => 'projects', :action => 'activity', :id => nil)
430 assert_routing({:method => :get, :path => '/activity'}, :controller => 'projects', :action => 'activity', :id => nil)
431 end
431 end
432
432
433 def test_global_activity
433 def test_global_activity
434 get :activity
434 get :activity
435 assert_response :success
435 assert_response :success
436 assert_template 'activity'
436 assert_template 'activity'
437 assert_not_nil assigns(:events_by_day)
437 assert_not_nil assigns(:events_by_day)
438
438
439 assert_tag :tag => "h3",
439 assert_tag :tag => "h3",
440 :content => /#{5.day.ago.to_date.day}/,
440 :content => /#{5.day.ago.to_date.day}/,
441 :sibling => { :tag => "dl",
441 :sibling => { :tag => "dl",
442 :child => { :tag => "dt",
442 :child => { :tag => "dt",
443 :attributes => { :class => /issue/ },
443 :attributes => { :class => /issue/ },
444 :child => { :tag => "a",
444 :child => { :tag => "a",
445 :content => /#{Issue.find(5).subject}/,
445 :content => /#{Issue.find(5).subject}/,
446 }
446 }
447 }
447 }
448 }
448 }
449 end
449 end
450
450
451 def test_user_activity
451 def test_user_activity
452 get :activity, :user_id => 2
452 get :activity, :user_id => 2
453 assert_response :success
453 assert_response :success
454 assert_template 'activity'
454 assert_template 'activity'
455 assert_not_nil assigns(:events_by_day)
455 assert_not_nil assigns(:events_by_day)
456
456
457 assert_tag :tag => "h3",
457 assert_tag :tag => "h3",
458 :content => /#{3.day.ago.to_date.day}/,
458 :content => /#{3.day.ago.to_date.day}/,
459 :sibling => { :tag => "dl",
459 :sibling => { :tag => "dl",
460 :child => { :tag => "dt",
460 :child => { :tag => "dt",
461 :attributes => { :class => /issue/ },
461 :attributes => { :class => /issue/ },
462 :child => { :tag => "a",
462 :child => { :tag => "a",
463 :content => /#{Issue.find(1).subject}/,
463 :content => /#{Issue.find(1).subject}/,
464 }
464 }
465 }
465 }
466 }
466 }
467 end
467 end
468
468
469 def test_global_activity_atom_routing
469 def test_global_activity_atom_routing
470 assert_routing({:method => :get, :path => '/activity.atom'}, :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom')
470 assert_routing({:method => :get, :path => '/activity.atom'}, :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom')
471 end
471 end
472
472
473 def test_activity_atom_feed
473 def test_activity_atom_feed
474 get :activity, :format => 'atom'
474 get :activity, :format => 'atom'
475 assert_response :success
475 assert_response :success
476 assert_template 'common/feed.atom.rxml'
476 assert_template 'common/feed.atom.rxml'
477 end
477 end
478
478
479 def test_archive_routing
479 def test_archive_routing
480 assert_routing(
480 assert_routing(
481 #TODO: use PUT to project path and modify form
481 #TODO: use PUT to project path and modify form
482 {:method => :post, :path => 'projects/64/archive'},
482 {:method => :post, :path => 'projects/64/archive'},
483 :controller => 'projects', :action => 'archive', :id => '64'
483 :controller => 'projects', :action => 'archive', :id => '64'
484 )
484 )
485 end
485 end
486
486
487 def test_archive
487 def test_archive
488 @request.session[:user_id] = 1 # admin
488 @request.session[:user_id] = 1 # admin
489 post :archive, :id => 1
489 post :archive, :id => 1
490 assert_redirected_to 'admin/projects'
490 assert_redirected_to 'admin/projects'
491 assert !Project.find(1).active?
491 assert !Project.find(1).active?
492 end
492 end
493
493
494 def test_unarchive_routing
494 def test_unarchive_routing
495 assert_routing(
495 assert_routing(
496 #TODO: use PUT to project path and modify form
496 #TODO: use PUT to project path and modify form
497 {:method => :post, :path => '/projects/567/unarchive'},
497 {:method => :post, :path => '/projects/567/unarchive'},
498 :controller => 'projects', :action => 'unarchive', :id => '567'
498 :controller => 'projects', :action => 'unarchive', :id => '567'
499 )
499 )
500 end
500 end
501
501
502 def test_unarchive
502 def test_unarchive
503 @request.session[:user_id] = 1 # admin
503 @request.session[:user_id] = 1 # admin
504 Project.find(1).archive
504 Project.find(1).archive
505 post :unarchive, :id => 1
505 post :unarchive, :id => 1
506 assert_redirected_to 'admin/projects'
506 assert_redirected_to 'admin/projects'
507 assert Project.find(1).active?
507 assert Project.find(1).active?
508 end
508 end
509
509
510 def test_project_breadcrumbs_should_be_limited_to_3_ancestors
510 def test_project_breadcrumbs_should_be_limited_to_3_ancestors
511 CustomField.delete_all
511 CustomField.delete_all
512 parent = nil
512 parent = nil
513 6.times do |i|
513 6.times do |i|
514 p = Project.create!(:name => "Breadcrumbs #{i}", :identifier => "breadcrumbs-#{i}")
514 p = Project.create!(:name => "Breadcrumbs #{i}", :identifier => "breadcrumbs-#{i}")
515 p.set_parent!(parent)
515 p.set_parent!(parent)
516 get :show, :id => p
516 get :show, :id => p
517 assert_tag :h1, :parent => { :attributes => {:id => 'header'}},
517 assert_tag :h1, :parent => { :attributes => {:id => 'header'}},
518 :children => { :count => [i, 3].min,
518 :children => { :count => [i, 3].min,
519 :only => { :tag => 'a' } }
519 :only => { :tag => 'a' } }
520
520
521 parent = p
521 parent = p
522 end
522 end
523 end
523 end
524
524
525 def test_copy_with_project
525 def test_copy_with_project
526 @request.session[:user_id] = 1 # admin
526 @request.session[:user_id] = 1 # admin
527 get :copy, :id => 1
527 get :copy, :id => 1
528 assert_response :success
528 assert_response :success
529 assert_template 'copy'
529 assert_template 'copy'
530 assert assigns(:project)
530 assert assigns(:project)
531 assert_equal Project.find(1).description, assigns(:project).description
531 assert_equal Project.find(1).description, assigns(:project).description
532 assert_nil assigns(:project).id
532 assert_nil assigns(:project).id
533 end
533 end
534
534
535 def test_copy_without_project
535 def test_copy_without_project
536 @request.session[:user_id] = 1 # admin
536 @request.session[:user_id] = 1 # admin
537 get :copy
537 get :copy
538 assert_response :redirect
538 assert_response :redirect
539 assert_redirected_to :controller => 'admin', :action => 'projects'
539 assert_redirected_to :controller => 'admin', :action => 'projects'
540 end
540 end
541
541
542 def test_jump_should_redirect_to_active_tab
542 def test_jump_should_redirect_to_active_tab
543 get :show, :id => 1, :jump => 'issues'
543 get :show, :id => 1, :jump => 'issues'
544 assert_redirected_to 'projects/ecookbook/issues'
544 assert_redirected_to 'projects/ecookbook/issues'
545 end
545 end
546
546
547 def test_jump_should_not_redirect_to_inactive_tab
547 def test_jump_should_not_redirect_to_inactive_tab
548 get :show, :id => 3, :jump => 'documents'
548 get :show, :id => 3, :jump => 'documents'
549 assert_response :success
549 assert_response :success
550 assert_template 'show'
550 assert_template 'show'
551 end
551 end
552
552
553 def test_jump_should_not_redirect_to_unknown_tab
553 def test_jump_should_not_redirect_to_unknown_tab
554 get :show, :id => 3, :jump => 'foobar'
554 get :show, :id => 3, :jump => 'foobar'
555 assert_response :success
555 assert_response :success
556 assert_template 'show'
556 assert_template 'show'
557 end
557 end
558
558
559 # A hook that is manually registered later
559 # A hook that is manually registered later
560 class ProjectBasedTemplate < Redmine::Hook::ViewListener
560 class ProjectBasedTemplate < Redmine::Hook::ViewListener
561 def view_layouts_base_html_head(context)
561 def view_layouts_base_html_head(context)
562 # Adds a project stylesheet
562 # Adds a project stylesheet
563 stylesheet_link_tag(context[:project].identifier) if context[:project]
563 stylesheet_link_tag(context[:project].identifier) if context[:project]
564 end
564 end
565 end
565 end
566 # Don't use this hook now
566 # Don't use this hook now
567 Redmine::Hook.clear_listeners
567 Redmine::Hook.clear_listeners
568
568
569 def test_hook_response
569 def test_hook_response
570 Redmine::Hook.add_listener(ProjectBasedTemplate)
570 Redmine::Hook.add_listener(ProjectBasedTemplate)
571 get :show, :id => 1
571 get :show, :id => 1
572 assert_tag :tag => 'link', :attributes => {:href => '/stylesheets/ecookbook.css'},
572 assert_tag :tag => 'link', :attributes => {:href => '/stylesheets/ecookbook.css'},
573 :parent => {:tag => 'head'}
573 :parent => {:tag => 'head'}
574
574
575 Redmine::Hook.clear_listeners
575 Redmine::Hook.clear_listeners
576 end
576 end
577 end
577 end
@@ -1,85 +1,85
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.dirname(__FILE__) + '/../../test_helper'
18 require File.dirname(__FILE__) + '/../../test_helper'
19
19
20 class SortHelperTest < HelperTestCase
20 class SortHelperTest < HelperTestCase
21 include SortHelper
21 include SortHelper
22
22
23 def setup
23 def setup
24 @session = nil
24 @session = nil
25 @sort_param = nil
25 @sort_param = nil
26 end
26 end
27
27
28 def test_default_sort_clause_with_array
28 def test_default_sort_clause_with_array
29 sort_init 'attr1', 'desc'
29 sort_init 'attr1', 'desc'
30 sort_update(['attr1', 'attr2'])
30 sort_update(['attr1', 'attr2'])
31
31
32 assert_equal 'attr1 DESC', sort_clause
32 assert_equal 'attr1 DESC', sort_clause
33 end
33 end
34
34
35 def test_default_sort_clause_with_hash
35 def test_default_sort_clause_with_hash
36 sort_init 'attr1', 'desc'
36 sort_init 'attr1', 'desc'
37 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
37 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
38
38
39 assert_equal 'table1.attr1 DESC', sort_clause
39 assert_equal 'table1.attr1 DESC', sort_clause
40 end
40 end
41
41
42 def test_default_sort_clause_with_multiple_columns
42 def test_default_sort_clause_with_multiple_columns
43 sort_init 'attr1', 'desc'
43 sort_init 'attr1', 'desc'
44 sort_update({'attr1' => ['table1.attr1', 'table1.attr2'], 'attr2' => 'table2.attr2'})
44 sort_update({'attr1' => ['table1.attr1', 'table1.attr2'], 'attr2' => 'table2.attr2'})
45
45
46 assert_equal 'table1.attr1 DESC, table1.attr2 DESC', sort_clause
46 assert_equal 'table1.attr1 DESC, table1.attr2 DESC', sort_clause
47 end
47 end
48
48
49 def test_params_sort
49 def test_params_sort
50 @sort_param = 'attr1,attr2:desc'
50 @sort_param = 'attr1,attr2:desc'
51
51
52 sort_init 'attr1', 'desc'
52 sort_init 'attr1', 'desc'
53 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
53 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
54
54
55 assert_equal 'table1.attr1, table2.attr2 DESC', sort_clause
55 assert_equal 'table1.attr1, table2.attr2 DESC', sort_clause
56 assert_equal 'attr1,attr2:desc', @session['foo_bar_sort']
56 assert_equal 'attr1,attr2:desc', @session['foo_bar_sort']
57 end
57 end
58
58
59 def test_invalid_params_sort
59 def test_invalid_params_sort
60 @sort_param = 'invalid_key'
60 @sort_param = 'invalid_key'
61
61
62 sort_init 'attr1', 'desc'
62 sort_init 'attr1', 'desc'
63 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
63 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
64
64
65 assert_equal 'table1.attr1 DESC', sort_clause
65 assert_equal 'table1.attr1 DESC', sort_clause
66 assert_equal 'attr1:desc', @session['foo_bar_sort']
66 assert_equal 'attr1:desc', @session['foo_bar_sort']
67 end
67 end
68
68
69 def test_invalid_order_params_sort
69 def test_invalid_order_params_sort
70 @sort_param = 'attr1:foo:bar,attr2'
70 @sort_param = 'attr1:foo:bar,attr2'
71
71
72 sort_init 'attr1', 'desc'
72 sort_init 'attr1', 'desc'
73 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
73 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
74
74
75 assert_equal 'table1.attr1, table2.attr2', sort_clause
75 assert_equal 'table1.attr1, table2.attr2', sort_clause
76 assert_equal 'attr1,attr2', @session['foo_bar_sort']
76 assert_equal 'attr1,attr2', @session['foo_bar_sort']
77 end
77 end
78
78
79 private
79 private
80
80
81 def controller_name; 'foo'; end
81 def controller_name; 'foo'; end
82 def action_name; 'bar'; end
82 def action_name; 'bar'; end
83 def params; {:sort => @sort_param}; end
83 def params; {:sort => @sort_param}; end
84 def session; @session ||= {}; end
84 def session; @session ||= {}; end
85 end
85 end
@@ -24,21 +24,21 class MemberTest < ActiveSupport::TestCase
24 @jsmith = Member.find(1)
24 @jsmith = Member.find(1)
25 end
25 end
26
26
27 def test_create
27 def test_create
28 member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
28 member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
29 assert member.save
29 assert member.save
30 member.reload
30 member.reload
31
31
32 assert_equal 2, member.roles.size
32 assert_equal 2, member.roles.size
33 assert_equal Role.find(1), member.roles.sort.first
33 assert_equal Role.find(1), member.roles.sort.first
34 end
34 end
35
35
36 def test_update
36 def test_update
37 assert_equal "eCookbook", @jsmith.project.name
37 assert_equal "eCookbook", @jsmith.project.name
38 assert_equal "Manager", @jsmith.roles.first.name
38 assert_equal "Manager", @jsmith.roles.first.name
39 assert_equal "jsmith", @jsmith.user.login
39 assert_equal "jsmith", @jsmith.user.login
40
40
41 @jsmith.mail_notification = !@jsmith.mail_notification
41 @jsmith.mail_notification = !@jsmith.mail_notification
42 assert @jsmith.save
42 assert @jsmith.save
43 end
43 end
44
44
@@ -48,24 +48,24 class MemberTest < ActiveSupport::TestCase
48 assert @jsmith.save
48 assert @jsmith.save
49 assert_equal 2, @jsmith.reload.roles.size
49 assert_equal 2, @jsmith.reload.roles.size
50 end
50 end
51
51
52 def test_validate
52 def test_validate
53 member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [2])
53 member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [2])
54 # same use can't have more than one membership for a project
54 # same use can't have more than one membership for a project
55 assert !member.save
55 assert !member.save
56
56
57 member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [])
57 member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [])
58 # must have one role at least
58 # must have one role at least
59 assert !member.save
59 assert !member.save
60 end
60 end
61
61
62 def test_destroy
62 def test_destroy
63 assert_difference 'Member.count', -1 do
63 assert_difference 'Member.count', -1 do
64 assert_difference 'MemberRole.count', -1 do
64 assert_difference 'MemberRole.count', -1 do
65 @jsmith.destroy
65 @jsmith.destroy
66 end
66 end
67 end
67 end
68
68
69 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
69 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
70 end
70 end
71 end
71 end
This diff has been collapsed as it changes many lines, (706 lines changed) Show them Hide them
@@ -1,355 +1,355
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../test_helper'
19
20 class ProjectTest < ActiveSupport::TestCase
21 fixtures :projects, :enabled_modules,
22 :issues, :issue_statuses, :journals, :journal_details,
23 :users, :members, :member_roles, :roles, :projects_trackers, :trackers, :boards,
24 :queries
25
26 def setup
27 @ecookbook = Project.find(1)
28 @ecookbook_sub1 = Project.find(3)
29 end
30
31 def test_truth
32 assert_kind_of Project, @ecookbook
33 assert_equal "eCookbook", @ecookbook.name
34 end
35
36 def test_update
37 assert_equal "eCookbook", @ecookbook.name
38 @ecookbook.name = "eCook"
39 assert @ecookbook.save, @ecookbook.errors.full_messages.join("; ")
40 @ecookbook.reload
41 assert_equal "eCook", @ecookbook.name
42 end
43
44 def test_validate
45 @ecookbook.name = ""
46 assert !@ecookbook.save
47 assert_equal 1, @ecookbook.errors.count
48 assert_equal I18n.translate('activerecord.errors.messages.blank'), @ecookbook.errors.on(:name)
49 end
50
51 def test_validate_identifier
52 to_test = {"abc" => true,
53 "ab12" => true,
54 "ab-12" => true,
55 "12" => false,
56 "new" => false}
57
58 to_test.each do |identifier, valid|
59 p = Project.new
60 p.identifier = identifier
61 p.valid?
62 assert_equal valid, p.errors.on('identifier').nil?
63 end
64 end
65
66 def test_members_should_be_active_users
67 Project.all.each do |project|
68 assert_nil project.members.detect {|m| !(m.user.is_a?(User) && m.user.active?) }
69 end
70 end
71
72 def test_users_should_be_active_users
73 Project.all.each do |project|
74 assert_nil project.users.detect {|u| !(u.is_a?(User) && u.active?) }
75 end
76 end
77
78 def test_archive
79 user = @ecookbook.members.first.user
80 @ecookbook.archive
81 @ecookbook.reload
82
83 assert !@ecookbook.active?
84 assert !user.projects.include?(@ecookbook)
85 # Subproject are also archived
86 assert !@ecookbook.children.empty?
87 assert @ecookbook.descendants.active.empty?
88 end
89
90 def test_unarchive
91 user = @ecookbook.members.first.user
92 @ecookbook.archive
93 # A subproject of an archived project can not be unarchived
94 assert !@ecookbook_sub1.unarchive
95
96 # Unarchive project
97 assert @ecookbook.unarchive
98 @ecookbook.reload
99 assert @ecookbook.active?
100 assert user.projects.include?(@ecookbook)
101 # Subproject can now be unarchived
102 @ecookbook_sub1.reload
103 assert @ecookbook_sub1.unarchive
104 end
105
106 def test_destroy
107 # 2 active members
108 assert_equal 2, @ecookbook.members.size
109 # and 1 is locked
110 assert_equal 3, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size
111 # some boards
112 assert @ecookbook.boards.any?
113
114 @ecookbook.destroy
115 # make sure that the project non longer exists
116 assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) }
117 # make sure related data was removed
118 assert Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
119 assert Board.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
120 end
121
122 def test_move_an_orphan_project_to_a_root_project
123 sub = Project.find(2)
124 sub.set_parent! @ecookbook
125 assert_equal @ecookbook.id, sub.parent.id
126 @ecookbook.reload
127 assert_equal 4, @ecookbook.children.size
128 end
129
130 def test_move_an_orphan_project_to_a_subproject
131 sub = Project.find(2)
132 assert sub.set_parent!(@ecookbook_sub1)
133 end
134
135 def test_move_a_root_project_to_a_project
136 sub = @ecookbook
137 assert sub.set_parent!(Project.find(2))
138 end
139
140 def test_should_not_move_a_project_to_its_children
141 sub = @ecookbook
142 assert !(sub.set_parent!(Project.find(3)))
143 end
144
145 def test_set_parent_should_add_roots_in_alphabetical_order
146 ProjectCustomField.delete_all
147 Project.delete_all
148 Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(nil)
149 Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(nil)
150 Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(nil)
151 Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(nil)
152
153 assert_equal 4, Project.count
154 assert_equal Project.all.sort_by(&:name), Project.all.sort_by(&:lft)
155 end
156
157 def test_set_parent_should_add_children_in_alphabetical_order
158 ProjectCustomField.delete_all
159 parent = Project.create!(:name => 'Parent', :identifier => 'parent')
160 Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(parent)
161 Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(parent)
162 Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(parent)
163 Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(parent)
164
165 parent.reload
166 assert_equal 4, parent.children.size
167 assert_equal parent.children.sort_by(&:name), parent.children
168 end
169
170 def test_rebuild_should_sort_children_alphabetically
171 ProjectCustomField.delete_all
172 parent = Project.create!(:name => 'Parent', :identifier => 'parent')
173 Project.create!(:name => 'Project C', :identifier => 'project-c').move_to_child_of(parent)
174 Project.create!(:name => 'Project B', :identifier => 'project-b').move_to_child_of(parent)
175 Project.create!(:name => 'Project D', :identifier => 'project-d').move_to_child_of(parent)
176 Project.create!(:name => 'Project A', :identifier => 'project-a').move_to_child_of(parent)
177
178 Project.update_all("lft = NULL, rgt = NULL")
179 Project.rebuild!
180
181 parent.reload
182 assert_equal 4, parent.children.size
183 assert_equal parent.children.sort_by(&:name), parent.children
184 end
185
186 def test_parent
187 p = Project.find(6).parent
188 assert p.is_a?(Project)
189 assert_equal 5, p.id
190 end
191
192 def test_ancestors
193 a = Project.find(6).ancestors
194 assert a.first.is_a?(Project)
195 assert_equal [1, 5], a.collect(&:id)
196 end
197
198 def test_root
199 r = Project.find(6).root
200 assert r.is_a?(Project)
201 assert_equal 1, r.id
202 end
203
204 def test_children
205 c = Project.find(1).children
206 assert c.first.is_a?(Project)
207 assert_equal [5, 3, 4], c.collect(&:id)
208 end
209
210 def test_descendants
211 d = Project.find(1).descendants
212 assert d.first.is_a?(Project)
213 assert_equal [5, 6, 3, 4], d.collect(&:id)
214 end
215
216 def test_users_by_role
217 users_by_role = Project.find(1).users_by_role
218 assert_kind_of Hash, users_by_role
219 role = Role.find(1)
220 assert_kind_of Array, users_by_role[role]
221 assert users_by_role[role].include?(User.find(2))
222 end
223
224 def test_rolled_up_trackers
225 parent = Project.find(1)
226 parent.trackers = Tracker.find([1,2])
227 child = parent.children.find(3)
228
229 assert_equal [1, 2], parent.tracker_ids
230 assert_equal [2, 3], child.trackers.collect(&:id)
231
232 assert_kind_of Tracker, parent.rolled_up_trackers.first
233 assert_equal Tracker.find(1), parent.rolled_up_trackers.first
234
235 assert_equal [1, 2, 3], parent.rolled_up_trackers.collect(&:id)
236 assert_equal [2, 3], child.rolled_up_trackers.collect(&:id)
237 end
238
239 def test_rolled_up_trackers_should_ignore_archived_subprojects
240 parent = Project.find(1)
241 parent.trackers = Tracker.find([1,2])
242 child = parent.children.find(3)
243 child.trackers = Tracker.find([1,3])
244 parent.children.each(&:archive)
245
246 assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
247 end
248
249 def test_next_identifier
250 ProjectCustomField.delete_all
251 Project.create!(:name => 'last', :identifier => 'p2008040')
252 assert_equal 'p2008041', Project.next_identifier
253 end
254
255 def test_next_identifier_first_project
256 Project.delete_all
257 assert_nil Project.next_identifier
258 end
259
260
17
261 def test_enabled_module_names_should_not_recreate_enabled_modules
18 require File.dirname(__FILE__) + '/../test_helper'
262 project = Project.find(1)
263 # Remove one module
264 modules = project.enabled_modules.slice(0..-2)
265 assert modules.any?
266 assert_difference 'EnabledModule.count', -1 do
267 project.enabled_module_names = modules.collect(&:name)
268 end
269 project.reload
270 # Ids should be preserved
271 assert_equal project.enabled_module_ids.sort, modules.collect(&:id).sort
272 end
273
19
274 def test_copy_from_existing_project
20 class ProjectTest < ActiveSupport::TestCase
275 source_project = Project.find(1)
21 fixtures :projects, :enabled_modules,
276 copied_project = Project.copy_from(1)
22 :issues, :issue_statuses, :journals, :journal_details,
277
23 :users, :members, :member_roles, :roles, :projects_trackers, :trackers, :boards,
278 assert copied_project
24 :queries
279 # Cleared attributes
25
280 assert copied_project.id.blank?
26 def setup
281 assert copied_project.name.blank?
27 @ecookbook = Project.find(1)
282 assert copied_project.identifier.blank?
28 @ecookbook_sub1 = Project.find(3)
283
29 end
284 # Duplicated attributes
30
285 assert_equal source_project.description, copied_project.description
31 def test_truth
286 assert_equal source_project.enabled_modules, copied_project.enabled_modules
32 assert_kind_of Project, @ecookbook
287 assert_equal source_project.trackers, copied_project.trackers
33 assert_equal "eCookbook", @ecookbook.name
288
34 end
289 # Default attributes
35
290 assert_equal 1, copied_project.status
36 def test_update
291 end
37 assert_equal "eCookbook", @ecookbook.name
292
38 @ecookbook.name = "eCook"
293 # Context: Project#copy
39 assert @ecookbook.save, @ecookbook.errors.full_messages.join("; ")
294 def test_copy_should_copy_issues
40 @ecookbook.reload
295 # Setup
41 assert_equal "eCook", @ecookbook.name
296 ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
42 end
297 source_project = Project.find(2)
43
298 Project.destroy_all :identifier => "copy-test"
44 def test_validate
299 project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
45 @ecookbook.name = ""
300 project.trackers = source_project.trackers
46 assert !@ecookbook.save
301 assert project.valid?
47 assert_equal 1, @ecookbook.errors.count
302
48 assert_equal I18n.translate('activerecord.errors.messages.blank'), @ecookbook.errors.on(:name)
303 assert project.issues.empty?
49 end
304 assert project.copy(source_project)
50
305
51 def test_validate_identifier
306 # Tests
52 to_test = {"abc" => true,
307 assert_equal source_project.issues.size, project.issues.size
53 "ab12" => true,
308 project.issues.each do |issue|
54 "ab-12" => true,
309 assert issue.valid?
55 "12" => false,
310 assert ! issue.assigned_to.blank?
56 "new" => false}
311 assert_equal project, issue.project
57
312 end
58 to_test.each do |identifier, valid|
313 end
59 p = Project.new
314
60 p.identifier = identifier
315 def test_copy_should_copy_members
61 p.valid?
316 # Setup
62 assert_equal valid, p.errors.on('identifier').nil?
317 ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
63 end
318 source_project = Project.find(2)
64 end
319 project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
65
320 project.trackers = source_project.trackers
66 def test_members_should_be_active_users
321 project.enabled_modules = source_project.enabled_modules
67 Project.all.each do |project|
322 assert project.valid?
68 assert_nil project.members.detect {|m| !(m.user.is_a?(User) && m.user.active?) }
323
69 end
324 assert project.members.empty?
70 end
325 assert project.copy(source_project)
71
326
72 def test_users_should_be_active_users
327 # Tests
73 Project.all.each do |project|
328 assert_equal source_project.members.size, project.members.size
74 assert_nil project.users.detect {|u| !(u.is_a?(User) && u.active?) }
329 project.members.each do |member|
75 end
330 assert member
76 end
331 assert_equal project, member.project
77
332 end
78 def test_archive
333 end
79 user = @ecookbook.members.first.user
334
80 @ecookbook.archive
335 def test_copy_should_copy_project_level_queries
81 @ecookbook.reload
336 # Setup
82
337 ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
83 assert !@ecookbook.active?
338 source_project = Project.find(2)
84 assert !user.projects.include?(@ecookbook)
339 project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
85 # Subproject are also archived
340 project.trackers = source_project.trackers
86 assert !@ecookbook.children.empty?
341 project.enabled_modules = source_project.enabled_modules
87 assert @ecookbook.descendants.active.empty?
342 assert project.valid?
88 end
343
89
344 assert project.queries.empty?
90 def test_unarchive
345 assert project.copy(source_project)
91 user = @ecookbook.members.first.user
346
92 @ecookbook.archive
347 # Tests
93 # A subproject of an archived project can not be unarchived
348 assert_equal source_project.queries.size, project.queries.size
94 assert !@ecookbook_sub1.unarchive
349 project.queries.each do |query|
95
350 assert query
96 # Unarchive project
351 assert_equal project, query.project
97 assert @ecookbook.unarchive
352 end
98 @ecookbook.reload
353 end
99 assert @ecookbook.active?
354
100 assert user.projects.include?(@ecookbook)
355 end
101 # Subproject can now be unarchived
102 @ecookbook_sub1.reload
103 assert @ecookbook_sub1.unarchive
104 end
105
106 def test_destroy
107 # 2 active members
108 assert_equal 2, @ecookbook.members.size
109 # and 1 is locked
110 assert_equal 3, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size
111 # some boards
112 assert @ecookbook.boards.any?
113
114 @ecookbook.destroy
115 # make sure that the project non longer exists
116 assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) }
117 # make sure related data was removed
118 assert Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
119 assert Board.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?
120 end
121
122 def test_move_an_orphan_project_to_a_root_project
123 sub = Project.find(2)
124 sub.set_parent! @ecookbook
125 assert_equal @ecookbook.id, sub.parent.id
126 @ecookbook.reload
127 assert_equal 4, @ecookbook.children.size
128 end
129
130 def test_move_an_orphan_project_to_a_subproject
131 sub = Project.find(2)
132 assert sub.set_parent!(@ecookbook_sub1)
133 end
134
135 def test_move_a_root_project_to_a_project
136 sub = @ecookbook
137 assert sub.set_parent!(Project.find(2))
138 end
139
140 def test_should_not_move_a_project_to_its_children
141 sub = @ecookbook
142 assert !(sub.set_parent!(Project.find(3)))
143 end
144
145 def test_set_parent_should_add_roots_in_alphabetical_order
146 ProjectCustomField.delete_all
147 Project.delete_all
148 Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(nil)
149 Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(nil)
150 Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(nil)
151 Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(nil)
152
153 assert_equal 4, Project.count
154 assert_equal Project.all.sort_by(&:name), Project.all.sort_by(&:lft)
155 end
156
157 def test_set_parent_should_add_children_in_alphabetical_order
158 ProjectCustomField.delete_all
159 parent = Project.create!(:name => 'Parent', :identifier => 'parent')
160 Project.create!(:name => 'Project C', :identifier => 'project-c').set_parent!(parent)
161 Project.create!(:name => 'Project B', :identifier => 'project-b').set_parent!(parent)
162 Project.create!(:name => 'Project D', :identifier => 'project-d').set_parent!(parent)
163 Project.create!(:name => 'Project A', :identifier => 'project-a').set_parent!(parent)
164
165 parent.reload
166 assert_equal 4, parent.children.size
167 assert_equal parent.children.sort_by(&:name), parent.children
168 end
169
170 def test_rebuild_should_sort_children_alphabetically
171 ProjectCustomField.delete_all
172 parent = Project.create!(:name => 'Parent', :identifier => 'parent')
173 Project.create!(:name => 'Project C', :identifier => 'project-c').move_to_child_of(parent)
174 Project.create!(:name => 'Project B', :identifier => 'project-b').move_to_child_of(parent)
175 Project.create!(:name => 'Project D', :identifier => 'project-d').move_to_child_of(parent)
176 Project.create!(:name => 'Project A', :identifier => 'project-a').move_to_child_of(parent)
177
178 Project.update_all("lft = NULL, rgt = NULL")
179 Project.rebuild!
180
181 parent.reload
182 assert_equal 4, parent.children.size
183 assert_equal parent.children.sort_by(&:name), parent.children
184 end
185
186 def test_parent
187 p = Project.find(6).parent
188 assert p.is_a?(Project)
189 assert_equal 5, p.id
190 end
191
192 def test_ancestors
193 a = Project.find(6).ancestors
194 assert a.first.is_a?(Project)
195 assert_equal [1, 5], a.collect(&:id)
196 end
197
198 def test_root
199 r = Project.find(6).root
200 assert r.is_a?(Project)
201 assert_equal 1, r.id
202 end
203
204 def test_children
205 c = Project.find(1).children
206 assert c.first.is_a?(Project)
207 assert_equal [5, 3, 4], c.collect(&:id)
208 end
209
210 def test_descendants
211 d = Project.find(1).descendants
212 assert d.first.is_a?(Project)
213 assert_equal [5, 6, 3, 4], d.collect(&:id)
214 end
215
216 def test_users_by_role
217 users_by_role = Project.find(1).users_by_role
218 assert_kind_of Hash, users_by_role
219 role = Role.find(1)
220 assert_kind_of Array, users_by_role[role]
221 assert users_by_role[role].include?(User.find(2))
222 end
223
224 def test_rolled_up_trackers
225 parent = Project.find(1)
226 parent.trackers = Tracker.find([1,2])
227 child = parent.children.find(3)
228
229 assert_equal [1, 2], parent.tracker_ids
230 assert_equal [2, 3], child.trackers.collect(&:id)
231
232 assert_kind_of Tracker, parent.rolled_up_trackers.first
233 assert_equal Tracker.find(1), parent.rolled_up_trackers.first
234
235 assert_equal [1, 2, 3], parent.rolled_up_trackers.collect(&:id)
236 assert_equal [2, 3], child.rolled_up_trackers.collect(&:id)
237 end
238
239 def test_rolled_up_trackers_should_ignore_archived_subprojects
240 parent = Project.find(1)
241 parent.trackers = Tracker.find([1,2])
242 child = parent.children.find(3)
243 child.trackers = Tracker.find([1,3])
244 parent.children.each(&:archive)
245
246 assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
247 end
248
249 def test_next_identifier
250 ProjectCustomField.delete_all
251 Project.create!(:name => 'last', :identifier => 'p2008040')
252 assert_equal 'p2008041', Project.next_identifier
253 end
254
255 def test_next_identifier_first_project
256 Project.delete_all
257 assert_nil Project.next_identifier
258 end
259
260
261 def test_enabled_module_names_should_not_recreate_enabled_modules
262 project = Project.find(1)
263 # Remove one module
264 modules = project.enabled_modules.slice(0..-2)
265 assert modules.any?
266 assert_difference 'EnabledModule.count', -1 do
267 project.enabled_module_names = modules.collect(&:name)
268 end
269 project.reload
270 # Ids should be preserved
271 assert_equal project.enabled_module_ids.sort, modules.collect(&:id).sort
272 end
273
274 def test_copy_from_existing_project
275 source_project = Project.find(1)
276 copied_project = Project.copy_from(1)
277
278 assert copied_project
279 # Cleared attributes
280 assert copied_project.id.blank?
281 assert copied_project.name.blank?
282 assert copied_project.identifier.blank?
283
284 # Duplicated attributes
285 assert_equal source_project.description, copied_project.description
286 assert_equal source_project.enabled_modules, copied_project.enabled_modules
287 assert_equal source_project.trackers, copied_project.trackers
288
289 # Default attributes
290 assert_equal 1, copied_project.status
291 end
292
293 # Context: Project#copy
294 def test_copy_should_copy_issues
295 # Setup
296 ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
297 source_project = Project.find(2)
298 Project.destroy_all :identifier => "copy-test"
299 project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
300 project.trackers = source_project.trackers
301 assert project.valid?
302
303 assert project.issues.empty?
304 assert project.copy(source_project)
305
306 # Tests
307 assert_equal source_project.issues.size, project.issues.size
308 project.issues.each do |issue|
309 assert issue.valid?
310 assert ! issue.assigned_to.blank?
311 assert_equal project, issue.project
312 end
313 end
314
315 def test_copy_should_copy_members
316 # Setup
317 ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
318 source_project = Project.find(2)
319 project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
320 project.trackers = source_project.trackers
321 project.enabled_modules = source_project.enabled_modules
322 assert project.valid?
323
324 assert project.members.empty?
325 assert project.copy(source_project)
326
327 # Tests
328 assert_equal source_project.members.size, project.members.size
329 project.members.each do |member|
330 assert member
331 assert_equal project, member.project
332 end
333 end
334
335 def test_copy_should_copy_project_level_queries
336 # Setup
337 ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
338 source_project = Project.find(2)
339 project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
340 project.trackers = source_project.trackers
341 project.enabled_modules = source_project.enabled_modules
342 assert project.valid?
343
344 assert project.queries.empty?
345 assert project.copy(source_project)
346
347 # Tests
348 assert_equal source_project.queries.size, project.queries.size
349 project.queries.each do |query|
350 assert query
351 assert_equal project, query.project
352 end
353 end
354
355 end
@@ -32,17 +32,17 class RepositoryTest < ActiveSupport::TestCase
32 def setup
32 def setup
33 @repository = Project.find(1).repository
33 @repository = Project.find(1).repository
34 end
34 end
35
35
36 def test_create
36 def test_create
37 repository = Repository::Subversion.new(:project => Project.find(3))
37 repository = Repository::Subversion.new(:project => Project.find(3))
38 assert !repository.save
38 assert !repository.save
39
39
40 repository.url = "svn://localhost"
40 repository.url = "svn://localhost"
41 assert repository.save
41 assert repository.save
42 repository.reload
42 repository.reload
43
43
44 project = Project.find(3)
44 project = Project.find(3)
45 assert_equal repository, project.repository
45 assert_equal repository, project.repository
46 end
46 end
47
47
48 def test_destroy
48 def test_destroy
@@ -1,223 +1,223
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006 Jean-Philippe Lang
2 # Copyright (C) 2006 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.dirname(__FILE__) + '/../test_helper'
18 require File.dirname(__FILE__) + '/../test_helper'
19
19
20 class UserTest < ActiveSupport::TestCase
20 class UserTest < ActiveSupport::TestCase
21 fixtures :users, :members, :projects, :roles, :member_roles
21 fixtures :users, :members, :projects, :roles, :member_roles
22
22
23 def setup
23 def setup
24 @admin = User.find(1)
24 @admin = User.find(1)
25 @jsmith = User.find(2)
25 @jsmith = User.find(2)
26 @dlopper = User.find(3)
26 @dlopper = User.find(3)
27 end
27 end
28
28
29 def test_truth
29 def test_truth
30 assert_kind_of User, @jsmith
30 assert_kind_of User, @jsmith
31 end
31 end
32
32
33 def test_create
33 def test_create
34 user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
34 user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
35
35
36 user.login = "jsmith"
36 user.login = "jsmith"
37 user.password, user.password_confirmation = "password", "password"
37 user.password, user.password_confirmation = "password", "password"
38 # login uniqueness
38 # login uniqueness
39 assert !user.save
39 assert !user.save
40 assert_equal 1, user.errors.count
40 assert_equal 1, user.errors.count
41
41
42 user.login = "newuser"
42 user.login = "newuser"
43 user.password, user.password_confirmation = "passwd", "password"
43 user.password, user.password_confirmation = "passwd", "password"
44 # password confirmation
44 # password confirmation
45 assert !user.save
45 assert !user.save
46 assert_equal 1, user.errors.count
46 assert_equal 1, user.errors.count
47
47
48 user.password, user.password_confirmation = "password", "password"
48 user.password, user.password_confirmation = "password", "password"
49 assert user.save
49 assert user.save
50 end
50 end
51
51
52 def test_mail_uniqueness_should_not_be_case_sensitive
52 def test_mail_uniqueness_should_not_be_case_sensitive
53 u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
53 u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
54 u.login = 'newuser1'
54 u.login = 'newuser1'
55 u.password, u.password_confirmation = "password", "password"
55 u.password, u.password_confirmation = "password", "password"
56 assert u.save
56 assert u.save
57
57
58 u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
58 u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
59 u.login = 'newuser2'
59 u.login = 'newuser2'
60 u.password, u.password_confirmation = "password", "password"
60 u.password, u.password_confirmation = "password", "password"
61 assert !u.save
61 assert !u.save
62 assert_equal I18n.translate('activerecord.errors.messages.taken'), u.errors.on(:mail)
62 assert_equal I18n.translate('activerecord.errors.messages.taken'), u.errors.on(:mail)
63 end
63 end
64
64
65 def test_update
65 def test_update
66 assert_equal "admin", @admin.login
66 assert_equal "admin", @admin.login
67 @admin.login = "john"
67 @admin.login = "john"
68 assert @admin.save, @admin.errors.full_messages.join("; ")
68 assert @admin.save, @admin.errors.full_messages.join("; ")
69 @admin.reload
69 @admin.reload
70 assert_equal "john", @admin.login
70 assert_equal "john", @admin.login
71 end
71 end
72
72
73 def test_destroy
73 def test_destroy
74 User.find(2).destroy
74 User.find(2).destroy
75 assert_nil User.find_by_id(2)
75 assert_nil User.find_by_id(2)
76 assert Member.find_all_by_user_id(2).empty?
76 assert Member.find_all_by_user_id(2).empty?
77 end
77 end
78
78
79 def test_validate
79 def test_validate
80 @admin.login = ""
80 @admin.login = ""
81 assert !@admin.save
81 assert !@admin.save
82 assert_equal 1, @admin.errors.count
82 assert_equal 1, @admin.errors.count
83 end
83 end
84
84
85 def test_password
85 def test_password
86 user = User.try_to_login("admin", "admin")
86 user = User.try_to_login("admin", "admin")
87 assert_kind_of User, user
87 assert_kind_of User, user
88 assert_equal "admin", user.login
88 assert_equal "admin", user.login
89 user.password = "hello"
89 user.password = "hello"
90 assert user.save
90 assert user.save
91
91
92 user = User.try_to_login("admin", "hello")
92 user = User.try_to_login("admin", "hello")
93 assert_kind_of User, user
93 assert_kind_of User, user
94 assert_equal "admin", user.login
94 assert_equal "admin", user.login
95 assert_equal User.hash_password("hello"), user.hashed_password
95 assert_equal User.hash_password("hello"), user.hashed_password
96 end
96 end
97
97
98 def test_name_format
98 def test_name_format
99 assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
99 assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
100 Setting.user_format = :firstname_lastname
100 Setting.user_format = :firstname_lastname
101 assert_equal 'John Smith', @jsmith.reload.name
101 assert_equal 'John Smith', @jsmith.reload.name
102 Setting.user_format = :username
102 Setting.user_format = :username
103 assert_equal 'jsmith', @jsmith.reload.name
103 assert_equal 'jsmith', @jsmith.reload.name
104 end
104 end
105
105
106 def test_lock
106 def test_lock
107 user = User.try_to_login("jsmith", "jsmith")
107 user = User.try_to_login("jsmith", "jsmith")
108 assert_equal @jsmith, user
108 assert_equal @jsmith, user
109
109
110 @jsmith.status = User::STATUS_LOCKED
110 @jsmith.status = User::STATUS_LOCKED
111 assert @jsmith.save
111 assert @jsmith.save
112
112
113 user = User.try_to_login("jsmith", "jsmith")
113 user = User.try_to_login("jsmith", "jsmith")
114 assert_equal nil, user
114 assert_equal nil, user
115 end
115 end
116
116
117 def test_create_anonymous
117 def test_create_anonymous
118 AnonymousUser.delete_all
118 AnonymousUser.delete_all
119 anon = User.anonymous
119 anon = User.anonymous
120 assert !anon.new_record?
120 assert !anon.new_record?
121 assert_kind_of AnonymousUser, anon
121 assert_kind_of AnonymousUser, anon
122 end
122 end
123
123
124 def test_rss_key
124 def test_rss_key
125 assert_nil @jsmith.rss_token
125 assert_nil @jsmith.rss_token
126 key = @jsmith.rss_key
126 key = @jsmith.rss_key
127 assert_equal 40, key.length
127 assert_equal 40, key.length
128
128
129 @jsmith.reload
129 @jsmith.reload
130 assert_equal key, @jsmith.rss_key
130 assert_equal key, @jsmith.rss_key
131 end
131 end
132
132
133 def test_roles_for_project
133 def test_roles_for_project
134 # user with a role
134 # user with a role
135 roles = @jsmith.roles_for_project(Project.find(1))
135 roles = @jsmith.roles_for_project(Project.find(1))
136 assert_kind_of Role, roles.first
136 assert_kind_of Role, roles.first
137 assert_equal "Manager", roles.first.name
137 assert_equal "Manager", roles.first.name
138
138
139 # user with no role
139 # user with no role
140 assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?}
140 assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?}
141 end
141 end
142
142
143 def test_mail_notification_all
143 def test_mail_notification_all
144 @jsmith.mail_notification = true
144 @jsmith.mail_notification = true
145 @jsmith.notified_project_ids = []
145 @jsmith.notified_project_ids = []
146 @jsmith.save
146 @jsmith.save
147 @jsmith.reload
147 @jsmith.reload
148 assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
148 assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
149 end
149 end
150
150
151 def test_mail_notification_selected
151 def test_mail_notification_selected
152 @jsmith.mail_notification = false
152 @jsmith.mail_notification = false
153 @jsmith.notified_project_ids = [1]
153 @jsmith.notified_project_ids = [1]
154 @jsmith.save
154 @jsmith.save
155 @jsmith.reload
155 @jsmith.reload
156 assert Project.find(1).recipients.include?(@jsmith.mail)
156 assert Project.find(1).recipients.include?(@jsmith.mail)
157 end
157 end
158
158
159 def test_mail_notification_none
159 def test_mail_notification_none
160 @jsmith.mail_notification = false
160 @jsmith.mail_notification = false
161 @jsmith.notified_project_ids = []
161 @jsmith.notified_project_ids = []
162 @jsmith.save
162 @jsmith.save
163 @jsmith.reload
163 @jsmith.reload
164 assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
164 assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
165 end
165 end
166
166
167 def test_comments_sorting_preference
167 def test_comments_sorting_preference
168 assert !@jsmith.wants_comments_in_reverse_order?
168 assert !@jsmith.wants_comments_in_reverse_order?
169 @jsmith.pref.comments_sorting = 'asc'
169 @jsmith.pref.comments_sorting = 'asc'
170 assert !@jsmith.wants_comments_in_reverse_order?
170 assert !@jsmith.wants_comments_in_reverse_order?
171 @jsmith.pref.comments_sorting = 'desc'
171 @jsmith.pref.comments_sorting = 'desc'
172 assert @jsmith.wants_comments_in_reverse_order?
172 assert @jsmith.wants_comments_in_reverse_order?
173 end
173 end
174
174
175 def test_find_by_mail_should_be_case_insensitive
175 def test_find_by_mail_should_be_case_insensitive
176 u = User.find_by_mail('JSmith@somenet.foo')
176 u = User.find_by_mail('JSmith@somenet.foo')
177 assert_not_nil u
177 assert_not_nil u
178 assert_equal 'jsmith@somenet.foo', u.mail
178 assert_equal 'jsmith@somenet.foo', u.mail
179 end
179 end
180
180
181 def test_random_password
181 def test_random_password
182 u = User.new
182 u = User.new
183 u.random_password
183 u.random_password
184 assert !u.password.blank?
184 assert !u.password.blank?
185 assert !u.password_confirmation.blank?
185 assert !u.password_confirmation.blank?
186 end
186 end
187
187
188 if Object.const_defined?(:OpenID)
188 if Object.const_defined?(:OpenID)
189
189
190 def test_setting_identity_url
190 def test_setting_identity_url
191 normalized_open_id_url = 'http://example.com/'
191 normalized_open_id_url = 'http://example.com/'
192 u = User.new( :identity_url => 'http://example.com/' )
192 u = User.new( :identity_url => 'http://example.com/' )
193 assert_equal normalized_open_id_url, u.identity_url
193 assert_equal normalized_open_id_url, u.identity_url
194 end
194 end
195
195
196 def test_setting_identity_url_without_trailing_slash
196 def test_setting_identity_url_without_trailing_slash
197 normalized_open_id_url = 'http://example.com/'
197 normalized_open_id_url = 'http://example.com/'
198 u = User.new( :identity_url => 'http://example.com' )
198 u = User.new( :identity_url => 'http://example.com' )
199 assert_equal normalized_open_id_url, u.identity_url
199 assert_equal normalized_open_id_url, u.identity_url
200 end
200 end
201
201
202 def test_setting_identity_url_without_protocol
202 def test_setting_identity_url_without_protocol
203 normalized_open_id_url = 'http://example.com/'
203 normalized_open_id_url = 'http://example.com/'
204 u = User.new( :identity_url => 'example.com' )
204 u = User.new( :identity_url => 'example.com' )
205 assert_equal normalized_open_id_url, u.identity_url
205 assert_equal normalized_open_id_url, u.identity_url
206 end
206 end
207
207
208 def test_setting_blank_identity_url
208 def test_setting_blank_identity_url
209 u = User.new( :identity_url => 'example.com' )
209 u = User.new( :identity_url => 'example.com' )
210 u.identity_url = ''
210 u.identity_url = ''
211 assert u.identity_url.blank?
211 assert u.identity_url.blank?
212 end
212 end
213
213
214 def test_setting_invalid_identity_url
214 def test_setting_invalid_identity_url
215 u = User.new( :identity_url => 'this is not an openid url' )
215 u = User.new( :identity_url => 'this is not an openid url' )
216 assert u.identity_url.blank?
216 assert u.identity_url.blank?
217 end
217 end
218
218
219 else
219 else
220 puts "Skipping openid tests."
220 puts "Skipping openid tests."
221 end
221 end
222
222
223 end
223 end
@@ -24,18 +24,18 class WikiPageTest < ActiveSupport::TestCase
24 @wiki = Wiki.find(1)
24 @wiki = Wiki.find(1)
25 @page = @wiki.pages.first
25 @page = @wiki.pages.first
26 end
26 end
27
27
28 def test_create
28 def test_create
29 page = WikiPage.new(:wiki => @wiki)
29 page = WikiPage.new(:wiki => @wiki)
30 assert !page.save
30 assert !page.save
31 assert_equal 1, page.errors.count
31 assert_equal 1, page.errors.count
32
32
33 page.title = "Page"
33 page.title = "Page"
34 assert page.save
34 assert page.save
35 page.reload
35 page.reload
36
36
37 @wiki.reload
37 @wiki.reload
38 assert @wiki.pages.include?(page)
38 assert @wiki.pages.include?(page)
39 end
39 end
40
40
41 def test_find_or_new_page
41 def test_find_or_new_page
@@ -19,15 +19,15 require File.dirname(__FILE__) + '/../test_helper'
19
19
20 class WikiTest < ActiveSupport::TestCase
20 class WikiTest < ActiveSupport::TestCase
21 fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
21 fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
22
22
23 def test_create
23 def test_create
24 wiki = Wiki.new(:project => Project.find(2))
24 wiki = Wiki.new(:project => Project.find(2))
25 assert !wiki.save
25 assert !wiki.save
26 assert_equal 1, wiki.errors.count
26 assert_equal 1, wiki.errors.count
27
27
28 wiki.start_page = "Start page"
28 wiki.start_page = "Start page"
29 assert wiki.save
29 assert wiki.save
30 end
30 end
31
31
32 def test_update
32 def test_update
33 @wiki = Wiki.find(1)
33 @wiki = Wiki.find(1)
General Comments 0
You need to be logged in to leave comments. Login now