##// 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
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 class Principal < ActiveRecord::Base
19 set_table_name 'users'
20
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"
23 has_many :projects, :through => :memberships
24
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)"
27
28 named_scope :like, lambda {|q|
29 s = "%#{q.to_s.strip.downcase}%"
30 {:conditions => ["LOWER(login) LIKE ? OR LOWER(firstname) LIKE ? OR LOWER(lastname) LIKE ?", s, s, s],
31 :order => 'type, login, lastname, firstname'
32 }
33 }
34
35 def <=>(principal)
36 self.to_s.downcase <=> principal.to_s.downcase
37 end
38 end
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 class Principal < ActiveRecord::Base
19 set_table_name 'users'
20
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"
23 has_many :projects, :through => :memberships
24
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)"
27
28 named_scope :like, lambda {|q|
29 s = "%#{q.to_s.strip.downcase}%"
30 {:conditions => ["LOWER(login) LIKE ? OR LOWER(firstname) LIKE ? OR LOWER(lastname) LIKE ?", s, s, s],
31 :order => 'type, login, lastname, firstname'
32 }
33 }
34
35 def <=>(principal)
36 self.to_s.downcase <=> principal.to_s.downcase
37 end
38 end
@@ -1,16 +1,16
1 <h3><%=l(:label_watched_issues)%> (<%= Issue.visible.count(:include => :watchers,
2 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id]) %>)</h3>
3 <% watched_issues = Issue.visible.find(:all,
4 :include => [:status, :project, :tracker, :watchers],
5 :limit => 10,
6 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id],
7 :order => "#{Issue.table_name}.updated_on DESC") %>
8
9 <%= render :partial => 'issues/list_simple', :locals => { :issues => watched_issues } %>
10 <% if watched_issues.length > 0 %>
11 <p class="small"><%= link_to l(:label_issue_view_all), :controller => 'issues',
12 :action => 'index',
13 :set_filter => 1,
14 :watcher_id => 'me',
15 :sort => 'updated_on:desc' %></p>
16 <% end %>
1 <h3><%=l(:label_watched_issues)%> (<%= Issue.visible.count(:include => :watchers,
2 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id]) %>)</h3>
3 <% watched_issues = Issue.visible.find(:all,
4 :include => [:status, :project, :tracker, :watchers],
5 :limit => 10,
6 :conditions => ["#{Watcher.table_name}.user_id = ?", user.id],
7 :order => "#{Issue.table_name}.updated_on DESC") %>
8
9 <%= render :partial => 'issues/list_simple', :locals => { :issues => watched_issues } %>
10 <% if watched_issues.length > 0 %>
11 <p class="small"><%= link_to l(:label_issue_view_all), :controller => 'issues',
12 :action => 'index',
13 :set_filter => 1,
14 :watcher_id => 'me',
15 :sort => 'updated_on:desc' %></p>
16 <% end %>
@@ -1,6 +1,6
1 <h2><%= l(:label_query_new) %></h2>
2
3 <% form_tag({:action => 'new', :project_id => @query.project}, :onsubmit => 'selectAllOptions("selected_columns");') do %>
4 <%= render :partial => 'form', :locals => {:query => @query} %>
5 <%= submit_tag l(:button_save) %>
6 <% end %>
1 <h2><%= l(:label_query_new) %></h2>
2
3 <% form_tag({:action => 'new', :project_id => @query.project}, :onsubmit => 'selectAllOptions("selected_columns");') do %>
4 <%= render :partial => 'form', :locals => {:query => @query} %>
5 <%= submit_tag l(:button_save) %>
6 <% end %>
@@ -1,12 +1,12
1 <h2><%= l(:label_statistics) %></h2>
2
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")) %>
5 </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")) %>
8 </p>
9
10 <p><%= link_to l(:button_back), :action => 'show', :id => @project %></p>
11
12 <% html_title(l(:label_repository), l(:label_statistics)) -%>
1 <h2><%= l(:label_statistics) %></h2>
2
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")) %>
5 </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")) %>
8 </p>
9
10 <p><%= link_to l(:button_back), :action => 'show', :id => @project %></p>
11
12 <% html_title(l(:label_repository), l(:label_statistics)) -%>
@@ -1,51 +1,51
1 <h2><%= l(:label_search) %></h2>
2
3 <div class="box">
4 <% form_tag({}, :method => :get) do %>
5 <p><%= text_field_tag 'q', @question, :size => 60, :id => 'search-input' %>
6 <%= javascript_tag "Field.focus('search-input')" %>
7 <%= project_select_tag %>
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>
10 </p>
11 <p>
12 <% @object_types.each do |t| %>
13 <label><%= check_box_tag t, 1, @scope.include?(t) %> <%= type_label(t) %></label>
14 <% end %>
15 </p>
16
17 <p><%= submit_tag l(:button_submit), :name => 'submit' %></p>
18 <% end %>
19 </div>
20
21 <% if @results %>
22 <div id="search-results-counts">
23 <%= render_results_by_type(@results_by_type) unless @scope.size == 1 %>
24 </div>
25
26 <h3><%= l(:label_result_plural) %> (<%= @results_by_type.values.sum %>)</h3>
27 <dl id="search-results">
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>
30 <dd><span class="description"><%= highlight_tokens(e.event_description, @tokens) %></span>
31 <span class="author"><%= format_time(e.event_datetime) %></span></dd>
32 <% end %>
33 </dl>
34 <% end %>
35
36 <p><center>
37 <% if @pagination_previous_date %>
38 <%= link_to_remote ('&#171; ' + l(:label_previous)),
39 {:update => :content,
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;
42 <% end %>
43 <% if @pagination_next_date %>
44 <%= link_to_remote (l(:label_next) + ' &#187;'),
45 {:update => :content,
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"))) %>
48 <% end %>
49 </center></p>
50
51 <% html_title(l(:label_search)) -%>
1 <h2><%= l(:label_search) %></h2>
2
3 <div class="box">
4 <% form_tag({}, :method => :get) do %>
5 <p><%= text_field_tag 'q', @question, :size => 60, :id => 'search-input' %>
6 <%= javascript_tag "Field.focus('search-input')" %>
7 <%= project_select_tag %>
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>
10 </p>
11 <p>
12 <% @object_types.each do |t| %>
13 <label><%= check_box_tag t, 1, @scope.include?(t) %> <%= type_label(t) %></label>
14 <% end %>
15 </p>
16
17 <p><%= submit_tag l(:button_submit), :name => 'submit' %></p>
18 <% end %>
19 </div>
20
21 <% if @results %>
22 <div id="search-results-counts">
23 <%= render_results_by_type(@results_by_type) unless @scope.size == 1 %>
24 </div>
25
26 <h3><%= l(:label_result_plural) %> (<%= @results_by_type.values.sum %>)</h3>
27 <dl id="search-results">
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>
30 <dd><span class="description"><%= highlight_tokens(e.event_description, @tokens) %></span>
31 <span class="author"><%= format_time(e.event_datetime) %></span></dd>
32 <% end %>
33 </dl>
34 <% end %>
35
36 <p><center>
37 <% if @pagination_previous_date %>
38 <%= link_to_remote ('&#171; ' + l(:label_previous)),
39 {:update => :content,
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;
42 <% end %>
43 <% if @pagination_next_date %>
44 <%= link_to_remote (l(:label_next) + ' &#187;'),
45 {:update => :content,
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"))) %>
48 <% end %>
49 </center></p>
50
51 <% html_title(l(:label_search)) -%>
@@ -1,35 +1,35
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' %>
3 </div>
4
5 <%= render_timelog_breadcrumb %>
6
7 <h2><%= l(:label_spent_time) %></h2>
8
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
11 already in the URI %>
12 <%= hidden_field_tag('project_id', params[:project_id]) if @project %>
13 <%= hidden_field_tag 'issue_id', params[:issue_id] if @issue %>
14 <%= render :partial => 'date_range' %>
15 <% end %>
16
17 <div class="total-hours">
18 <p><%= l(:label_total) %>: <%= html_hours(l_hours(@total_hours)) %></p>
19 </div>
20
21 <% unless @entries.empty? %>
22 <%= render :partial => 'list', :locals => { :entries => @entries }%>
23 <p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p>
24
25 <% other_formats_links do |f| %>
26 <%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
27 <%= f.link_to 'CSV', :url => params %>
28 <% end %>
29 <% end %>
30
31 <% html_title l(:label_spent_time), l(:label_details) %>
32
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)) %>
35 <% end %>
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' %>
3 </div>
4
5 <%= render_timelog_breadcrumb %>
6
7 <h2><%= l(:label_spent_time) %></h2>
8
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
11 already in the URI %>
12 <%= hidden_field_tag('project_id', params[:project_id]) if @project %>
13 <%= hidden_field_tag 'issue_id', params[:issue_id] if @issue %>
14 <%= render :partial => 'date_range' %>
15 <% end %>
16
17 <div class="total-hours">
18 <p><%= l(:label_total) %>: <%= html_hours(l_hours(@total_hours)) %></p>
19 </div>
20
21 <% unless @entries.empty? %>
22 <%= render :partial => 'list', :locals => { :entries => @entries }%>
23 <p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p>
24
25 <% other_formats_links do |f| %>
26 <%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
27 <%= f.link_to 'CSV', :url => params %>
28 <% end %>
29 <% end %>
30
31 <% html_title l(:label_spent_time), l(:label_details) %>
32
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)) %>
35 <% end %>
@@ -1,21 +1,21
1 <h2><%= l(:label_spent_time) %></h2>
2
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' %>
5 <%= back_url_hidden_field_tag %>
6
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>
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>
11 <p><%= f.text_field :comments, :size => 100 %></p>
12 <p><%= f.select :activity_id, activity_collection_for_select_options, :required => true %></p>
13 <% @time_entry.custom_field_values.each do |value| %>
14 <p><%= custom_field_tag_with_label :time_entry, value %></p>
15 <% end %>
16 <%= call_hook(:view_timelog_edit_form_bottom, { :time_entry => @time_entry, :form => f }) %>
17 </div>
18
19 <%= submit_tag l(:button_save) %>
20
21 <% end %>
1 <h2><%= l(:label_spent_time) %></h2>
2
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' %>
5 <%= back_url_hidden_field_tag %>
6
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>
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>
11 <p><%= f.text_field :comments, :size => 100 %></p>
12 <p><%= f.select :activity_id, activity_collection_for_select_options, :required => true %></p>
13 <% @time_entry.custom_field_values.each do |value| %>
14 <p><%= custom_field_tag_with_label :time_entry, value %></p>
15 <% end %>
16 <%= call_hook(:view_timelog_edit_form_bottom, { :time_entry => @time_entry, :form => f }) %>
17 </div>
18
19 <%= submit_tag l(:button_save) %>
20
21 <% end %>
@@ -1,849 +1,849
1 1 #Ernad Husremovic hernad@bring.out.ba
2 2
3 3 bs:
4 4 date:
5 5 formats:
6 6 default: "%d.%m.%Y"
7 7 short: "%e. %b"
8 8 long: "%e. %B %Y"
9 9 only_day: "%e"
10 10
11 11
12 12 day_names: [Nedjelja, Ponedjeljak, Utorak, Srijeda, Četvrtak, Petak, Subota]
13 13 abbr_day_names: [Ned, Pon, Uto, Sri, Čet, Pet, Sub]
14 14
15 15 month_names: [~, Januar, Februar, Mart, April, Maj, Jun, Jul, Avgust, Septembar, Oktobar, Novembar, Decembar]
16 16 abbr_month_names: [~, Jan, Feb, Mar, Apr, Maj, Jun, Jul, Avg, Sep, Okt, Nov, Dec]
17 17 order: [ :day, :month, :year ]
18 18
19 19 time:
20 20 formats:
21 21 default: "%A, %e. %B %Y, %H:%M"
22 22 short: "%e. %B, %H:%M Uhr"
23 23 long: "%A, %e. %B %Y, %H:%M"
24 24 time: "%H:%M"
25 25
26 26 am: "prijepodne"
27 27 pm: "poslijepodne"
28 28
29 29 datetime:
30 30 distance_in_words:
31 31 half_a_minute: "pola minute"
32 32 less_than_x_seconds:
33 33 one: "manje od 1 sekunde"
34 34 other: "manje od {{count}} sekudni"
35 35 x_seconds:
36 36 one: "1 sekunda"
37 37 other: "{{count}} sekundi"
38 38 less_than_x_minutes:
39 39 one: "manje od 1 minute"
40 40 other: "manje od {{count}} minuta"
41 41 x_minutes:
42 42 one: "1 minuta"
43 43 other: "{{count}} minuta"
44 44 about_x_hours:
45 45 one: "oko 1 sahat"
46 46 other: "oko {{count}} sahata"
47 47 x_days:
48 48 one: "1 dan"
49 49 other: "{{count}} dana"
50 50 about_x_months:
51 51 one: "oko 1 mjesec"
52 52 other: "oko {{count}} mjeseci"
53 53 x_months:
54 54 one: "1 mjesec"
55 55 other: "{{count}} mjeseci"
56 56 about_x_years:
57 57 one: "oko 1 godine"
58 58 other: "oko {{count}} godina"
59 59 over_x_years:
60 60 one: "preko 1 godine"
61 61 other: "preko {{count}} godina"
62 62
63 63
64 64 number:
65 65 format:
66 66 precision: 2
67 67 separator: ','
68 68 delimiter: '.'
69 69 currency:
70 70 format:
71 71 unit: 'KM'
72 72 format: '%u %n'
73 73 separator:
74 74 delimiter:
75 75 precision:
76 76 percentage:
77 77 format:
78 78 delimiter: ""
79 79 precision:
80 80 format:
81 81 delimiter: ""
82 82 human:
83 83 format:
84 84 delimiter: ""
85 85 precision: 1
86 86 storage_units:
87 87 format: "%n %u"
88 88 units:
89 89 byte:
90 90 one: "Byte"
91 91 other: "Bytes"
92 92 kb: "KB"
93 93 mb: "MB"
94 94 gb: "GB"
95 95 tb: "TB"
96 96
97 97 # Used in array.to_sentence.
98 98 support:
99 99 array:
100 100 sentence_connector: "i"
101 101 skip_last_comma: false
102 102
103 103 activerecord:
104 104 errors:
105 105 messages:
106 106 inclusion: "nije uključeno u listu"
107 107 exclusion: "je rezervisano"
108 108 invalid: "nije ispravno"
109 109 confirmation: "ne odgovara potvrdi"
110 110 accepted: "mora se prihvatiti"
111 111 empty: "ne može biti prazno"
112 112 blank: "ne može biti znak razmaka"
113 113 too_long: "je predugačko"
114 114 too_short: "je prekratko"
115 115 wrong_length: "je pogrešne dužine"
116 116 taken: "već je zauzeto"
117 117 not_a_number: "nije broj"
118 118 not_a_date: "nije ispravan datum"
119 119 greater_than: "mora bit veći od {{count}}"
120 120 greater_than_or_equal_to: "mora bit veći ili jednak {{count}}"
121 121 equal_to: "mora biti jednak {{count}}"
122 122 less_than: "mora biti manji od {{count}}"
123 123 less_than_or_equal_to: "mora bit manji ili jednak {{count}}"
124 124 odd: "mora biti neparan"
125 125 even: "mora biti paran"
126 126 greater_than_start_date: "mora biti veći nego početni datum"
127 127 not_same_project: "ne pripada istom projektu"
128 128 circular_dependency: "Ova relacija stvar cirkularnu zavisnost"
129 129
130 130 actionview_instancetag_blank_option: Molimo odaberite
131 131
132 132 general_text_No: 'Da'
133 133 general_text_Yes: 'Ne'
134 134 general_text_no: 'ne'
135 135 general_text_yes: 'da'
136 136 general_lang_name: 'Bosanski'
137 137 general_csv_separator: ','
138 138 general_csv_decimal_separator: '.'
139 139 general_csv_encoding: utf8
140 140 general_pdf_encoding: utf8
141 141 general_first_day_of_week: '7'
142 142
143 143 notice_account_activated: Vaš nalog je aktiviran. Možete se prijaviti.
144 144 notice_account_invalid_creditentials: Pogrešan korisnik ili lozinka
145 145 notice_account_lost_email_sent: Email sa uputstvima o izboru nove šifre je poslat na vašu adresu.
146 146 notice_account_password_updated: Lozinka je uspješno promjenjena.
147 147 notice_account_pending: "Vaš nalog je kreiran i čeka odobrenje administratora."
148 148 notice_account_register_done: Nalog je uspješno kreiran. Da bi ste aktivirali vaš nalog kliknite na link koji vam je poslat.
149 149 notice_account_unknown_email: Nepoznati korisnik.
150 150 notice_account_updated: Nalog je uspješno promjenen.
151 151 notice_account_wrong_password: Pogrešna lozinka
152 152 notice_can_t_change_password: Ovaj nalog koristi eksterni izvor prijavljivanja. Ne mogu da promjenim šifru.
153 153 notice_default_data_loaded: Podrazumjevana konfiguracija uspječno učitana.
154 154 notice_email_error: Došlo je do greške pri slanju emaila ({{value}})
155 155 notice_email_sent: "Email je poslan {{value}}"
156 156 notice_failed_to_save_issues: "Neuspješno snimanje {{count}} aktivnosti na {{total}} izabrano: {{ids}}."
157 157 notice_feeds_access_key_reseted: Vaš RSS pristup je resetovan.
158 158 notice_file_not_found: Stranica kojoj pokušavate da pristupite ne postoji ili je uklonjena.
159 159 notice_locking_conflict: "Konflikt: podaci su izmjenjeni od strane drugog korisnika."
160 160 notice_no_issue_selected: "Nijedna aktivnost nije izabrana! Molim, izaberite aktivnosti koje želite za ispravljate."
161 161 notice_not_authorized: Niste ovlašćeni da pristupite ovoj stranici.
162 162 notice_successful_connection: Uspješna konekcija.
163 163 notice_successful_create: Uspješno kreiranje.
164 164 notice_successful_delete: Brisanje izvršeno.
165 165 notice_successful_update: Promjene uspješno izvršene.
166 166
167 167 error_can_t_load_default_data: "Podrazumjevane postavke se ne mogu učitati {{value}}"
168 168 error_scm_command_failed: "Desila se greška pri pristupu repozitoriju: {{value}}"
169 169 error_scm_not_found: "Unos i/ili revizija ne postoji u repozitoriju."
170 170
171 171 error_scm_annotate: "Ova stavka ne postoji ili nije označena."
172 172 error_issue_not_found_in_project: 'Aktivnost nije nađena ili ne pripada ovom projektu'
173 173
174 174 warning_attachments_not_saved: "{{count}} fajl(ovi) ne mogu biti snimljen(i)."
175 175
176 176 mail_subject_lost_password: "Vaša {{value}} lozinka"
177 177 mail_body_lost_password: 'Za promjenu lozinke, kliknite na sljedeći link:'
178 178 mail_subject_register: "Aktivirajte {{value}} vaš korisnički račun"
179 179 mail_body_register: 'Za aktivaciju vašeg korisničkog računa, kliknite na sljedeći link:'
180 180 mail_body_account_information_external: "Možete koristiti vaš {{value}} korisnički račun za prijavu na sistem."
181 181 mail_body_account_information: Informacija o vašem korisničkom računu
182 182 mail_subject_account_activation_request: "{{value}} zahtjev za aktivaciju korisničkog računa"
183 183 mail_body_account_activation_request: "Novi korisnik ({{value}}) se registrovao. Korisnički račun čeka vaše odobrenje za aktivaciju:"
184 184 mail_subject_reminder: "{{count}} aktivnost(i) u kašnjenju u narednim danima"
185 185 mail_body_reminder: "{{count}} aktivnost(i) koje su dodjeljenje vama u narednim {{days}} danima:"
186 186
187 187 gui_validation_error: 1 greška
188 188 gui_validation_error_plural: "{{count}} grešaka"
189 189
190 190 field_name: Ime
191 191 field_description: Opis
192 192 field_summary: Pojašnjenje
193 193 field_is_required: Neophodno popuniti
194 194 field_firstname: Ime
195 195 field_lastname: Prezime
196 196 field_mail: Email
197 197 field_filename: Fajl
198 198 field_filesize: Veličina
199 199 field_downloads: Downloadi
200 200 field_author: Autor
201 201 field_created_on: Kreirano
202 202 field_updated_on: Izmjenjeno
203 203 field_field_format: Format
204 204 field_is_for_all: Za sve projekte
205 205 field_possible_values: Moguće vrijednosti
206 206 field_regexp: '"Regularni izraz"'
207 207 field_min_length: Minimalna veličina
208 208 field_max_length: Maksimalna veličina
209 209 field_value: Vrijednost
210 210 field_category: Kategorija
211 211 field_title: Naslov
212 212 field_project: Projekat
213 213 field_issue: Aktivnost
214 214 field_status: Status
215 215 field_notes: Bilješke
216 216 field_is_closed: Aktivnost zatvorena
217 217 field_is_default: Podrazumjevana vrijednost
218 218 field_tracker: Područje aktivnosti
219 219 field_subject: Subjekat
220 220 field_due_date: Završiti do
221 221 field_assigned_to: Dodijeljeno
222 222 field_priority: Prioritet
223 223 field_fixed_version: Ciljna verzija
224 224 field_user: Korisnik
225 225 field_role: Uloga
226 226 field_homepage: Naslovna strana
227 227 field_is_public: Javni
228 228 field_parent: Podprojekt od
229 229 field_is_in_chlog: Aktivnosti prikazane u logu promjena
230 230 field_is_in_roadmap: Aktivnosti prikazane u planu realizacije
231 231 field_login: Prijava
232 232 field_mail_notification: Email notifikacije
233 233 field_admin: Administrator
234 234 field_last_login_on: Posljednja konekcija
235 235 field_language: Jezik
236 236 field_effective_date: Datum
237 237 field_password: Lozinka
238 238 field_new_password: Nova lozinka
239 239 field_password_confirmation: Potvrda
240 240 field_version: Verzija
241 241 field_type: Tip
242 242 field_host: Host
243 243 field_port: Port
244 244 field_account: Korisnički račun
245 245 field_base_dn: Base DN
246 246 field_attr_login: Attribut za prijavu
247 247 field_attr_firstname: Attribut za ime
248 248 field_attr_lastname: Atribut za prezime
249 249 field_attr_mail: Atribut za email
250 250 field_onthefly: 'Kreiranje korisnika "On-the-fly"'
251 251 field_start_date: Početak
252 252 field_done_ratio: % Realizovano
253 253 field_auth_source: Mod za authentifikaciju
254 254 field_hide_mail: Sakrij moju email adresu
255 255 field_comments: Komentar
256 256 field_url: URL
257 257 field_start_page: Početna stranica
258 258 field_subproject: Podprojekat
259 259 field_hours: Sahata
260 260 field_activity: Operacija
261 261 field_spent_on: Datum
262 262 field_identifier: Identifikator
263 263 field_is_filter: Korišteno kao filter
264 264 field_issue_to: Povezana aktivnost
265 265 field_delay: Odgađanje
266 266 field_assignable: Aktivnosti dodijeljene ovoj ulozi
267 267 field_redirect_existing_links: Izvrši redirekciju postojećih linkova
268 268 field_estimated_hours: Procjena vremena
269 269 field_column_names: Kolone
270 270 field_time_zone: Vremenska zona
271 271 field_searchable: Pretraživo
272 272 field_default_value: Podrazumjevana vrijednost
273 273 field_comments_sorting: Prikaži komentare
274 274 field_parent_title: 'Stranica "roditelj"'
275 275 field_editable: Može se mijenjati
276 276 field_watcher: Posmatrač
277 277 field_identity_url: OpenID URL
278 278 field_content: Sadržaj
279 279
280 280 setting_app_title: Naslov aplikacije
281 281 setting_app_subtitle: Podnaslov aplikacije
282 282 setting_welcome_text: Tekst dobrodošlice
283 283 setting_default_language: Podrazumjevani jezik
284 284 setting_login_required: Authentifikacija neophodna
285 285 setting_self_registration: Samo-registracija
286 286 setting_attachment_max_size: Maksimalna veličina prikačenog fajla
287 287 setting_issues_export_limit: Limit za eksport aktivnosti
288 288 setting_mail_from: Mail adresa - pošaljilac
289 289 setting_bcc_recipients: '"BCC" (blind carbon copy) primaoci '
290 290 setting_plain_text_mail: Email sa običnim tekstom (bez HTML-a)
291 291 setting_host_name: Ime hosta i putanja
292 292 setting_text_formatting: Formatiranje teksta
293 293 setting_wiki_compression: Kompresija Wiki istorije
294 294
295 295 setting_feeds_limit: 'Limit za "RSS" feed-ove'
296 296 setting_default_projects_public: Podrazumjeva se da je novi projekat javni
297 297 setting_autofetch_changesets: 'Automatski kupi "commit"-e'
298 298 setting_sys_api_enabled: 'Omogući "WS" za upravljanje repozitorijom'
299 299 setting_commit_ref_keywords: Ključne riječi za reference
300 300 setting_commit_fix_keywords: 'Ključne riječi za status "zatvoreno"'
301 301 setting_autologin: Automatski login
302 302 setting_date_format: Format datuma
303 303 setting_time_format: Format vremena
304 304 setting_cross_project_issue_relations: Omogući relacije između aktivnosti na različitim projektima
305 305 setting_issue_list_default_columns: Podrazumjevane koleone za prikaz na listi aktivnosti
306 306 setting_repositories_encodings: Enkodiranje repozitorija
307 307 setting_commit_logs_encoding: 'Enkodiranje "commit" poruka'
308 308 setting_emails_footer: Potpis na email-ovima
309 309 setting_protocol: Protokol
310 310 setting_per_page_options: Broj objekata po stranici
311 311 setting_user_format: Format korisničkog prikaza
312 312 setting_activity_days_default: Prikaz promjena na projektu - opseg dana
313 313 setting_display_subprojects_issues: Prikaz podprojekata na glavnom projektima (podrazumjeva se)
314 314 setting_enabled_scm: Omogući SCM (source code management)
315 315 setting_mail_handler_api_enabled: Omogući automatsku obradu ulaznih emailova
316 316 setting_mail_handler_api_key: API ključ (obrada ulaznih mailova)
317 317 setting_sequential_project_identifiers: Generiši identifikatore projekta sekvencijalno
318 318 setting_gravatar_enabled: 'Koristi "gravatar" korisničke ikone'
319 319 setting_diff_max_lines_displayed: Maksimalan broj linija za prikaz razlika između dva fajla
320 320 setting_file_max_size_displayed: Maksimalna veličina fajla kod prikaza razlika unutar fajla (inline)
321 321 setting_repository_log_display_limit: Maksimalna veličina revizija prikazanih na log fajlu
322 322 setting_openid: Omogući OpenID prijavu i registraciju
323 323
324 324 permission_edit_project: Ispravke projekta
325 325 permission_select_project_modules: Odaberi module projekta
326 326 permission_manage_members: Upravljanje članovima
327 327 permission_manage_versions: Upravljanje verzijama
328 328 permission_manage_categories: Upravljanje kategorijama aktivnosti
329 329 permission_add_issues: Dodaj aktivnosti
330 330 permission_edit_issues: Ispravka aktivnosti
331 331 permission_manage_issue_relations: Upravljaj relacijama među aktivnostima
332 332 permission_add_issue_notes: Dodaj bilješke
333 333 permission_edit_issue_notes: Ispravi bilješke
334 334 permission_edit_own_issue_notes: Ispravi sopstvene bilješke
335 335 permission_move_issues: Pomjeri aktivnosti
336 336 permission_delete_issues: Izbriši aktivnosti
337 337 permission_manage_public_queries: Upravljaj javnim upitima
338 338 permission_save_queries: Snimi upite
339 339 permission_view_gantt: Pregled gantograma
340 340 permission_view_calendar: Pregled kalendara
341 341 permission_view_issue_watchers: Pregled liste korisnika koji prate aktivnost
342 342 permission_add_issue_watchers: Dodaj onoga koji prati aktivnost
343 343 permission_log_time: Evidentiraj utrošak vremena
344 344 permission_view_time_entries: Pregled utroška vremena
345 345 permission_edit_time_entries: Ispravka utroška vremena
346 346 permission_edit_own_time_entries: Ispravka svog utroška vremena
347 347 permission_manage_news: Upravljaj novostima
348 348 permission_comment_news: Komentiraj novosti
349 349 permission_manage_documents: Upravljaj dokumentima
350 350 permission_view_documents: Pregled dokumenata
351 351 permission_manage_files: Upravljaj fajlovima
352 352 permission_view_files: Pregled fajlova
353 353 permission_manage_wiki: Upravljaj wiki stranicama
354 354 permission_rename_wiki_pages: Ispravi wiki stranicu
355 355 permission_delete_wiki_pages: Izbriši wiki stranicu
356 356 permission_view_wiki_pages: Pregled wiki sadržaja
357 357 permission_view_wiki_edits: Pregled wiki istorije
358 358 permission_edit_wiki_pages: Ispravka wiki stranica
359 359 permission_delete_wiki_pages_attachments: Brisanje fajlova prikačenih wiki-ju
360 360 permission_protect_wiki_pages: Zaštiti wiki stranicu
361 361 permission_manage_repository: Upravljaj repozitorijem
362 362 permission_browse_repository: Pregled repozitorija
363 363 permission_view_changesets: Pregled setova promjena
364 364 permission_commit_access: 'Pristup "commit"-u'
365 365 permission_manage_boards: Upravljaj forumima
366 366 permission_view_messages: Pregled poruka
367 367 permission_add_messages: Šalji poruke
368 368 permission_edit_messages: Ispravi poruke
369 369 permission_edit_own_messages: Ispravka sopstvenih poruka
370 370 permission_delete_messages: Prisanje poruka
371 371 permission_delete_own_messages: Brisanje sopstvenih poruka
372 372
373 373 project_module_issue_tracking: Praćenje aktivnosti
374 374 project_module_time_tracking: Praćenje vremena
375 375 project_module_news: Novosti
376 376 project_module_documents: Dokumenti
377 377 project_module_files: Fajlovi
378 378 project_module_wiki: Wiki stranice
379 379 project_module_repository: Repozitorij
380 380 project_module_boards: Forumi
381 381
382 382 label_user: Korisnik
383 383 label_user_plural: Korisnici
384 384 label_user_new: Novi korisnik
385 385 label_project: Projekat
386 386 label_project_new: Novi projekat
387 387 label_project_plural: Projekti
388 388 label_x_projects:
389 389 zero: 0 projekata
390 390 one: 1 projekat
391 391 other: "{{count}} projekata"
392 392 label_project_all: Svi projekti
393 393 label_project_latest: Posljednji projekti
394 394 label_issue: Aktivnost
395 395 label_issue_new: Nova aktivnost
396 396 label_issue_plural: Aktivnosti
397 397 label_issue_view_all: Vidi sve aktivnosti
398 398 label_issues_by: "Aktivnosti po {{value}}"
399 399 label_issue_added: Aktivnost je dodana
400 400 label_issue_updated: Aktivnost je izmjenjena
401 401 label_document: Dokument
402 402 label_document_new: Novi dokument
403 403 label_document_plural: Dokumenti
404 404 label_document_added: Dokument je dodan
405 405 label_role: Uloga
406 406 label_role_plural: Uloge
407 407 label_role_new: Nove uloge
408 408 label_role_and_permissions: Uloge i dozvole
409 409 label_member: Izvršilac
410 410 label_member_new: Novi izvršilac
411 411 label_member_plural: Izvršioci
412 412 label_tracker: Područje aktivnosti
413 413 label_tracker_plural: Područja aktivnosti
414 414 label_tracker_new: Novo područje aktivnosti
415 415 label_workflow: Tok promjena na aktivnosti
416 416 label_issue_status: Status aktivnosti
417 417 label_issue_status_plural: Statusi aktivnosti
418 418 label_issue_status_new: Novi status
419 419 label_issue_category: Kategorija aktivnosti
420 420 label_issue_category_plural: Kategorije aktivnosti
421 421 label_issue_category_new: Nova kategorija
422 422 label_custom_field: Proizvoljno polje
423 423 label_custom_field_plural: Proizvoljna polja
424 424 label_custom_field_new: Novo proizvoljno polje
425 425 label_enumerations: Enumeracije
426 426 label_enumeration_new: Nova vrijednost
427 427 label_information: Informacija
428 428 label_information_plural: Informacije
429 429 label_please_login: Molimo prijavite se
430 430 label_register: Registracija
431 431 label_login_with_open_id_option: ili prijava sa OpenID-om
432 432 label_password_lost: Izgubljena lozinka
433 433 label_home: Početna stranica
434 434 label_my_page: Moja stranica
435 435 label_my_account: Moj korisnički račun
436 436 label_my_projects: Moji projekti
437 437 label_administration: Administracija
438 438 label_login: Prijavi se
439 439 label_logout: Odjavi se
440 440 label_help: Pomoć
441 441 label_reported_issues: Prijavljene aktivnosti
442 442 label_assigned_to_me_issues: Aktivnosti dodjeljene meni
443 443 label_last_login: Posljednja konekcija
444 444 label_registered_on: Registrovan na
445 445 label_activity_plural: Promjene
446 446 label_activity: Operacija
447 447 label_overall_activity: Pregled svih promjena
448 448 label_user_activity: "Promjene izvršene od: {{value}}"
449 449 label_new: Novi
450 450 label_logged_as: Prijavljen kao
451 451 label_environment: Sistemsko okruženje
452 452 label_authentication: Authentifikacija
453 453 label_auth_source: Mod authentifikacije
454 454 label_auth_source_new: Novi mod authentifikacije
455 455 label_auth_source_plural: Modovi authentifikacije
456 456 label_subproject_plural: Podprojekti
457 457 label_and_its_subprojects: "{{value}} i njegovi podprojekti"
458 458 label_min_max_length: Min - Maks dužina
459 459 label_list: Lista
460 460 label_date: Datum
461 461 label_integer: Cijeli broj
462 462 label_float: Float
463 463 label_boolean: Logička varijabla
464 464 label_string: Tekst
465 465 label_text: Dugi tekst
466 466 label_attribute: Atribut
467 467 label_attribute_plural: Atributi
468 468 label_download: "{{count}} download"
469 469 label_download_plural: "{{count}} download-i"
470 470 label_no_data: Nema podataka za prikaz
471 471 label_change_status: Promjeni status
472 472 label_history: Istorija
473 473 label_attachment: Fajl
474 474 label_attachment_new: Novi fajl
475 475 label_attachment_delete: Izbriši fajl
476 476 label_attachment_plural: Fajlovi
477 477 label_file_added: Fajl je dodan
478 478 label_report: Izvještaj
479 479 label_report_plural: Izvještaji
480 480 label_news: Novosti
481 481 label_news_new: Dodaj novosti
482 482 label_news_plural: Novosti
483 483 label_news_latest: Posljednje novosti
484 484 label_news_view_all: Pogledaj sve novosti
485 485 label_news_added: Novosti su dodane
486 486 label_change_log: Log promjena
487 487 label_settings: Postavke
488 488 label_overview: Pregled
489 489 label_version: Verzija
490 490 label_version_new: Nova verzija
491 491 label_version_plural: Verzije
492 492 label_confirmation: Potvrda
493 493 label_export_to: 'Takođe dostupno u:'
494 494 label_read: Čitaj...
495 495 label_public_projects: Javni projekti
496 496 label_open_issues: otvoren
497 497 label_open_issues_plural: otvoreni
498 498 label_closed_issues: zatvoren
499 499 label_closed_issues_plural: zatvoreni
500 500 label_x_open_issues_abbr_on_total:
501 501 zero: 0 otvoreno / {{total}}
502 502 one: 1 otvorena / {{total}}
503 503 other: "{{count}} otvorene / {{total}}"
504 504 label_x_open_issues_abbr:
505 505 zero: 0 otvoreno
506 506 one: 1 otvorena
507 507 other: "{{count}} otvorene"
508 508 label_x_closed_issues_abbr:
509 509 zero: 0 zatvoreno
510 510 one: 1 zatvorena
511 511 other: "{{count}} zatvorene"
512 512 label_total: Ukupno
513 513 label_permissions: Dozvole
514 514 label_current_status: Tekući status
515 515 label_new_statuses_allowed: Novi statusi dozvoljeni
516 516 label_all: sve
517 517 label_none: ništa
518 518 label_nobody: niko
519 519 label_next: Sljedeće
520 520 label_previous: Predhodno
521 521 label_used_by: Korišteno od
522 522 label_details: Detalji
523 523 label_add_note: Dodaj bilješku
524 524 label_per_page: Po stranici
525 525 label_calendar: Kalendar
526 526 label_months_from: mjeseci od
527 527 label_gantt: Gantt
528 528 label_internal: Interno
529 529 label_last_changes: "posljednjih {{count}} promjena"
530 530 label_change_view_all: Vidi sve promjene
531 531 label_personalize_page: Personaliziraj ovu stranicu
532 532 label_comment: Komentar
533 533 label_comment_plural: Komentari
534 534 label_x_comments:
535 535 zero: bez komentara
536 536 one: 1 komentar
537 537 other: "{{count}} komentari"
538 538 label_comment_add: Dodaj komentar
539 539 label_comment_added: Komentar je dodan
540 540 label_comment_delete: Izbriši komentar
541 541 label_query: Proizvoljan upit
542 542 label_query_plural: Proizvoljni upiti
543 543 label_query_new: Novi upit
544 544 label_filter_add: Dodaj filter
545 545 label_filter_plural: Filteri
546 546 label_equals: je
547 547 label_not_equals: nije
548 548 label_in_less_than: je manji nego
549 549 label_in_more_than: je više nego
550 550 label_in: u
551 551 label_today: danas
552 552 label_all_time: sve vrijeme
553 553 label_yesterday: juče
554 554 label_this_week: ova hefta
555 555 label_last_week: zadnja hefta
556 556 label_last_n_days: "posljednjih {{count}} dana"
557 557 label_this_month: ovaj mjesec
558 558 label_last_month: posljednji mjesec
559 559 label_this_year: ova godina
560 560 label_date_range: Datumski opseg
561 561 label_less_than_ago: ranije nego (dana)
562 562 label_more_than_ago: starije nego (dana)
563 563 label_ago: prije (dana)
564 564 label_contains: sadrži
565 565 label_not_contains: ne sadrži
566 566 label_day_plural: dani
567 567 label_repository: Repozitorij
568 568 label_repository_plural: Repozitoriji
569 569 label_browse: Listaj
570 570 label_modification: "{{count}} promjena"
571 571 label_modification_plural: "{{count}} promjene"
572 572 label_revision: Revizija
573 573 label_revision_plural: Revizije
574 574 label_associated_revisions: Doddjeljene revizije
575 575 label_added: dodano
576 576 label_modified: izmjenjeno
577 577 label_copied: kopirano
578 578 label_renamed: preimenovano
579 579 label_deleted: izbrisano
580 580 label_latest_revision: Posljednja revizija
581 581 label_latest_revision_plural: Posljednje revizije
582 582 label_view_revisions: Vidi revizije
583 583 label_max_size: Maksimalna veličina
584 584 label_sort_highest: Pomjeri na vrh
585 585 label_sort_higher: Pomjeri gore
586 586 label_sort_lower: Pomjeri dole
587 587 label_sort_lowest: Pomjeri na dno
588 588 label_roadmap: Plan realizacije
589 589 label_roadmap_due_in: "Obavezan do {{value}}"
590 590 label_roadmap_overdue: "{{value}} kasni"
591 591 label_roadmap_no_issues: Nema aktivnosti za ovu verziju
592 592 label_search: Traži
593 593 label_result_plural: Rezultati
594 594 label_all_words: Sve riječi
595 595 label_wiki: Wiki stranice
596 596 label_wiki_edit: ispravka wiki-ja
597 597 label_wiki_edit_plural: ispravke wiki-ja
598 598 label_wiki_page: Wiki stranica
599 599 label_wiki_page_plural: Wiki stranice
600 600 label_index_by_title: Indeks prema naslovima
601 601 label_index_by_date: Indeks po datumima
602 602 label_current_version: Tekuća verzija
603 603 label_preview: Pregled
604 604 label_feed_plural: Feeds
605 605 label_changes_details: Detalji svih promjena
606 606 label_issue_tracking: Evidencija aktivnosti
607 607 label_spent_time: Utrošak vremena
608 608 label_f_hour: "{{value}} sahat"
609 609 label_f_hour_plural: "{{value}} sahata"
610 610 label_time_tracking: Evidencija vremena
611 611 label_change_plural: Promjene
612 612 label_statistics: Statistika
613 613 label_commits_per_month: '"Commit"-a po mjesecu'
614 614 label_commits_per_author: '"Commit"-a po autoru'
615 615 label_view_diff: Pregled razlika
616 616 label_diff_inline: zajedno
617 617 label_diff_side_by_side: jedna pored druge
618 618 label_options: Opcije
619 619 label_copy_workflow_from: Kopiraj tok promjena statusa iz
620 620 label_permissions_report: Izvještaj
621 621 label_watched_issues: Aktivnosti koje pratim
622 622 label_related_issues: Korelirane aktivnosti
623 623 label_applied_status: Status je primjenjen
624 624 label_loading: Učitavam...
625 625 label_relation_new: Nova relacija
626 626 label_relation_delete: Izbriši relaciju
627 627 label_relates_to: korelira sa
628 628 label_duplicates: duplikat
629 629 label_duplicated_by: duplicirano od
630 630 label_blocks: blokira
631 631 label_blocked_by: blokirano on
632 632 label_precedes: predhodi
633 633 label_follows: slijedi
634 634 label_end_to_start: 'kraj -> početak'
635 635 label_end_to_end: 'kraja -> kraj'
636 636 label_start_to_start: 'početak -> početak'
637 637 label_start_to_end: 'početak -> kraj'
638 638 label_stay_logged_in: Ostani prijavljen
639 639 label_disabled: onemogućen
640 640 label_show_completed_versions: Prikaži završene verzije
641 641 label_me: ja
642 642 label_board: Forum
643 643 label_board_new: Novi forum
644 644 label_board_plural: Forumi
645 645 label_topic_plural: Teme
646 646 label_message_plural: Poruke
647 647 label_message_last: Posljednja poruka
648 648 label_message_new: Nova poruka
649 649 label_message_posted: Poruka je dodana
650 650 label_reply_plural: Odgovori
651 651 label_send_information: Pošalji informaciju o korisničkom računu
652 652 label_year: Godina
653 653 label_month: Mjesec
654 654 label_week: Hefta
655 655 label_date_from: Od
656 656 label_date_to: Do
657 657 label_language_based: Bazirano na korisnikovom jeziku
658 658 label_sort_by: "Sortiraj po {{value}}"
659 659 label_send_test_email: Pošalji testni email
660 660 label_feeds_access_key_created_on: "RSS pristupni ključ kreiran prije {{value}} dana"
661 661 label_module_plural: Moduli
662 662 label_added_time_by: "Dodano od {{author}} prije {{age}}"
663 663 label_updated_time_by: "Izmjenjeno od {{author}} prije {{age}}"
664 664 label_updated_time: "Izmjenjeno prije {{value}}"
665 665 label_jump_to_a_project: Skoči na projekat...
666 666 label_file_plural: Fajlovi
667 667 label_changeset_plural: Setovi promjena
668 668 label_default_columns: Podrazumjevane kolone
669 669 label_no_change_option: (Bez promjene)
670 670 label_bulk_edit_selected_issues: Ispravi odjednom odabrane aktivnosti
671 671 label_theme: Tema
672 672 label_default: Podrazumjevano
673 673 label_search_titles_only: Pretraži samo naslove
674 674 label_user_mail_option_all: "Za bilo koji događaj na svim mojim projektima"
675 675 label_user_mail_option_selected: "Za bilo koji događaj na odabranim projektima..."
676 676 label_user_mail_option_none: "Samo za stvari koje ja gledam ili sam u njih uključen"
677 677 label_user_mail_no_self_notified: "Ne želim notifikaciju za promjene koje sam ja napravio"
678 678 label_registration_activation_by_email: aktivacija korisničkog računa email-om
679 679 label_registration_manual_activation: ručna aktivacija korisničkog računa
680 680 label_registration_automatic_activation: automatska kreacija korisničkog računa
681 681 label_display_per_page: "Po stranici: {{value}}"
682 682 label_age: Starost
683 683 label_change_properties: Promjena osobina
684 684 label_general: Generalno
685 685 label_more: Više
686 686 label_scm: SCM
687 687 label_plugins: Plugin-ovi
688 688 label_ldap_authentication: LDAP authentifikacija
689 689 label_downloads_abbr: D/L
690 690 label_optional_description: Opis (opciono)
691 691 label_add_another_file: Dodaj još jedan fajl
692 692 label_preferences: Postavke
693 693 label_chronological_order: Hronološki poredak
694 694 label_reverse_chronological_order: Reverzni hronološki poredak
695 695 label_planning: Planiranje
696 696 label_incoming_emails: Dolazni email-ovi
697 697 label_generate_key: Generiši ključ
698 698 label_issue_watchers: Praćeno od
699 699 label_example: Primjer
700 700 label_display: Prikaz
701 701
702 702 button_apply: Primjeni
703 703 button_add: Dodaj
704 704 button_archive: Arhiviranje
705 705 button_back: Nazad
706 706 button_cancel: Odustani
707 707 button_change: Izmjeni
708 708 button_change_password: Izmjena lozinke
709 709 button_check_all: Označi sve
710 710 button_clear: Briši
711 711 button_copy: Kopiraj
712 712 button_create: Novi
713 713 button_delete: Briši
714 714 button_download: Download
715 715 button_edit: Ispravka
716 716 button_list: Lista
717 717 button_lock: Zaključaj
718 718 button_log_time: Utrošak vremena
719 719 button_login: Prijava
720 720 button_move: Pomjeri
721 721 button_rename: Promjena imena
722 722 button_reply: Odgovor
723 723 button_reset: Resetuj
724 724 button_rollback: Vrati predhodno stanje
725 725 button_save: Snimi
726 726 button_sort: Sortiranje
727 727 button_submit: Pošalji
728 728 button_test: Testiraj
729 729 button_unarchive: Otpakuj arhivu
730 730 button_uncheck_all: Isključi sve
731 731 button_unlock: Otključaj
732 732 button_unwatch: Prekini notifikaciju
733 733 button_update: Promjena na aktivnosti
734 734 button_view: Pregled
735 735 button_watch: Notifikacija
736 736 button_configure: Konfiguracija
737 737 button_quote: Citat
738 738
739 739 status_active: aktivan
740 740 status_registered: registrovan
741 741 status_locked: zaključan
742 742
743 743 text_select_mail_notifications: Odaberi događaje za koje će se slati email notifikacija.
744 744 text_regexp_info: npr. ^[A-Z0-9]+$
745 745 text_min_max_length_info: 0 znači bez restrikcije
746 746 text_project_destroy_confirmation: Sigurno želite izbrisati ovaj projekat i njegove podatke ?
747 747 text_subprojects_destroy_warning: "Podprojekt(i): {{value}} će takođe biti izbrisani."
748 748 text_workflow_edit: Odaberite ulogu i područje aktivnosti za ispravku toka promjena na aktivnosti
749 749 text_are_you_sure: Da li ste sigurni ?
750 750 text_tip_task_begin_day: zadatak počinje danas
751 751 text_tip_task_end_day: zadatak završava danas
752 752 text_tip_task_begin_end_day: zadatak započinje i završava danas
753 753 text_project_identifier_info: 'Samo mala slova (a-z), brojevi i crtice su dozvoljeni.<br />Nakon snimanja, identifikator se ne može mijenjati.'
754 754 text_caracters_maximum: "maksimum {{count}} karaktera."
755 755 text_caracters_minimum: "Dužina mora biti najmanje {{count}} znakova."
756 756 text_length_between: "Broj znakova između {{min}} i {{max}}."
757 757 text_tracker_no_workflow: Tok statusa nije definisan za ovo područje aktivnosti
758 758 text_unallowed_characters: Nedozvoljeni znakovi
759 759 text_comma_separated: Višestruke vrijednosti dozvoljene (odvojiti zarezom).
760 760 text_issues_ref_in_commit_messages: 'Referenciranje i zatvaranje aktivnosti putem "commit" poruka'
761 761 text_issue_added: "Aktivnost {{id}} je prijavljena od {{author}}."
762 762 text_issue_updated: "Aktivnost {{id}} je izmjenjena od {{author}}."
763 763 text_wiki_destroy_confirmation: Sigurno želite izbrisati ovaj wiki i čitav njegov sadržaj ?
764 764 text_issue_category_destroy_question: "Neke aktivnosti ({{count}}) pripadaju ovoj kategoriji. Sigurno to želite uraditi ?"
765 765 text_issue_category_destroy_assignments: Ukloni kategoriju
766 766 text_issue_category_reassign_to: Ponovo dodijeli ovu kategoriju
767 767 text_user_mail_option: "Za projekte koje niste odabrali, primićete samo notifikacije o stavkama koje pratite ili ste u njih uključeni (npr. vi ste autor ili su vama dodjeljenje)."
768 768 text_no_configuration_data: "Uloge, područja aktivnosti, statusi aktivnosti i tok promjena statusa nisu konfigurisane.\nKrajnje je preporučeno da učitate tekuđe postavke. Kasnije ćete ih moći mjenjati po svojim potrebama."
769 769 text_load_default_configuration: Učitaj tekuću konfiguraciju
770 770 text_status_changed_by_changeset: "Primjenjeno u setu promjena {{value}}."
771 771 text_issues_destroy_confirmation: 'Sigurno želite izbrisati odabranu/e aktivnost/i ?'
772 772 text_select_project_modules: 'Odaberi module koje želite u ovom projektu:'
773 773 text_default_administrator_account_changed: Tekući administratorski račun je promjenjen
774 774 text_file_repository_writable: U direktorij sa fajlovima koji su prilozi se može pisati
775 775 text_plugin_assets_writable: U direktorij plugin-ova se može pisati
776 776 text_rmagick_available: RMagick je dostupan (opciono)
777 777 text_destroy_time_entries_question: "{{hours}} sahata je prijavljeno na aktivnostima koje želite brisati. Želite li to učiniti ?"
778 778 text_destroy_time_entries: Izbriši prijavljeno vrijeme
779 779 text_assign_time_entries_to_project: Dodaj prijavljenoo vrijeme projektu
780 780 text_reassign_time_entries: 'Preraspodjeli prijavljeno vrijeme na ovu aktivnost:'
781 781 text_user_wrote: "{{value}} je napisao/la:"
782 782 text_enumeration_destroy_question: "Za {{count}} objekata je dodjeljenja ova vrijednost."
783 783 text_enumeration_category_reassign_to: 'Ponovo im dodjeli ovu vrijednost:'
784 784 text_email_delivery_not_configured: "Email dostava nije konfiguraisana, notifikacija je onemogućena.\nKonfiguriši SMTP server u config/email.yml i restartuj aplikaciju nakon toga."
785 785 text_repository_usernames_mapping: "Odaberi ili ispravi redmine korisnika mapiranog za svako korisničko ima nađeno u logu repozitorija.\nKorisnici sa istim imenom u redmineu i u repozitoruju se automatski mapiraju."
786 786 text_diff_truncated: '... Ovaj prikaz razlike je odsječen pošto premašuje maksimalnu veličinu za prikaz'
787 787 text_custom_field_possible_values_info: 'Jedna linija za svaku vrijednost'
788 788
789 789 default_role_manager: Menadžer
790 790 default_role_developper: Programer
791 791 default_role_reporter: Reporter
792 792 default_tracker_bug: Greška
793 793 default_tracker_feature: Nova funkcija
794 794 default_tracker_support: Podrška
795 795 default_issue_status_new: Novi
796 796 default_issue_status_assigned: Dodjeljen
797 797 default_issue_status_resolved: Riješen
798 798 default_issue_status_feedback: Čeka se povratna informacija
799 799 default_issue_status_closed: Zatvoren
800 800 default_issue_status_rejected: Odbijen
801 801 default_doc_category_user: Korisnička dokumentacija
802 802 default_doc_category_tech: Tehnička dokumentacija
803 803 default_priority_low: Nizak
804 804 default_priority_normal: Normalan
805 805 default_priority_high: Visok
806 806 default_priority_urgent: Urgentno
807 807 default_priority_immediate: Odmah
808 808 default_activity_design: Dizajn
809 809 default_activity_development: Programiranje
810 810
811 811 enumeration_issue_priorities: Prioritet aktivnosti
812 812 enumeration_doc_categories: Kategorije dokumenata
813 813 enumeration_activities: Operacije (utrošak vremena)
814 814 notice_unable_delete_version: Ne mogu izbrisati verziju.
815 815 button_create_and_continue: Kreiraj i nastavi
816 816 button_annotate: Zabilježi
817 817 button_activate: Aktiviraj
818 818 label_sort: Sortiranje
819 819 label_date_from_to: Od {{start}} do {{end}}
820 820 label_ascending: Rastuće
821 821 label_descending: Opadajuće
822 822 label_greater_or_equal: ">="
823 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?
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
827 text_wiki_page_destroy_children: Delete child pages and all their descendants
828 setting_password_min_length: Minimum password length
829 field_group_by: Group results by
830 mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
831 label_wiki_content_added: Wiki page 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}}.
834 label_wiki_content_updated: Wiki page updated
835 mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}.
836 permission_add_project: Create project
837 setting_new_project_user_role_id: Role given to a non-admin user who creates a project
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
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
828 setting_password_min_length: Minimum password length
829 field_group_by: Group results by
830 mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
831 label_wiki_content_added: Wiki page 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}}.
834 label_wiki_content_updated: Wiki page updated
835 mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}.
836 permission_add_project: Create project
837 setting_new_project_user_role_id: Role given to a non-admin user who creates a project
838 838 label_view_all_revisions: View all revisions
839 839 label_tag: Tag
840 840 label_branch: Branch
841 841 error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
842 842 error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
843 843 text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
844 844 text_journal_set_to: "{{label}} set to {{value}}"
845 845 text_journal_deleted: "{{label}} deleted"
846 label_group_plural: Groups
847 label_group: Group
848 label_group_new: New group
849 label_time_entry_plural: Spent time
846 label_group_plural: Groups
847 label_group: Group
848 label_group_new: New group
849 label_time_entry_plural: Spent time
@@ -1,831 +1,831
1 1 # Greek translations for Ruby on Rails
2 2 # by Vaggelis Typaldos (vtypal@gmail.com), Spyros Raptis (spirosrap@gmail.com)
3 3
4 4 el:
5 5 date:
6 6 formats:
7 7 # Use the strftime parameters for formats.
8 8 # When no format has been given, it uses default.
9 9 # You can provide other formats here if you like!
10 10 default: "%m/%d/%Y"
11 11 short: "%b %d"
12 12 long: "%B %d, %Y"
13 13
14 14 day_names: [Κυριακή, Δευτέρα, Τρίτη, Τετάρτη, Πέμπτη, Παρασκευή, Σάββατο]
15 15 abbr_day_names: [Κυρ, Δευ, Τρι, Τετ, Πεμ, Παρ, Σαβ]
16 16
17 17 # Don't forget the nil at the beginning; there's no such thing as a 0th month
18 18 month_names: [~, Ιανουάριος, Φεβρουάριος, Μάρτιος, Απρίλιος, Μάϊος, Ιούνιος, Ιούλιος, Αύγουστος, Σεπτέμβριος, Οκτώβριος, Νοέμβριος, Δεκέμβριος]
19 19 abbr_month_names: [~, Ιαν, Φεβ, Μαρ, Απρ, Μαϊ, Ιον, Ιολ, Αυγ, Σεπ, Οκτ, Νοε, Δεκ]
20 20 # Used in date_select and datime_select.
21 21 order: [ :year, :month, :day ]
22 22
23 23 time:
24 24 formats:
25 25 default: "%m/%d/%Y %I:%M %p"
26 26 time: "%I:%M %p"
27 27 short: "%d %b %H:%M"
28 28 long: "%B %d, %Y %H:%M"
29 29 am: "πμ"
30 30 pm: "μμ"
31 31
32 32 datetime:
33 33 distance_in_words:
34 34 half_a_minute: "μισό λεπτό"
35 35 less_than_x_seconds:
36 36 one: "λιγότερο από 1 δευτερόλεπτο"
37 37 other: "λιγότερο από {{count}} δευτερόλεπτα"
38 38 x_seconds:
39 39 one: "1 δευτερόλεπτο"
40 40 other: "{{count}} δευτερόλεπτα"
41 41 less_than_x_minutes:
42 42 one: "λιγότερο από ένα λεπτό"
43 43 other: "λιγότερο από {{count}} λεπτά"
44 44 x_minutes:
45 45 one: "1 λεπτό"
46 46 other: "{{count}} λεπτά"
47 47 about_x_hours:
48 48 one: "περίπου 1 ώρα"
49 49 other: "περίπου {{count}} ώρες"
50 50 x_days:
51 51 one: "1 ημέρα"
52 52 other: "{{count}} ημέρες"
53 53 about_x_months:
54 54 one: "περίπου 1 μήνα"
55 55 other: "περίπου {{count}} μήνες"
56 56 x_months:
57 57 one: "1 μήνα"
58 58 other: "{{count}} μήνες"
59 59 about_x_years:
60 60 one: "περίπου 1 χρόνο"
61 61 other: "περίπου {{count}} χρόνια"
62 62 over_x_years:
63 63 one: "πάνω από 1 χρόνο"
64 64 other: "πάνω από {{count}} χρόνια"
65 65
66 66 number:
67 67 human:
68 68 format:
69 69 precision: 1
70 70 delimiter: ""
71 71 storage_units:
72 72 format: "%n %u"
73 73 units:
74 74 kb: KB
75 75 tb: TB
76 76 gb: GB
77 77 byte:
78 78 one: Byte
79 79 other: Bytes
80 80 mb: MB
81 81
82 82 # Used in array.to_sentence.
83 83 support:
84 84 array:
85 85 sentence_connector: "and"
86 86 skip_last_comma: false
87 87
88 88 activerecord:
89 89 errors:
90 90 messages:
91 91 inclusion: "δεν περιέχεται στη λίστα"
92 92 exclusion: "έχει κατοχυρωθεί"
93 93 invalid: "είναι άκυρο"
94 94 confirmation: "δεν αντιστοιχεί με την επιβεβαίωση"
95 95 accepted: "πρέπει να γίνει αποδοχή"
96 96 empty: "δε μπορεί να είναι κενό"
97 97 blank: "δε μπορεί να είναι κενό"
98 98 too_long: "έχει πολλούς (μέγ.επιτρ. {{count}} χαρακτήρες)"
99 99 too_short: "έχει λίγους (ελάχ.επιτρ. {{count}} χαρακτήρες)"
100 100 wrong_length: "δεν είναι σωστός ο αριθμός χαρακτήρων (πρέπει να έχει {{count}} χαρακτήρες)"
101 101 taken: "έχει ήδη κατοχυρωθεί"
102 102 not_a_number: "δεν είναι αριθμός"
103 103 not_a_date: "δεν είναι σωστή ημερομηνία"
104 104 greater_than: "πρέπει να είναι μεγαλύτερο από {{count}}"
105 105 greater_than_or_equal_to: "πρέπει να είναι μεγαλύτερο από ή ίσο με {{count}}"
106 106 equal_to: "πρέπει να είναι ίσον με {{count}}"
107 107 less_than: "πρέπει να είναι μικρότερη από {{count}}"
108 108 less_than_or_equal_to: "πρέπει να είναι μικρότερο από ή ίσο με {{count}}"
109 109 odd: "πρέπει να είναι μονός"
110 110 even: "πρέπει να είναι ζυγός"
111 111 greater_than_start_date: "πρέπει να είναι αργότερα από την ημερομηνία έναρξης"
112 112 not_same_project: "δεν ανήκει στο ίδιο έργο"
113 113 circular_dependency: "Αυτή η σχέση θα δημιουργήσει κυκλικές εξαρτήσεις"
114 114
115 115 actionview_instancetag_blank_option: Παρακαλώ επιλέξτε
116 116
117 117 general_text_No: 'Όχι'
118 118 general_text_Yes: 'Ναι'
119 119 general_text_no: 'όχι'
120 120 general_text_yes: 'ναι'
121 121 general_lang_name: 'Ελληνικά'
122 122 general_csv_separator: ','
123 123 general_csv_decimal_separator: '.'
124 124 general_csv_encoding: ISO-8859-7
125 125 general_pdf_encoding: ISO-8859-7
126 126 general_first_day_of_week: '7'
127 127
128 128 notice_account_updated: Ο λογαριασμός ενημερώθηκε επιτυχώς.
129 129 notice_account_invalid_creditentials: Άκυρο όνομα χρήστη ή κωδικού πρόσβασης
130 130 notice_account_password_updated: Ο κωδικός πρόσβασης ενημερώθηκε επιτυχώς.
131 131 notice_account_wrong_password: Λάθος κωδικός πρόσβασης
132 132 notice_account_register_done: Ο λογαριασμός δημιουργήθηκε επιτυχώς. Για να ενεργοποιήσετε το λογαριασμό σας, πατήστε το σύνδεσμο που σας έχει αποσταλεί με email.
133 133 notice_account_unknown_email: Άγνωστος χρήστης.
134 134 notice_can_t_change_password: Αυτός ο λογαριασμός χρησιμοποιεί εξωτερική πηγή πιστοποίησης. Δεν είναι δυνατόν να αλλάξετε τον κωδικό πρόσβασης.
135 135 notice_account_lost_email_sent: Σας έχει αποσταλεί email με οδηγίες για την επιλογή νέου κωδικού πρόσβασης.
136 136 notice_account_activated: Ο λογαριασμός σας έχει ενεργοποιηθεί. Τώρα μπορείτε να συνδεθείτε.
137 137 notice_successful_create: Επιτυχής δημιουργία.
138 138 notice_successful_update: Επιτυχής ενημέρωση.
139 139 notice_successful_delete: Επιτυχής διαγραφή.
140 140 notice_successful_connection: Επιτυχής σύνδεση.
141 141 notice_file_not_found: Η σελίδα που ζητήσατε δεν υπάρχει ή έχει αφαιρεθεί.
142 142 notice_locking_conflict: Τα δεδομένα έχουν ενημερωθεί από άλλο χρήστη.
143 143 notice_not_authorized: Δεν έχετε δικαίωμα πρόσβασης σε αυτή τη σελίδα.
144 144 notice_email_sent: "Ένα μήνυμα ηλεκτρονικού ταχυδρομείου εστάλη στο {{value}}"
145 145 notice_email_error: "Σφάλμα κατά την αποστολή του μηνύματος στο ({{value}})"
146 146 notice_feeds_access_key_reseted: Έγινε επαναφορά στο κλειδί πρόσβασης RSS.
147 147 notice_failed_to_save_issues: "Αποτυχία αποθήκευσης {{count}} θεμα(των) από τα {{total}} επιλεγμένα: {{ids}}."
148 148 notice_no_issue_selected: "Κανένα θέμα δεν είναι επιλεγμένο! Παρακαλούμε, ελέγξτε τα θέματα που θέλετε να επεξεργαστείτε."
149 149 notice_account_pending: λογαριασμός σας έχει δημιουργηθεί και είναι σε στάδιο έγκρισης από τον διαχειριστή."
150 150 notice_default_data_loaded: Οι προεπιλεγμένες ρυθμίσεις φορτώθηκαν επιτυχώς.
151 151 notice_unable_delete_version: Αδύνατον να διαγραφεί η έκδοση.
152 152
153 153 error_can_t_load_default_data: "Οι προεπιλεγμένες ρυθμίσεις δεν μπόρεσαν να φορτωθούν:: {{value}}"
154 154 error_scm_not_found: εγγραφή ή η αναθεώρηση δεν βρέθηκε στο αποθετήριο."
155 155 error_scm_command_failed: "Παρουσιάστηκε σφάλμα κατά την προσπάθεια πρόσβασης στο αποθετήριο: {{value}}"
156 156 error_scm_annotate: καταχώριση δεν υπάρχει ή δεν μπορεί να σχολιαστεί."
157 157 error_issue_not_found_in_project: 'Το θέμα δεν βρέθηκε ή δεν ανήκει σε αυτό το έργο'
158 158 error_no_tracker_in_project: 'Δεν υπάρχει ανιχνευτής για αυτό το έργο. Παρακαλώ ελέγξτε τις ρυθμίσεις του έργου.'
159 159 error_no_default_issue_status: 'Δεν έχει οριστεί η προεπιλογή κατάστασης θεμάτων. Παρακαλώ ελέγξτε τις ρυθμίσεις σας (Μεταβείτε στην "Διαχείριση -> Κατάσταση θεμάτων").'
160 160
161 161 warning_attachments_not_saved: "{{count}} αρχείο(α) δε μπορούν να αποθηκευτούν."
162 162
163 163 mail_subject_lost_password: κωδικός σας {{value}}"
164 164 mail_body_lost_password: 'Για να αλλάξετε τον κωδικό πρόσβασης, πατήστε τον ακόλουθο σύνδεσμο:'
165 165 mail_subject_register: "Ενεργοποίηση του λογαριασμού χρήστη {{value}} "
166 166 mail_body_register: 'Για να ενεργοποιήσετε το λογαριασμό σας, επιλέξτε τον ακόλουθο σύνδεσμο:'
167 167 mail_body_account_information_external: "Μπορείτε να χρησιμοποιήσετε τον λογαριασμό {{value}} για να συνδεθείτε."
168 168 mail_body_account_information: Πληροφορίες του λογαριασμού σας
169 169 mail_subject_account_activation_request: "αίτημα ενεργοποίησης λογαριασμού {{value}}"
170 170 mail_body_account_activation_request: "'Ένας νέος χρήστης ({{value}}) έχει εγγραφεί. Ο λογαριασμός είναι σε στάδιο αναμονής της έγκρισης σας:"
171 171 mail_subject_reminder: "{{count}} θέμα(τα) με προθεσμία στις επόμενες ημέρες"
172 172 mail_body_reminder: "{{count}}θέμα(τα) που έχουν ανατεθεί σε σας, με προθεσμία στις επόμενες {{days}} ημέρες:"
173 173 mail_subject_wiki_content_added: "'προστέθηκε η σελίδα wiki {{page}}' "
174 174 mail_body_wiki_content_added: σελίδα wiki '{{page}}' προστέθηκε από τον {{author}}."
175 175 mail_subject_wiki_content_updated: "'ενημερώθηκε η σελίδα wiki {{page}}' "
176 176 mail_body_wiki_content_updated: σελίδα wiki '{{page}}' ενημερώθηκε από τον {{author}}."
177 177
178 178 gui_validation_error: 1 σφάλμα
179 179 gui_validation_error_plural: "{{count}} σφάλματα"
180 180
181 181 field_name: Όνομα
182 182 field_description: Περιγραφή
183 183 field_summary: Συνοπτικά
184 184 field_is_required: Απαιτείται
185 185 field_firstname: Όνομα
186 186 field_lastname: Επώνυμο
187 187 field_mail: Email
188 188 field_filename: Αρχείο
189 189 field_filesize: Μέγεθος
190 190 field_downloads: Μεταφορτώσεις
191 191 field_author: Συγγραφέας
192 192 field_created_on: Δημιουργήθηκε
193 193 field_updated_on: Ενημερώθηκε
194 194 field_field_format: Μορφοποίηση
195 195 field_is_for_all: Για όλα τα έργα
196 196 field_possible_values: Πιθανές τιμές
197 197 field_regexp: Κανονική παράσταση
198 198 field_min_length: Ελάχιστο μήκος
199 199 field_max_length: Μέγιστο μήκος
200 200 field_value: Τιμή
201 201 field_category: Κατηγορία
202 202 field_title: Τίτλος
203 203 field_project: Έργο
204 204 field_issue: Θέμα
205 205 field_status: Κατάσταση
206 206 field_notes: Σημειώσεις
207 207 field_is_closed: Κλειστά θέματα
208 208 field_is_default: Προεπιλεγμένη τιμή
209 209 field_tracker: Ανιχνευτής
210 210 field_subject: Θέμα
211 211 field_due_date: Προθεσμία
212 212 field_assigned_to: Ανάθεση σε
213 213 field_priority: Προτεραιότητα
214 214 field_fixed_version: Στόχος έκδοσης
215 215 field_user: Χρήστης
216 216 field_role: Ρόλος
217 217 field_homepage: Αρχική σελίδα
218 218 field_is_public: Δημόσιο
219 219 field_parent: Επιμέρους έργο του
220 220 field_is_in_chlog: Προβολή θεμάτων στο ιστορικό αλλαγών
221 221 field_is_in_roadmap: Προβολή θεμάτων στο χάρτη πορείας
222 222 field_login: Όνομα χρήστη
223 223 field_mail_notification: Ειδοποιήσεις email
224 224 field_admin: Διαχειριστής
225 225 field_last_login_on: Τελευταία σύνδεση
226 226 field_language: Γλώσσα
227 227 field_effective_date: Ημερομηνία
228 228 field_password: Κωδικός πρόσβασης
229 229 field_new_password: Νέος κωδικός πρόσβασης
230 230 field_password_confirmation: Επιβεβαίωση
231 231 field_version: Έκδοση
232 232 field_type: Τύπος
233 233 field_host: Κόμβος
234 234 field_port: Θύρα
235 235 field_account: Λογαριασμός
236 236 field_base_dn: Βάση DN
237 237 field_attr_login: Ιδιότητα εισόδου
238 238 field_attr_firstname: Ιδιότητα ονόματος
239 239 field_attr_lastname: Ιδιότητα επωνύμου
240 240 field_attr_mail: Ιδιότητα email
241 241 field_onthefly: Άμεση δημιουργία χρήστη
242 242 field_start_date: Εκκίνηση
243 243 field_done_ratio: % επιτεύχθη
244 244 field_auth_source: Τρόπος πιστοποίησης
245 245 field_hide_mail: Απόκρυψη διεύθυνσης email
246 246 field_comments: Σχόλιο
247 247 field_url: URL
248 248 field_start_page: Πρώτη σελίδα
249 249 field_subproject: Επιμέρους έργο
250 250 field_hours: Ώρες
251 251 field_activity: Δραστηριότητα
252 252 field_spent_on: Ημερομηνία
253 253 field_identifier: Στοιχείο αναγνώρισης
254 254 field_is_filter: Χρήση ως φίλτρο
255 255 field_issue_to: Σχετικά θέματα
256 256 field_delay: Καθυστέρηση
257 257 field_assignable: Θέματα που μπορούν να ανατεθούν σε αυτό το ρόλο
258 258 field_redirect_existing_links: Ανακατεύθυνση των τρεχόντων συνδέσμων
259 259 field_estimated_hours: Εκτιμώμενος χρόνος
260 260 field_column_names: Στήλες
261 261 field_time_zone: Ωριαία ζώνη
262 262 field_searchable: Ερευνήσιμο
263 263 field_default_value: Προκαθορισμένη τιμή
264 264 field_comments_sorting: Προβολή σχολίων
265 265 field_parent_title: Γονική σελίδα
266 266 field_editable: Επεξεργάσιμο
267 267 field_watcher: Παρατηρητής
268 268 field_identity_url: OpenID URL
269 269 field_content: Περιεχόμενο
270 270 field_group_by: Ομαδικά αποτελέσματα από
271 271
272 272 setting_app_title: Τίτλος εφαρμογής
273 273 setting_app_subtitle: Υπότιτλος εφαρμογής
274 274 setting_welcome_text: Κείμενο υποδοχής
275 275 setting_default_language: Προεπιλεγμένη γλώσσα
276 276 setting_login_required: Απαιτείται πιστοποίηση
277 277 setting_self_registration: Αυτο-εγγραφή
278 278 setting_attachment_max_size: Μέγ. μέγεθος συνημμένου
279 279 setting_issues_export_limit: Θέματα περιορισμού εξαγωγής
280 280 setting_mail_from: Μετάδοση διεύθυνσης email
281 281 setting_bcc_recipients: Αποδέκτες κρυφής κοινοποίησης (bcc)
282 282 setting_plain_text_mail: Email απλού κειμένου (όχι HTML)
283 283 setting_host_name: Όνομα κόμβου και διαδρομή
284 284 setting_text_formatting: Μορφοποίηση κειμένου
285 285 setting_wiki_compression: Συμπίεση ιστορικού wiki
286 286 setting_feeds_limit: Feed περιορισμού περιεχομένου
287 287 setting_default_projects_public: Τα νέα έργα έχουν προεπιλεγεί ως δημόσια
288 288 setting_autofetch_changesets: Αυτόματη λήψη commits
289 289 setting_sys_api_enabled: Ενεργοποίηση WS για διαχείριση αποθετηρίου
290 290 setting_commit_ref_keywords: Αναφορά σε λέξεις-κλειδιά
291 291 setting_commit_fix_keywords: Καθορισμός σε λέξεις-κλειδιά
292 292 setting_autologin: Αυτόματη σύνδεση
293 293 setting_date_format: Μορφή ημερομηνίας
294 294 setting_time_format: Μορφή ώρας
295 295 setting_cross_project_issue_relations: Επιτρέψτε συσχετισμό θεμάτων σε διασταύρωση-έργων
296 296 setting_issue_list_default_columns: Προκαθορισμένες εμφανιζόμενες στήλες στη λίστα θεμάτων
297 297 setting_repositories_encodings: Κωδικοποίηση χαρακτήρων αποθετηρίου
298 298 setting_commit_logs_encoding: Κωδικοποίηση μηνυμάτων commit
299 299 setting_emails_footer: Υποσέλιδο στα email
300 300 setting_protocol: Πρωτόκολο
301 301 setting_per_page_options: Αντικείμενα ανά σελίδα επιλογών
302 302 setting_user_format: Μορφή εμφάνισης χρηστών
303 303 setting_activity_days_default: Ημέρες που εμφανίζεται στη δραστηριότητα έργου
304 304 setting_display_subprojects_issues: Εμφάνιση από προεπιλογή θεμάτων επιμέρους έργων στα κύρια έργα
305 305 setting_enabled_scm: Ενεργοποίηση SCM
306 306 setting_mail_handler_api_enabled: Ενεργοποίηση WS για εισερχόμενα email
307 307 setting_mail_handler_api_key: κλειδί API
308 308 setting_sequential_project_identifiers: Δημιουργία διαδοχικών αναγνωριστικών έργου
309 309 setting_gravatar_enabled: Χρήση Gravatar εικονιδίων χρηστών
310 310 setting_diff_max_lines_displayed: Μεγ.αριθμός εμφάνισης γραμμών diff
311 311 setting_file_max_size_displayed: Μεγ.μέγεθος των αρχείων απλού κειμένου που εμφανίζονται σε σειρά
312 312 setting_repository_log_display_limit: Μέγιστος αριθμός αναθεωρήσεων που εμφανίζονται στο ιστορικό αρχείου
313 313 setting_openid: Επιτρέψτε συνδέσεις OpenID και εγγραφή
314 314 setting_password_min_length: Ελάχιστο μήκος κωδικού πρόσβασης
315 315 setting_new_project_user_role_id: Απόδοση ρόλου σε χρήστη μη-διαχειριστή όταν δημιουργεί ένα έργο
316 316
317 317 permission_add_project: Δημιουργία έργου
318 318 permission_edit_project: Επεξεργασία έργου
319 319 permission_select_project_modules: Επιλογή μονάδων έργου
320 320 permission_manage_members: Διαχείριση μελών
321 321 permission_manage_versions: Διαχείριση εκδόσεων
322 322 permission_manage_categories: Διαχείριση κατηγοριών θεμάτων
323 323 permission_add_issues: Προσθήκη θεμάτων
324 324 permission_edit_issues: Επεξεργασία θεμάτων
325 325 permission_manage_issue_relations: Διαχείριση συσχετισμών θεμάτων
326 326 permission_add_issue_notes: Προσθήκη σημειώσεων
327 327 permission_edit_issue_notes: Επεξεργασία σημειώσεων
328 328 permission_edit_own_issue_notes: Επεξεργασία δικών μου σημειώσεων
329 329 permission_move_issues: Μεταφορά θεμάτων
330 330 permission_delete_issues: Διαγραφή θεμάτων
331 331 permission_manage_public_queries: Διαχείριση δημόσιων αναζητήσεων
332 332 permission_save_queries: Αποθήκευση αναζητήσεων
333 333 permission_view_gantt: Προβολή διαγράμματος gantt
334 334 permission_view_calendar: Προβολή ημερολογίου
335 335 permission_view_issue_watchers: Προβολή λίστας παρατηρητών
336 336 permission_add_issue_watchers: Προσθήκη παρατηρητών
337 337 permission_log_time: Ιστορικό δαπανημένου χρόνου
338 338 permission_view_time_entries: Προβολή δαπανημένου χρόνου
339 339 permission_edit_time_entries: Επεξεργασία ιστορικού χρόνου
340 340 permission_edit_own_time_entries: Επεξεργασία δικού μου ιστορικού χρόνου
341 341 permission_manage_news: Διαχείριση νέων
342 342 permission_comment_news: Σχολιασμός νέων
343 343 permission_manage_documents: Διαχείριση εγγράφων
344 344 permission_view_documents: Προβολή εγγράφων
345 345 permission_manage_files: Διαχείριση αρχείων
346 346 permission_view_files: Προβολή αρχείων
347 347 permission_manage_wiki: Διαχείριση wiki
348 348 permission_rename_wiki_pages: Μετονομασία σελίδων wiki
349 349 permission_delete_wiki_pages: Διαγραφή σελίδων wiki
350 350 permission_view_wiki_pages: Προβολή wiki
351 351 permission_view_wiki_edits: Προβολή ιστορικού wiki
352 352 permission_edit_wiki_pages: Επεξεργασία σελίδων wiki
353 353 permission_delete_wiki_pages_attachments: Διαγραφή συνημμένων
354 354 permission_protect_wiki_pages: Προστασία σελίδων wiki
355 355 permission_manage_repository: Διαχείριση αποθετηρίου
356 356 permission_browse_repository: Διαχείριση εγγράφων
357 357 permission_view_changesets: Προβολή changesets
358 358 permission_commit_access: Πρόσβαση commit
359 359 permission_manage_boards: Διαχείριση πινάκων συζητήσεων
360 360 permission_view_messages: Προβολή μηνυμάτων
361 361 permission_add_messages: Αποστολή μηνυμάτων
362 362 permission_edit_messages: Επεξεργασία μηνυμάτων
363 363 permission_edit_own_messages: Επεξεργασία δικών μου μηνυμάτων
364 364 permission_delete_messages: Delete messages
365 365 permission_delete_own_messages: Διαγραφή μηνυμάτων
366 366
367 367 project_module_issue_tracking: Ανίχνευση θεμάτων
368 368 project_module_time_tracking: Ανίχνευση χρόνου
369 369 project_module_news: Νέα
370 370 project_module_documents: Έγγραφα
371 371 project_module_files: Αρχεία
372 372 project_module_wiki: Wiki
373 373 project_module_repository: Αποθετήριο
374 374 project_module_boards: Πίνακες συζητήσεων
375 375
376 376 label_user: Χρήστης
377 377 label_user_plural: Χρήστες
378 378 label_user_new: Νέος Χρήστης
379 379 label_project: Έργο
380 380 label_project_new: Νέο έργο
381 381 label_project_plural: Έργα
382 382 label_x_projects:
383 383 zero: κανένα έργο
384 384 one: 1 έργο
385 385 other: "{{count}} έργα"
386 386 label_project_all: Όλα τα έργα
387 387 label_project_latest: Τελευταία έργα
388 388 label_issue: Θέμα
389 389 label_issue_new: Νέο θέμα
390 390 label_issue_plural: Θέματα
391 391 label_issue_view_all: Προβολή όλων των θεμάτων
392 392 label_issues_by: "Θέματα του {{value}}"
393 393 label_issue_added: Το θέμα προστέθηκε
394 394 label_issue_updated: Το θέμα ενημερώθηκε
395 395 label_document: Έγγραφο
396 396 label_document_new: Νέο έγγραφο
397 397 label_document_plural: Έγγραφα
398 398 label_document_added: Έγγραφο προστέθηκε
399 399 label_role: Ρόλος
400 400 label_role_plural: Ρόλοι
401 401 label_role_new: Νέος ρόλος
402 402 label_role_and_permissions: Ρόλοι και άδειες
403 403 label_member: Μέλος
404 404 label_member_new: Νέο μέλος
405 405 label_member_plural: Μέλη
406 406 label_tracker: Ανιχνευτής
407 407 label_tracker_plural: Ανιχνευτές
408 408 label_tracker_new: Νέος Ανιχνευτής
409 409 label_workflow: Ροή εργασίας
410 410 label_issue_status: Κατάσταση θέματος
411 411 label_issue_status_plural: Κατάσταση θέματος
412 412 label_issue_status_new: Νέα κατάσταση
413 413 label_issue_category: Κατηγορία θέματος
414 414 label_issue_category_plural: Κατηγορίες θεμάτων
415 415 label_issue_category_new: Νέα κατηγορία
416 416 label_custom_field: Προσαρμοσμένο πεδίο
417 417 label_custom_field_plural: Προσαρμοσμένα πεδία
418 418 label_custom_field_new: Νέο προσαρμοσμένο πεδίο
419 419 label_enumerations: Απαριθμήσεις
420 420 label_enumeration_new: Νέα τιμή
421 421 label_information: Πληροφορία
422 422 label_information_plural: Πληροφορίες
423 423 label_please_login: Παρακαλώ συνδεθείτε
424 424 label_register: Εγγραφή
425 425 label_login_with_open_id_option: ή συνδεθείτε με OpenID
426 426 label_password_lost: Ανάκτηση κωδικού πρόσβασης
427 427 label_home: Αρχική σελίδα
428 428 label_my_page: Η σελίδα μου
429 429 label_my_account: Ο λογαριασμός μου
430 430 label_my_projects: Τα έργα μου
431 431 label_administration: Διαχείριση
432 432 label_login: Σύνδεση
433 433 label_logout: Αποσύνδεση
434 434 label_help: Βοήθεια
435 435 label_reported_issues: Εισηγμένα θέματα
436 436 label_assigned_to_me_issues: Θέματα που έχουν ανατεθεί σε μένα
437 437 label_last_login: Τελευταία σύνδεση
438 438 label_registered_on: Εγγράφηκε την
439 439 label_activity: Δραστηριότητα
440 440 label_overall_activity: Συνολική δραστηριότητα
441 441 label_user_activity: "δραστηριότητα του {{value}}"
442 442 label_new: Νέο
443 443 label_logged_as: Σύνδεδεμένος ως
444 444 label_environment: Περιβάλλον
445 445 label_authentication: Πιστοποίηση
446 446 label_auth_source: Τρόπος πιστοποίησης
447 447 label_auth_source_new: Νέος τρόπος πιστοποίησης
448 448 label_auth_source_plural: Τρόποι πιστοποίησης
449 449 label_subproject_plural: Επιμέρους έργα
450 450 label_and_its_subprojects: "{{value}} και τα επιμέρους έργα του"
451 451 label_min_max_length: Ελάχ. - Μέγ. μήκος
452 452 label_list: Λίστα
453 453 label_date: Ημερομηνία
454 454 label_integer: Ακέραιος
455 455 label_float: Αριθμός κινητής υποδιαστολής
456 456 label_boolean: Λογικός
457 457 label_string: Κείμενο
458 458 label_text: Μακροσκελές κείμενο
459 459 label_attribute: Ιδιότητα
460 460 label_attribute_plural: Ιδιότητες
461 461 label_download: "{{count}} Μεταφόρτωση"
462 462 label_download_plural: "{{count}} Μεταφορτώσεις"
463 463 label_no_data: Δεν υπάρχουν δεδομένα
464 464 label_change_status: Αλλαγή κατάστασης
465 465 label_history: Ιστορικό
466 466 label_attachment: Αρχείο
467 467 label_attachment_new: Νέο αρχείο
468 468 label_attachment_delete: Διαγραφή αρχείου
469 469 label_attachment_plural: Αρχεία
470 470 label_file_added: Το αρχείο προστέθηκε
471 471 label_report: Αναφορά
472 472 label_report_plural: Αναφορές
473 473 label_news: Νέα
474 474 label_news_new: Προσθήκη νέων
475 475 label_news_plural: Νέα
476 476 label_news_latest: Τελευταία νέα
477 477 label_news_view_all: Προβολή όλων των νέων
478 478 label_news_added: Τα νέα προστέθηκαν
479 479 label_change_log: Αλλαγή ιστορικού
480 480 label_settings: Ρυθμίσεις
481 481 label_overview: Επισκόπηση
482 482 label_version: Έκδοση
483 483 label_version_new: Νέα έκδοση
484 484 label_version_plural: Εκδόσεις
485 485 label_confirmation: Επιβεβαίωση
486 486 label_export_to: 'Επίσης διαθέσιμο σε:'
487 487 label_read: Διάβασε...
488 488 label_public_projects: Δημόσια έργα
489 489 label_open_issues: Ανοικτό
490 490 label_open_issues_plural: Ανοικτά
491 491 label_closed_issues: Κλειστό
492 492 label_closed_issues_plural: Κλειστά
493 493 label_x_open_issues_abbr_on_total:
494 494 zero: 0 ανοικτά / {{total}}
495 495 one: 1 ανοικτό / {{total}}
496 496 other: "{{count}} ανοικτά / {{total}}"
497 497 label_x_open_issues_abbr:
498 498 zero: 0 ανοικτά
499 499 one: 1 ανοικτό
500 500 other: "{{count}} ανοικτά"
501 501 label_x_closed_issues_abbr:
502 502 zero: 0 κλειστά
503 503 one: 1 κλειστό
504 504 other: "{{count}} κλειστά"
505 505 label_total: Σύνολο
506 506 label_permissions: Άδειες
507 507 label_current_status: Current status
508 508 label_new_statuses_allowed: Νέες καταστάσεις επιτρέπονται
509 509 label_all: όλα
510 510 label_none: κανένα
511 511 label_nobody: κανείς
512 512 label_next: Επόμενο
513 513 label_previous: Προηγούμενο
514 514 label_used_by: Χρησιμοποιήθηκε από
515 515 label_details: Λεπτομέρειες
516 516 label_add_note: Προσθήκη σημείωσης
517 517 label_per_page: Ανά σελίδα
518 518 label_calendar: Ημερολόγιο
519 519 label_months_from: μηνών από
520 520 label_gantt: Gantt
521 521 label_internal: Εσωτερικό
522 522 label_last_changes: "Τελευταίες {{count}} αλλαγές"
523 523 label_change_view_all: Προβολή όλων των αλλαγών
524 524 label_personalize_page: Προσαρμογή σελίδας
525 525 label_comment: Σχόλιο
526 526 label_comment_plural: Σχόλια
527 527 label_x_comments:
528 528 zero: δεν υπάρχουν σχόλια
529 529 one: 1 σχόλιο
530 530 other: "{{count}} σχόλια"
531 531 label_comment_add: Προσθήκη σχολίου
532 532 label_comment_added: Τα σχόλια προστέθηκαν
533 533 label_comment_delete: Διαγραφή σχολίων
534 534 label_query: Προσαρμοσμένη αναζήτηση
535 535 label_query_plural: Προσαρμοσμένες αναζητήσεις
536 536 label_query_new: Νέα αναζήτηση
537 537 label_filter_add: Προσθήκη φίλτρου
538 538 label_filter_plural: Φίλτρα
539 539 label_equals: είναι
540 540 label_not_equals: δεν είναι
541 541 label_in_less_than: μικρότερο από
542 542 label_in_more_than: περισσότερο από
543 543 label_greater_or_equal: '>='
544 544 label_less_or_equal: '<='
545 545 label_in: σε
546 546 label_today: σήμερα
547 547 label_all_time: συνέχεια
548 548 label_yesterday: χθες
549 549 label_this_week: αυτή την εβδομάδα
550 550 label_last_week: την προηγούμενη εβδομάδα
551 551 label_last_n_days: "τελευταίες {{count}} μέρες"
552 552 label_this_month: αυτό το μήνα
553 553 label_last_month: τον προηγούμενο μήνα
554 554 label_this_year: αυτό το χρόνο
555 555 label_date_range: Χρονικό διάστημα
556 556 label_less_than_ago: σε λιγότερο από ημέρες πριν
557 557 label_more_than_ago: σε περισσότερο από ημέρες πριν
558 558 label_ago: ημέρες πριν
559 559 label_contains: περιέχει
560 560 label_not_contains: δεν περιέχει
561 561 label_day_plural: μέρες
562 562 label_repository: Αποθετήριο
563 563 label_repository_plural: Αποθετήρια
564 564 label_browse: Πλοήγηση
565 565 label_modification: "{{count}} τροποποίηση"
566 566 label_modification_plural: "{{count}} τροποποιήσεις"
567 567 label_branch: Branch
568 568 label_tag: Tag
569 569 label_revision: Αναθεώρηση
570 570 label_revision_plural: Αναθεωρήσεις
571 571 label_associated_revisions: Συνεταιρικές αναθεωρήσεις
572 572 label_added: προστέθηκε
573 573 label_modified: τροποποιήθηκε
574 574 label_copied: αντιγράφηκε
575 575 label_renamed: μετονομάστηκε
576 576 label_deleted: διαγράφηκε
577 577 label_latest_revision: Τελευταία αναθεώριση
578 578 label_latest_revision_plural: Τελευταίες αναθεωρήσεις
579 579 label_view_revisions: Προβολή αναθεωρήσεων
580 580 label_view_all_revisions: Προβολή όλων των αναθεωρήσεων
581 581 label_max_size: Μέγιστο μέγεθος
582 582 label_sort_highest: Μετακίνηση στην κορυφή
583 583 label_sort_higher: Μετακίνηση προς τα πάνω
584 584 label_sort_lower: Μετακίνηση προς τα κάτω
585 585 label_sort_lowest: Μετακίνηση στο κατώτατο μέρος
586 586 label_roadmap: Χάρτης πορείας
587 587 label_roadmap_due_in: "Προθεσμία σε {{value}}"
588 588 label_roadmap_overdue: "{{value}} καθυστερημένο"
589 589 label_roadmap_no_issues: Δεν υπάρχουν θέματα για αυτή την έκδοση
590 590 label_search: Αναζήτηση
591 591 label_result_plural: Αποτελέσματα
592 592 label_all_words: Όλες οι λέξεις
593 593 label_wiki: Wiki
594 594 label_wiki_edit: Επεξεργασία wiki
595 595 label_wiki_edit_plural: Επεξεργασία wiki
596 596 label_wiki_page: Σελίδα Wiki
597 597 label_wiki_page_plural: Σελίδες Wiki
598 598 label_index_by_title: Δείκτης ανά τίτλο
599 599 label_index_by_date: Δείκτης ανά ημερομηνία
600 600 label_current_version: Τρέχουσα έκδοση
601 601 label_preview: Προεπισκόπηση
602 602 label_feed_plural: Feeds
603 603 label_changes_details: Λεπτομέρειες όλων των αλλαγών
604 604 label_issue_tracking: Ανίχνευση θεμάτων
605 605 label_spent_time: Δαπανημένος χρόνος
606 606 label_f_hour: "{{value}} ώρα"
607 607 label_f_hour_plural: "{{value}} ώρες"
608 608 label_time_tracking: Ανίχνευση χρόνου
609 609 label_change_plural: Αλλαγές
610 610 label_statistics: Στατιστικά
611 611 label_commits_per_month: Commits ανά μήνα
612 612 label_commits_per_author: Commits ανά συγγραφέα
613 613 label_view_diff: Προβολή διαφορών
614 614 label_diff_inline: σε σειρά
615 615 label_diff_side_by_side: αντικρυστά
616 616 label_options: Επιλογές
617 617 label_copy_workflow_from: Αντιγραφή ροής εργασίας από
618 618 label_permissions_report: Συνοπτικός πίνακας αδειών
619 619 label_watched_issues: Θέματα υπό παρακολούθηση
620 620 label_related_issues: Σχετικά θέματα
621 621 label_applied_status: Εφαρμογή κατάστασης
622 622 label_loading: Φορτώνεται...
623 623 label_relation_new: Νέα συσχέτιση
624 624 label_relation_delete: Διαγραφή συσχέτισης
625 625 label_relates_to: σχετικό με
626 626 label_duplicates: αντίγραφα
627 627 label_duplicated_by: αντιγράφηκε από
628 628 label_blocks: φραγές
629 629 label_blocked_by: φραγή από τον
630 630 label_precedes: προηγείται
631 631 label_follows: ακολουθεί
632 632 label_end_to_start: από το τέλος στην αρχή
633 633 label_end_to_end: από το τέλος στο τέλος
634 634 label_start_to_start: από την αρχή στην αρχή
635 635 label_start_to_end: από την αρχή στο τέλος
636 636 label_stay_logged_in: Παραμονή σύνδεσης
637 637 label_disabled: απενεργοποιημένη
638 638 label_show_completed_versions: Προβολή ολοκληρωμένων εκδόσεων
639 639 label_me: εγώ
640 640 label_board: Φόρουμ
641 641 label_board_new: Νέο φόρουμ
642 642 label_board_plural: Φόρουμ
643 643 label_topic_plural: Θέματα
644 644 label_message_plural: Μηνύματα
645 645 label_message_last: Τελευταίο μήνυμα
646 646 label_message_new: Νέο μήνυμα
647 647 label_message_posted: Το μήνυμα προστέθηκε
648 648 label_reply_plural: Απαντήσεις
649 649 label_send_information: Αποστολή πληροφοριών λογαριασμού στο χρήστη
650 650 label_year: Έτος
651 651 label_month: Μήνας
652 652 label_week: Εβδομάδα
653 653 label_date_from: Από
654 654 label_date_to: Έως
655 655 label_language_based: Με βάση τη γλώσσα του χρήστη
656 656 label_sort_by: "Ταξινόμηση ανά {{value}}"
657 657 label_send_test_email: Αποστολή δοκιμαστικού email
658 658 label_feeds_access_key_created_on: "το κλειδί πρόσβασης RSS δημιουργήθηκε πριν από {{value}}"
659 659 label_module_plural: Μονάδες
660 660 label_added_time_by: "Προστέθηκε από τον {{author}} πριν από {{age}}"
661 661 label_updated_time_by: "Ενημερώθηκε από τον {{author}} πριν από {{age}}"
662 662 label_updated_time: "Ενημερώθηκε πριν από {{value}}"
663 663 label_jump_to_a_project: Μεταβείτε σε ένα έργο...
664 664 label_file_plural: Αρχεία
665 665 label_changeset_plural: Changesets
666 666 label_default_columns: Προεπιλεγμένες στήλες
667 667 label_no_change_option: (Δεν υπάρχουν αλλαγές)
668 668 label_bulk_edit_selected_issues: Μαζική επεξεργασία επιλεγμένων θεμάτων
669 669 label_theme: Θέμα
670 670 label_default: Προεπιλογή
671 671 label_search_titles_only: Αναζήτηση τίτλων μόνο
672 672 label_user_mail_option_all: "Για όλες τις εξελίξεις σε όλα τα έργα μου"
673 673 label_user_mail_option_selected: "Για όλες τις εξελίξεις μόνο στα επιλεγμένα έργα..."
674 674 label_user_mail_option_none: "Μόνο για πράγματα που παρακολουθώ ή συμμετέχω ενεργά"
675 675 label_user_mail_no_self_notified: "Δεν θέλω να ειδοποιούμαι για τις δικές μου αλλαγές"
676 676 label_registration_activation_by_email: ενεργοποίηση λογαριασμού με email
677 677 label_registration_manual_activation: χειροκίνητη ενεργοποίηση λογαριασμού
678 678 label_registration_automatic_activation: αυτόματη ενεργοποίηση λογαριασμού
679 679 label_display_per_page: "Ανά σελίδα: {{value}}"
680 680 label_age: Ηλικία
681 681 label_change_properties: Αλλαγή ιδιοτήτων
682 682 label_general: Γενικά
683 683 label_more: Περισσότερα
684 684 label_scm: SCM
685 685 label_plugins: Plugins
686 686 label_ldap_authentication: Πιστοποίηση LDAP
687 687 label_downloads_abbr: Μ/Φ
688 688 label_optional_description: Προαιρετική περιγραφή
689 689 label_add_another_file: Προσθήκη άλλου αρχείου
690 690 label_preferences: Προτιμήσεις
691 691 label_chronological_order: Κατά χρονολογική σειρά
692 692 label_reverse_chronological_order: Κατά αντίστροφη χρονολογική σειρά
693 693 label_planning: Σχεδιασμός
694 694 label_incoming_emails: Εισερχόμενα email
695 695 label_generate_key: Δημιουργία κλειδιού
696 696 label_issue_watchers: Παρατηρητές
697 697 label_example: Παράδειγμα
698 698 label_display: Προβολή
699 699 label_sort: Ταξινόμηση
700 700 label_ascending: Αύξουσα
701 701 label_descending: Φθίνουσα
702 702 label_date_from_to: Από {{start}} έως {{end}}
703 703 label_wiki_content_added: Η σελίδα Wiki προστέθηκε
704 704 label_wiki_content_updated: Η σελίδα Wiki ενημερώθηκε
705 705
706 706 button_login: Σύνδεση
707 707 button_submit: Αποστολή
708 708 button_save: Αποθήκευση
709 709 button_check_all: Επιλογή όλων
710 710 button_uncheck_all: Αποεπιλογή όλων
711 711 button_delete: Διαγραφή
712 712 button_create: Δημιουργία
713 713 button_create_and_continue: Δημιουργία και συνέχεια
714 714 button_test: Τεστ
715 715 button_edit: Επεξεργασία
716 716 button_add: Προσθήκη
717 717 button_change: Αλλαγή
718 718 button_apply: Εφαρμογή
719 719 button_clear: Καθαρισμός
720 720 button_lock: Κλείδωμα
721 721 button_unlock: Ξεκλείδωμα
722 722 button_download: Μεταφόρτωση
723 723 button_list: Λίστα
724 724 button_view: Προβολή
725 725 button_move: Μετακίνηση
726 726 button_back: Πίσω
727 727 button_cancel: Ακύρωση
728 728 button_activate: Ενεργοποίηση
729 729 button_sort: Ταξινόμηση
730 730 button_log_time: Ιστορικό χρόνου
731 731 button_rollback: Επαναφορά σε αυτή την έκδοση
732 732 button_watch: Παρακολούθηση
733 733 button_unwatch: Αναίρεση παρακολούθησης
734 734 button_reply: Απάντηση
735 735 button_archive: Αρχειοθέτηση
736 736 button_unarchive: Αναίρεση αρχειοθέτησης
737 737 button_reset: Επαναφορά
738 738 button_rename: Μετονομασία
739 739 button_change_password: Αλλαγή κωδικού πρόσβασης
740 740 button_copy: Αντιγραφή
741 741 button_annotate: Σχολιασμός
742 742 button_update: Ενημέρωση
743 743 button_configure: Ρύθμιση
744 744 button_quote: Παράθεση
745 745
746 746 status_active: ενεργό(ς)/ή
747 747 status_registered: εγεγγραμμένο(ς)/η
748 748 status_locked: κλειδωμένο(ς)/η
749 749
750 750 text_select_mail_notifications: Επιλογή ενεργειών για τις οποίες θα πρέπει να αποσταλεί ειδοποίηση με email.
751 751 text_regexp_info: eg. ^[A-Z0-9]+$
752 752 text_min_max_length_info: 0 σημαίνει ότι δεν υπάρχουν περιορισμοί
753 753 text_project_destroy_confirmation: Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το έργο και τα σχετικά δεδομένα του;
754 754 text_subprojects_destroy_warning: "Επίσης το(α) επιμέρους έργο(α): {{value}} θα διαγραφούν."
755 755 text_workflow_edit: Επιλέξτε ένα ρόλο και έναν ανιχνευτή για να επεξεργαστείτε τη ροή εργασίας
756 756 text_are_you_sure: Είστε σίγουρος ;
757 757 text_tip_task_begin_day: καθήκοντα που ξεκινάνε σήμερα
758 758 text_tip_task_end_day: καθήκοντα που τελειώνουν σήμερα
759 759 text_tip_task_begin_end_day: καθήκοντα που ξεκινάνε και τελειώνουν σήμερα
760 760 text_project_identifier_info: 'Επιτρέπονται μόνο μικρά πεζά γράμματα (a-z), αριθμοί και παύλες. <br /> Μετά την αποθήκευση, το αναγνωριστικό δεν μπορεί να αλλάξει.'
761 761 text_caracters_maximum: "μέγιστος αριθμός {{count}} χαρακτήρες."
762 762 text_caracters_minimum: "Πρέπει να περιέχει τουλάχιστον {{count}} χαρακτήρες."
763 763 text_length_between: "Μήκος μεταξύ {{min}} και {{max}} χαρακτήρες."
764 764 text_tracker_no_workflow: Δεν έχει οριστεί ροή εργασίας για αυτό τον ανιχνευτή
765 765 text_unallowed_characters: Μη επιτρεπόμενοι χαρακτήρες
766 766 text_comma_separated: Επιτρέπονται πολλαπλές τιμές (χωρισμένες με κόμμα).
767 767 text_issues_ref_in_commit_messages: Αναφορά και καθορισμός θεμάτων σε μηνύματα commit
768 768 text_issue_added: "Το θέμα {{id}} παρουσιάστηκε από τον {{author}}."
769 769 text_issue_updated: "Το θέμα {{id}} ενημερώθηκε από τον {{author}}."
770 770 text_wiki_destroy_confirmation: Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το wiki και όλο το περιεχόμενο του ;
771 771 text_issue_category_destroy_question: "Κάποια θέματα ({{count}}) έχουν εκχωρηθεί σε αυτή την κατηγορία. Τι θέλετε να κάνετε ;"
772 772 text_issue_category_destroy_assignments: Αφαίρεση εκχωρήσεων κατηγορίας
773 773 text_issue_category_reassign_to: Επανεκχώρηση θεμάτων σε αυτή την κατηγορία
774 774 text_user_mail_option: "Για μη επιλεγμένα έργα, θα λάβετε ειδοποιήσεις μόνο για πράγματα που παρακολουθείτε ή στα οποία συμμετέχω ενεργά (π.χ. θέματα των οποίων είστε συγγραφέας ή σας έχουν ανατεθεί)."
775 775 text_no_configuration_data: "Οι ρόλοι, οι ανιχνευτές, η κατάσταση των θεμάτων και η ροή εργασίας δεν έχουν ρυθμιστεί ακόμα.\nΣυνιστάται ιδιαίτερα να φορτώσετε τις προεπιλεγμένες ρυθμίσεις. Θα είστε σε θέση να τις τροποποιήσετε μετά τη φόρτωση τους."
776 776 text_load_default_configuration: Φόρτωση προεπιλεγμένων ρυθμίσεων
777 777 text_status_changed_by_changeset: "Εφαρμόστηκε στο changeset {{value}}."
778 778 text_issues_destroy_confirmation: 'Είστε σίγουρος ότι θέλετε να διαγράψετε το επιλεγμένο θέμα(τα);'
779 779 text_select_project_modules: 'Επιλέξτε ποιες μονάδες θα ενεργοποιήσετε για αυτό το έργο:'
780 780 text_default_administrator_account_changed: Ο προκαθορισμένος λογαριασμός του διαχειριστή άλλαξε
781 781 text_file_repository_writable: Εγγράψιμος κατάλογος συνημμένων
782 782 text_plugin_assets_writable: Εγγράψιμος κατάλογος plugin assets
783 783 text_rmagick_available: Διαθέσιμο RMagick (προαιρετικό)
784 784 text_destroy_time_entries_question: "{{hours}} δαπανήθηκαν σχετικά με τα θέματα που πρόκειται να διαγράψετε. Τι θέλετε να κάνετε ;"
785 785 text_destroy_time_entries: Διαγραφή αναφερόμενων ωρών
786 786 text_assign_time_entries_to_project: Ανάθεση αναφερόμενων ωρών στο έργο
787 787 text_reassign_time_entries: 'Ανάθεση εκ νέου των αναφερόμενων ωρών στο θέμα:'
788 788 text_user_wrote: "{{value}} έγραψε:"
789 789 text_enumeration_destroy_question: "{{count}} αντικείμενα έχουν τεθεί σε αυτή την τιμή."
790 790 text_enumeration_category_reassign_to: 'Επανεκχώρηση τους στην παρούσα αξία:'
791 791 text_email_delivery_not_configured: "Δεν έχουν γίνει ρυθμίσεις παράδοσης email, και οι ειδοποιήσεις είναι απενεργοποιημένες.\nΔηλώστε τον εξυπηρετητή SMTP στο config/email.yml και κάντε επανακκίνηση την εφαρμογή για να τις ρυθμίσεις."
792 792 text_repository_usernames_mapping: "Επιλέξτε ή ενημερώστε τον χρήστη Redmine που αντιστοιχεί σε κάθε όνομα χρήστη στο ιστορικό του αποθετηρίου.\nΧρήστες με το ίδιο όνομα χρήστη ή email στο Redmine και στο αποθετηρίο αντιστοιχίζονται αυτόματα."
793 793 text_diff_truncated: '... Αυτό το diff εχεί κοπεί επειδή υπερβαίνει το μέγιστο μέγεθος που μπορεί να προβληθεί.'
794 794 text_custom_field_possible_values_info: 'Μία γραμμή για κάθε τιμή'
795 795 text_wiki_page_destroy_question: "Αυτή η σελίδα έχει {{descendants}} σελίδες τέκνων και απογόνων. Τι θέλετε να κάνετε ;"
796 796 text_wiki_page_nullify_children: "Διατηρήστε τις σελίδες τέκνων ως σελίδες root"
797 797 text_wiki_page_destroy_children: "Διαγράψτε όλες τις σελίδες τέκνων και των απογόνων τους"
798 798 text_wiki_page_reassign_children: "Επανεκχώριση των σελίδων τέκνων στη γονική σελίδα"
799 799
800 800 default_role_manager: Manager
801 801 default_role_developper: Developer
802 802 default_role_reporter: Reporter
803 803 default_tracker_bug: Σφάλματα
804 804 default_tracker_feature: Λειτουργίες
805 805 default_tracker_support: Υποστήριξη
806 806 default_issue_status_new: Νέα
807 807 default_issue_status_assigned: Ανατεθειμένο
808 808 default_issue_status_resolved: Επιλυμένο
809 809 default_issue_status_feedback: Σχόλια
810 810 default_issue_status_closed: Κλειστό
811 811 default_issue_status_rejected: Απορριπτέο
812 812 default_doc_category_user: Τεκμηρίωση χρήστη
813 813 default_doc_category_tech: Τεχνική τεκμηρίωση
814 814 default_priority_low: Χαμηλή
815 815 default_priority_normal: Κανονική
816 816 default_priority_high: Υψηλή
817 817 default_priority_urgent: Επείγον
818 818 default_priority_immediate: Άμεση
819 819 default_activity_design: Σχεδιασμός
820 820 default_activity_development: Ανάπτυξη
821 821
822 822 enumeration_issue_priorities: Προτεραιότητα θέματος
823 823 enumeration_doc_categories: Κατηγορία εγγράφων
824 824 enumeration_activities: Δραστηριότητες (κατακερματισμός χρόνου)
825 825 text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
826 826 text_journal_set_to: "{{label}} set to {{value}}"
827 827 text_journal_deleted: "{{label}} deleted"
828 label_group_plural: Groups
829 label_group: Group
830 label_group_new: New group
831 label_time_entry_plural: Spent time
828 label_group_plural: Groups
829 label_group: Group
830 label_group_new: New group
831 label_time_entry_plural: Spent time
@@ -1,124 +1,124
1 ---
2 attachments_001:
3 created_on: 2006-07-19 21:07:27 +02:00
4 downloads: 0
5 content_type: text/plain
6 disk_filename: 060719210727_error281.txt
7 container_id: 3
8 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
9 id: 1
10 container_type: Issue
11 filesize: 28
12 filename: error281.txt
13 author_id: 2
14 attachments_002:
15 created_on: 2006-07-19 21:07:27 +02:00
16 downloads: 0
17 content_type: text/plain
18 disk_filename: 060719210727_document.txt
19 container_id: 1
20 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
21 id: 2
22 container_type: Document
23 filesize: 28
24 filename: document.txt
25 author_id: 2
26 attachments_003:
27 created_on: 2006-07-19 21:07:27 +02:00
28 downloads: 0
29 content_type: image/gif
30 disk_filename: 060719210727_logo.gif
31 container_id: 4
32 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
33 id: 3
34 container_type: WikiPage
35 filesize: 280
36 filename: logo.gif
37 description: This is a logo
38 author_id: 2
39 attachments_004:
40 created_on: 2006-07-19 21:07:27 +02:00
41 container_type: Issue
42 container_id: 3
43 downloads: 0
44 disk_filename: 060719210727_source.rb
45 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
46 id: 4
47 filesize: 153
48 filename: source.rb
49 author_id: 2
50 description: This is a Ruby source file
51 content_type: application/x-ruby
52 attachments_005:
53 created_on: 2006-07-19 21:07:27 +02:00
54 container_type: Issue
55 container_id: 3
56 downloads: 0
57 disk_filename: 060719210727_changeset.diff
58 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
59 id: 5
60 filesize: 687
61 filename: changeset.diff
62 author_id: 2
63 content_type: text/x-diff
64 attachments_006:
65 created_on: 2006-07-19 21:07:27 +02:00
66 container_type: Issue
67 container_id: 3
68 downloads: 0
69 disk_filename: 060719210727_archive.zip
70 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
71 id: 6
72 filesize: 157
73 filename: archive.zip
74 author_id: 2
75 content_type: application/octet-stream
76 attachments_007:
77 created_on: 2006-07-19 21:07:27 +02:00
78 container_type: Issue
79 container_id: 4
80 downloads: 0
81 disk_filename: 060719210727_archive.zip
82 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
83 id: 7
84 filesize: 157
85 filename: archive.zip
86 author_id: 1
87 content_type: application/octet-stream
88 attachments_008:
89 created_on: 2006-07-19 21:07:27 +02:00
90 container_type: Project
91 container_id: 1
92 downloads: 0
93 disk_filename: 060719210727_project_file.zip
94 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
95 id: 8
96 filesize: 320
97 filename: project_file.zip
98 author_id: 2
99 content_type: application/octet-stream
100 attachments_009:
101 created_on: 2006-07-19 21:07:27 +02:00
102 container_type: Version
103 container_id: 1
104 downloads: 0
105 disk_filename: 060719210727_version_file.zip
106 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
107 id: 9
108 filesize: 452
109 filename: version_file.zip
110 author_id: 2
111 content_type: application/octet-stream
112 attachments_010:
113 created_on: 2006-07-19 21:07:27 +02:00
114 container_type: Issue
115 container_id: 2
116 downloads: 0
117 disk_filename: 060719210727_picture.jpg
118 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
119 id: 10
120 filesize: 452
121 filename: picture.jpg
122 author_id: 2
123 content_type: image/jpeg
1 ---
2 attachments_001:
3 created_on: 2006-07-19 21:07:27 +02:00
4 downloads: 0
5 content_type: text/plain
6 disk_filename: 060719210727_error281.txt
7 container_id: 3
8 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
9 id: 1
10 container_type: Issue
11 filesize: 28
12 filename: error281.txt
13 author_id: 2
14 attachments_002:
15 created_on: 2006-07-19 21:07:27 +02:00
16 downloads: 0
17 content_type: text/plain
18 disk_filename: 060719210727_document.txt
19 container_id: 1
20 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
21 id: 2
22 container_type: Document
23 filesize: 28
24 filename: document.txt
25 author_id: 2
26 attachments_003:
27 created_on: 2006-07-19 21:07:27 +02:00
28 downloads: 0
29 content_type: image/gif
30 disk_filename: 060719210727_logo.gif
31 container_id: 4
32 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
33 id: 3
34 container_type: WikiPage
35 filesize: 280
36 filename: logo.gif
37 description: This is a logo
38 author_id: 2
39 attachments_004:
40 created_on: 2006-07-19 21:07:27 +02:00
41 container_type: Issue
42 container_id: 3
43 downloads: 0
44 disk_filename: 060719210727_source.rb
45 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
46 id: 4
47 filesize: 153
48 filename: source.rb
49 author_id: 2
50 description: This is a Ruby source file
51 content_type: application/x-ruby
52 attachments_005:
53 created_on: 2006-07-19 21:07:27 +02:00
54 container_type: Issue
55 container_id: 3
56 downloads: 0
57 disk_filename: 060719210727_changeset.diff
58 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
59 id: 5
60 filesize: 687
61 filename: changeset.diff
62 author_id: 2
63 content_type: text/x-diff
64 attachments_006:
65 created_on: 2006-07-19 21:07:27 +02:00
66 container_type: Issue
67 container_id: 3
68 downloads: 0
69 disk_filename: 060719210727_archive.zip
70 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
71 id: 6
72 filesize: 157
73 filename: archive.zip
74 author_id: 2
75 content_type: application/octet-stream
76 attachments_007:
77 created_on: 2006-07-19 21:07:27 +02:00
78 container_type: Issue
79 container_id: 4
80 downloads: 0
81 disk_filename: 060719210727_archive.zip
82 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
83 id: 7
84 filesize: 157
85 filename: archive.zip
86 author_id: 1
87 content_type: application/octet-stream
88 attachments_008:
89 created_on: 2006-07-19 21:07:27 +02:00
90 container_type: Project
91 container_id: 1
92 downloads: 0
93 disk_filename: 060719210727_project_file.zip
94 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
95 id: 8
96 filesize: 320
97 filename: project_file.zip
98 author_id: 2
99 content_type: application/octet-stream
100 attachments_009:
101 created_on: 2006-07-19 21:07:27 +02:00
102 container_type: Version
103 container_id: 1
104 downloads: 0
105 disk_filename: 060719210727_version_file.zip
106 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
107 id: 9
108 filesize: 452
109 filename: version_file.zip
110 author_id: 2
111 content_type: application/octet-stream
112 attachments_010:
113 created_on: 2006-07-19 21:07:27 +02:00
114 container_type: Issue
115 container_id: 2
116 downloads: 0
117 disk_filename: 060719210727_picture.jpg
118 digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
119 id: 10
120 filesize: 452
121 filename: picture.jpg
122 author_id: 2
123 content_type: image/jpeg
124 124 No newline at end of file
@@ -1,2 +1,2
1 --- {}
2
1 --- {}
2
@@ -1,19 +1,19
1 ---
2 boards_001:
3 name: Help
4 project_id: 1
5 topics_count: 2
6 id: 1
7 description: Help board
8 position: 1
9 last_message_id: 6
10 messages_count: 6
11 boards_002:
12 name: Discussion
13 project_id: 1
14 topics_count: 0
15 id: 2
16 description: Discussion board
17 position: 2
18 last_message_id:
19 messages_count: 0
1 ---
2 boards_001:
3 name: Help
4 project_id: 1
5 topics_count: 2
6 id: 1
7 description: Help board
8 position: 1
9 last_message_id: 6
10 messages_count: 6
11 boards_002:
12 name: Discussion
13 project_id: 1
14 topics_count: 0
15 id: 2
16 description: Discussion board
17 position: 2
18 last_message_id:
19 messages_count: 0
@@ -1,23 +1,23
1 ---
2 changes_001:
3 id: 1
4 changeset_id: 100
5 action: A
6 path: /test/some/path/in/the/repo
7 from_path:
8 from_revision:
9 changes_002:
10 id: 2
11 changeset_id: 100
12 action: A
13 path: /test/some/path/elsewhere/in/the/repo
14 from_path:
15 from_revision:
16 changes_003:
17 id: 3
18 changeset_id: 101
19 action: M
20 path: /test/some/path/in/the/repo
21 from_path:
22 from_revision:
1 ---
2 changes_001:
3 id: 1
4 changeset_id: 100
5 action: A
6 path: /test/some/path/in/the/repo
7 from_path:
8 from_revision:
9 changes_002:
10 id: 2
11 changeset_id: 100
12 action: A
13 path: /test/some/path/elsewhere/in/the/repo
14 from_path:
15 from_revision:
16 changes_003:
17 id: 3
18 changeset_id: 101
19 action: M
20 path: /test/some/path/in/the/repo
21 from_path:
22 from_revision:
23 23 No newline at end of file
@@ -1,84 +1,84
1 ---
2 changesets_001:
3 commit_date: 2007-04-11
4 committed_on: 2007-04-11 15:14:44 +02:00
5 revision: 1
6 id: 100
7 comments: My very first commit
8 repository_id: 10
9 committer: dlopper
10 user_id: 3
11 changesets_002:
12 commit_date: 2007-04-12
13 committed_on: 2007-04-12 15:14:44 +02:00
14 revision: 2
15 id: 101
16 comments: 'This commit fixes #1, #2 and references #1 & #3'
17 repository_id: 10
18 committer: dlopper
19 user_id: 3
20 changesets_003:
21 commit_date: 2007-04-12
22 committed_on: 2007-04-12 15:14:44 +02:00
23 revision: 3
24 id: 102
25 comments: |-
26 A commit with wrong issue ids
27 IssueID 666 3
28 repository_id: 10
29 committer: dlopper
30 user_id: 3
31 changesets_004:
32 commit_date: 2007-04-12
33 committed_on: 2007-04-12 15:14:44 +02:00
34 revision: 4
35 id: 103
36 comments: |-
37 A commit with an issue id of an other project
38 IssueID 4 2
39 repository_id: 10
40 committer: dlopper
41 user_id: 3
42 changesets_005:
43 commit_date: "2007-09-10"
44 comments: Modified one file in the folder.
45 committed_on: 2007-09-10 19:01:08
46 revision: "5"
47 id: 104
48 scmid:
49 user_id: 3
50 repository_id: 10
51 committer: dlopper
52 changesets_006:
53 commit_date: "2007-09-10"
54 comments: Moved helloworld.rb from / to /folder.
55 committed_on: 2007-09-10 19:01:47
56 revision: "6"
57 id: 105
58 scmid:
59 user_id: 3
60 repository_id: 10
61 committer: dlopper
62 changesets_007:
63 commit_date: "2007-09-10"
64 comments: Removed one file.
65 committed_on: 2007-09-10 19:02:16
66 revision: "7"
67 id: 106
68 scmid:
69 user_id: 3
70 repository_id: 10
71 committer: dlopper
72 changesets_008:
73 commit_date: "2007-09-10"
74 comments: |-
75 This commits references an issue.
76 Refs #2
77 committed_on: 2007-09-10 19:04:35
78 revision: "8"
79 id: 107
80 scmid:
81 user_id: 3
82 repository_id: 10
83 committer: dlopper
1 ---
2 changesets_001:
3 commit_date: 2007-04-11
4 committed_on: 2007-04-11 15:14:44 +02:00
5 revision: 1
6 id: 100
7 comments: My very first commit
8 repository_id: 10
9 committer: dlopper
10 user_id: 3
11 changesets_002:
12 commit_date: 2007-04-12
13 committed_on: 2007-04-12 15:14:44 +02:00
14 revision: 2
15 id: 101
16 comments: 'This commit fixes #1, #2 and references #1 & #3'
17 repository_id: 10
18 committer: dlopper
19 user_id: 3
20 changesets_003:
21 commit_date: 2007-04-12
22 committed_on: 2007-04-12 15:14:44 +02:00
23 revision: 3
24 id: 102
25 comments: |-
26 A commit with wrong issue ids
27 IssueID 666 3
28 repository_id: 10
29 committer: dlopper
30 user_id: 3
31 changesets_004:
32 commit_date: 2007-04-12
33 committed_on: 2007-04-12 15:14:44 +02:00
34 revision: 4
35 id: 103
36 comments: |-
37 A commit with an issue id of an other project
38 IssueID 4 2
39 repository_id: 10
40 committer: dlopper
41 user_id: 3
42 changesets_005:
43 commit_date: "2007-09-10"
44 comments: Modified one file in the folder.
45 committed_on: 2007-09-10 19:01:08
46 revision: "5"
47 id: 104
48 scmid:
49 user_id: 3
50 repository_id: 10
51 committer: dlopper
52 changesets_006:
53 commit_date: "2007-09-10"
54 comments: Moved helloworld.rb from / to /folder.
55 committed_on: 2007-09-10 19:01:47
56 revision: "6"
57 id: 105
58 scmid:
59 user_id: 3
60 repository_id: 10
61 committer: dlopper
62 changesets_007:
63 commit_date: "2007-09-10"
64 comments: Removed one file.
65 committed_on: 2007-09-10 19:02:16
66 revision: "7"
67 id: 106
68 scmid:
69 user_id: 3
70 repository_id: 10
71 committer: dlopper
72 changesets_008:
73 commit_date: "2007-09-10"
74 comments: |-
75 This commits references an issue.
76 Refs #2
77 committed_on: 2007-09-10 19:04:35
78 revision: "8"
79 id: 107
80 scmid:
81 user_id: 3
82 repository_id: 10
83 committer: dlopper
84 84 No newline at end of file
@@ -1,90 +1,90
1 ---
2 custom_fields_001:
3 name: Database
4 min_length: 0
5 regexp: ""
6 is_for_all: true
7 is_filter: true
8 type: IssueCustomField
9 max_length: 0
10 possible_values:
11 - MySQL
12 - PostgreSQL
13 - Oracle
14 id: 1
15 is_required: false
16 field_format: list
17 default_value: ""
18 editable: true
19 custom_fields_002:
20 name: Searchable field
21 min_length: 1
22 regexp: ""
23 is_for_all: true
24 type: IssueCustomField
25 max_length: 100
26 possible_values: ""
27 id: 2
28 is_required: false
29 field_format: string
30 searchable: true
31 default_value: "Default string"
32 editable: true
33 custom_fields_003:
34 name: Development status
35 min_length: 0
36 regexp: ""
37 is_for_all: false
38 is_filter: true
39 type: ProjectCustomField
40 max_length: 0
41 possible_values:
42 - Stable
43 - Beta
44 - Alpha
45 - Planning
46 id: 3
47 is_required: true
48 field_format: list
49 default_value: ""
50 editable: true
51 custom_fields_004:
52 name: Phone number
53 min_length: 0
54 regexp: ""
55 is_for_all: false
56 type: UserCustomField
57 max_length: 0
58 possible_values: ""
59 id: 4
60 is_required: false
61 field_format: string
62 default_value: ""
63 editable: true
64 custom_fields_005:
65 name: Money
66 min_length: 0
67 regexp: ""
68 is_for_all: false
69 type: UserCustomField
70 max_length: 0
71 possible_values: ""
72 id: 5
73 is_required: false
74 field_format: float
75 default_value: ""
76 editable: true
77 custom_fields_006:
78 name: Float field
79 min_length: 0
80 regexp: ""
81 is_for_all: true
82 type: IssueCustomField
83 max_length: 0
84 possible_values: ""
85 id: 6
86 is_required: false
87 field_format: float
88 default_value: ""
89 editable: true
1 ---
2 custom_fields_001:
3 name: Database
4 min_length: 0
5 regexp: ""
6 is_for_all: true
7 is_filter: true
8 type: IssueCustomField
9 max_length: 0
10 possible_values:
11 - MySQL
12 - PostgreSQL
13 - Oracle
14 id: 1
15 is_required: false
16 field_format: list
17 default_value: ""
18 editable: true
19 custom_fields_002:
20 name: Searchable field
21 min_length: 1
22 regexp: ""
23 is_for_all: true
24 type: IssueCustomField
25 max_length: 100
26 possible_values: ""
27 id: 2
28 is_required: false
29 field_format: string
30 searchable: true
31 default_value: "Default string"
32 editable: true
33 custom_fields_003:
34 name: Development status
35 min_length: 0
36 regexp: ""
37 is_for_all: false
38 is_filter: true
39 type: ProjectCustomField
40 max_length: 0
41 possible_values:
42 - Stable
43 - Beta
44 - Alpha
45 - Planning
46 id: 3
47 is_required: true
48 field_format: list
49 default_value: ""
50 editable: true
51 custom_fields_004:
52 name: Phone number
53 min_length: 0
54 regexp: ""
55 is_for_all: false
56 type: UserCustomField
57 max_length: 0
58 possible_values: ""
59 id: 4
60 is_required: false
61 field_format: string
62 default_value: ""
63 editable: true
64 custom_fields_005:
65 name: Money
66 min_length: 0
67 regexp: ""
68 is_for_all: false
69 type: UserCustomField
70 max_length: 0
71 possible_values: ""
72 id: 5
73 is_required: false
74 field_format: float
75 default_value: ""
76 editable: true
77 custom_fields_006:
78 name: Float field
79 min_length: 0
80 regexp: ""
81 is_for_all: true
82 type: IssueCustomField
83 max_length: 0
84 possible_values: ""
85 id: 6
86 is_required: false
87 field_format: float
88 default_value: ""
89 editable: true
90 90 No newline at end of file
@@ -1,2 +1,2
1 --- {}
2
1 --- {}
2
@@ -1,19 +1,19
1 ---
2 custom_fields_trackers_001:
3 custom_field_id: 1
4 tracker_id: 1
5 custom_fields_trackers_002:
6 custom_field_id: 2
7 tracker_id: 1
8 custom_fields_trackers_003:
9 custom_field_id: 2
10 tracker_id: 3
11 custom_fields_trackers_004:
12 custom_field_id: 6
13 tracker_id: 1
14 custom_fields_trackers_005:
15 custom_field_id: 6
16 tracker_id: 2
17 custom_fields_trackers_006:
18 custom_field_id: 6
19 tracker_id: 3
1 ---
2 custom_fields_trackers_001:
3 custom_field_id: 1
4 tracker_id: 1
5 custom_fields_trackers_002:
6 custom_field_id: 2
7 tracker_id: 1
8 custom_fields_trackers_003:
9 custom_field_id: 2
10 tracker_id: 3
11 custom_fields_trackers_004:
12 custom_field_id: 6
13 tracker_id: 1
14 custom_fields_trackers_005:
15 custom_field_id: 6
16 tracker_id: 2
17 custom_fields_trackers_006:
18 custom_field_id: 6
19 tracker_id: 3
@@ -1,86 +1,86
1 ---
2 custom_values_006:
3 customized_type: Issue
4 custom_field_id: 2
5 customized_id: 3
6 id: 6
7 value: "125"
8 custom_values_007:
9 customized_type: Project
10 custom_field_id: 3
11 customized_id: 1
12 id: 7
13 value: Stable
14 custom_values_001:
15 customized_type: User
16 custom_field_id: 4
17 customized_id: 3
18 id: 1
19 value: ""
20 custom_values_002:
21 customized_type: User
22 custom_field_id: 4
23 customized_id: 4
24 id: 2
25 value: 01 23 45 67 89
26 custom_values_003:
27 customized_type: User
28 custom_field_id: 4
29 customized_id: 2
30 id: 3
31 value: ""
32 custom_values_004:
33 customized_type: Issue
34 custom_field_id: 2
35 customized_id: 1
36 id: 4
37 value: "125"
38 custom_values_005:
39 customized_type: Issue
40 custom_field_id: 2
41 customized_id: 2
42 id: 5
43 value: ""
44 custom_values_008:
45 customized_type: Issue
46 custom_field_id: 1
47 customized_id: 3
48 id: 8
49 value: "MySQL"
50 custom_values_009:
51 customized_type: Issue
52 custom_field_id: 2
53 customized_id: 3
54 id: 9
55 value: "this is a stringforcustomfield search"
56 custom_values_010:
57 customized_type: Issue
58 custom_field_id: 6
59 customized_id: 1
60 id: 10
61 value: "2.1"
62 custom_values_011:
63 customized_type: Issue
64 custom_field_id: 6
65 customized_id: 2
66 id: 11
67 value: "2.05"
68 custom_values_012:
69 customized_type: Issue
70 custom_field_id: 6
71 customized_id: 3
72 id: 12
73 value: "11.65"
74 custom_values_013:
75 customized_type: Issue
76 custom_field_id: 6
77 customized_id: 7
78 id: 13
79 value: ""
80 custom_values_014:
81 customized_type: Issue
82 custom_field_id: 6
83 customized_id: 5
84 id: 14
85 value: "-7.6"
1 ---
2 custom_values_006:
3 customized_type: Issue
4 custom_field_id: 2
5 customized_id: 3
6 id: 6
7 value: "125"
8 custom_values_007:
9 customized_type: Project
10 custom_field_id: 3
11 customized_id: 1
12 id: 7
13 value: Stable
14 custom_values_001:
15 customized_type: User
16 custom_field_id: 4
17 customized_id: 3
18 id: 1
19 value: ""
20 custom_values_002:
21 customized_type: User
22 custom_field_id: 4
23 customized_id: 4
24 id: 2
25 value: 01 23 45 67 89
26 custom_values_003:
27 customized_type: User
28 custom_field_id: 4
29 customized_id: 2
30 id: 3
31 value: ""
32 custom_values_004:
33 customized_type: Issue
34 custom_field_id: 2
35 customized_id: 1
36 id: 4
37 value: "125"
38 custom_values_005:
39 customized_type: Issue
40 custom_field_id: 2
41 customized_id: 2
42 id: 5
43 value: ""
44 custom_values_008:
45 customized_type: Issue
46 custom_field_id: 1
47 customized_id: 3
48 id: 8
49 value: "MySQL"
50 custom_values_009:
51 customized_type: Issue
52 custom_field_id: 2
53 customized_id: 3
54 id: 9
55 value: "this is a stringforcustomfield search"
56 custom_values_010:
57 customized_type: Issue
58 custom_field_id: 6
59 customized_id: 1
60 id: 10
61 value: "2.1"
62 custom_values_011:
63 customized_type: Issue
64 custom_field_id: 6
65 customized_id: 2
66 id: 11
67 value: "2.05"
68 custom_values_012:
69 customized_type: Issue
70 custom_field_id: 6
71 customized_id: 3
72 id: 12
73 value: "11.65"
74 custom_values_013:
75 customized_type: Issue
76 custom_field_id: 6
77 customized_id: 7
78 id: 13
79 value: ""
80 custom_values_014:
81 customized_type: Issue
82 custom_field_id: 6
83 customized_id: 5
84 id: 14
85 value: "-7.6"
86 86 No newline at end of file
@@ -1,7 +1,7
1 documents_001:
2 created_on: 2007-01-27 15:08:27 +01:00
3 project_id: 1
4 title: "Test document"
5 id: 1
6 description: "Document description"
1 documents_001:
2 created_on: 2007-01-27 15:08:27 +01:00
3 project_id: 1
4 title: "Test document"
5 id: 1
6 description: "Document description"
7 7 category_id: 1 No newline at end of file
@@ -1,69 +1,69
1 ---
2 enumerations_001:
3 name: Uncategorized
4 id: 1
5 opt: DCAT
6 type: DocumentCategory
7 enumerations_002:
8 name: User documentation
9 id: 2
10 opt: DCAT
11 type: DocumentCategory
12 enumerations_003:
13 name: Technical documentation
14 id: 3
15 opt: DCAT
16 type: DocumentCategory
17 enumerations_004:
18 name: Low
19 id: 4
20 opt: IPRI
21 type: IssuePriority
22 enumerations_005:
23 name: Normal
24 id: 5
25 opt: IPRI
26 type: IssuePriority
27 is_default: true
28 enumerations_006:
29 name: High
30 id: 6
31 opt: IPRI
32 type: IssuePriority
33 enumerations_007:
34 name: Urgent
35 id: 7
36 opt: IPRI
37 type: IssuePriority
38 enumerations_008:
39 name: Immediate
40 id: 8
41 opt: IPRI
42 type: IssuePriority
43 enumerations_009:
44 name: Design
45 id: 9
46 opt: ACTI
47 type: TimeEntryActivity
48 enumerations_010:
49 name: Development
50 id: 10
51 opt: ACTI
52 type: TimeEntryActivity
53 is_default: true
54 enumerations_011:
55 name: QA
56 id: 11
57 opt: ACTI
58 type: TimeEntryActivity
59 enumerations_012:
60 name: Default Enumeration
61 id: 12
62 opt: ''
63 type: Enumeration
64 is_default: true
65 enumerations_013:
66 name: Another Enumeration
67 id: 13
68 opt: ''
69 type: Enumeration
1 ---
2 enumerations_001:
3 name: Uncategorized
4 id: 1
5 opt: DCAT
6 type: DocumentCategory
7 enumerations_002:
8 name: User documentation
9 id: 2
10 opt: DCAT
11 type: DocumentCategory
12 enumerations_003:
13 name: Technical documentation
14 id: 3
15 opt: DCAT
16 type: DocumentCategory
17 enumerations_004:
18 name: Low
19 id: 4
20 opt: IPRI
21 type: IssuePriority
22 enumerations_005:
23 name: Normal
24 id: 5
25 opt: IPRI
26 type: IssuePriority
27 is_default: true
28 enumerations_006:
29 name: High
30 id: 6
31 opt: IPRI
32 type: IssuePriority
33 enumerations_007:
34 name: Urgent
35 id: 7
36 opt: IPRI
37 type: IssuePriority
38 enumerations_008:
39 name: Immediate
40 id: 8
41 opt: IPRI
42 type: IssuePriority
43 enumerations_009:
44 name: Design
45 id: 9
46 opt: ACTI
47 type: TimeEntryActivity
48 enumerations_010:
49 name: Development
50 id: 10
51 opt: ACTI
52 type: TimeEntryActivity
53 is_default: true
54 enumerations_011:
55 name: QA
56 id: 11
57 opt: ACTI
58 type: TimeEntryActivity
59 enumerations_012:
60 name: Default Enumeration
61 id: 12
62 opt: ''
63 type: Enumeration
64 is_default: true
65 enumerations_013:
66 name: Another Enumeration
67 id: 13
68 opt: ''
69 type: Enumeration
@@ -1,22 +1,22
1 ---
2 issue_categories_001:
3 name: Printing
4 project_id: 1
5 assigned_to_id: 2
6 id: 1
7 issue_categories_002:
8 name: Recipes
9 project_id: 1
10 assigned_to_id:
11 id: 2
12 issue_categories_003:
13 name: Stock management
14 project_id: 2
15 assigned_to_id:
16 id: 3
17 issue_categories_004:
18 name: Printing
19 project_id: 2
20 assigned_to_id:
21 id: 4
1 ---
2 issue_categories_001:
3 name: Printing
4 project_id: 1
5 assigned_to_id: 2
6 id: 1
7 issue_categories_002:
8 name: Recipes
9 project_id: 1
10 assigned_to_id:
11 id: 2
12 issue_categories_003:
13 name: Stock management
14 project_id: 2
15 assigned_to_id:
16 id: 3
17 issue_categories_004:
18 name: Printing
19 project_id: 2
20 assigned_to_id:
21 id: 4
22 22 No newline at end of file
@@ -1,31 +1,31
1 ---
2 issue_statuses_006:
3 name: Rejected
4 is_default: false
5 is_closed: true
6 id: 6
7 issue_statuses_001:
8 name: New
9 is_default: true
10 is_closed: false
11 id: 1
12 issue_statuses_002:
13 name: Assigned
14 is_default: false
15 is_closed: false
16 id: 2
17 issue_statuses_003:
18 name: Resolved
19 is_default: false
20 is_closed: false
21 id: 3
22 issue_statuses_004:
23 name: Feedback
24 is_default: false
25 is_closed: false
26 id: 4
27 issue_statuses_005:
28 name: Closed
29 is_default: false
30 is_closed: true
31 id: 5
1 ---
2 issue_statuses_006:
3 name: Rejected
4 is_default: false
5 is_closed: true
6 id: 6
7 issue_statuses_001:
8 name: New
9 is_default: true
10 is_closed: false
11 id: 1
12 issue_statuses_002:
13 name: Assigned
14 is_default: false
15 is_closed: false
16 id: 2
17 issue_statuses_003:
18 name: Resolved
19 is_default: false
20 is_closed: false
21 id: 3
22 issue_statuses_004:
23 name: Feedback
24 is_default: false
25 is_closed: false
26 id: 4
27 issue_statuses_005:
28 name: Closed
29 is_default: false
30 is_closed: true
31 id: 5
@@ -1,159 +1,159
1 ---
2 issues_001:
3 created_on: <%= 3.days.ago.to_date.to_s(:db) %>
4 project_id: 1
5 updated_on: <%= 1.day.ago.to_date.to_s(:db) %>
6 priority_id: 4
7 subject: Can't print recipes
8 id: 1
9 fixed_version_id:
10 category_id: 1
11 description: Unable to print recipes
12 tracker_id: 1
13 assigned_to_id:
14 author_id: 2
15 status_id: 1
16 start_date: <%= 1.day.ago.to_date.to_s(:db) %>
17 due_date: <%= 10.day.from_now.to_date.to_s(:db) %>
18 issues_002:
19 created_on: 2006-07-19 21:04:21 +02:00
20 project_id: 1
21 updated_on: 2006-07-19 21:09:50 +02:00
22 priority_id: 5
23 subject: Add ingredients categories
24 id: 2
25 fixed_version_id: 2
26 category_id:
27 description: Ingredients of the recipe should be classified by categories
28 tracker_id: 2
29 assigned_to_id: 3
30 author_id: 2
31 status_id: 2
32 start_date: <%= 2.day.ago.to_date.to_s(:db) %>
33 due_date:
34 issues_003:
35 created_on: 2006-07-19 21:07:27 +02:00
36 project_id: 1
37 updated_on: 2006-07-19 21:07:27 +02:00
38 priority_id: 4
39 subject: Error 281 when updating a recipe
40 id: 3
41 fixed_version_id:
42 category_id:
43 description: Error 281 is encountered when saving a recipe
44 tracker_id: 1
45 assigned_to_id: 3
46 author_id: 2
47 status_id: 1
48 start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
49 due_date: <%= 40.day.ago.to_date.to_s(:db) %>
50 issues_004:
51 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
52 project_id: 2
53 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
54 priority_id: 4
55 subject: Issue on project 2
56 id: 4
57 fixed_version_id:
58 category_id:
59 description: Issue on project 2
60 tracker_id: 1
61 assigned_to_id: 2
62 author_id: 2
63 status_id: 1
64 issues_005:
65 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
66 project_id: 3
67 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
68 priority_id: 4
69 subject: Subproject issue
70 id: 5
71 fixed_version_id:
72 category_id:
73 description: This is an issue on a cookbook subproject
74 tracker_id: 1
75 assigned_to_id:
76 author_id: 2
77 status_id: 1
78 issues_006:
79 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
80 project_id: 5
81 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
82 priority_id: 4
83 subject: Issue of a private subproject
84 id: 6
85 fixed_version_id:
86 category_id:
87 description: This is an issue of a private subproject of cookbook
88 tracker_id: 1
89 assigned_to_id:
90 author_id: 2
91 status_id: 1
92 start_date: <%= Date.today.to_s(:db) %>
93 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
94 issues_007:
95 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
96 project_id: 1
97 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
98 priority_id: 5
99 subject: Issue due today
100 id: 7
101 fixed_version_id:
102 category_id:
103 description: This is an issue that is due today
104 tracker_id: 1
105 assigned_to_id:
106 author_id: 2
107 status_id: 1
108 start_date: <%= 10.days.ago.to_s(:db) %>
109 due_date: <%= Date.today.to_s(:db) %>
110 lock_version: 0
111 issues_008:
112 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
113 project_id: 1
114 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
115 priority_id: 5
116 subject: Closed issue
117 id: 8
118 fixed_version_id:
119 category_id:
120 description: This is a closed issue.
121 tracker_id: 1
122 assigned_to_id:
123 author_id: 2
124 status_id: 5
125 start_date:
126 due_date:
127 lock_version: 0
128 issues_009:
129 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
130 project_id: 5
131 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
132 priority_id: 5
133 subject: Blocked Issue
134 id: 9
135 fixed_version_id:
136 category_id:
137 description: This is an issue that is blocked by issue #10
138 tracker_id: 1
139 assigned_to_id:
140 author_id: 2
141 status_id: 1
142 start_date: <%= Date.today.to_s(:db) %>
143 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
144 issues_010:
145 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
146 project_id: 5
147 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
148 priority_id: 5
149 subject: Issue Doing the Blocking
150 id: 10
151 fixed_version_id:
152 category_id:
153 description: This is an issue that blocks issue #9
154 tracker_id: 1
155 assigned_to_id:
156 author_id: 2
157 status_id: 1
158 start_date: <%= Date.today.to_s(:db) %>
159 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
1 ---
2 issues_001:
3 created_on: <%= 3.days.ago.to_date.to_s(:db) %>
4 project_id: 1
5 updated_on: <%= 1.day.ago.to_date.to_s(:db) %>
6 priority_id: 4
7 subject: Can't print recipes
8 id: 1
9 fixed_version_id:
10 category_id: 1
11 description: Unable to print recipes
12 tracker_id: 1
13 assigned_to_id:
14 author_id: 2
15 status_id: 1
16 start_date: <%= 1.day.ago.to_date.to_s(:db) %>
17 due_date: <%= 10.day.from_now.to_date.to_s(:db) %>
18 issues_002:
19 created_on: 2006-07-19 21:04:21 +02:00
20 project_id: 1
21 updated_on: 2006-07-19 21:09:50 +02:00
22 priority_id: 5
23 subject: Add ingredients categories
24 id: 2
25 fixed_version_id: 2
26 category_id:
27 description: Ingredients of the recipe should be classified by categories
28 tracker_id: 2
29 assigned_to_id: 3
30 author_id: 2
31 status_id: 2
32 start_date: <%= 2.day.ago.to_date.to_s(:db) %>
33 due_date:
34 issues_003:
35 created_on: 2006-07-19 21:07:27 +02:00
36 project_id: 1
37 updated_on: 2006-07-19 21:07:27 +02:00
38 priority_id: 4
39 subject: Error 281 when updating a recipe
40 id: 3
41 fixed_version_id:
42 category_id:
43 description: Error 281 is encountered when saving a recipe
44 tracker_id: 1
45 assigned_to_id: 3
46 author_id: 2
47 status_id: 1
48 start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
49 due_date: <%= 40.day.ago.to_date.to_s(:db) %>
50 issues_004:
51 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
52 project_id: 2
53 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
54 priority_id: 4
55 subject: Issue on project 2
56 id: 4
57 fixed_version_id:
58 category_id:
59 description: Issue on project 2
60 tracker_id: 1
61 assigned_to_id: 2
62 author_id: 2
63 status_id: 1
64 issues_005:
65 created_on: <%= 5.days.ago.to_date.to_s(:db) %>
66 project_id: 3
67 updated_on: <%= 2.days.ago.to_date.to_s(:db) %>
68 priority_id: 4
69 subject: Subproject issue
70 id: 5
71 fixed_version_id:
72 category_id:
73 description: This is an issue on a cookbook subproject
74 tracker_id: 1
75 assigned_to_id:
76 author_id: 2
77 status_id: 1
78 issues_006:
79 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
80 project_id: 5
81 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
82 priority_id: 4
83 subject: Issue of a private subproject
84 id: 6
85 fixed_version_id:
86 category_id:
87 description: This is an issue of a private subproject of cookbook
88 tracker_id: 1
89 assigned_to_id:
90 author_id: 2
91 status_id: 1
92 start_date: <%= Date.today.to_s(:db) %>
93 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
94 issues_007:
95 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
96 project_id: 1
97 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
98 priority_id: 5
99 subject: Issue due today
100 id: 7
101 fixed_version_id:
102 category_id:
103 description: This is an issue that is due today
104 tracker_id: 1
105 assigned_to_id:
106 author_id: 2
107 status_id: 1
108 start_date: <%= 10.days.ago.to_s(:db) %>
109 due_date: <%= Date.today.to_s(:db) %>
110 lock_version: 0
111 issues_008:
112 created_on: <%= 10.days.ago.to_date.to_s(:db) %>
113 project_id: 1
114 updated_on: <%= 10.days.ago.to_date.to_s(:db) %>
115 priority_id: 5
116 subject: Closed issue
117 id: 8
118 fixed_version_id:
119 category_id:
120 description: This is a closed issue.
121 tracker_id: 1
122 assigned_to_id:
123 author_id: 2
124 status_id: 5
125 start_date:
126 due_date:
127 lock_version: 0
128 issues_009:
129 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
130 project_id: 5
131 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
132 priority_id: 5
133 subject: Blocked Issue
134 id: 9
135 fixed_version_id:
136 category_id:
137 description: This is an issue that is blocked by issue #10
138 tracker_id: 1
139 assigned_to_id:
140 author_id: 2
141 status_id: 1
142 start_date: <%= Date.today.to_s(:db) %>
143 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
144 issues_010:
145 created_on: <%= 1.minute.ago.to_date.to_s(:db) %>
146 project_id: 5
147 updated_on: <%= 1.minute.ago.to_date.to_s(:db) %>
148 priority_id: 5
149 subject: Issue Doing the Blocking
150 id: 10
151 fixed_version_id:
152 category_id:
153 description: This is an issue that blocks issue #9
154 tracker_id: 1
155 assigned_to_id:
156 author_id: 2
157 status_id: 1
158 start_date: <%= Date.today.to_s(:db) %>
159 due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
@@ -1,15 +1,15
1 ---
2 journal_details_001:
3 old_value: "1"
4 property: attr
5 id: 1
6 value: "2"
7 prop_key: status_id
8 journal_id: 1
9 journal_details_002:
10 old_value: "40"
11 property: attr
12 id: 2
13 value: "30"
14 prop_key: done_ratio
15 journal_id: 1
1 ---
2 journal_details_001:
3 old_value: "1"
4 property: attr
5 id: 1
6 value: "2"
7 prop_key: status_id
8 journal_id: 1
9 journal_details_002:
10 old_value: "40"
11 property: attr
12 id: 2
13 value: "30"
14 prop_key: done_ratio
15 journal_id: 1
@@ -1,23 +1,23
1 ---
2 journals_001:
3 created_on: <%= 2.days.ago.to_date.to_s(:db) %>
4 notes: "Journal notes"
5 id: 1
6 journalized_type: Issue
7 user_id: 1
8 journalized_id: 1
9 journals_002:
10 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
11 notes: "Some notes with Redmine links: #2, r2."
12 id: 2
13 journalized_type: Issue
14 user_id: 2
15 journalized_id: 1
16 journals_003:
17 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
18 notes: "A comment with inline image: !picture.jpg!"
19 id: 3
20 journalized_type: Issue
21 user_id: 2
22 journalized_id: 2
1 ---
2 journals_001:
3 created_on: <%= 2.days.ago.to_date.to_s(:db) %>
4 notes: "Journal notes"
5 id: 1
6 journalized_type: Issue
7 user_id: 1
8 journalized_id: 1
9 journals_002:
10 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
11 notes: "Some notes with Redmine links: #2, r2."
12 id: 2
13 journalized_type: Issue
14 user_id: 2
15 journalized_id: 1
16 journals_003:
17 created_on: <%= 1.days.ago.to_date.to_s(:db) %>
18 notes: "A comment with inline image: !picture.jpg!"
19 id: 3
20 journalized_type: Issue
21 user_id: 2
22 journalized_id: 2
23 23 No newline at end of file
@@ -1,45 +1,45
1 ---
2 members_001:
3 created_on: 2006-07-19 19:35:33 +02:00
4 project_id: 1
5 id: 1
6 user_id: 2
7 mail_notification: true
8 members_002:
9 created_on: 2006-07-19 19:35:36 +02:00
10 project_id: 1
11 id: 2
12 user_id: 3
13 mail_notification: true
14 members_003:
15 created_on: 2006-07-19 19:35:36 +02:00
16 project_id: 2
17 id: 3
18 user_id: 2
19 mail_notification: true
20 members_004:
21 id: 4
22 created_on: 2006-07-19 19:35:36 +02:00
23 project_id: 1
24 # Locked user
25 user_id: 5
26 mail_notification: true
27 members_005:
28 id: 5
29 created_on: 2006-07-19 19:35:33 +02:00
30 project_id: 5
31 user_id: 2
32 mail_notification: true
33 members_006:
34 id: 6
35 created_on: 2006-07-19 19:35:33 +02:00
36 project_id: 5
37 user_id: 10
38 mail_notification: false
39 members_007:
40 id: 7
41 created_on: 2006-07-19 19:35:33 +02:00
42 project_id: 5
43 user_id: 8
44 mail_notification: false
1 ---
2 members_001:
3 created_on: 2006-07-19 19:35:33 +02:00
4 project_id: 1
5 id: 1
6 user_id: 2
7 mail_notification: true
8 members_002:
9 created_on: 2006-07-19 19:35:36 +02:00
10 project_id: 1
11 id: 2
12 user_id: 3
13 mail_notification: true
14 members_003:
15 created_on: 2006-07-19 19:35:36 +02:00
16 project_id: 2
17 id: 3
18 user_id: 2
19 mail_notification: true
20 members_004:
21 id: 4
22 created_on: 2006-07-19 19:35:36 +02:00
23 project_id: 1
24 # Locked user
25 user_id: 5
26 mail_notification: true
27 members_005:
28 id: 5
29 created_on: 2006-07-19 19:35:33 +02:00
30 project_id: 5
31 user_id: 2
32 mail_notification: true
33 members_006:
34 id: 6
35 created_on: 2006-07-19 19:35:33 +02:00
36 project_id: 5
37 user_id: 10
38 mail_notification: false
39 members_007:
40 id: 7
41 created_on: 2006-07-19 19:35:33 +02:00
42 project_id: 5
43 user_id: 8
44 mail_notification: false
45 45 No newline at end of file
@@ -1,68 +1,68
1 ---
2 messages_001:
3 created_on: 2007-05-12 17:15:32 +02:00
4 updated_on: 2007-05-12 17:15:32 +02:00
5 subject: First post
6 id: 1
7 replies_count: 2
8 last_reply_id: 3
9 content: "This is the very first post\n\
10 in the forum"
11 author_id: 1
12 parent_id:
13 board_id: 1
14 messages_002:
15 created_on: 2007-05-12 17:18:00 +02:00
16 updated_on: 2007-05-12 17:18:00 +02:00
17 subject: First reply
18 id: 2
19 replies_count: 0
20 last_reply_id:
21 content: "Reply to the first post"
22 author_id: 1
23 parent_id: 1
24 board_id: 1
25 messages_003:
26 created_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"
29 id: 3
30 replies_count: 0
31 last_reply_id:
32 content: "An other reply"
33 author_id: 2
34 parent_id: 1
35 board_id: 1
36 messages_004:
37 created_on: 2007-08-12 17:15:32 +02:00
38 updated_on: 2007-08-12 17:15:32 +02:00
39 subject: Post 2
40 id: 4
41 replies_count: 2
42 last_reply_id: 6
43 content: "This is an other post"
44 author_id:
45 parent_id:
46 board_id: 1
47 messages_005:
48 created_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'
51 id: 5
52 replies_count: 0
53 last_reply_id:
54 content: "Reply to the second post"
55 author_id: 1
56 parent_id: 4
57 board_id: 1
58 messages_006:
59 created_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'
62 id: 6
63 replies_count: 0
64 last_reply_id:
65 content: "Another reply to the second post"
66 author_id: 3
67 parent_id: 4
68 board_id: 1
1 ---
2 messages_001:
3 created_on: 2007-05-12 17:15:32 +02:00
4 updated_on: 2007-05-12 17:15:32 +02:00
5 subject: First post
6 id: 1
7 replies_count: 2
8 last_reply_id: 3
9 content: "This is the very first post\n\
10 in the forum"
11 author_id: 1
12 parent_id:
13 board_id: 1
14 messages_002:
15 created_on: 2007-05-12 17:18:00 +02:00
16 updated_on: 2007-05-12 17:18:00 +02:00
17 subject: First reply
18 id: 2
19 replies_count: 0
20 last_reply_id:
21 content: "Reply to the first post"
22 author_id: 1
23 parent_id: 1
24 board_id: 1
25 messages_003:
26 created_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"
29 id: 3
30 replies_count: 0
31 last_reply_id:
32 content: "An other reply"
33 author_id: 2
34 parent_id: 1
35 board_id: 1
36 messages_004:
37 created_on: 2007-08-12 17:15:32 +02:00
38 updated_on: 2007-08-12 17:15:32 +02:00
39 subject: Post 2
40 id: 4
41 replies_count: 2
42 last_reply_id: 6
43 content: "This is an other post"
44 author_id:
45 parent_id:
46 board_id: 1
47 messages_005:
48 created_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'
51 id: 5
52 replies_count: 0
53 last_reply_id:
54 content: "Reply to the second post"
55 author_id: 1
56 parent_id: 4
57 board_id: 1
58 messages_006:
59 created_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'
62 id: 6
63 replies_count: 0
64 last_reply_id:
65 content: "Another reply to the second post"
66 author_id: 3
67 parent_id: 4
68 board_id: 1
@@ -1,22 +1,22
1 ---
2 news_001:
3 created_on: 2006-07-19 22:40:26 +02:00
4 project_id: 1
5 title: eCookbook first release !
6 id: 1
7 description: |-
8 eCookbook 1.0 has been released.
9
10 Visit http://ecookbook.somenet.foo/
11 summary: First version was released...
12 author_id: 2
13 comments_count: 1
14 news_002:
15 created_on: 2006-07-19 22:42:58 +02:00
16 project_id: 1
17 title: 100,000 downloads for eCookbook
18 id: 2
19 description: eCookbook 1.0 have downloaded 100,000 times
20 summary: eCookbook 1.0 have downloaded 100,000 times
21 author_id: 2
22 comments_count: 0
1 ---
2 news_001:
3 created_on: 2006-07-19 22:40:26 +02:00
4 project_id: 1
5 title: eCookbook first release !
6 id: 1
7 description: |-
8 eCookbook 1.0 has been released.
9
10 Visit http://ecookbook.somenet.foo/
11 summary: First version was released...
12 author_id: 2
13 comments_count: 1
14 news_002:
15 created_on: 2006-07-19 22:42:58 +02:00
16 project_id: 1
17 title: 100,000 downloads for eCookbook
18 id: 2
19 description: eCookbook 1.0 have downloaded 100,000 times
20 summary: eCookbook 1.0 have downloaded 100,000 times
21 author_id: 2
22 comments_count: 0
@@ -1,74 +1,74
1 ---
2 projects_001:
3 created_on: 2006-07-19 19:13:59 +02:00
4 name: eCookbook
5 updated_on: 2006-07-19 22:53:01 +02:00
6 id: 1
7 description: Recipes management application
8 homepage: http://ecookbook.somenet.foo/
9 is_public: true
10 identifier: ecookbook
11 parent_id:
12 lft: 1
13 rgt: 10
14 projects_002:
15 created_on: 2006-07-19 19:14:19 +02:00
16 name: OnlineStore
17 updated_on: 2006-07-19 19:14:19 +02:00
18 id: 2
19 description: E-commerce web site
20 homepage: ""
21 is_public: false
22 identifier: onlinestore
23 parent_id:
24 lft: 11
25 rgt: 12
26 projects_003:
27 created_on: 2006-07-19 19:15:21 +02:00
28 name: eCookbook Subproject 1
29 updated_on: 2006-07-19 19:18:12 +02:00
30 id: 3
31 description: eCookBook Subproject 1
32 homepage: ""
33 is_public: true
34 identifier: subproject1
35 parent_id: 1
36 lft: 6
37 rgt: 7
38 projects_004:
39 created_on: 2006-07-19 19:15:51 +02:00
40 name: eCookbook Subproject 2
41 updated_on: 2006-07-19 19:17:07 +02:00
42 id: 4
43 description: eCookbook Subproject 2
44 homepage: ""
45 is_public: true
46 identifier: subproject2
47 parent_id: 1
48 lft: 8
49 rgt: 9
50 projects_005:
51 created_on: 2006-07-19 19:15:51 +02:00
52 name: Private child of eCookbook
53 updated_on: 2006-07-19 19:17:07 +02:00
54 id: 5
55 description: This is a private subproject of a public project
56 homepage: ""
57 is_public: false
58 identifier: private-child
59 parent_id: 1
60 lft: 2
61 rgt: 5
62 projects_006:
63 created_on: 2006-07-19 19:15:51 +02:00
64 name: Child of private child
65 updated_on: 2006-07-19 19:17:07 +02:00
66 id: 6
67 description: This is a public subproject of a private project
68 homepage: ""
69 is_public: true
70 identifier: project6
71 parent_id: 5
72 lft: 3
73 rgt: 4
1 ---
2 projects_001:
3 created_on: 2006-07-19 19:13:59 +02:00
4 name: eCookbook
5 updated_on: 2006-07-19 22:53:01 +02:00
6 id: 1
7 description: Recipes management application
8 homepage: http://ecookbook.somenet.foo/
9 is_public: true
10 identifier: ecookbook
11 parent_id:
12 lft: 1
13 rgt: 10
14 projects_002:
15 created_on: 2006-07-19 19:14:19 +02:00
16 name: OnlineStore
17 updated_on: 2006-07-19 19:14:19 +02:00
18 id: 2
19 description: E-commerce web site
20 homepage: ""
21 is_public: false
22 identifier: onlinestore
23 parent_id:
24 lft: 11
25 rgt: 12
26 projects_003:
27 created_on: 2006-07-19 19:15:21 +02:00
28 name: eCookbook Subproject 1
29 updated_on: 2006-07-19 19:18:12 +02:00
30 id: 3
31 description: eCookBook Subproject 1
32 homepage: ""
33 is_public: true
34 identifier: subproject1
35 parent_id: 1
36 lft: 6
37 rgt: 7
38 projects_004:
39 created_on: 2006-07-19 19:15:51 +02:00
40 name: eCookbook Subproject 2
41 updated_on: 2006-07-19 19:17:07 +02:00
42 id: 4
43 description: eCookbook Subproject 2
44 homepage: ""
45 is_public: true
46 identifier: subproject2
47 parent_id: 1
48 lft: 8
49 rgt: 9
50 projects_005:
51 created_on: 2006-07-19 19:15:51 +02:00
52 name: Private child of eCookbook
53 updated_on: 2006-07-19 19:17:07 +02:00
54 id: 5
55 description: This is a private subproject of a public project
56 homepage: ""
57 is_public: false
58 identifier: private-child
59 parent_id: 1
60 lft: 2
61 rgt: 5
62 projects_006:
63 created_on: 2006-07-19 19:15:51 +02:00
64 name: Child of private child
65 updated_on: 2006-07-19 19:17:07 +02:00
66 id: 6
67 description: This is a public subproject of a private project
68 homepage: ""
69 is_public: true
70 identifier: project6
71 parent_id: 5
72 lft: 3
73 rgt: 4
74 74 No newline at end of file
@@ -1,137 +1,137
1 ---
2 queries_001:
3 id: 1
4 project_id: 1
5 is_public: true
6 name: Multiple custom fields query
7 filters: |
8 ---
9 cf_1:
10 :values:
11 - MySQL
12 :operator: "="
13 status_id:
14 :values:
15 - "1"
16 :operator: o
17 cf_2:
18 :values:
19 - "125"
20 :operator: "="
21
22 user_id: 1
23 column_names:
24 queries_002:
25 id: 2
26 project_id: 1
27 is_public: false
28 name: Private query for cookbook
29 filters: |
30 ---
31 tracker_id:
32 :values:
33 - "3"
34 :operator: "="
35 status_id:
36 :values:
37 - "1"
38 :operator: o
39
40 user_id: 3
41 column_names:
42 queries_003:
43 id: 3
44 project_id:
45 is_public: false
46 name: Private query for all projects
47 filters: |
48 ---
49 tracker_id:
50 :values:
51 - "3"
52 :operator: "="
53
54 user_id: 3
55 column_names:
56 queries_004:
57 id: 4
58 project_id:
59 is_public: true
60 name: Public query for all projects
61 filters: |
62 ---
63 tracker_id:
64 :values:
65 - "3"
66 :operator: "="
67
68 user_id: 2
69 column_names:
70 queries_005:
71 id: 5
72 project_id:
73 is_public: true
74 name: Open issues by priority and tracker
75 filters: |
76 ---
77 status_id:
78 :values:
79 - "1"
80 :operator: o
81
82 user_id: 1
83 column_names:
84 sort_criteria: |
85 ---
86 - - priority
87 - desc
88 - - tracker
89 - asc
90 queries_006:
91 id: 6
92 project_id:
93 is_public: true
94 name: Open issues grouped by tracker
95 filters: |
96 ---
97 status_id:
98 :values:
99 - "1"
100 :operator: o
101
102 user_id: 1
103 column_names:
104 group_by: tracker
105 sort_criteria: |
106 ---
107 - - priority
108 - desc
109 queries_007:
110 id: 7
111 project_id: 2
112 is_public: true
113 name: Public query for project 2
114 filters: |
115 ---
116 tracker_id:
117 :values:
118 - "3"
119 :operator: "="
120
121 user_id: 2
122 column_names:
123 queries_008:
124 id: 8
125 project_id: 2
126 is_public: false
127 name: Private query for project 2
128 filters: |
129 ---
130 tracker_id:
131 :values:
132 - "3"
133 :operator: "="
134
135 user_id: 2
136 column_names:
1 ---
2 queries_001:
3 id: 1
4 project_id: 1
5 is_public: true
6 name: Multiple custom fields query
7 filters: |
8 ---
9 cf_1:
10 :values:
11 - MySQL
12 :operator: "="
13 status_id:
14 :values:
15 - "1"
16 :operator: o
17 cf_2:
18 :values:
19 - "125"
20 :operator: "="
21
22 user_id: 1
23 column_names:
24 queries_002:
25 id: 2
26 project_id: 1
27 is_public: false
28 name: Private query for cookbook
29 filters: |
30 ---
31 tracker_id:
32 :values:
33 - "3"
34 :operator: "="
35 status_id:
36 :values:
37 - "1"
38 :operator: o
39
40 user_id: 3
41 column_names:
42 queries_003:
43 id: 3
44 project_id:
45 is_public: false
46 name: Private query for all projects
47 filters: |
48 ---
49 tracker_id:
50 :values:
51 - "3"
52 :operator: "="
53
54 user_id: 3
55 column_names:
56 queries_004:
57 id: 4
58 project_id:
59 is_public: true
60 name: Public query for all projects
61 filters: |
62 ---
63 tracker_id:
64 :values:
65 - "3"
66 :operator: "="
67
68 user_id: 2
69 column_names:
70 queries_005:
71 id: 5
72 project_id:
73 is_public: true
74 name: Open issues by priority and tracker
75 filters: |
76 ---
77 status_id:
78 :values:
79 - "1"
80 :operator: o
81
82 user_id: 1
83 column_names:
84 sort_criteria: |
85 ---
86 - - priority
87 - desc
88 - - tracker
89 - asc
90 queries_006:
91 id: 6
92 project_id:
93 is_public: true
94 name: Open issues grouped by tracker
95 filters: |
96 ---
97 status_id:
98 :values:
99 - "1"
100 :operator: o
101
102 user_id: 1
103 column_names:
104 group_by: tracker
105 sort_criteria: |
106 ---
107 - - priority
108 - desc
109 queries_007:
110 id: 7
111 project_id: 2
112 is_public: true
113 name: Public query for project 2
114 filters: |
115 ---
116 tracker_id:
117 :values:
118 - "3"
119 :operator: "="
120
121 user_id: 2
122 column_names:
123 queries_008:
124 id: 8
125 project_id: 2
126 is_public: false
127 name: Private query for project 2
128 filters: |
129 ---
130 tracker_id:
131 :values:
132 - "3"
133 :operator: "="
134
135 user_id: 2
136 column_names:
137 137
@@ -1,17 +1,17
1 ---
2 repositories_001:
3 project_id: 1
4 url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
5 id: 10
6 root_url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
7 password: ""
8 login: ""
9 type: Subversion
10 repositories_002:
11 project_id: 2
12 url: svn://localhost/test
13 id: 11
14 root_url: svn://localhost
15 password: ""
16 login: ""
17 type: Subversion
1 ---
2 repositories_001:
3 project_id: 1
4 url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
5 id: 10
6 root_url: file:///<%= RAILS_ROOT.gsub(%r{config\/\.\.}, '') %>/tmp/test/subversion_repository
7 password: ""
8 login: ""
9 type: Subversion
10 repositories_002:
11 project_id: 2
12 url: svn://localhost/test
13 id: 11
14 root_url: svn://localhost
15 password: ""
16 login: ""
17 type: Subversion
@@ -1,177 +1,177
1 ---
2 roles_001:
3 name: Manager
4 id: 1
5 builtin: 0
6 permissions: |
7 ---
8 - :add_project
9 - :edit_project
10 - :manage_members
11 - :manage_versions
12 - :manage_categories
13 - :add_issues
14 - :edit_issues
15 - :manage_issue_relations
16 - :add_issue_notes
17 - :move_issues
18 - :delete_issues
19 - :view_issue_watchers
20 - :add_issue_watchers
21 - :manage_public_queries
22 - :save_queries
23 - :view_gantt
24 - :view_calendar
25 - :log_time
26 - :view_time_entries
27 - :edit_time_entries
28 - :delete_time_entries
29 - :manage_news
30 - :comment_news
31 - :view_documents
32 - :manage_documents
33 - :view_wiki_pages
34 - :view_wiki_edits
35 - :edit_wiki_pages
36 - :delete_wiki_pages_attachments
37 - :protect_wiki_pages
38 - :delete_wiki_pages
39 - :rename_wiki_pages
40 - :add_messages
41 - :edit_messages
42 - :delete_messages
43 - :manage_boards
44 - :view_files
45 - :manage_files
46 - :browse_repository
47 - :manage_repository
48 - :view_changesets
49
50 position: 1
51 roles_002:
52 name: Developer
53 id: 2
54 builtin: 0
55 permissions: |
56 ---
57 - :edit_project
58 - :manage_members
59 - :manage_versions
60 - :manage_categories
61 - :add_issues
62 - :edit_issues
63 - :manage_issue_relations
64 - :add_issue_notes
65 - :move_issues
66 - :delete_issues
67 - :view_issue_watchers
68 - :save_queries
69 - :view_gantt
70 - :view_calendar
71 - :log_time
72 - :view_time_entries
73 - :edit_own_time_entries
74 - :manage_news
75 - :comment_news
76 - :view_documents
77 - :manage_documents
78 - :view_wiki_pages
79 - :view_wiki_edits
80 - :edit_wiki_pages
81 - :protect_wiki_pages
82 - :delete_wiki_pages
83 - :add_messages
84 - :edit_own_messages
85 - :delete_own_messages
86 - :manage_boards
87 - :view_files
88 - :manage_files
89 - :browse_repository
90 - :view_changesets
91
92 position: 2
93 roles_003:
94 name: Reporter
95 id: 3
96 builtin: 0
97 permissions: |
98 ---
99 - :edit_project
100 - :manage_members
101 - :manage_versions
102 - :manage_categories
103 - :add_issues
104 - :edit_issues
105 - :manage_issue_relations
106 - :add_issue_notes
107 - :move_issues
108 - :view_issue_watchers
109 - :save_queries
110 - :view_gantt
111 - :view_calendar
112 - :log_time
113 - :view_time_entries
114 - :manage_news
115 - :comment_news
116 - :view_documents
117 - :manage_documents
118 - :view_wiki_pages
119 - :view_wiki_edits
120 - :edit_wiki_pages
121 - :delete_wiki_pages
122 - :add_messages
123 - :manage_boards
124 - :view_files
125 - :manage_files
126 - :browse_repository
127 - :view_changesets
128
129 position: 3
130 roles_004:
131 name: Non member
132 id: 4
133 builtin: 1
134 permissions: |
135 ---
136 - :add_issues
137 - :edit_issues
138 - :manage_issue_relations
139 - :add_issue_notes
140 - :move_issues
141 - :save_queries
142 - :view_gantt
143 - :view_calendar
144 - :log_time
145 - :view_time_entries
146 - :comment_news
147 - :view_documents
148 - :manage_documents
149 - :view_wiki_pages
150 - :view_wiki_edits
151 - :edit_wiki_pages
152 - :add_messages
153 - :view_files
154 - :manage_files
155 - :browse_repository
156 - :view_changesets
157
158 position: 4
159 roles_005:
160 name: Anonymous
161 id: 5
162 builtin: 2
163 permissions: |
164 ---
165 - :add_issue_notes
166 - :view_gantt
167 - :view_calendar
168 - :view_time_entries
169 - :view_documents
170 - :view_wiki_pages
171 - :view_wiki_edits
172 - :view_files
173 - :browse_repository
174 - :view_changesets
175
176 position: 5
1 ---
2 roles_001:
3 name: Manager
4 id: 1
5 builtin: 0
6 permissions: |
7 ---
8 - :add_project
9 - :edit_project
10 - :manage_members
11 - :manage_versions
12 - :manage_categories
13 - :add_issues
14 - :edit_issues
15 - :manage_issue_relations
16 - :add_issue_notes
17 - :move_issues
18 - :delete_issues
19 - :view_issue_watchers
20 - :add_issue_watchers
21 - :manage_public_queries
22 - :save_queries
23 - :view_gantt
24 - :view_calendar
25 - :log_time
26 - :view_time_entries
27 - :edit_time_entries
28 - :delete_time_entries
29 - :manage_news
30 - :comment_news
31 - :view_documents
32 - :manage_documents
33 - :view_wiki_pages
34 - :view_wiki_edits
35 - :edit_wiki_pages
36 - :delete_wiki_pages_attachments
37 - :protect_wiki_pages
38 - :delete_wiki_pages
39 - :rename_wiki_pages
40 - :add_messages
41 - :edit_messages
42 - :delete_messages
43 - :manage_boards
44 - :view_files
45 - :manage_files
46 - :browse_repository
47 - :manage_repository
48 - :view_changesets
49
50 position: 1
51 roles_002:
52 name: Developer
53 id: 2
54 builtin: 0
55 permissions: |
56 ---
57 - :edit_project
58 - :manage_members
59 - :manage_versions
60 - :manage_categories
61 - :add_issues
62 - :edit_issues
63 - :manage_issue_relations
64 - :add_issue_notes
65 - :move_issues
66 - :delete_issues
67 - :view_issue_watchers
68 - :save_queries
69 - :view_gantt
70 - :view_calendar
71 - :log_time
72 - :view_time_entries
73 - :edit_own_time_entries
74 - :manage_news
75 - :comment_news
76 - :view_documents
77 - :manage_documents
78 - :view_wiki_pages
79 - :view_wiki_edits
80 - :edit_wiki_pages
81 - :protect_wiki_pages
82 - :delete_wiki_pages
83 - :add_messages
84 - :edit_own_messages
85 - :delete_own_messages
86 - :manage_boards
87 - :view_files
88 - :manage_files
89 - :browse_repository
90 - :view_changesets
91
92 position: 2
93 roles_003:
94 name: Reporter
95 id: 3
96 builtin: 0
97 permissions: |
98 ---
99 - :edit_project
100 - :manage_members
101 - :manage_versions
102 - :manage_categories
103 - :add_issues
104 - :edit_issues
105 - :manage_issue_relations
106 - :add_issue_notes
107 - :move_issues
108 - :view_issue_watchers
109 - :save_queries
110 - :view_gantt
111 - :view_calendar
112 - :log_time
113 - :view_time_entries
114 - :manage_news
115 - :comment_news
116 - :view_documents
117 - :manage_documents
118 - :view_wiki_pages
119 - :view_wiki_edits
120 - :edit_wiki_pages
121 - :delete_wiki_pages
122 - :add_messages
123 - :manage_boards
124 - :view_files
125 - :manage_files
126 - :browse_repository
127 - :view_changesets
128
129 position: 3
130 roles_004:
131 name: Non member
132 id: 4
133 builtin: 1
134 permissions: |
135 ---
136 - :add_issues
137 - :edit_issues
138 - :manage_issue_relations
139 - :add_issue_notes
140 - :move_issues
141 - :save_queries
142 - :view_gantt
143 - :view_calendar
144 - :log_time
145 - :view_time_entries
146 - :comment_news
147 - :view_documents
148 - :manage_documents
149 - :view_wiki_pages
150 - :view_wiki_edits
151 - :edit_wiki_pages
152 - :add_messages
153 - :view_files
154 - :manage_files
155 - :browse_repository
156 - :view_changesets
157
158 position: 4
159 roles_005:
160 name: Anonymous
161 id: 5
162 builtin: 2
163 permissions: |
164 ---
165 - :add_issue_notes
166 - :view_gantt
167 - :view_calendar
168 - :view_time_entries
169 - :view_documents
170 - :view_wiki_pages
171 - :view_wiki_edits
172 - :view_files
173 - :browse_repository
174 - :view_changesets
175
176 position: 5
177 177 No newline at end of file
@@ -1,58 +1,58
1 ---
2 time_entries_001:
3 created_on: 2007-03-23 12:54:18 +01:00
4 tweek: 12
5 tmonth: 3
6 project_id: 1
7 comments: My hours
8 updated_on: 2007-03-23 12:54:18 +01:00
9 activity_id: 9
10 spent_on: 2007-03-23
11 issue_id: 1
12 id: 1
13 hours: 4.25
14 user_id: 2
15 tyear: 2007
16 time_entries_002:
17 created_on: 2007-03-23 14:11:04 +01:00
18 tweek: 11
19 tmonth: 3
20 project_id: 1
21 comments: ""
22 updated_on: 2007-03-23 14:11:04 +01:00
23 activity_id: 9
24 spent_on: 2007-03-12
25 issue_id: 1
26 id: 2
27 hours: 150.0
28 user_id: 1
29 tyear: 2007
30 time_entries_003:
31 created_on: 2007-04-21 12:20:48 +02:00
32 tweek: 16
33 tmonth: 4
34 project_id: 1
35 comments: ""
36 updated_on: 2007-04-21 12:20:48 +02:00
37 activity_id: 9
38 spent_on: 2007-04-21
39 issue_id: 3
40 id: 3
41 hours: 1.0
42 user_id: 1
43 tyear: 2007
44 time_entries_004:
45 created_on: 2007-04-22 12:20:48 +02:00
46 tweek: 16
47 tmonth: 4
48 project_id: 3
49 comments: Time spent on a subproject
50 updated_on: 2007-04-22 12:20:48 +02:00
51 activity_id: 10
52 spent_on: 2007-04-22
53 issue_id:
54 id: 4
55 hours: 7.65
56 user_id: 1
57 tyear: 2007
1 ---
2 time_entries_001:
3 created_on: 2007-03-23 12:54:18 +01:00
4 tweek: 12
5 tmonth: 3
6 project_id: 1
7 comments: My hours
8 updated_on: 2007-03-23 12:54:18 +01:00
9 activity_id: 9
10 spent_on: 2007-03-23
11 issue_id: 1
12 id: 1
13 hours: 4.25
14 user_id: 2
15 tyear: 2007
16 time_entries_002:
17 created_on: 2007-03-23 14:11:04 +01:00
18 tweek: 11
19 tmonth: 3
20 project_id: 1
21 comments: ""
22 updated_on: 2007-03-23 14:11:04 +01:00
23 activity_id: 9
24 spent_on: 2007-03-12
25 issue_id: 1
26 id: 2
27 hours: 150.0
28 user_id: 1
29 tyear: 2007
30 time_entries_003:
31 created_on: 2007-04-21 12:20:48 +02:00
32 tweek: 16
33 tmonth: 4
34 project_id: 1
35 comments: ""
36 updated_on: 2007-04-21 12:20:48 +02:00
37 activity_id: 9
38 spent_on: 2007-04-21
39 issue_id: 3
40 id: 3
41 hours: 1.0
42 user_id: 1
43 tyear: 2007
44 time_entries_004:
45 created_on: 2007-04-22 12:20:48 +02:00
46 tweek: 16
47 tmonth: 4
48 project_id: 3
49 comments: Time spent on a subproject
50 updated_on: 2007-04-22 12:20:48 +02:00
51 activity_id: 10
52 spent_on: 2007-04-22
53 issue_id:
54 id: 4
55 hours: 7.65
56 user_id: 1
57 tyear: 2007
58 58 No newline at end of file
@@ -1,13 +1,13
1 ---
2 tokens_001:
3 created_on: 2007-01-21 00:39:12 +01:00
4 action: register
5 id: 1
6 value: DwMJ2yIxBNeAk26znMYzYmz5dAiIina0GFrPnGTM
7 user_id: 1
8 tokens_002:
9 created_on: 2007-01-21 00:39:52 +01:00
10 action: recovery
11 id: 2
12 value: sahYSIaoYrsZUef86sTHrLISdznW6ApF36h5WSnm
13 user_id: 2
1 ---
2 tokens_001:
3 created_on: 2007-01-21 00:39:12 +01:00
4 action: register
5 id: 1
6 value: DwMJ2yIxBNeAk26znMYzYmz5dAiIina0GFrPnGTM
7 user_id: 1
8 tokens_002:
9 created_on: 2007-01-21 00:39:52 +01:00
10 action: recovery
11 id: 2
12 value: sahYSIaoYrsZUef86sTHrLISdznW6ApF36h5WSnm
13 user_id: 2
@@ -1,16 +1,16
1 ---
2 trackers_001:
3 name: Bug
4 id: 1
5 is_in_chlog: true
6 position: 1
7 trackers_002:
8 name: Feature request
9 id: 2
10 is_in_chlog: true
11 position: 2
12 trackers_003:
13 name: Support request
14 id: 3
15 is_in_chlog: false
16 position: 3
1 ---
2 trackers_001:
3 name: Bug
4 id: 1
5 is_in_chlog: true
6 position: 1
7 trackers_002:
8 name: Feature request
9 id: 2
10 is_in_chlog: true
11 position: 2
12 trackers_003:
13 name: Support request
14 id: 3
15 is_in_chlog: false
16 position: 3
@@ -1,156 +1,156
1 ---
2 users_004:
3 created_on: 2006-07-19 19:34:07 +02:00
4 status: 1
5 last_login_on:
6 language: en
7 hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
8 updated_on: 2006-07-19 19:34:07 +02:00
9 admin: false
10 mail: rhill@somenet.foo
11 lastname: Hill
12 firstname: Robert
13 id: 4
14 auth_source_id:
15 mail_notification: true
16 login: rhill
17 type: User
18 users_001:
19 created_on: 2006-07-19 19:12:21 +02:00
20 status: 1
21 last_login_on: 2006-07-19 22:57:52 +02:00
22 language: en
23 hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
24 updated_on: 2006-07-19 22:57:52 +02:00
25 admin: true
26 mail: admin@somenet.foo
27 lastname: Admin
28 firstname: redMine
29 id: 1
30 auth_source_id:
31 mail_notification: true
32 login: admin
33 type: User
34 users_002:
35 created_on: 2006-07-19 19:32:09 +02:00
36 status: 1
37 last_login_on: 2006-07-19 22:42:15 +02:00
38 language: en
39 hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
40 updated_on: 2006-07-19 22:42:15 +02:00
41 admin: false
42 mail: jsmith@somenet.foo
43 lastname: Smith
44 firstname: John
45 id: 2
46 auth_source_id:
47 mail_notification: true
48 login: jsmith
49 type: User
50 users_003:
51 created_on: 2006-07-19 19:33:19 +02:00
52 status: 1
53 last_login_on:
54 language: en
55 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
56 updated_on: 2006-07-19 19:33:19 +02:00
57 admin: false
58 mail: dlopper@somenet.foo
59 lastname: Lopper
60 firstname: Dave
61 id: 3
62 auth_source_id:
63 mail_notification: true
64 login: dlopper
65 type: User
66 users_005:
67 id: 5
68 created_on: 2006-07-19 19:33:19 +02:00
69 # Locked
70 status: 3
71 last_login_on:
72 language: en
73 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
74 updated_on: 2006-07-19 19:33:19 +02:00
75 admin: false
76 mail: dlopper2@somenet.foo
77 lastname: Lopper2
78 firstname: Dave2
79 auth_source_id:
80 mail_notification: true
81 login: dlopper2
82 type: User
83 users_006:
84 id: 6
85 created_on: 2006-07-19 19:33:19 +02:00
86 status: 1
87 last_login_on:
88 language: ''
89 hashed_password: 1
90 updated_on: 2006-07-19 19:33:19 +02:00
91 admin: false
92 mail: ''
93 lastname: Anonymous
94 firstname: ''
95 auth_source_id:
96 mail_notification: false
97 login: ''
98 type: AnonymousUser
99 users_007:
100 id: 7
101 created_on: 2006-07-19 19:33:19 +02:00
102 status: 1
103 last_login_on:
104 language: ''
105 hashed_password: 1
106 updated_on: 2006-07-19 19:33:19 +02:00
107 admin: false
108 mail: someone@foo.bar
109 lastname: One
110 firstname: Some
111 auth_source_id:
112 mail_notification: false
113 login: someone
114 type: User
115 users_008:
116 id: 8
117 created_on: 2006-07-19 19:33:19 +02:00
118 status: 1
119 last_login_on:
120 language: 'it'
121 hashed_password: 1
122 updated_on: 2006-07-19 19:33:19 +02:00
123 admin: false
124 mail: miscuser8@foo.bar
125 lastname: Misc
126 firstname: User
127 auth_source_id:
128 mail_notification: false
129 login: miscuser8
130 type: User
131 users_009:
132 id: 9
133 created_on: 2006-07-19 19:33:19 +02:00
134 status: 1
135 last_login_on:
136 language: 'it'
137 hashed_password: 1
138 updated_on: 2006-07-19 19:33:19 +02:00
139 admin: false
140 mail: miscuser9@foo.bar
141 lastname: Misc
142 firstname: User
143 auth_source_id:
144 mail_notification: false
145 login: miscuser9
146 type: User
147 groups_010:
148 id: 10
149 lastname: A Team
150 type: Group
151 groups_011:
152 id: 11
153 lastname: B Team
154 type: Group
155
1 ---
2 users_004:
3 created_on: 2006-07-19 19:34:07 +02:00
4 status: 1
5 last_login_on:
6 language: en
7 hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
8 updated_on: 2006-07-19 19:34:07 +02:00
9 admin: false
10 mail: rhill@somenet.foo
11 lastname: Hill
12 firstname: Robert
13 id: 4
14 auth_source_id:
15 mail_notification: true
16 login: rhill
17 type: User
18 users_001:
19 created_on: 2006-07-19 19:12:21 +02:00
20 status: 1
21 last_login_on: 2006-07-19 22:57:52 +02:00
22 language: en
23 hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
24 updated_on: 2006-07-19 22:57:52 +02:00
25 admin: true
26 mail: admin@somenet.foo
27 lastname: Admin
28 firstname: redMine
29 id: 1
30 auth_source_id:
31 mail_notification: true
32 login: admin
33 type: User
34 users_002:
35 created_on: 2006-07-19 19:32:09 +02:00
36 status: 1
37 last_login_on: 2006-07-19 22:42:15 +02:00
38 language: en
39 hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
40 updated_on: 2006-07-19 22:42:15 +02:00
41 admin: false
42 mail: jsmith@somenet.foo
43 lastname: Smith
44 firstname: John
45 id: 2
46 auth_source_id:
47 mail_notification: true
48 login: jsmith
49 type: User
50 users_003:
51 created_on: 2006-07-19 19:33:19 +02:00
52 status: 1
53 last_login_on:
54 language: en
55 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
56 updated_on: 2006-07-19 19:33:19 +02:00
57 admin: false
58 mail: dlopper@somenet.foo
59 lastname: Lopper
60 firstname: Dave
61 id: 3
62 auth_source_id:
63 mail_notification: true
64 login: dlopper
65 type: User
66 users_005:
67 id: 5
68 created_on: 2006-07-19 19:33:19 +02:00
69 # Locked
70 status: 3
71 last_login_on:
72 language: en
73 hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
74 updated_on: 2006-07-19 19:33:19 +02:00
75 admin: false
76 mail: dlopper2@somenet.foo
77 lastname: Lopper2
78 firstname: Dave2
79 auth_source_id:
80 mail_notification: true
81 login: dlopper2
82 type: User
83 users_006:
84 id: 6
85 created_on: 2006-07-19 19:33:19 +02:00
86 status: 1
87 last_login_on:
88 language: ''
89 hashed_password: 1
90 updated_on: 2006-07-19 19:33:19 +02:00
91 admin: false
92 mail: ''
93 lastname: Anonymous
94 firstname: ''
95 auth_source_id:
96 mail_notification: false
97 login: ''
98 type: AnonymousUser
99 users_007:
100 id: 7
101 created_on: 2006-07-19 19:33:19 +02:00
102 status: 1
103 last_login_on:
104 language: ''
105 hashed_password: 1
106 updated_on: 2006-07-19 19:33:19 +02:00
107 admin: false
108 mail: someone@foo.bar
109 lastname: One
110 firstname: Some
111 auth_source_id:
112 mail_notification: false
113 login: someone
114 type: User
115 users_008:
116 id: 8
117 created_on: 2006-07-19 19:33:19 +02:00
118 status: 1
119 last_login_on:
120 language: 'it'
121 hashed_password: 1
122 updated_on: 2006-07-19 19:33:19 +02:00
123 admin: false
124 mail: miscuser8@foo.bar
125 lastname: Misc
126 firstname: User
127 auth_source_id:
128 mail_notification: false
129 login: miscuser8
130 type: User
131 users_009:
132 id: 9
133 created_on: 2006-07-19 19:33:19 +02:00
134 status: 1
135 last_login_on:
136 language: 'it'
137 hashed_password: 1
138 updated_on: 2006-07-19 19:33:19 +02:00
139 admin: false
140 mail: miscuser9@foo.bar
141 lastname: Misc
142 firstname: User
143 auth_source_id:
144 mail_notification: false
145 login: miscuser9
146 type: User
147 groups_010:
148 id: 10
149 lastname: A Team
150 type: Group
151 groups_011:
152 id: 11
153 lastname: B Team
154 type: Group
155
156 156 No newline at end of file
@@ -1,26 +1,26
1 ---
2 versions_001:
3 created_on: 2006-07-19 21:00:07 +02:00
4 name: "0.1"
5 project_id: 1
6 updated_on: 2006-07-19 21:00:07 +02:00
7 id: 1
8 description: Beta
9 effective_date: 2006-07-01
10 versions_002:
11 created_on: 2006-07-19 21:00:33 +02:00
12 name: "1.0"
13 project_id: 1
14 updated_on: 2006-07-19 21:00:33 +02:00
15 id: 2
16 description: Stable release
17 effective_date: <%= 20.day.from_now.to_date.to_s(:db) %>
18 versions_003:
19 created_on: 2006-07-19 21:00:33 +02:00
20 name: "2.0"
21 project_id: 1
22 updated_on: 2006-07-19 21:00:33 +02:00
23 id: 3
24 description: Future version
25 effective_date:
1 ---
2 versions_001:
3 created_on: 2006-07-19 21:00:07 +02:00
4 name: "0.1"
5 project_id: 1
6 updated_on: 2006-07-19 21:00:07 +02:00
7 id: 1
8 description: Beta
9 effective_date: 2006-07-01
10 versions_002:
11 created_on: 2006-07-19 21:00:33 +02:00
12 name: "1.0"
13 project_id: 1
14 updated_on: 2006-07-19 21:00:33 +02:00
15 id: 2
16 description: Stable release
17 effective_date: <%= 20.day.from_now.to_date.to_s(:db) %>
18 versions_003:
19 created_on: 2006-07-19 21:00:33 +02:00
20 name: "2.0"
21 project_id: 1
22 updated_on: 2006-07-19 21:00:33 +02:00
23 id: 3
24 description: Future version
25 effective_date:
26 26 No newline at end of file
@@ -1,52 +1,56
1 ---
2 wiki_content_versions_001:
3 updated_on: 2007-03-07 00:08:07 +01:00
4 page_id: 1
5 id: 1
6 version: 1
7 author_id: 2
8 comments: Page creation
9 wiki_content_id: 1
10 compression: ""
11 data: |-
12 h1. CookBook documentation
13
14
15
16 Some [[documentation]] here...
17 wiki_content_versions_002:
18 updated_on: 2007-03-07 00:08:34 +01:00
19 page_id: 1
20 id: 2
21 version: 2
22 author_id: 1
23 comments: Small update
24 wiki_content_id: 1
25 compression: ""
26 data: |-
27 h1. CookBook documentation
28
29
30
31 Some updated [[documentation]] here...
32 wiki_content_versions_003:
33 updated_on: 2007-03-07 00:10:51 +01:00
34 page_id: 1
35 id: 3
36 version: 3
37 author_id: 1
38 comments: ""
39 wiki_content_id: 1
40 compression: ""
41 data: |-
42 h1. CookBook documentation
43 Some updated [[documentation]] here...
44 wiki_content_versions_004:
45 data: |-
46 h1. Another page
47
48 This is a link to a ticket: #2
49 updated_on: 2007-03-08 00:18:07 +01:00
50 page_id: 2
51 wiki_content_id: 2
52 id: 4
1 ---
2 wiki_content_versions_001:
3 updated_on: 2007-03-07 00:08:07 +01:00
4 page_id: 1
5 id: 1
6 version: 1
7 author_id: 2
8 comments: Page creation
9 wiki_content_id: 1
10 compression: ""
11 data: |-
12 h1. CookBook documentation
13
14
15
16 Some [[documentation]] here...
17 wiki_content_versions_002:
18 updated_on: 2007-03-07 00:08:34 +01:00
19 page_id: 1
20 id: 2
21 version: 2
22 author_id: 1
23 comments: Small update
24 wiki_content_id: 1
25 compression: ""
26 data: |-
27 h1. CookBook documentation
28
29
30
31 Some updated [[documentation]] here...
32 wiki_content_versions_003:
33 updated_on: 2007-03-07 00:10:51 +01:00
34 page_id: 1
35 id: 3
36 version: 3
37 author_id: 1
38 comments: ""
39 wiki_content_id: 1
40 compression: ""
41 data: |-
42 h1. CookBook documentation
43 Some updated [[documentation]] here...
44 wiki_content_versions_004:
45 data: |-
46 h1. Another page
47
48 This is a link to a ticket: #2
49 updated_on: 2007-03-08 00:18:07 +01:00
50 page_id: 2
51 wiki_content_id: 2
52 id: 4
53 version: 1
54 author_id: 1
55 comments:
56
@@ -1,72 +1,74
1 ---
2 wiki_contents_001:
3 text: |-
4 h1. CookBook documentation
5
6 {{child_pages}}
7
8 Some updated [[documentation]] here with gzipped history
9 updated_on: 2007-03-07 00:10:51 +01:00
10 page_id: 1
11 id: 1
12 version: 3
13 author_id: 1
14 comments: Gzip compression activated
15 wiki_contents_002:
16 text: |-
17 h1. Another page
18
19 This is a link to a ticket: #2
20 And this is an included page:
21 {{include(Page with an inline image)}}
22 updated_on: 2007-03-08 00:18:07 +01:00
23 page_id: 2
24 id: 2
25 version: 1
26 author_id: 1
27 comments:
28 wiki_contents_003:
29 text: |-
30 h1. Start page
31
32 E-commerce web site start page
33 updated_on: 2007-03-08 00:18:07 +01:00
34 page_id: 3
35 id: 3
36 version: 1
37 author_id: 1
38 comments:
39 wiki_contents_004:
40 text: |-
41 h1. Page with an inline image
42
43 This is an inline image:
44
45 !logo.gif!
46 updated_on: 2007-03-08 00:18:07 +01:00
47 page_id: 4
48 id: 4
49 version: 1
50 author_id: 1
51 comments:
52 wiki_contents_005:
53 text: |-
54 h1. Child page 1
55
56 This is a child page
57 updated_on: 2007-03-08 00:18:07 +01:00
58 page_id: 5
59 id: 5
60 version: 1
61 author_id: 1
62 comments:
63 wiki_contents_006:
64 text: |-
65 h1. Child page 2
66
67 This is a child page
68 updated_on: 2007-03-08 00:18:07 +01:00
69 page_id: 6
70 id: 6
71 version: 1
1 ---
2 wiki_contents_001:
3 text: |-
4 h1. CookBook documentation
5
6 {{child_pages}}
7
8 Some updated [[documentation]] here with gzipped history
9 updated_on: 2007-03-07 00:10:51 +01:00
10 page_id: 1
11 id: 1
12 version: 3
13 author_id: 1
14 comments: Gzip compression activated
15 wiki_contents_002:
16 text: |-
17 h1. Another page
18
19 This is a link to a ticket: #2
20 And this is an included page:
21 {{include(Page with an inline image)}}
22 updated_on: 2007-03-08 00:18:07 +01:00
23 page_id: 2
24 id: 2
25 version: 1
26 author_id: 1
27 comments:
28 wiki_contents_003:
29 text: |-
30 h1. Start page
31
32 E-commerce web site start page
33 updated_on: 2007-03-08 00:18:07 +01:00
34 page_id: 3
35 id: 3
36 version: 1
37 author_id: 1
38 comments:
39 wiki_contents_004:
40 text: |-
41 h1. Page with an inline image
42
43 This is an inline image:
44
45 !logo.gif!
46 updated_on: 2007-03-08 00:18:07 +01:00
47 page_id: 4
48 id: 4
49 version: 1
50 author_id: 1
51 comments:
52 wiki_contents_005:
53 text: |-
54 h1. Child page 1
55
56 This is a child page
57 updated_on: 2007-03-08 00:18:07 +01:00
58 page_id: 5
59 id: 5
60 version: 1
61 author_id: 1
62 comments:
63 wiki_contents_006:
64 text: |-
65 h1. Child page 2
66
67 This is a child page
68 updated_on: 2007-03-08 00:18:07 +01:00
69 page_id: 6
70 id: 6
71 version: 1
72 author_id: 1
73 comments:
72 74 author_id: 1 No newline at end of file
@@ -1,44 +1,44
1 ---
2 wiki_pages_001:
3 created_on: 2007-03-07 00:08:07 +01:00
4 title: CookBook_documentation
5 id: 1
6 wiki_id: 1
7 protected: true
8 parent_id:
9 wiki_pages_002:
10 created_on: 2007-03-08 00:18:07 +01:00
11 title: Another_page
12 id: 2
13 wiki_id: 1
14 protected: false
15 parent_id:
16 wiki_pages_003:
17 created_on: 2007-03-08 00:18:07 +01:00
18 title: Start_page
19 id: 3
20 wiki_id: 2
21 protected: false
22 parent_id:
23 wiki_pages_004:
24 created_on: 2007-03-08 00:18:07 +01:00
25 title: Page_with_an_inline_image
26 id: 4
27 wiki_id: 1
28 protected: false
29 parent_id: 1
30 wiki_pages_005:
31 created_on: 2007-03-08 00:18:07 +01:00
32 title: Child_1
33 id: 5
34 wiki_id: 1
35 protected: false
36 parent_id: 2
37 wiki_pages_006:
38 created_on: 2007-03-08 00:18:07 +01:00
39 title: Child_2
40 id: 6
41 wiki_id: 1
42 protected: false
43 parent_id: 2
1 ---
2 wiki_pages_001:
3 created_on: 2007-03-07 00:08:07 +01:00
4 title: CookBook_documentation
5 id: 1
6 wiki_id: 1
7 protected: true
8 parent_id:
9 wiki_pages_002:
10 created_on: 2007-03-08 00:18:07 +01:00
11 title: Another_page
12 id: 2
13 wiki_id: 1
14 protected: false
15 parent_id:
16 wiki_pages_003:
17 created_on: 2007-03-08 00:18:07 +01:00
18 title: Start_page
19 id: 3
20 wiki_id: 2
21 protected: false
22 parent_id:
23 wiki_pages_004:
24 created_on: 2007-03-08 00:18:07 +01:00
25 title: Page_with_an_inline_image
26 id: 4
27 wiki_id: 1
28 protected: false
29 parent_id: 1
30 wiki_pages_005:
31 created_on: 2007-03-08 00:18:07 +01:00
32 title: Child_1
33 id: 5
34 wiki_id: 1
35 protected: false
36 parent_id: 2
37 wiki_pages_006:
38 created_on: 2007-03-08 00:18:07 +01:00
39 title: Child_2
40 id: 6
41 wiki_id: 1
42 protected: false
43 parent_id: 2
44 44 No newline at end of file
@@ -1,12 +1,12
1 ---
2 wikis_001:
3 status: 1
4 start_page: CookBook documentation
5 project_id: 1
6 id: 1
7 wikis_002:
8 status: 1
9 start_page: Start page
10 project_id: 2
11 id: 2
1 ---
2 wikis_001:
3 status: 1
4 start_page: CookBook documentation
5 project_id: 1
6 id: 1
7 wikis_002:
8 status: 1
9 start_page: Start page
10 project_id: 2
11 id: 2
12 12 No newline at end of file
This diff has been collapsed as it changes many lines, (3230 lines changed) Show them Hide them
@@ -1,1615 +1,1615
1 ---
2 workflows_189:
3 new_status_id: 5
4 role_id: 1
5 old_status_id: 2
6 id: 189
7 tracker_id: 3
8 workflows_001:
9 new_status_id: 2
10 role_id: 1
11 old_status_id: 1
12 id: 1
13 tracker_id: 1
14 workflows_002:
15 new_status_id: 3
16 role_id: 1
17 old_status_id: 1
18 id: 2
19 tracker_id: 1
20 workflows_003:
21 new_status_id: 4
22 role_id: 1
23 old_status_id: 1
24 id: 3
25 tracker_id: 1
26 workflows_110:
27 new_status_id: 6
28 role_id: 1
29 old_status_id: 4
30 id: 110
31 tracker_id: 2
32 workflows_004:
33 new_status_id: 5
34 role_id: 1
35 old_status_id: 1
36 id: 4
37 tracker_id: 1
38 workflows_030:
39 new_status_id: 5
40 role_id: 1
41 old_status_id: 6
42 id: 30
43 tracker_id: 1
44 workflows_111:
45 new_status_id: 1
46 role_id: 1
47 old_status_id: 5
48 id: 111
49 tracker_id: 2
50 workflows_005:
51 new_status_id: 6
52 role_id: 1
53 old_status_id: 1
54 id: 5
55 tracker_id: 1
56 workflows_031:
57 new_status_id: 2
58 role_id: 2
59 old_status_id: 1
60 id: 31
61 tracker_id: 1
62 workflows_112:
63 new_status_id: 2
64 role_id: 1
65 old_status_id: 5
66 id: 112
67 tracker_id: 2
68 workflows_006:
69 new_status_id: 1
70 role_id: 1
71 old_status_id: 2
72 id: 6
73 tracker_id: 1
74 workflows_032:
75 new_status_id: 3
76 role_id: 2
77 old_status_id: 1
78 id: 32
79 tracker_id: 1
80 workflows_113:
81 new_status_id: 3
82 role_id: 1
83 old_status_id: 5
84 id: 113
85 tracker_id: 2
86 workflows_220:
87 new_status_id: 6
88 role_id: 2
89 old_status_id: 2
90 id: 220
91 tracker_id: 3
92 workflows_007:
93 new_status_id: 3
94 role_id: 1
95 old_status_id: 2
96 id: 7
97 tracker_id: 1
98 workflows_033:
99 new_status_id: 4
100 role_id: 2
101 old_status_id: 1
102 id: 33
103 tracker_id: 1
104 workflows_060:
105 new_status_id: 5
106 role_id: 2
107 old_status_id: 6
108 id: 60
109 tracker_id: 1
110 workflows_114:
111 new_status_id: 4
112 role_id: 1
113 old_status_id: 5
114 id: 114
115 tracker_id: 2
116 workflows_140:
117 new_status_id: 6
118 role_id: 2
119 old_status_id: 4
120 id: 140
121 tracker_id: 2
122 workflows_221:
123 new_status_id: 1
124 role_id: 2
125 old_status_id: 3
126 id: 221
127 tracker_id: 3
128 workflows_008:
129 new_status_id: 4
130 role_id: 1
131 old_status_id: 2
132 id: 8
133 tracker_id: 1
134 workflows_034:
135 new_status_id: 5
136 role_id: 2
137 old_status_id: 1
138 id: 34
139 tracker_id: 1
140 workflows_115:
141 new_status_id: 6
142 role_id: 1
143 old_status_id: 5
144 id: 115
145 tracker_id: 2
146 workflows_141:
147 new_status_id: 1
148 role_id: 2
149 old_status_id: 5
150 id: 141
151 tracker_id: 2
152 workflows_222:
153 new_status_id: 2
154 role_id: 2
155 old_status_id: 3
156 id: 222
157 tracker_id: 3
158 workflows_223:
159 new_status_id: 4
160 role_id: 2
161 old_status_id: 3
162 id: 223
163 tracker_id: 3
164 workflows_009:
165 new_status_id: 5
166 role_id: 1
167 old_status_id: 2
168 id: 9
169 tracker_id: 1
170 workflows_035:
171 new_status_id: 6
172 role_id: 2
173 old_status_id: 1
174 id: 35
175 tracker_id: 1
176 workflows_061:
177 new_status_id: 2
178 role_id: 3
179 old_status_id: 1
180 id: 61
181 tracker_id: 1
182 workflows_116:
183 new_status_id: 1
184 role_id: 1
185 old_status_id: 6
186 id: 116
187 tracker_id: 2
188 workflows_142:
189 new_status_id: 2
190 role_id: 2
191 old_status_id: 5
192 id: 142
193 tracker_id: 2
194 workflows_250:
195 new_status_id: 6
196 role_id: 3
197 old_status_id: 2
198 id: 250
199 tracker_id: 3
200 workflows_224:
201 new_status_id: 5
202 role_id: 2
203 old_status_id: 3
204 id: 224
205 tracker_id: 3
206 workflows_036:
207 new_status_id: 1
208 role_id: 2
209 old_status_id: 2
210 id: 36
211 tracker_id: 1
212 workflows_062:
213 new_status_id: 3
214 role_id: 3
215 old_status_id: 1
216 id: 62
217 tracker_id: 1
218 workflows_117:
219 new_status_id: 2
220 role_id: 1
221 old_status_id: 6
222 id: 117
223 tracker_id: 2
224 workflows_143:
225 new_status_id: 3
226 role_id: 2
227 old_status_id: 5
228 id: 143
229 tracker_id: 2
230 workflows_170:
231 new_status_id: 6
232 role_id: 3
233 old_status_id: 4
234 id: 170
235 tracker_id: 2
236 workflows_251:
237 new_status_id: 1
238 role_id: 3
239 old_status_id: 3
240 id: 251
241 tracker_id: 3
242 workflows_225:
243 new_status_id: 6
244 role_id: 2
245 old_status_id: 3
246 id: 225
247 tracker_id: 3
248 workflows_063:
249 new_status_id: 4
250 role_id: 3
251 old_status_id: 1
252 id: 63
253 tracker_id: 1
254 workflows_090:
255 new_status_id: 5
256 role_id: 3
257 old_status_id: 6
258 id: 90
259 tracker_id: 1
260 workflows_118:
261 new_status_id: 3
262 role_id: 1
263 old_status_id: 6
264 id: 118
265 tracker_id: 2
266 workflows_144:
267 new_status_id: 4
268 role_id: 2
269 old_status_id: 5
270 id: 144
271 tracker_id: 2
272 workflows_252:
273 new_status_id: 2
274 role_id: 3
275 old_status_id: 3
276 id: 252
277 tracker_id: 3
278 workflows_226:
279 new_status_id: 1
280 role_id: 2
281 old_status_id: 4
282 id: 226
283 tracker_id: 3
284 workflows_038:
285 new_status_id: 4
286 role_id: 2
287 old_status_id: 2
288 id: 38
289 tracker_id: 1
290 workflows_064:
291 new_status_id: 5
292 role_id: 3
293 old_status_id: 1
294 id: 64
295 tracker_id: 1
296 workflows_091:
297 new_status_id: 2
298 role_id: 1
299 old_status_id: 1
300 id: 91
301 tracker_id: 2
302 workflows_119:
303 new_status_id: 4
304 role_id: 1
305 old_status_id: 6
306 id: 119
307 tracker_id: 2
308 workflows_145:
309 new_status_id: 6
310 role_id: 2
311 old_status_id: 5
312 id: 145
313 tracker_id: 2
314 workflows_171:
315 new_status_id: 1
316 role_id: 3
317 old_status_id: 5
318 id: 171
319 tracker_id: 2
320 workflows_253:
321 new_status_id: 4
322 role_id: 3
323 old_status_id: 3
324 id: 253
325 tracker_id: 3
326 workflows_227:
327 new_status_id: 2
328 role_id: 2
329 old_status_id: 4
330 id: 227
331 tracker_id: 3
332 workflows_039:
333 new_status_id: 5
334 role_id: 2
335 old_status_id: 2
336 id: 39
337 tracker_id: 1
338 workflows_065:
339 new_status_id: 6
340 role_id: 3
341 old_status_id: 1
342 id: 65
343 tracker_id: 1
344 workflows_092:
345 new_status_id: 3
346 role_id: 1
347 old_status_id: 1
348 id: 92
349 tracker_id: 2
350 workflows_146:
351 new_status_id: 1
352 role_id: 2
353 old_status_id: 6
354 id: 146
355 tracker_id: 2
356 workflows_172:
357 new_status_id: 2
358 role_id: 3
359 old_status_id: 5
360 id: 172
361 tracker_id: 2
362 workflows_254:
363 new_status_id: 5
364 role_id: 3
365 old_status_id: 3
366 id: 254
367 tracker_id: 3
368 workflows_228:
369 new_status_id: 3
370 role_id: 2
371 old_status_id: 4
372 id: 228
373 tracker_id: 3
374 workflows_066:
375 new_status_id: 1
376 role_id: 3
377 old_status_id: 2
378 id: 66
379 tracker_id: 1
380 workflows_093:
381 new_status_id: 4
382 role_id: 1
383 old_status_id: 1
384 id: 93
385 tracker_id: 2
386 workflows_147:
387 new_status_id: 2
388 role_id: 2
389 old_status_id: 6
390 id: 147
391 tracker_id: 2
392 workflows_173:
393 new_status_id: 3
394 role_id: 3
395 old_status_id: 5
396 id: 173
397 tracker_id: 2
398 workflows_255:
399 new_status_id: 6
400 role_id: 3
401 old_status_id: 3
402 id: 255
403 tracker_id: 3
404 workflows_229:
405 new_status_id: 5
406 role_id: 2
407 old_status_id: 4
408 id: 229
409 tracker_id: 3
410 workflows_067:
411 new_status_id: 3
412 role_id: 3
413 old_status_id: 2
414 id: 67
415 tracker_id: 1
416 workflows_148:
417 new_status_id: 3
418 role_id: 2
419 old_status_id: 6
420 id: 148
421 tracker_id: 2
422 workflows_174:
423 new_status_id: 4
424 role_id: 3
425 old_status_id: 5
426 id: 174
427 tracker_id: 2
428 workflows_256:
429 new_status_id: 1
430 role_id: 3
431 old_status_id: 4
432 id: 256
433 tracker_id: 3
434 workflows_068:
435 new_status_id: 4
436 role_id: 3
437 old_status_id: 2
438 id: 68
439 tracker_id: 1
440 workflows_094:
441 new_status_id: 5
442 role_id: 1
443 old_status_id: 1
444 id: 94
445 tracker_id: 2
446 workflows_149:
447 new_status_id: 4
448 role_id: 2
449 old_status_id: 6
450 id: 149
451 tracker_id: 2
452 workflows_175:
453 new_status_id: 6
454 role_id: 3
455 old_status_id: 5
456 id: 175
457 tracker_id: 2
458 workflows_257:
459 new_status_id: 2
460 role_id: 3
461 old_status_id: 4
462 id: 257
463 tracker_id: 3
464 workflows_069:
465 new_status_id: 5
466 role_id: 3
467 old_status_id: 2
468 id: 69
469 tracker_id: 1
470 workflows_095:
471 new_status_id: 6
472 role_id: 1
473 old_status_id: 1
474 id: 95
475 tracker_id: 2
476 workflows_176:
477 new_status_id: 1
478 role_id: 3
479 old_status_id: 6
480 id: 176
481 tracker_id: 2
482 workflows_258:
483 new_status_id: 3
484 role_id: 3
485 old_status_id: 4
486 id: 258
487 tracker_id: 3
488 workflows_096:
489 new_status_id: 1
490 role_id: 1
491 old_status_id: 2
492 id: 96
493 tracker_id: 2
494 workflows_177:
495 new_status_id: 2
496 role_id: 3
497 old_status_id: 6
498 id: 177
499 tracker_id: 2
500 workflows_259:
501 new_status_id: 5
502 role_id: 3
503 old_status_id: 4
504 id: 259
505 tracker_id: 3
506 workflows_097:
507 new_status_id: 3
508 role_id: 1
509 old_status_id: 2
510 id: 97
511 tracker_id: 2
512 workflows_178:
513 new_status_id: 3
514 role_id: 3
515 old_status_id: 6
516 id: 178
517 tracker_id: 2
518 workflows_098:
519 new_status_id: 4
520 role_id: 1
521 old_status_id: 2
522 id: 98
523 tracker_id: 2
524 workflows_179:
525 new_status_id: 4
526 role_id: 3
527 old_status_id: 6
528 id: 179
529 tracker_id: 2
530 workflows_099:
531 new_status_id: 5
532 role_id: 1
533 old_status_id: 2
534 id: 99
535 tracker_id: 2
536 workflows_100:
537 new_status_id: 6
538 role_id: 1
539 old_status_id: 2
540 id: 100
541 tracker_id: 2
542 workflows_020:
543 new_status_id: 6
544 role_id: 1
545 old_status_id: 4
546 id: 20
547 tracker_id: 1
548 workflows_101:
549 new_status_id: 1
550 role_id: 1
551 old_status_id: 3
552 id: 101
553 tracker_id: 2
554 workflows_021:
555 new_status_id: 1
556 role_id: 1
557 old_status_id: 5
558 id: 21
559 tracker_id: 1
560 workflows_102:
561 new_status_id: 2
562 role_id: 1
563 old_status_id: 3
564 id: 102
565 tracker_id: 2
566 workflows_210:
567 new_status_id: 5
568 role_id: 1
569 old_status_id: 6
570 id: 210
571 tracker_id: 3
572 workflows_022:
573 new_status_id: 2
574 role_id: 1
575 old_status_id: 5
576 id: 22
577 tracker_id: 1
578 workflows_103:
579 new_status_id: 4
580 role_id: 1
581 old_status_id: 3
582 id: 103
583 tracker_id: 2
584 workflows_023:
585 new_status_id: 3
586 role_id: 1
587 old_status_id: 5
588 id: 23
589 tracker_id: 1
590 workflows_104:
591 new_status_id: 5
592 role_id: 1
593 old_status_id: 3
594 id: 104
595 tracker_id: 2
596 workflows_130:
597 new_status_id: 6
598 role_id: 2
599 old_status_id: 2
600 id: 130
601 tracker_id: 2
602 workflows_211:
603 new_status_id: 2
604 role_id: 2
605 old_status_id: 1
606 id: 211
607 tracker_id: 3
608 workflows_024:
609 new_status_id: 4
610 role_id: 1
611 old_status_id: 5
612 id: 24
613 tracker_id: 1
614 workflows_050:
615 new_status_id: 6
616 role_id: 2
617 old_status_id: 4
618 id: 50
619 tracker_id: 1
620 workflows_105:
621 new_status_id: 6
622 role_id: 1
623 old_status_id: 3
624 id: 105
625 tracker_id: 2
626 workflows_131:
627 new_status_id: 1
628 role_id: 2
629 old_status_id: 3
630 id: 131
631 tracker_id: 2
632 workflows_212:
633 new_status_id: 3
634 role_id: 2
635 old_status_id: 1
636 id: 212
637 tracker_id: 3
638 workflows_025:
639 new_status_id: 6
640 role_id: 1
641 old_status_id: 5
642 id: 25
643 tracker_id: 1
644 workflows_051:
645 new_status_id: 1
646 role_id: 2
647 old_status_id: 5
648 id: 51
649 tracker_id: 1
650 workflows_106:
651 new_status_id: 1
652 role_id: 1
653 old_status_id: 4
654 id: 106
655 tracker_id: 2
656 workflows_132:
657 new_status_id: 2
658 role_id: 2
659 old_status_id: 3
660 id: 132
661 tracker_id: 2
662 workflows_213:
663 new_status_id: 4
664 role_id: 2
665 old_status_id: 1
666 id: 213
667 tracker_id: 3
668 workflows_240:
669 new_status_id: 5
670 role_id: 2
671 old_status_id: 6
672 id: 240
673 tracker_id: 3
674 workflows_026:
675 new_status_id: 1
676 role_id: 1
677 old_status_id: 6
678 id: 26
679 tracker_id: 1
680 workflows_052:
681 new_status_id: 2
682 role_id: 2
683 old_status_id: 5
684 id: 52
685 tracker_id: 1
686 workflows_107:
687 new_status_id: 2
688 role_id: 1
689 old_status_id: 4
690 id: 107
691 tracker_id: 2
692 workflows_133:
693 new_status_id: 4
694 role_id: 2
695 old_status_id: 3
696 id: 133
697 tracker_id: 2
698 workflows_214:
699 new_status_id: 5
700 role_id: 2
701 old_status_id: 1
702 id: 214
703 tracker_id: 3
704 workflows_241:
705 new_status_id: 2
706 role_id: 3
707 old_status_id: 1
708 id: 241
709 tracker_id: 3
710 workflows_027:
711 new_status_id: 2
712 role_id: 1
713 old_status_id: 6
714 id: 27
715 tracker_id: 1
716 workflows_053:
717 new_status_id: 3
718 role_id: 2
719 old_status_id: 5
720 id: 53
721 tracker_id: 1
722 workflows_080:
723 new_status_id: 6
724 role_id: 3
725 old_status_id: 4
726 id: 80
727 tracker_id: 1
728 workflows_108:
729 new_status_id: 3
730 role_id: 1
731 old_status_id: 4
732 id: 108
733 tracker_id: 2
734 workflows_134:
735 new_status_id: 5
736 role_id: 2
737 old_status_id: 3
738 id: 134
739 tracker_id: 2
740 workflows_160:
741 new_status_id: 6
742 role_id: 3
743 old_status_id: 2
744 id: 160
745 tracker_id: 2
746 workflows_215:
747 new_status_id: 6
748 role_id: 2
749 old_status_id: 1
750 id: 215
751 tracker_id: 3
752 workflows_242:
753 new_status_id: 3
754 role_id: 3
755 old_status_id: 1
756 id: 242
757 tracker_id: 3
758 workflows_028:
759 new_status_id: 3
760 role_id: 1
761 old_status_id: 6
762 id: 28
763 tracker_id: 1
764 workflows_054:
765 new_status_id: 4
766 role_id: 2
767 old_status_id: 5
768 id: 54
769 tracker_id: 1
770 workflows_081:
771 new_status_id: 1
772 role_id: 3
773 old_status_id: 5
774 id: 81
775 tracker_id: 1
776 workflows_109:
777 new_status_id: 5
778 role_id: 1
779 old_status_id: 4
780 id: 109
781 tracker_id: 2
782 workflows_135:
783 new_status_id: 6
784 role_id: 2
785 old_status_id: 3
786 id: 135
787 tracker_id: 2
788 workflows_161:
789 new_status_id: 1
790 role_id: 3
791 old_status_id: 3
792 id: 161
793 tracker_id: 2
794 workflows_216:
795 new_status_id: 1
796 role_id: 2
797 old_status_id: 2
798 id: 216
799 tracker_id: 3
800 workflows_243:
801 new_status_id: 4
802 role_id: 3
803 old_status_id: 1
804 id: 243
805 tracker_id: 3
806 workflows_029:
807 new_status_id: 4
808 role_id: 1
809 old_status_id: 6
810 id: 29
811 tracker_id: 1
812 workflows_055:
813 new_status_id: 6
814 role_id: 2
815 old_status_id: 5
816 id: 55
817 tracker_id: 1
818 workflows_082:
819 new_status_id: 2
820 role_id: 3
821 old_status_id: 5
822 id: 82
823 tracker_id: 1
824 workflows_136:
825 new_status_id: 1
826 role_id: 2
827 old_status_id: 4
828 id: 136
829 tracker_id: 2
830 workflows_162:
831 new_status_id: 2
832 role_id: 3
833 old_status_id: 3
834 id: 162
835 tracker_id: 2
836 workflows_217:
837 new_status_id: 3
838 role_id: 2
839 old_status_id: 2
840 id: 217
841 tracker_id: 3
842 workflows_270:
843 new_status_id: 5
844 role_id: 3
845 old_status_id: 6
846 id: 270
847 tracker_id: 3
848 workflows_244:
849 new_status_id: 5
850 role_id: 3
851 old_status_id: 1
852 id: 244
853 tracker_id: 3
854 workflows_056:
855 new_status_id: 1
856 role_id: 2
857 old_status_id: 6
858 id: 56
859 tracker_id: 1
860 workflows_137:
861 new_status_id: 2
862 role_id: 2
863 old_status_id: 4
864 id: 137
865 tracker_id: 2
866 workflows_163:
867 new_status_id: 4
868 role_id: 3
869 old_status_id: 3
870 id: 163
871 tracker_id: 2
872 workflows_190:
873 new_status_id: 6
874 role_id: 1
875 old_status_id: 2
876 id: 190
877 tracker_id: 3
878 workflows_218:
879 new_status_id: 4
880 role_id: 2
881 old_status_id: 2
882 id: 218
883 tracker_id: 3
884 workflows_245:
885 new_status_id: 6
886 role_id: 3
887 old_status_id: 1
888 id: 245
889 tracker_id: 3
890 workflows_057:
891 new_status_id: 2
892 role_id: 2
893 old_status_id: 6
894 id: 57
895 tracker_id: 1
896 workflows_083:
897 new_status_id: 3
898 role_id: 3
899 old_status_id: 5
900 id: 83
901 tracker_id: 1
902 workflows_138:
903 new_status_id: 3
904 role_id: 2
905 old_status_id: 4
906 id: 138
907 tracker_id: 2
908 workflows_164:
909 new_status_id: 5
910 role_id: 3
911 old_status_id: 3
912 id: 164
913 tracker_id: 2
914 workflows_191:
915 new_status_id: 1
916 role_id: 1
917 old_status_id: 3
918 id: 191
919 tracker_id: 3
920 workflows_219:
921 new_status_id: 5
922 role_id: 2
923 old_status_id: 2
924 id: 219
925 tracker_id: 3
926 workflows_246:
927 new_status_id: 1
928 role_id: 3
929 old_status_id: 2
930 id: 246
931 tracker_id: 3
932 workflows_058:
933 new_status_id: 3
934 role_id: 2
935 old_status_id: 6
936 id: 58
937 tracker_id: 1
938 workflows_084:
939 new_status_id: 4
940 role_id: 3
941 old_status_id: 5
942 id: 84
943 tracker_id: 1
944 workflows_139:
945 new_status_id: 5
946 role_id: 2
947 old_status_id: 4
948 id: 139
949 tracker_id: 2
950 workflows_165:
951 new_status_id: 6
952 role_id: 3
953 old_status_id: 3
954 id: 165
955 tracker_id: 2
956 workflows_192:
957 new_status_id: 2
958 role_id: 1
959 old_status_id: 3
960 id: 192
961 tracker_id: 3
962 workflows_247:
963 new_status_id: 3
964 role_id: 3
965 old_status_id: 2
966 id: 247
967 tracker_id: 3
968 workflows_059:
969 new_status_id: 4
970 role_id: 2
971 old_status_id: 6
972 id: 59
973 tracker_id: 1
974 workflows_085:
975 new_status_id: 6
976 role_id: 3
977 old_status_id: 5
978 id: 85
979 tracker_id: 1
980 workflows_166:
981 new_status_id: 1
982 role_id: 3
983 old_status_id: 4
984 id: 166
985 tracker_id: 2
986 workflows_248:
987 new_status_id: 4
988 role_id: 3
989 old_status_id: 2
990 id: 248
991 tracker_id: 3
992 workflows_086:
993 new_status_id: 1
994 role_id: 3
995 old_status_id: 6
996 id: 86
997 tracker_id: 1
998 workflows_167:
999 new_status_id: 2
1000 role_id: 3
1001 old_status_id: 4
1002 id: 167
1003 tracker_id: 2
1004 workflows_193:
1005 new_status_id: 4
1006 role_id: 1
1007 old_status_id: 3
1008 id: 193
1009 tracker_id: 3
1010 workflows_249:
1011 new_status_id: 5
1012 role_id: 3
1013 old_status_id: 2
1014 id: 249
1015 tracker_id: 3
1016 workflows_087:
1017 new_status_id: 2
1018 role_id: 3
1019 old_status_id: 6
1020 id: 87
1021 tracker_id: 1
1022 workflows_168:
1023 new_status_id: 3
1024 role_id: 3
1025 old_status_id: 4
1026 id: 168
1027 tracker_id: 2
1028 workflows_194:
1029 new_status_id: 5
1030 role_id: 1
1031 old_status_id: 3
1032 id: 194
1033 tracker_id: 3
1034 workflows_088:
1035 new_status_id: 3
1036 role_id: 3
1037 old_status_id: 6
1038 id: 88
1039 tracker_id: 1
1040 workflows_169:
1041 new_status_id: 5
1042 role_id: 3
1043 old_status_id: 4
1044 id: 169
1045 tracker_id: 2
1046 workflows_195:
1047 new_status_id: 6
1048 role_id: 1
1049 old_status_id: 3
1050 id: 195
1051 tracker_id: 3
1052 workflows_089:
1053 new_status_id: 4
1054 role_id: 3
1055 old_status_id: 6
1056 id: 89
1057 tracker_id: 1
1058 workflows_196:
1059 new_status_id: 1
1060 role_id: 1
1061 old_status_id: 4
1062 id: 196
1063 tracker_id: 3
1064 workflows_197:
1065 new_status_id: 2
1066 role_id: 1
1067 old_status_id: 4
1068 id: 197
1069 tracker_id: 3
1070 workflows_198:
1071 new_status_id: 3
1072 role_id: 1
1073 old_status_id: 4
1074 id: 198
1075 tracker_id: 3
1076 workflows_199:
1077 new_status_id: 5
1078 role_id: 1
1079 old_status_id: 4
1080 id: 199
1081 tracker_id: 3
1082 workflows_010:
1083 new_status_id: 6
1084 role_id: 1
1085 old_status_id: 2
1086 id: 10
1087 tracker_id: 1
1088 workflows_011:
1089 new_status_id: 1
1090 role_id: 1
1091 old_status_id: 3
1092 id: 11
1093 tracker_id: 1
1094 workflows_012:
1095 new_status_id: 2
1096 role_id: 1
1097 old_status_id: 3
1098 id: 12
1099 tracker_id: 1
1100 workflows_200:
1101 new_status_id: 6
1102 role_id: 1
1103 old_status_id: 4
1104 id: 200
1105 tracker_id: 3
1106 workflows_013:
1107 new_status_id: 4
1108 role_id: 1
1109 old_status_id: 3
1110 id: 13
1111 tracker_id: 1
1112 workflows_120:
1113 new_status_id: 5
1114 role_id: 1
1115 old_status_id: 6
1116 id: 120
1117 tracker_id: 2
1118 workflows_201:
1119 new_status_id: 1
1120 role_id: 1
1121 old_status_id: 5
1122 id: 201
1123 tracker_id: 3
1124 workflows_040:
1125 new_status_id: 6
1126 role_id: 2
1127 old_status_id: 2
1128 id: 40
1129 tracker_id: 1
1130 workflows_121:
1131 new_status_id: 2
1132 role_id: 2
1133 old_status_id: 1
1134 id: 121
1135 tracker_id: 2
1136 workflows_202:
1137 new_status_id: 2
1138 role_id: 1
1139 old_status_id: 5
1140 id: 202
1141 tracker_id: 3
1142 workflows_014:
1143 new_status_id: 5
1144 role_id: 1
1145 old_status_id: 3
1146 id: 14
1147 tracker_id: 1
1148 workflows_041:
1149 new_status_id: 1
1150 role_id: 2
1151 old_status_id: 3
1152 id: 41
1153 tracker_id: 1
1154 workflows_122:
1155 new_status_id: 3
1156 role_id: 2
1157 old_status_id: 1
1158 id: 122
1159 tracker_id: 2
1160 workflows_203:
1161 new_status_id: 3
1162 role_id: 1
1163 old_status_id: 5
1164 id: 203
1165 tracker_id: 3
1166 workflows_015:
1167 new_status_id: 6
1168 role_id: 1
1169 old_status_id: 3
1170 id: 15
1171 tracker_id: 1
1172 workflows_230:
1173 new_status_id: 6
1174 role_id: 2
1175 old_status_id: 4
1176 id: 230
1177 tracker_id: 3
1178 workflows_123:
1179 new_status_id: 4
1180 role_id: 2
1181 old_status_id: 1
1182 id: 123
1183 tracker_id: 2
1184 workflows_204:
1185 new_status_id: 4
1186 role_id: 1
1187 old_status_id: 5
1188 id: 204
1189 tracker_id: 3
1190 workflows_016:
1191 new_status_id: 1
1192 role_id: 1
1193 old_status_id: 4
1194 id: 16
1195 tracker_id: 1
1196 workflows_042:
1197 new_status_id: 2
1198 role_id: 2
1199 old_status_id: 3
1200 id: 42
1201 tracker_id: 1
1202 workflows_231:
1203 new_status_id: 1
1204 role_id: 2
1205 old_status_id: 5
1206 id: 231
1207 tracker_id: 3
1208 workflows_070:
1209 new_status_id: 6
1210 role_id: 3
1211 old_status_id: 2
1212 id: 70
1213 tracker_id: 1
1214 workflows_124:
1215 new_status_id: 5
1216 role_id: 2
1217 old_status_id: 1
1218 id: 124
1219 tracker_id: 2
1220 workflows_150:
1221 new_status_id: 5
1222 role_id: 2
1223 old_status_id: 6
1224 id: 150
1225 tracker_id: 2
1226 workflows_205:
1227 new_status_id: 6
1228 role_id: 1
1229 old_status_id: 5
1230 id: 205
1231 tracker_id: 3
1232 workflows_017:
1233 new_status_id: 2
1234 role_id: 1
1235 old_status_id: 4
1236 id: 17
1237 tracker_id: 1
1238 workflows_043:
1239 new_status_id: 4
1240 role_id: 2
1241 old_status_id: 3
1242 id: 43
1243 tracker_id: 1
1244 workflows_232:
1245 new_status_id: 2
1246 role_id: 2
1247 old_status_id: 5
1248 id: 232
1249 tracker_id: 3
1250 workflows_125:
1251 new_status_id: 6
1252 role_id: 2
1253 old_status_id: 1
1254 id: 125
1255 tracker_id: 2
1256 workflows_151:
1257 new_status_id: 2
1258 role_id: 3
1259 old_status_id: 1
1260 id: 151
1261 tracker_id: 2
1262 workflows_206:
1263 new_status_id: 1
1264 role_id: 1
1265 old_status_id: 6
1266 id: 206
1267 tracker_id: 3
1268 workflows_018:
1269 new_status_id: 3
1270 role_id: 1
1271 old_status_id: 4
1272 id: 18
1273 tracker_id: 1
1274 workflows_044:
1275 new_status_id: 5
1276 role_id: 2
1277 old_status_id: 3
1278 id: 44
1279 tracker_id: 1
1280 workflows_071:
1281 new_status_id: 1
1282 role_id: 3
1283 old_status_id: 3
1284 id: 71
1285 tracker_id: 1
1286 workflows_233:
1287 new_status_id: 3
1288 role_id: 2
1289 old_status_id: 5
1290 id: 233
1291 tracker_id: 3
1292 workflows_126:
1293 new_status_id: 1
1294 role_id: 2
1295 old_status_id: 2
1296 id: 126
1297 tracker_id: 2
1298 workflows_152:
1299 new_status_id: 3
1300 role_id: 3
1301 old_status_id: 1
1302 id: 152
1303 tracker_id: 2
1304 workflows_207:
1305 new_status_id: 2
1306 role_id: 1
1307 old_status_id: 6
1308 id: 207
1309 tracker_id: 3
1310 workflows_019:
1311 new_status_id: 5
1312 role_id: 1
1313 old_status_id: 4
1314 id: 19
1315 tracker_id: 1
1316 workflows_045:
1317 new_status_id: 6
1318 role_id: 2
1319 old_status_id: 3
1320 id: 45
1321 tracker_id: 1
1322 workflows_260:
1323 new_status_id: 6
1324 role_id: 3
1325 old_status_id: 4
1326 id: 260
1327 tracker_id: 3
1328 workflows_234:
1329 new_status_id: 4
1330 role_id: 2
1331 old_status_id: 5
1332 id: 234
1333 tracker_id: 3
1334 workflows_127:
1335 new_status_id: 3
1336 role_id: 2
1337 old_status_id: 2
1338 id: 127
1339 tracker_id: 2
1340 workflows_153:
1341 new_status_id: 4
1342 role_id: 3
1343 old_status_id: 1
1344 id: 153
1345 tracker_id: 2
1346 workflows_180:
1347 new_status_id: 5
1348 role_id: 3
1349 old_status_id: 6
1350 id: 180
1351 tracker_id: 2
1352 workflows_208:
1353 new_status_id: 3
1354 role_id: 1
1355 old_status_id: 6
1356 id: 208
1357 tracker_id: 3
1358 workflows_046:
1359 new_status_id: 1
1360 role_id: 2
1361 old_status_id: 4
1362 id: 46
1363 tracker_id: 1
1364 workflows_072:
1365 new_status_id: 2
1366 role_id: 3
1367 old_status_id: 3
1368 id: 72
1369 tracker_id: 1
1370 workflows_261:
1371 new_status_id: 1
1372 role_id: 3
1373 old_status_id: 5
1374 id: 261
1375 tracker_id: 3
1376 workflows_235:
1377 new_status_id: 6
1378 role_id: 2
1379 old_status_id: 5
1380 id: 235
1381 tracker_id: 3
1382 workflows_154:
1383 new_status_id: 5
1384 role_id: 3
1385 old_status_id: 1
1386 id: 154
1387 tracker_id: 2
1388 workflows_181:
1389 new_status_id: 2
1390 role_id: 1
1391 old_status_id: 1
1392 id: 181
1393 tracker_id: 3
1394 workflows_209:
1395 new_status_id: 4
1396 role_id: 1
1397 old_status_id: 6
1398 id: 209
1399 tracker_id: 3
1400 workflows_047:
1401 new_status_id: 2
1402 role_id: 2
1403 old_status_id: 4
1404 id: 47
1405 tracker_id: 1
1406 workflows_073:
1407 new_status_id: 4
1408 role_id: 3
1409 old_status_id: 3
1410 id: 73
1411 tracker_id: 1
1412 workflows_128:
1413 new_status_id: 4
1414 role_id: 2
1415 old_status_id: 2
1416 id: 128
1417 tracker_id: 2
1418 workflows_262:
1419 new_status_id: 2
1420 role_id: 3
1421 old_status_id: 5
1422 id: 262
1423 tracker_id: 3
1424 workflows_236:
1425 new_status_id: 1
1426 role_id: 2
1427 old_status_id: 6
1428 id: 236
1429 tracker_id: 3
1430 workflows_155:
1431 new_status_id: 6
1432 role_id: 3
1433 old_status_id: 1
1434 id: 155
1435 tracker_id: 2
1436 workflows_048:
1437 new_status_id: 3
1438 role_id: 2
1439 old_status_id: 4
1440 id: 48
1441 tracker_id: 1
1442 workflows_074:
1443 new_status_id: 5
1444 role_id: 3
1445 old_status_id: 3
1446 id: 74
1447 tracker_id: 1
1448 workflows_129:
1449 new_status_id: 5
1450 role_id: 2
1451 old_status_id: 2
1452 id: 129
1453 tracker_id: 2
1454 workflows_263:
1455 new_status_id: 3
1456 role_id: 3
1457 old_status_id: 5
1458 id: 263
1459 tracker_id: 3
1460 workflows_237:
1461 new_status_id: 2
1462 role_id: 2
1463 old_status_id: 6
1464 id: 237
1465 tracker_id: 3
1466 workflows_182:
1467 new_status_id: 3
1468 role_id: 1
1469 old_status_id: 1
1470 id: 182
1471 tracker_id: 3
1472 workflows_049:
1473 new_status_id: 5
1474 role_id: 2
1475 old_status_id: 4
1476 id: 49
1477 tracker_id: 1
1478 workflows_075:
1479 new_status_id: 6
1480 role_id: 3
1481 old_status_id: 3
1482 id: 75
1483 tracker_id: 1
1484 workflows_156:
1485 new_status_id: 1
1486 role_id: 3
1487 old_status_id: 2
1488 id: 156
1489 tracker_id: 2
1490 workflows_264:
1491 new_status_id: 4
1492 role_id: 3
1493 old_status_id: 5
1494 id: 264
1495 tracker_id: 3
1496 workflows_238:
1497 new_status_id: 3
1498 role_id: 2
1499 old_status_id: 6
1500 id: 238
1501 tracker_id: 3
1502 workflows_183:
1503 new_status_id: 4
1504 role_id: 1
1505 old_status_id: 1
1506 id: 183
1507 tracker_id: 3
1508 workflows_076:
1509 new_status_id: 1
1510 role_id: 3
1511 old_status_id: 4
1512 id: 76
1513 tracker_id: 1
1514 workflows_157:
1515 new_status_id: 3
1516 role_id: 3
1517 old_status_id: 2
1518 id: 157
1519 tracker_id: 2
1520 workflows_265:
1521 new_status_id: 6
1522 role_id: 3
1523 old_status_id: 5
1524 id: 265
1525 tracker_id: 3
1526 workflows_239:
1527 new_status_id: 4
1528 role_id: 2
1529 old_status_id: 6
1530 id: 239
1531 tracker_id: 3
1532 workflows_077:
1533 new_status_id: 2
1534 role_id: 3
1535 old_status_id: 4
1536 id: 77
1537 tracker_id: 1
1538 workflows_158:
1539 new_status_id: 4
1540 role_id: 3
1541 old_status_id: 2
1542 id: 158
1543 tracker_id: 2
1544 workflows_184:
1545 new_status_id: 5
1546 role_id: 1
1547 old_status_id: 1
1548 id: 184
1549 tracker_id: 3
1550 workflows_266:
1551 new_status_id: 1
1552 role_id: 3
1553 old_status_id: 6
1554 id: 266
1555 tracker_id: 3
1556 workflows_078:
1557 new_status_id: 3
1558 role_id: 3
1559 old_status_id: 4
1560 id: 78
1561 tracker_id: 1
1562 workflows_159:
1563 new_status_id: 5
1564 role_id: 3
1565 old_status_id: 2
1566 id: 159
1567 tracker_id: 2
1568 workflows_185:
1569 new_status_id: 6
1570 role_id: 1
1571 old_status_id: 1
1572 id: 185
1573 tracker_id: 3
1574 workflows_267:
1575 new_status_id: 2
1576 role_id: 3
1577 old_status_id: 6
1578 id: 267
1579 tracker_id: 3
1580 workflows_079:
1581 new_status_id: 5
1582 role_id: 3
1583 old_status_id: 4
1584 id: 79
1585 tracker_id: 1
1586 workflows_186:
1587 new_status_id: 1
1588 role_id: 1
1589 old_status_id: 2
1590 id: 186
1591 tracker_id: 3
1592 workflows_268:
1593 new_status_id: 3
1594 role_id: 3
1595 old_status_id: 6
1596 id: 268
1597 tracker_id: 3
1598 workflows_187:
1599 new_status_id: 3
1600 role_id: 1
1601 old_status_id: 2
1602 id: 187
1603 tracker_id: 3
1604 workflows_269:
1605 new_status_id: 4
1606 role_id: 3
1607 old_status_id: 6
1608 id: 269
1609 tracker_id: 3
1610 workflows_188:
1611 new_status_id: 4
1612 role_id: 1
1613 old_status_id: 2
1614 id: 188
1615 tracker_id: 3
1 ---
2 workflows_189:
3 new_status_id: 5
4 role_id: 1
5 old_status_id: 2
6 id: 189
7 tracker_id: 3
8 workflows_001:
9 new_status_id: 2
10 role_id: 1
11 old_status_id: 1
12 id: 1
13 tracker_id: 1
14 workflows_002:
15 new_status_id: 3
16 role_id: 1
17 old_status_id: 1
18 id: 2
19 tracker_id: 1
20 workflows_003:
21 new_status_id: 4
22 role_id: 1
23 old_status_id: 1
24 id: 3
25 tracker_id: 1
26 workflows_110:
27 new_status_id: 6
28 role_id: 1
29 old_status_id: 4
30 id: 110
31 tracker_id: 2
32 workflows_004:
33 new_status_id: 5
34 role_id: 1
35 old_status_id: 1
36 id: 4
37 tracker_id: 1
38 workflows_030:
39 new_status_id: 5
40 role_id: 1
41 old_status_id: 6
42 id: 30
43 tracker_id: 1
44 workflows_111:
45 new_status_id: 1
46 role_id: 1
47 old_status_id: 5
48 id: 111
49 tracker_id: 2
50 workflows_005:
51 new_status_id: 6
52 role_id: 1
53 old_status_id: 1
54 id: 5
55 tracker_id: 1
56 workflows_031:
57 new_status_id: 2
58 role_id: 2
59 old_status_id: 1
60 id: 31
61 tracker_id: 1
62 workflows_112:
63 new_status_id: 2
64 role_id: 1
65 old_status_id: 5
66 id: 112
67 tracker_id: 2
68 workflows_006:
69 new_status_id: 1
70 role_id: 1
71 old_status_id: 2
72 id: 6
73 tracker_id: 1
74 workflows_032:
75 new_status_id: 3
76 role_id: 2
77 old_status_id: 1
78 id: 32
79 tracker_id: 1
80 workflows_113:
81 new_status_id: 3
82 role_id: 1
83 old_status_id: 5
84 id: 113
85 tracker_id: 2
86 workflows_220:
87 new_status_id: 6
88 role_id: 2
89 old_status_id: 2
90 id: 220
91 tracker_id: 3
92 workflows_007:
93 new_status_id: 3
94 role_id: 1
95 old_status_id: 2
96 id: 7
97 tracker_id: 1
98 workflows_033:
99 new_status_id: 4
100 role_id: 2
101 old_status_id: 1
102 id: 33
103 tracker_id: 1
104 workflows_060:
105 new_status_id: 5
106 role_id: 2
107 old_status_id: 6
108 id: 60
109 tracker_id: 1
110 workflows_114:
111 new_status_id: 4
112 role_id: 1
113 old_status_id: 5
114 id: 114
115 tracker_id: 2
116 workflows_140:
117 new_status_id: 6
118 role_id: 2
119 old_status_id: 4
120 id: 140
121 tracker_id: 2
122 workflows_221:
123 new_status_id: 1
124 role_id: 2
125 old_status_id: 3
126 id: 221
127 tracker_id: 3
128 workflows_008:
129 new_status_id: 4
130 role_id: 1
131 old_status_id: 2
132 id: 8
133 tracker_id: 1
134 workflows_034:
135 new_status_id: 5
136 role_id: 2
137 old_status_id: 1
138 id: 34
139 tracker_id: 1
140 workflows_115:
141 new_status_id: 6
142 role_id: 1
143 old_status_id: 5
144 id: 115
145 tracker_id: 2
146 workflows_141:
147 new_status_id: 1
148 role_id: 2
149 old_status_id: 5
150 id: 141
151 tracker_id: 2
152 workflows_222:
153 new_status_id: 2
154 role_id: 2
155 old_status_id: 3
156 id: 222
157 tracker_id: 3
158 workflows_223:
159 new_status_id: 4
160 role_id: 2
161 old_status_id: 3
162 id: 223
163 tracker_id: 3
164 workflows_009:
165 new_status_id: 5
166 role_id: 1
167 old_status_id: 2
168 id: 9
169 tracker_id: 1
170 workflows_035:
171 new_status_id: 6
172 role_id: 2
173 old_status_id: 1
174 id: 35
175 tracker_id: 1
176 workflows_061:
177 new_status_id: 2
178 role_id: 3
179 old_status_id: 1
180 id: 61
181 tracker_id: 1
182 workflows_116:
183 new_status_id: 1
184 role_id: 1
185 old_status_id: 6
186 id: 116
187 tracker_id: 2
188 workflows_142:
189 new_status_id: 2
190 role_id: 2
191 old_status_id: 5
192 id: 142
193 tracker_id: 2
194 workflows_250:
195 new_status_id: 6
196 role_id: 3
197 old_status_id: 2
198 id: 250
199 tracker_id: 3
200 workflows_224:
201 new_status_id: 5
202 role_id: 2
203 old_status_id: 3
204 id: 224
205 tracker_id: 3
206 workflows_036:
207 new_status_id: 1
208 role_id: 2
209 old_status_id: 2
210 id: 36
211 tracker_id: 1
212 workflows_062:
213 new_status_id: 3
214 role_id: 3
215 old_status_id: 1
216 id: 62
217 tracker_id: 1
218 workflows_117:
219 new_status_id: 2
220 role_id: 1
221 old_status_id: 6
222 id: 117
223 tracker_id: 2
224 workflows_143:
225 new_status_id: 3
226 role_id: 2
227 old_status_id: 5
228 id: 143
229 tracker_id: 2
230 workflows_170:
231 new_status_id: 6
232 role_id: 3
233 old_status_id: 4
234 id: 170
235 tracker_id: 2
236 workflows_251:
237 new_status_id: 1
238 role_id: 3
239 old_status_id: 3
240 id: 251
241 tracker_id: 3
242 workflows_225:
243 new_status_id: 6
244 role_id: 2
245 old_status_id: 3
246 id: 225
247 tracker_id: 3
248 workflows_063:
249 new_status_id: 4
250 role_id: 3
251 old_status_id: 1
252 id: 63
253 tracker_id: 1
254 workflows_090:
255 new_status_id: 5
256 role_id: 3
257 old_status_id: 6
258 id: 90
259 tracker_id: 1
260 workflows_118:
261 new_status_id: 3
262 role_id: 1
263 old_status_id: 6
264 id: 118
265 tracker_id: 2
266 workflows_144:
267 new_status_id: 4
268 role_id: 2
269 old_status_id: 5
270 id: 144
271 tracker_id: 2
272 workflows_252:
273 new_status_id: 2
274 role_id: 3
275 old_status_id: 3
276 id: 252
277 tracker_id: 3
278 workflows_226:
279 new_status_id: 1
280 role_id: 2
281 old_status_id: 4
282 id: 226
283 tracker_id: 3
284 workflows_038:
285 new_status_id: 4
286 role_id: 2
287 old_status_id: 2
288 id: 38
289 tracker_id: 1
290 workflows_064:
291 new_status_id: 5
292 role_id: 3
293 old_status_id: 1
294 id: 64
295 tracker_id: 1
296 workflows_091:
297 new_status_id: 2
298 role_id: 1
299 old_status_id: 1
300 id: 91
301 tracker_id: 2
302 workflows_119:
303 new_status_id: 4
304 role_id: 1
305 old_status_id: 6
306 id: 119
307 tracker_id: 2
308 workflows_145:
309 new_status_id: 6
310 role_id: 2
311 old_status_id: 5
312 id: 145
313 tracker_id: 2
314 workflows_171:
315 new_status_id: 1
316 role_id: 3
317 old_status_id: 5
318 id: 171
319 tracker_id: 2
320 workflows_253:
321 new_status_id: 4
322 role_id: 3
323 old_status_id: 3
324 id: 253
325 tracker_id: 3
326 workflows_227:
327 new_status_id: 2
328 role_id: 2
329 old_status_id: 4
330 id: 227
331 tracker_id: 3
332 workflows_039:
333 new_status_id: 5
334 role_id: 2
335 old_status_id: 2
336 id: 39
337 tracker_id: 1
338 workflows_065:
339 new_status_id: 6
340 role_id: 3
341 old_status_id: 1
342 id: 65
343 tracker_id: 1
344 workflows_092:
345 new_status_id: 3
346 role_id: 1
347 old_status_id: 1
348 id: 92
349 tracker_id: 2
350 workflows_146:
351 new_status_id: 1
352 role_id: 2
353 old_status_id: 6
354 id: 146
355 tracker_id: 2
356 workflows_172:
357 new_status_id: 2
358 role_id: 3
359 old_status_id: 5
360 id: 172
361 tracker_id: 2
362 workflows_254:
363 new_status_id: 5
364 role_id: 3
365 old_status_id: 3
366 id: 254
367 tracker_id: 3
368 workflows_228:
369 new_status_id: 3
370 role_id: 2
371 old_status_id: 4
372 id: 228
373 tracker_id: 3
374 workflows_066:
375 new_status_id: 1
376 role_id: 3
377 old_status_id: 2
378 id: 66
379 tracker_id: 1
380 workflows_093:
381 new_status_id: 4
382 role_id: 1
383 old_status_id: 1
384 id: 93
385 tracker_id: 2
386 workflows_147:
387 new_status_id: 2
388 role_id: 2
389 old_status_id: 6
390 id: 147
391 tracker_id: 2
392 workflows_173:
393 new_status_id: 3
394 role_id: 3
395 old_status_id: 5
396 id: 173
397 tracker_id: 2
398 workflows_255:
399 new_status_id: 6
400 role_id: 3
401 old_status_id: 3
402 id: 255
403 tracker_id: 3
404 workflows_229:
405 new_status_id: 5
406 role_id: 2
407 old_status_id: 4
408 id: 229
409 tracker_id: 3
410 workflows_067:
411 new_status_id: 3
412 role_id: 3
413 old_status_id: 2
414 id: 67
415 tracker_id: 1
416 workflows_148:
417 new_status_id: 3
418 role_id: 2
419 old_status_id: 6
420 id: 148
421 tracker_id: 2
422 workflows_174:
423 new_status_id: 4
424 role_id: 3
425 old_status_id: 5
426 id: 174
427 tracker_id: 2
428 workflows_256:
429 new_status_id: 1
430 role_id: 3
431 old_status_id: 4
432 id: 256
433 tracker_id: 3
434 workflows_068:
435 new_status_id: 4
436 role_id: 3
437 old_status_id: 2
438 id: 68
439 tracker_id: 1
440 workflows_094:
441 new_status_id: 5
442 role_id: 1
443 old_status_id: 1
444 id: 94
445 tracker_id: 2
446 workflows_149:
447 new_status_id: 4
448 role_id: 2
449 old_status_id: 6
450 id: 149
451 tracker_id: 2
452 workflows_175:
453 new_status_id: 6
454 role_id: 3
455 old_status_id: 5
456 id: 175
457 tracker_id: 2
458 workflows_257:
459 new_status_id: 2
460 role_id: 3
461 old_status_id: 4
462 id: 257
463 tracker_id: 3
464 workflows_069:
465 new_status_id: 5
466 role_id: 3
467 old_status_id: 2
468 id: 69
469 tracker_id: 1
470 workflows_095:
471 new_status_id: 6
472 role_id: 1
473 old_status_id: 1
474 id: 95
475 tracker_id: 2
476 workflows_176:
477 new_status_id: 1
478 role_id: 3
479 old_status_id: 6
480 id: 176
481 tracker_id: 2
482 workflows_258:
483 new_status_id: 3
484 role_id: 3
485 old_status_id: 4
486 id: 258
487 tracker_id: 3
488 workflows_096:
489 new_status_id: 1
490 role_id: 1
491 old_status_id: 2
492 id: 96
493 tracker_id: 2
494 workflows_177:
495 new_status_id: 2
496 role_id: 3
497 old_status_id: 6
498 id: 177
499 tracker_id: 2
500 workflows_259:
501 new_status_id: 5
502 role_id: 3
503 old_status_id: 4
504 id: 259
505 tracker_id: 3
506 workflows_097:
507 new_status_id: 3
508 role_id: 1
509 old_status_id: 2
510 id: 97
511 tracker_id: 2
512 workflows_178:
513 new_status_id: 3
514 role_id: 3
515 old_status_id: 6
516 id: 178
517 tracker_id: 2
518 workflows_098:
519 new_status_id: 4
520 role_id: 1
521 old_status_id: 2
522 id: 98
523 tracker_id: 2
524 workflows_179:
525 new_status_id: 4
526 role_id: 3
527 old_status_id: 6
528 id: 179
529 tracker_id: 2
530 workflows_099:
531 new_status_id: 5
532 role_id: 1
533 old_status_id: 2
534 id: 99
535 tracker_id: 2
536 workflows_100:
537 new_status_id: 6
538 role_id: 1
539 old_status_id: 2
540 id: 100
541 tracker_id: 2
542 workflows_020:
543 new_status_id: 6
544 role_id: 1
545 old_status_id: 4
546 id: 20
547 tracker_id: 1
548 workflows_101:
549 new_status_id: 1
550 role_id: 1
551 old_status_id: 3
552 id: 101
553 tracker_id: 2
554 workflows_021:
555 new_status_id: 1
556 role_id: 1
557 old_status_id: 5
558 id: 21
559 tracker_id: 1
560 workflows_102:
561 new_status_id: 2
562 role_id: 1
563 old_status_id: 3
564 id: 102
565 tracker_id: 2
566 workflows_210:
567 new_status_id: 5
568 role_id: 1
569 old_status_id: 6
570 id: 210
571 tracker_id: 3
572 workflows_022:
573 new_status_id: 2
574 role_id: 1
575 old_status_id: 5
576 id: 22
577 tracker_id: 1
578 workflows_103:
579 new_status_id: 4
580 role_id: 1
581 old_status_id: 3
582 id: 103
583 tracker_id: 2
584 workflows_023:
585 new_status_id: 3
586 role_id: 1
587 old_status_id: 5
588 id: 23
589 tracker_id: 1
590 workflows_104:
591 new_status_id: 5
592 role_id: 1
593 old_status_id: 3
594 id: 104
595 tracker_id: 2
596 workflows_130:
597 new_status_id: 6
598 role_id: 2
599 old_status_id: 2
600 id: 130
601 tracker_id: 2
602 workflows_211:
603 new_status_id: 2
604 role_id: 2
605 old_status_id: 1
606 id: 211
607 tracker_id: 3
608 workflows_024:
609 new_status_id: 4
610 role_id: 1
611 old_status_id: 5
612 id: 24
613 tracker_id: 1
614 workflows_050:
615 new_status_id: 6
616 role_id: 2
617 old_status_id: 4
618 id: 50
619 tracker_id: 1
620 workflows_105:
621 new_status_id: 6
622 role_id: 1
623 old_status_id: 3
624 id: 105
625 tracker_id: 2
626 workflows_131:
627 new_status_id: 1
628 role_id: 2
629 old_status_id: 3
630 id: 131
631 tracker_id: 2
632 workflows_212:
633 new_status_id: 3
634 role_id: 2
635 old_status_id: 1
636 id: 212
637 tracker_id: 3
638 workflows_025:
639 new_status_id: 6
640 role_id: 1
641 old_status_id: 5
642 id: 25
643 tracker_id: 1
644 workflows_051:
645 new_status_id: 1
646 role_id: 2
647 old_status_id: 5
648 id: 51
649 tracker_id: 1
650 workflows_106:
651 new_status_id: 1
652 role_id: 1
653 old_status_id: 4
654 id: 106
655 tracker_id: 2
656 workflows_132:
657 new_status_id: 2
658 role_id: 2
659 old_status_id: 3
660 id: 132
661 tracker_id: 2
662 workflows_213:
663 new_status_id: 4
664 role_id: 2
665 old_status_id: 1
666 id: 213
667 tracker_id: 3
668 workflows_240:
669 new_status_id: 5
670 role_id: 2
671 old_status_id: 6
672 id: 240
673 tracker_id: 3
674 workflows_026:
675 new_status_id: 1
676 role_id: 1
677 old_status_id: 6
678 id: 26
679 tracker_id: 1
680 workflows_052:
681 new_status_id: 2
682 role_id: 2
683 old_status_id: 5
684 id: 52
685 tracker_id: 1
686 workflows_107:
687 new_status_id: 2
688 role_id: 1
689 old_status_id: 4
690 id: 107
691 tracker_id: 2
692 workflows_133:
693 new_status_id: 4
694 role_id: 2
695 old_status_id: 3
696 id: 133
697 tracker_id: 2
698 workflows_214:
699 new_status_id: 5
700 role_id: 2
701 old_status_id: 1
702 id: 214
703 tracker_id: 3
704 workflows_241:
705 new_status_id: 2
706 role_id: 3
707 old_status_id: 1
708 id: 241
709 tracker_id: 3
710 workflows_027:
711 new_status_id: 2
712 role_id: 1
713 old_status_id: 6
714 id: 27
715 tracker_id: 1
716 workflows_053:
717 new_status_id: 3
718 role_id: 2
719 old_status_id: 5
720 id: 53
721 tracker_id: 1
722 workflows_080:
723 new_status_id: 6
724 role_id: 3
725 old_status_id: 4
726 id: 80
727 tracker_id: 1
728 workflows_108:
729 new_status_id: 3
730 role_id: 1
731 old_status_id: 4
732 id: 108
733 tracker_id: 2
734 workflows_134:
735 new_status_id: 5
736 role_id: 2
737 old_status_id: 3
738 id: 134
739 tracker_id: 2
740 workflows_160:
741 new_status_id: 6
742 role_id: 3
743 old_status_id: 2
744 id: 160
745 tracker_id: 2
746 workflows_215:
747 new_status_id: 6
748 role_id: 2
749 old_status_id: 1
750 id: 215
751 tracker_id: 3
752 workflows_242:
753 new_status_id: 3
754 role_id: 3
755 old_status_id: 1
756 id: 242
757 tracker_id: 3
758 workflows_028:
759 new_status_id: 3
760 role_id: 1
761 old_status_id: 6
762 id: 28
763 tracker_id: 1
764 workflows_054:
765 new_status_id: 4
766 role_id: 2
767 old_status_id: 5
768 id: 54
769 tracker_id: 1
770 workflows_081:
771 new_status_id: 1
772 role_id: 3
773 old_status_id: 5
774 id: 81
775 tracker_id: 1
776 workflows_109:
777 new_status_id: 5
778 role_id: 1
779 old_status_id: 4
780 id: 109
781 tracker_id: 2
782 workflows_135:
783 new_status_id: 6
784 role_id: 2
785 old_status_id: 3
786 id: 135
787 tracker_id: 2
788 workflows_161:
789 new_status_id: 1
790 role_id: 3
791 old_status_id: 3
792 id: 161
793 tracker_id: 2
794 workflows_216:
795 new_status_id: 1
796 role_id: 2
797 old_status_id: 2
798 id: 216
799 tracker_id: 3
800 workflows_243:
801 new_status_id: 4
802 role_id: 3
803 old_status_id: 1
804 id: 243
805 tracker_id: 3
806 workflows_029:
807 new_status_id: 4
808 role_id: 1
809 old_status_id: 6
810 id: 29
811 tracker_id: 1
812 workflows_055:
813 new_status_id: 6
814 role_id: 2
815 old_status_id: 5
816 id: 55
817 tracker_id: 1
818 workflows_082:
819 new_status_id: 2
820 role_id: 3
821 old_status_id: 5
822 id: 82
823 tracker_id: 1
824 workflows_136:
825 new_status_id: 1
826 role_id: 2
827 old_status_id: 4
828 id: 136
829 tracker_id: 2
830 workflows_162:
831 new_status_id: 2
832 role_id: 3
833 old_status_id: 3
834 id: 162
835 tracker_id: 2
836 workflows_217:
837 new_status_id: 3
838 role_id: 2
839 old_status_id: 2
840 id: 217
841 tracker_id: 3
842 workflows_270:
843 new_status_id: 5
844 role_id: 3
845 old_status_id: 6
846 id: 270
847 tracker_id: 3
848 workflows_244:
849 new_status_id: 5
850 role_id: 3
851 old_status_id: 1
852 id: 244
853 tracker_id: 3
854 workflows_056:
855 new_status_id: 1
856 role_id: 2
857 old_status_id: 6
858 id: 56
859 tracker_id: 1
860 workflows_137:
861 new_status_id: 2
862 role_id: 2
863 old_status_id: 4
864 id: 137
865 tracker_id: 2
866 workflows_163:
867 new_status_id: 4
868 role_id: 3
869 old_status_id: 3
870 id: 163
871 tracker_id: 2
872 workflows_190:
873 new_status_id: 6
874 role_id: 1
875 old_status_id: 2
876 id: 190
877 tracker_id: 3
878 workflows_218:
879 new_status_id: 4
880 role_id: 2
881 old_status_id: 2
882 id: 218
883 tracker_id: 3
884 workflows_245:
885 new_status_id: 6
886 role_id: 3
887 old_status_id: 1
888 id: 245
889 tracker_id: 3
890 workflows_057:
891 new_status_id: 2
892 role_id: 2
893 old_status_id: 6
894 id: 57
895 tracker_id: 1
896 workflows_083:
897 new_status_id: 3
898 role_id: 3
899 old_status_id: 5
900 id: 83
901 tracker_id: 1
902 workflows_138:
903 new_status_id: 3
904 role_id: 2
905 old_status_id: 4
906 id: 138
907 tracker_id: 2
908 workflows_164:
909 new_status_id: 5
910 role_id: 3
911 old_status_id: 3
912 id: 164
913 tracker_id: 2
914 workflows_191:
915 new_status_id: 1
916 role_id: 1
917 old_status_id: 3
918 id: 191
919 tracker_id: 3
920 workflows_219:
921 new_status_id: 5
922 role_id: 2
923 old_status_id: 2
924 id: 219
925 tracker_id: 3
926 workflows_246:
927 new_status_id: 1
928 role_id: 3
929 old_status_id: 2
930 id: 246
931 tracker_id: 3
932 workflows_058:
933 new_status_id: 3
934 role_id: 2
935 old_status_id: 6
936 id: 58
937 tracker_id: 1
938 workflows_084:
939 new_status_id: 4
940 role_id: 3
941 old_status_id: 5
942 id: 84
943 tracker_id: 1
944 workflows_139:
945 new_status_id: 5
946 role_id: 2
947 old_status_id: 4
948 id: 139
949 tracker_id: 2
950 workflows_165:
951 new_status_id: 6
952 role_id: 3
953 old_status_id: 3
954 id: 165
955 tracker_id: 2
956 workflows_192:
957 new_status_id: 2
958 role_id: 1
959 old_status_id: 3
960 id: 192
961 tracker_id: 3
962 workflows_247:
963 new_status_id: 3
964 role_id: 3
965 old_status_id: 2
966 id: 247
967 tracker_id: 3
968 workflows_059:
969 new_status_id: 4
970 role_id: 2
971 old_status_id: 6
972 id: 59
973 tracker_id: 1
974 workflows_085:
975 new_status_id: 6
976 role_id: 3
977 old_status_id: 5
978 id: 85
979 tracker_id: 1
980 workflows_166:
981 new_status_id: 1
982 role_id: 3
983 old_status_id: 4
984 id: 166
985 tracker_id: 2
986 workflows_248:
987 new_status_id: 4
988 role_id: 3
989 old_status_id: 2
990 id: 248
991 tracker_id: 3
992 workflows_086:
993 new_status_id: 1
994 role_id: 3
995 old_status_id: 6
996 id: 86
997 tracker_id: 1
998 workflows_167:
999 new_status_id: 2
1000 role_id: 3
1001 old_status_id: 4
1002 id: 167
1003 tracker_id: 2
1004 workflows_193:
1005 new_status_id: 4
1006 role_id: 1
1007 old_status_id: 3
1008 id: 193
1009 tracker_id: 3
1010 workflows_249:
1011 new_status_id: 5
1012 role_id: 3
1013 old_status_id: 2
1014 id: 249
1015 tracker_id: 3
1016 workflows_087:
1017 new_status_id: 2
1018 role_id: 3
1019 old_status_id: 6
1020 id: 87
1021 tracker_id: 1
1022 workflows_168:
1023 new_status_id: 3
1024 role_id: 3
1025 old_status_id: 4
1026 id: 168
1027 tracker_id: 2
1028 workflows_194:
1029 new_status_id: 5
1030 role_id: 1
1031 old_status_id: 3
1032 id: 194
1033 tracker_id: 3
1034 workflows_088:
1035 new_status_id: 3
1036 role_id: 3
1037 old_status_id: 6
1038 id: 88
1039 tracker_id: 1
1040 workflows_169:
1041 new_status_id: 5
1042 role_id: 3
1043 old_status_id: 4
1044 id: 169
1045 tracker_id: 2
1046 workflows_195:
1047 new_status_id: 6
1048 role_id: 1
1049 old_status_id: 3
1050 id: 195
1051 tracker_id: 3
1052 workflows_089:
1053 new_status_id: 4
1054 role_id: 3
1055 old_status_id: 6
1056 id: 89
1057 tracker_id: 1
1058 workflows_196:
1059 new_status_id: 1
1060 role_id: 1
1061 old_status_id: 4
1062 id: 196
1063 tracker_id: 3
1064 workflows_197:
1065 new_status_id: 2
1066 role_id: 1
1067 old_status_id: 4
1068 id: 197
1069 tracker_id: 3
1070 workflows_198:
1071 new_status_id: 3
1072 role_id: 1
1073 old_status_id: 4
1074 id: 198
1075 tracker_id: 3
1076 workflows_199:
1077 new_status_id: 5
1078 role_id: 1
1079 old_status_id: 4
1080 id: 199
1081 tracker_id: 3
1082 workflows_010:
1083 new_status_id: 6
1084 role_id: 1
1085 old_status_id: 2
1086 id: 10
1087 tracker_id: 1
1088 workflows_011:
1089 new_status_id: 1
1090 role_id: 1
1091 old_status_id: 3
1092 id: 11
1093 tracker_id: 1
1094 workflows_012:
1095 new_status_id: 2
1096 role_id: 1
1097 old_status_id: 3
1098 id: 12
1099 tracker_id: 1
1100 workflows_200:
1101 new_status_id: 6
1102 role_id: 1
1103 old_status_id: 4
1104 id: 200
1105 tracker_id: 3
1106 workflows_013:
1107 new_status_id: 4
1108 role_id: 1
1109 old_status_id: 3
1110 id: 13
1111 tracker_id: 1
1112 workflows_120:
1113 new_status_id: 5
1114 role_id: 1
1115 old_status_id: 6
1116 id: 120
1117 tracker_id: 2
1118 workflows_201:
1119 new_status_id: 1
1120 role_id: 1
1121 old_status_id: 5
1122 id: 201
1123 tracker_id: 3
1124 workflows_040:
1125 new_status_id: 6
1126 role_id: 2
1127 old_status_id: 2
1128 id: 40
1129 tracker_id: 1
1130 workflows_121:
1131 new_status_id: 2
1132 role_id: 2
1133 old_status_id: 1
1134 id: 121
1135 tracker_id: 2
1136 workflows_202:
1137 new_status_id: 2
1138 role_id: 1
1139 old_status_id: 5
1140 id: 202
1141 tracker_id: 3
1142 workflows_014:
1143 new_status_id: 5
1144 role_id: 1
1145 old_status_id: 3
1146 id: 14
1147 tracker_id: 1
1148 workflows_041:
1149 new_status_id: 1
1150 role_id: 2
1151 old_status_id: 3
1152 id: 41
1153 tracker_id: 1
1154 workflows_122:
1155 new_status_id: 3
1156 role_id: 2
1157 old_status_id: 1
1158 id: 122
1159 tracker_id: 2
1160 workflows_203:
1161 new_status_id: 3
1162 role_id: 1
1163 old_status_id: 5
1164 id: 203
1165 tracker_id: 3
1166 workflows_015:
1167 new_status_id: 6
1168 role_id: 1
1169 old_status_id: 3
1170 id: 15
1171 tracker_id: 1
1172 workflows_230:
1173 new_status_id: 6
1174 role_id: 2
1175 old_status_id: 4
1176 id: 230
1177 tracker_id: 3
1178 workflows_123:
1179 new_status_id: 4
1180 role_id: 2
1181 old_status_id: 1
1182 id: 123
1183 tracker_id: 2
1184 workflows_204:
1185 new_status_id: 4
1186 role_id: 1
1187 old_status_id: 5
1188 id: 204
1189 tracker_id: 3
1190 workflows_016:
1191 new_status_id: 1
1192 role_id: 1
1193 old_status_id: 4
1194 id: 16
1195 tracker_id: 1
1196 workflows_042:
1197 new_status_id: 2
1198 role_id: 2
1199 old_status_id: 3
1200 id: 42
1201 tracker_id: 1
1202 workflows_231:
1203 new_status_id: 1
1204 role_id: 2
1205 old_status_id: 5
1206 id: 231
1207 tracker_id: 3
1208 workflows_070:
1209 new_status_id: 6
1210 role_id: 3
1211 old_status_id: 2
1212 id: 70
1213 tracker_id: 1
1214 workflows_124:
1215 new_status_id: 5
1216 role_id: 2
1217 old_status_id: 1
1218 id: 124
1219 tracker_id: 2
1220 workflows_150:
1221 new_status_id: 5
1222 role_id: 2
1223 old_status_id: 6
1224 id: 150
1225 tracker_id: 2
1226 workflows_205:
1227 new_status_id: 6
1228 role_id: 1
1229 old_status_id: 5
1230 id: 205
1231 tracker_id: 3
1232 workflows_017:
1233 new_status_id: 2
1234 role_id: 1
1235 old_status_id: 4
1236 id: 17
1237 tracker_id: 1
1238 workflows_043:
1239 new_status_id: 4
1240 role_id: 2
1241 old_status_id: 3
1242 id: 43
1243 tracker_id: 1
1244 workflows_232:
1245 new_status_id: 2
1246 role_id: 2
1247 old_status_id: 5
1248 id: 232
1249 tracker_id: 3
1250 workflows_125:
1251 new_status_id: 6
1252 role_id: 2
1253 old_status_id: 1
1254 id: 125
1255 tracker_id: 2
1256 workflows_151:
1257 new_status_id: 2
1258 role_id: 3
1259 old_status_id: 1
1260 id: 151
1261 tracker_id: 2
1262 workflows_206:
1263 new_status_id: 1
1264 role_id: 1
1265 old_status_id: 6
1266 id: 206
1267 tracker_id: 3
1268 workflows_018:
1269 new_status_id: 3
1270 role_id: 1
1271 old_status_id: 4
1272 id: 18
1273 tracker_id: 1
1274 workflows_044:
1275 new_status_id: 5
1276 role_id: 2
1277 old_status_id: 3
1278 id: 44
1279 tracker_id: 1
1280 workflows_071:
1281 new_status_id: 1
1282 role_id: 3
1283 old_status_id: 3
1284 id: 71
1285 tracker_id: 1
1286 workflows_233:
1287 new_status_id: 3
1288 role_id: 2
1289 old_status_id: 5
1290 id: 233
1291 tracker_id: 3
1292 workflows_126:
1293 new_status_id: 1
1294 role_id: 2
1295 old_status_id: 2
1296 id: 126
1297 tracker_id: 2
1298 workflows_152:
1299 new_status_id: 3
1300 role_id: 3
1301 old_status_id: 1
1302 id: 152
1303 tracker_id: 2
1304 workflows_207:
1305 new_status_id: 2
1306 role_id: 1
1307 old_status_id: 6
1308 id: 207
1309 tracker_id: 3
1310 workflows_019:
1311 new_status_id: 5
1312 role_id: 1
1313 old_status_id: 4
1314 id: 19
1315 tracker_id: 1
1316 workflows_045:
1317 new_status_id: 6
1318 role_id: 2
1319 old_status_id: 3
1320 id: 45
1321 tracker_id: 1
1322 workflows_260:
1323 new_status_id: 6
1324 role_id: 3
1325 old_status_id: 4
1326 id: 260
1327 tracker_id: 3
1328 workflows_234:
1329 new_status_id: 4
1330 role_id: 2
1331 old_status_id: 5
1332 id: 234
1333 tracker_id: 3
1334 workflows_127:
1335 new_status_id: 3
1336 role_id: 2
1337 old_status_id: 2
1338 id: 127
1339 tracker_id: 2
1340 workflows_153:
1341 new_status_id: 4
1342 role_id: 3
1343 old_status_id: 1
1344 id: 153
1345 tracker_id: 2
1346 workflows_180:
1347 new_status_id: 5
1348 role_id: 3
1349 old_status_id: 6
1350 id: 180
1351 tracker_id: 2
1352 workflows_208:
1353 new_status_id: 3
1354 role_id: 1
1355 old_status_id: 6
1356 id: 208
1357 tracker_id: 3
1358 workflows_046:
1359 new_status_id: 1
1360 role_id: 2
1361 old_status_id: 4
1362 id: 46
1363 tracker_id: 1
1364 workflows_072:
1365 new_status_id: 2
1366 role_id: 3
1367 old_status_id: 3
1368 id: 72
1369 tracker_id: 1
1370 workflows_261:
1371 new_status_id: 1
1372 role_id: 3
1373 old_status_id: 5
1374 id: 261
1375 tracker_id: 3
1376 workflows_235:
1377 new_status_id: 6
1378 role_id: 2
1379 old_status_id: 5
1380 id: 235
1381 tracker_id: 3
1382 workflows_154:
1383 new_status_id: 5
1384 role_id: 3
1385 old_status_id: 1
1386 id: 154
1387 tracker_id: 2
1388 workflows_181:
1389 new_status_id: 2
1390 role_id: 1
1391 old_status_id: 1
1392 id: 181
1393 tracker_id: 3
1394 workflows_209:
1395 new_status_id: 4
1396 role_id: 1
1397 old_status_id: 6
1398 id: 209
1399 tracker_id: 3
1400 workflows_047:
1401 new_status_id: 2
1402 role_id: 2
1403 old_status_id: 4
1404 id: 47
1405 tracker_id: 1
1406 workflows_073:
1407 new_status_id: 4
1408 role_id: 3
1409 old_status_id: 3
1410 id: 73
1411 tracker_id: 1
1412 workflows_128:
1413 new_status_id: 4
1414 role_id: 2
1415 old_status_id: 2
1416 id: 128
1417 tracker_id: 2
1418 workflows_262:
1419 new_status_id: 2
1420 role_id: 3
1421 old_status_id: 5
1422 id: 262
1423 tracker_id: 3
1424 workflows_236:
1425 new_status_id: 1
1426 role_id: 2
1427 old_status_id: 6
1428 id: 236
1429 tracker_id: 3
1430 workflows_155:
1431 new_status_id: 6
1432 role_id: 3
1433 old_status_id: 1
1434 id: 155
1435 tracker_id: 2
1436 workflows_048:
1437 new_status_id: 3
1438 role_id: 2
1439 old_status_id: 4
1440 id: 48
1441 tracker_id: 1
1442 workflows_074:
1443 new_status_id: 5
1444 role_id: 3
1445 old_status_id: 3
1446 id: 74
1447 tracker_id: 1
1448 workflows_129:
1449 new_status_id: 5
1450 role_id: 2
1451 old_status_id: 2
1452 id: 129
1453 tracker_id: 2
1454 workflows_263:
1455 new_status_id: 3
1456 role_id: 3
1457 old_status_id: 5
1458 id: 263
1459 tracker_id: 3
1460 workflows_237:
1461 new_status_id: 2
1462 role_id: 2
1463 old_status_id: 6
1464 id: 237
1465 tracker_id: 3
1466 workflows_182:
1467 new_status_id: 3
1468 role_id: 1
1469 old_status_id: 1
1470 id: 182
1471 tracker_id: 3
1472 workflows_049:
1473 new_status_id: 5
1474 role_id: 2
1475 old_status_id: 4
1476 id: 49
1477 tracker_id: 1
1478 workflows_075:
1479 new_status_id: 6
1480 role_id: 3
1481 old_status_id: 3
1482 id: 75
1483 tracker_id: 1
1484 workflows_156:
1485 new_status_id: 1
1486 role_id: 3
1487 old_status_id: 2
1488 id: 156
1489 tracker_id: 2
1490 workflows_264:
1491 new_status_id: 4
1492 role_id: 3
1493 old_status_id: 5
1494 id: 264
1495 tracker_id: 3
1496 workflows_238:
1497 new_status_id: 3
1498 role_id: 2
1499 old_status_id: 6
1500 id: 238
1501 tracker_id: 3
1502 workflows_183:
1503 new_status_id: 4
1504 role_id: 1
1505 old_status_id: 1
1506 id: 183
1507 tracker_id: 3
1508 workflows_076:
1509 new_status_id: 1
1510 role_id: 3
1511 old_status_id: 4
1512 id: 76
1513 tracker_id: 1
1514 workflows_157:
1515 new_status_id: 3
1516 role_id: 3
1517 old_status_id: 2
1518 id: 157
1519 tracker_id: 2
1520 workflows_265:
1521 new_status_id: 6
1522 role_id: 3
1523 old_status_id: 5
1524 id: 265
1525 tracker_id: 3
1526 workflows_239:
1527 new_status_id: 4
1528 role_id: 2
1529 old_status_id: 6
1530 id: 239
1531 tracker_id: 3
1532 workflows_077:
1533 new_status_id: 2
1534 role_id: 3
1535 old_status_id: 4
1536 id: 77
1537 tracker_id: 1
1538 workflows_158:
1539 new_status_id: 4
1540 role_id: 3
1541 old_status_id: 2
1542 id: 158
1543 tracker_id: 2
1544 workflows_184:
1545 new_status_id: 5
1546 role_id: 1
1547 old_status_id: 1
1548 id: 184
1549 tracker_id: 3
1550 workflows_266:
1551 new_status_id: 1
1552 role_id: 3
1553 old_status_id: 6
1554 id: 266
1555 tracker_id: 3
1556 workflows_078:
1557 new_status_id: 3
1558 role_id: 3
1559 old_status_id: 4
1560 id: 78
1561 tracker_id: 1
1562 workflows_159:
1563 new_status_id: 5
1564 role_id: 3
1565 old_status_id: 2
1566 id: 159
1567 tracker_id: 2
1568 workflows_185:
1569 new_status_id: 6
1570 role_id: 1
1571 old_status_id: 1
1572 id: 185
1573 tracker_id: 3
1574 workflows_267:
1575 new_status_id: 2
1576 role_id: 3
1577 old_status_id: 6
1578 id: 267
1579 tracker_id: 3
1580 workflows_079:
1581 new_status_id: 5
1582 role_id: 3
1583 old_status_id: 4
1584 id: 79
1585 tracker_id: 1
1586 workflows_186:
1587 new_status_id: 1
1588 role_id: 1
1589 old_status_id: 2
1590 id: 186
1591 tracker_id: 3
1592 workflows_268:
1593 new_status_id: 3
1594 role_id: 3
1595 old_status_id: 6
1596 id: 268
1597 tracker_id: 3
1598 workflows_187:
1599 new_status_id: 3
1600 role_id: 1
1601 old_status_id: 2
1602 id: 187
1603 tracker_id: 3
1604 workflows_269:
1605 new_status_id: 4
1606 role_id: 3
1607 old_status_id: 6
1608 id: 269
1609 tracker_id: 3
1610 workflows_188:
1611 new_status_id: 4
1612 role_id: 1
1613 old_status_id: 2
1614 id: 188
1615 tracker_id: 3
@@ -1,61 +1,61
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../test_helper'
19 require 'custom_fields_controller'
20
21 # Re-raise errors caught by the controller.
22 class CustomFieldsController; def rescue_action(e) raise e end; end
23
24 class CustomFieldsControllerTest < ActionController::TestCase
25 fixtures :custom_fields, :trackers, :users
26
27 def setup
28 @controller = CustomFieldsController.new
29 @request = ActionController::TestRequest.new
30 @response = ActionController::TestResponse.new
31 @request.session[:user_id] = 1
32 end
33
34 def test_post_new_list_custom_field
35 assert_difference 'CustomField.count' do
36 post :new, :type => "IssueCustomField",
37 :custom_field => {:name => "test_post_new_list",
38 :default_value => "",
39 :min_length => "0",
40 :searchable => "0",
41 :regexp => "",
42 :is_for_all => "1",
43 :possible_values => "0.1\n0.2\n",
44 :max_length => "0",
45 :is_filter => "0",
46 :is_required =>"0",
47 :field_format => "list",
48 :tracker_ids => ["1", ""]}
49 end
50 assert_redirected_to '/custom_fields?tab=IssueCustomField'
51 field = IssueCustomField.find_by_name('test_post_new_list')
52 assert_not_nil field
53 assert_equal ["0.1", "0.2"], field.possible_values
54 assert_equal 1, field.trackers.size
55 end
56
57 def test_invalid_custom_field_class_should_redirect_to_list
58 get :new, :type => 'UnknownCustomField'
59 assert_redirected_to '/custom_fields'
60 end
61 end
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../test_helper'
19 require 'custom_fields_controller'
20
21 # Re-raise errors caught by the controller.
22 class CustomFieldsController; def rescue_action(e) raise e end; end
23
24 class CustomFieldsControllerTest < ActionController::TestCase
25 fixtures :custom_fields, :trackers, :users
26
27 def setup
28 @controller = CustomFieldsController.new
29 @request = ActionController::TestRequest.new
30 @response = ActionController::TestResponse.new
31 @request.session[:user_id] = 1
32 end
33
34 def test_post_new_list_custom_field
35 assert_difference 'CustomField.count' do
36 post :new, :type => "IssueCustomField",
37 :custom_field => {:name => "test_post_new_list",
38 :default_value => "",
39 :min_length => "0",
40 :searchable => "0",
41 :regexp => "",
42 :is_for_all => "1",
43 :possible_values => "0.1\n0.2\n",
44 :max_length => "0",
45 :is_filter => "0",
46 :is_required =>"0",
47 :field_format => "list",
48 :tracker_ids => ["1", ""]}
49 end
50 assert_redirected_to '/custom_fields?tab=IssueCustomField'
51 field = IssueCustomField.find_by_name('test_post_new_list')
52 assert_not_nil field
53 assert_equal ["0.1", "0.2"], field.possible_values
54 assert_equal 1, field.trackers.size
55 end
56
57 def test_invalid_custom_field_class_should_redirect_to_list
58 get :new, :type => 'UnknownCustomField'
59 assert_redirected_to '/custom_fields'
60 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
2 # Copyright (C) 2006-2008 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../test_helper'
19 require 'projects_controller'
20
21 # Re-raise errors caught by the controller.
22 class ProjectsController; def rescue_action(e) raise e end; end
23
24 class ProjectsControllerTest < ActionController::TestCase
25 fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
26 :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
27 :attachments
28
29 def setup
30 @controller = ProjectsController.new
31 @request = ActionController::TestRequest.new
32 @response = ActionController::TestResponse.new
33 @request.session[:user_id] = nil
34 Setting.default_language = 'en'
35 end
36
37 def test_index_routing
38 assert_routing(
39 {:method => :get, :path => '/projects'},
40 :controller => 'projects', :action => 'index'
41 )
42 end
43
44 def test_index
45 get :index
46 assert_response :success
47 assert_template 'index'
48 assert_not_nil assigns(:projects)
49
50 assert_tag :ul, :child => {:tag => 'li',
51 :descendant => {:tag => 'a', :content => 'eCookbook'},
52 :child => { :tag => 'ul',
53 :descendant => { :tag => 'a',
54 :content => 'Child of private child'
55 }
56 }
57 }
58
59 assert_no_tag :a, :content => /Private child of eCookbook/
60 end
61
62 def test_index_atom_routing
63 assert_routing(
64 {:method => :get, :path => '/projects.atom'},
65 :controller => 'projects', :action => 'index', :format => 'atom'
66 )
67 end
68
69 def test_index_atom
70 get :index, :format => 'atom'
71 assert_response :success
72 assert_template 'common/feed.atom.rxml'
73 assert_select 'feed>title', :text => 'Redmine: Latest projects'
74 assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_by(User.current))
75 end
76
77 def test_add_routing
78 assert_routing(
79 {:method => :get, :path => '/projects/new'},
80 :controller => 'projects', :action => 'add'
81 )
82 assert_recognizes(
83 {:controller => 'projects', :action => 'add'},
84 {:method => :post, :path => '/projects/new'}
85 )
86 assert_recognizes(
87 {:controller => 'projects', :action => 'add'},
88 {:method => :post, :path => '/projects'}
89 )
90 end
91
92 def test_get_add
93 @request.session[:user_id] = 1
94 get :add
95 assert_response :success
96 assert_template 'add'
97 end
98
99 def test_get_add_by_non_admin
100 @request.session[:user_id] = 2
101 get :add
102 assert_response :success
103 assert_template 'add'
104 end
105
106 def test_post_add
107 @request.session[:user_id] = 1
108 post :add, :project => { :name => "blog",
109 :description => "weblog",
110 :identifier => "blog",
111 :is_public => 1,
112 :custom_field_values => { '3' => 'Beta' }
113 }
114 assert_redirected_to '/projects/blog/settings'
115
116 project = Project.find_by_name('blog')
117 assert_kind_of Project, project
118 assert_equal 'weblog', project.description
119 assert_equal true, project.is_public?
120 end
121
122 def test_post_add_by_non_admin
123 @request.session[:user_id] = 2
124 post :add, :project => { :name => "blog",
125 :description => "weblog",
126 :identifier => "blog",
127 :is_public => 1,
128 :custom_field_values => { '3' => 'Beta' }
129 }
130 assert_redirected_to '/projects/blog/settings'
131
132 project = Project.find_by_name('blog')
133 assert_kind_of Project, project
134 assert_equal 'weblog', project.description
135 assert_equal true, project.is_public?
136
137 # User should be added as a project member
138 assert User.find(2).member_of?(project)
139 assert_equal 1, project.members.size
140 end
141
142 def test_show_routing
143 assert_routing(
144 {:method => :get, :path => '/projects/test'},
145 :controller => 'projects', :action => 'show', :id => 'test'
146 )
147 end
148
149 def test_show_by_id
150 get :show, :id => 1
151 assert_response :success
152 assert_template 'show'
153 assert_not_nil assigns(:project)
154 end
155
156 def test_show_by_identifier
157 get :show, :id => 'ecookbook'
158 assert_response :success
159 assert_template 'show'
160 assert_not_nil assigns(:project)
161 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
162 end
163
164 def test_show_should_not_fail_when_custom_values_are_nil
165 project = Project.find_by_identifier('ecookbook')
166 project.custom_values.first.update_attribute(:value, nil)
167 get :show, :id => 'ecookbook'
168 assert_response :success
169 assert_template 'show'
170 assert_not_nil assigns(:project)
171 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
172 end
173
174 def test_private_subprojects_hidden
175 get :show, :id => 'ecookbook'
176 assert_response :success
177 assert_template 'show'
178 assert_no_tag :tag => 'a', :content => /Private child/
179 end
180
181 def test_private_subprojects_visible
182 @request.session[:user_id] = 2 # manager who is a member of the private subproject
183 get :show, :id => 'ecookbook'
184 assert_response :success
185 assert_template 'show'
186 assert_tag :tag => 'a', :content => /Private child/
187 end
188
189 def test_settings_routing
190 assert_routing(
191 {:method => :get, :path => '/projects/4223/settings'},
192 :controller => 'projects', :action => 'settings', :id => '4223'
193 )
194 assert_routing(
195 {:method => :get, :path => '/projects/4223/settings/members'},
196 :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members'
197 )
198 end
199
200 def test_settings
201 @request.session[:user_id] = 2 # manager
202 get :settings, :id => 1
203 assert_response :success
204 assert_template 'settings'
205 end
206
207 def test_edit
208 @request.session[:user_id] = 2 # manager
209 post :edit, :id => 1, :project => {:name => 'Test changed name',
210 :issue_custom_field_ids => ['']}
211 assert_redirected_to 'projects/ecookbook/settings'
212 project = Project.find(1)
213 assert_equal 'Test changed name', project.name
214 end
215
216 def test_add_version_routing
217 assert_routing(
218 {:method => :get, :path => 'projects/64/versions/new'},
219 :controller => 'projects', :action => 'add_version', :id => '64'
220 )
221 assert_routing(
222 #TODO: use PUT
223 {:method => :post, :path => 'projects/64/versions/new'},
224 :controller => 'projects', :action => 'add_version', :id => '64'
225 )
226 end
227
228 def test_add_issue_category_routing
229 assert_routing(
230 {:method => :get, :path => 'projects/test/categories/new'},
231 :controller => 'projects', :action => 'add_issue_category', :id => 'test'
232 )
233 assert_routing(
234 #TODO: use PUT and update form
235 {:method => :post, :path => 'projects/64/categories/new'},
236 :controller => 'projects', :action => 'add_issue_category', :id => '64'
237 )
238 end
239
240 def test_destroy_routing
241 assert_routing(
242 {:method => :get, :path => '/projects/567/destroy'},
243 :controller => 'projects', :action => 'destroy', :id => '567'
244 )
245 assert_routing(
246 #TODO: use DELETE and update form
247 {:method => :post, :path => 'projects/64/destroy'},
248 :controller => 'projects', :action => 'destroy', :id => '64'
249 )
250 end
251
252 def test_get_destroy
253 @request.session[:user_id] = 1 # admin
254 get :destroy, :id => 1
255 assert_response :success
256 assert_template 'destroy'
257 assert_not_nil Project.find_by_id(1)
258 end
259
260 def test_post_destroy
261 @request.session[:user_id] = 1 # admin
262 post :destroy, :id => 1, :confirm => 1
263 assert_redirected_to 'admin/projects'
264 assert_nil Project.find_by_id(1)
265 end
266
267 def test_add_file
268 set_tmp_attachments_directory
269 @request.session[:user_id] = 2
270 Setting.notified_events = ['file_added']
271 ActionMailer::Base.deliveries.clear
272
273 assert_difference 'Attachment.count' do
274 post :add_file, :id => 1, :version_id => '',
275 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
276 end
277 assert_redirected_to 'projects/ecookbook/files'
278 a = Attachment.find(:first, :order => 'created_on DESC')
279 assert_equal 'testfile.txt', a.filename
280 assert_equal Project.find(1), a.container
281
282 mail = ActionMailer::Base.deliveries.last
283 assert_kind_of TMail::Mail, mail
284 assert_equal "[eCookbook] New file", mail.subject
285 assert mail.body.include?('testfile.txt')
286 end
287
288 def test_add_file_routing
289 assert_routing(
290 {:method => :get, :path => '/projects/33/files/new'},
291 :controller => 'projects', :action => 'add_file', :id => '33'
292 )
293 assert_routing(
294 {:method => :post, :path => '/projects/33/files/new'},
295 :controller => 'projects', :action => 'add_file', :id => '33'
296 )
297 end
298
299 def test_add_version_file
300 set_tmp_attachments_directory
301 @request.session[:user_id] = 2
302 Setting.notified_events = ['file_added']
303
304 assert_difference 'Attachment.count' do
305 post :add_file, :id => 1, :version_id => '2',
306 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
307 end
308 assert_redirected_to 'projects/ecookbook/files'
309 a = Attachment.find(:first, :order => 'created_on DESC')
310 assert_equal 'testfile.txt', a.filename
311 assert_equal Version.find(2), a.container
312 end
313
314 def test_list_files
315 get :list_files, :id => 1
316 assert_response :success
317 assert_template 'list_files'
318 assert_not_nil assigns(:containers)
319
320 # file attached to the project
321 assert_tag :a, :content => 'project_file.zip',
322 :attributes => { :href => '/attachments/download/8/project_file.zip' }
323
324 # file attached to a project's version
325 assert_tag :a, :content => 'version_file.zip',
326 :attributes => { :href => '/attachments/download/9/version_file.zip' }
327 end
328
329 def test_list_files_routing
330 assert_routing(
331 {:method => :get, :path => '/projects/33/files'},
332 :controller => 'projects', :action => 'list_files', :id => '33'
333 )
334 end
335
336 def test_changelog_routing
337 assert_routing(
338 {:method => :get, :path => '/projects/44/changelog'},
339 :controller => 'projects', :action => 'changelog', :id => '44'
340 )
341 end
342
343 def test_changelog
344 get :changelog, :id => 1
345 assert_response :success
346 assert_template 'changelog'
347 assert_not_nil assigns(:versions)
348 end
349
350 def test_roadmap_routing
351 assert_routing(
352 {:method => :get, :path => 'projects/33/roadmap'},
353 :controller => 'projects', :action => 'roadmap', :id => '33'
354 )
355 end
356
357 def test_roadmap
358 get :roadmap, :id => 1
359 assert_response :success
360 assert_template 'roadmap'
361 assert_not_nil assigns(:versions)
362 # Version with no date set appears
363 assert assigns(:versions).include?(Version.find(3))
364 # Completed version doesn't appear
365 assert !assigns(:versions).include?(Version.find(1))
366 end
367
368 def test_roadmap_with_completed_versions
369 get :roadmap, :id => 1, :completed => 1
370 assert_response :success
371 assert_template 'roadmap'
372 assert_not_nil assigns(:versions)
373 # Version with no date set appears
374 assert assigns(:versions).include?(Version.find(3))
375 # Completed version appears
376 assert assigns(:versions).include?(Version.find(1))
377 end
378
379 def test_project_activity_routing
380 assert_routing(
381 {:method => :get, :path => '/projects/1/activity'},
382 :controller => 'projects', :action => 'activity', :id => '1'
383 )
384 end
385
386 def test_project_activity_atom_routing
387 assert_routing(
388 {:method => :get, :path => '/projects/1/activity.atom'},
389 :controller => 'projects', :action => 'activity', :id => '1', :format => 'atom'
390 )
391 end
392
393 def test_project_activity
394 get :activity, :id => 1, :with_subprojects => 0
395 assert_response :success
396 assert_template 'activity'
397 assert_not_nil assigns(:events_by_day)
398
399 assert_tag :tag => "h3",
400 :content => /#{2.days.ago.to_date.day}/,
401 :sibling => { :tag => "dl",
402 :child => { :tag => "dt",
403 :attributes => { :class => /issue-edit/ },
404 :child => { :tag => "a",
405 :content => /(#{IssueStatus.find(2).name})/,
406 }
407 }
408 }
409 end
410
411 def test_previous_project_activity
412 get :activity, :id => 1, :from => 3.days.ago.to_date
413 assert_response :success
414 assert_template 'activity'
415 assert_not_nil assigns(:events_by_day)
416
417 assert_tag :tag => "h3",
418 :content => /#{3.day.ago.to_date.day}/,
419 :sibling => { :tag => "dl",
420 :child => { :tag => "dt",
421 :attributes => { :class => /issue/ },
422 :child => { :tag => "a",
423 :content => /#{Issue.find(1).subject}/,
424 }
425 }
426 }
427 end
428
429 def test_global_activity_routing
430 assert_routing({:method => :get, :path => '/activity'}, :controller => 'projects', :action => 'activity', :id => nil)
431 end
432
433 def test_global_activity
434 get :activity
435 assert_response :success
436 assert_template 'activity'
437 assert_not_nil assigns(:events_by_day)
438
439 assert_tag :tag => "h3",
440 :content => /#{5.day.ago.to_date.day}/,
441 :sibling => { :tag => "dl",
442 :child => { :tag => "dt",
443 :attributes => { :class => /issue/ },
444 :child => { :tag => "a",
445 :content => /#{Issue.find(5).subject}/,
446 }
447 }
448 }
449 end
450
451 def test_user_activity
452 get :activity, :user_id => 2
453 assert_response :success
454 assert_template 'activity'
455 assert_not_nil assigns(:events_by_day)
456
457 assert_tag :tag => "h3",
458 :content => /#{3.day.ago.to_date.day}/,
459 :sibling => { :tag => "dl",
460 :child => { :tag => "dt",
461 :attributes => { :class => /issue/ },
462 :child => { :tag => "a",
463 :content => /#{Issue.find(1).subject}/,
464 }
465 }
466 }
467 end
468
469 def test_global_activity_atom_routing
470 assert_routing({:method => :get, :path => '/activity.atom'}, :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom')
471 end
472
473 def test_activity_atom_feed
474 get :activity, :format => 'atom'
475 assert_response :success
476 assert_template 'common/feed.atom.rxml'
477 end
478
479 def test_archive_routing
480 assert_routing(
481 #TODO: use PUT to project path and modify form
482 {:method => :post, :path => 'projects/64/archive'},
483 :controller => 'projects', :action => 'archive', :id => '64'
484 )
485 end
486
487 def test_archive
488 @request.session[:user_id] = 1 # admin
489 post :archive, :id => 1
490 assert_redirected_to 'admin/projects'
491 assert !Project.find(1).active?
492 end
493
494 def test_unarchive_routing
495 assert_routing(
496 #TODO: use PUT to project path and modify form
497 {:method => :post, :path => '/projects/567/unarchive'},
498 :controller => 'projects', :action => 'unarchive', :id => '567'
499 )
500 end
501
502 def test_unarchive
503 @request.session[:user_id] = 1 # admin
504 Project.find(1).archive
505 post :unarchive, :id => 1
506 assert_redirected_to 'admin/projects'
507 assert Project.find(1).active?
508 end
509
510 def test_project_breadcrumbs_should_be_limited_to_3_ancestors
511 CustomField.delete_all
512 parent = nil
513 6.times do |i|
514 p = Project.create!(:name => "Breadcrumbs #{i}", :identifier => "breadcrumbs-#{i}")
515 p.set_parent!(parent)
516 get :show, :id => p
517 assert_tag :h1, :parent => { :attributes => {:id => 'header'}},
518 :children => { :count => [i, 3].min,
519 :only => { :tag => 'a' } }
520
521 parent = p
522 end
523 end
524
525 def test_copy_with_project
526 @request.session[:user_id] = 1 # admin
527 get :copy, :id => 1
528 assert_response :success
529 assert_template 'copy'
530 assert assigns(:project)
531 assert_equal Project.find(1).description, assigns(:project).description
532 assert_nil assigns(:project).id
533 end
534
535 def test_copy_without_project
536 @request.session[:user_id] = 1 # admin
537 get :copy
538 assert_response :redirect
539 assert_redirected_to :controller => 'admin', :action => 'projects'
540 end
541
542 def test_jump_should_redirect_to_active_tab
543 get :show, :id => 1, :jump => 'issues'
544 assert_redirected_to 'projects/ecookbook/issues'
545 end
546
547 def test_jump_should_not_redirect_to_inactive_tab
548 get :show, :id => 3, :jump => 'documents'
549 assert_response :success
550 assert_template 'show'
551 end
552
553 def test_jump_should_not_redirect_to_unknown_tab
554 get :show, :id => 3, :jump => 'foobar'
555 assert_response :success
556 assert_template 'show'
557 end
558
559 # A hook that is manually registered later
560 class ProjectBasedTemplate < Redmine::Hook::ViewListener
561 def view_layouts_base_html_head(context)
562 # Adds a project stylesheet
563 stylesheet_link_tag(context[:project].identifier) if context[:project]
564 end
565 end
566 # Don't use this hook now
567 Redmine::Hook.clear_listeners
568
569 def test_hook_response
570 Redmine::Hook.add_listener(ProjectBasedTemplate)
571 get :show, :id => 1
572 assert_tag :tag => 'link', :attributes => {:href => '/stylesheets/ecookbook.css'},
573 :parent => {:tag => 'head'}
574
575 Redmine::Hook.clear_listeners
576 end
577 end
1 # Redmine - project management software
2 # Copyright (C) 2006-2008 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../test_helper'
19 require 'projects_controller'
20
21 # Re-raise errors caught by the controller.
22 class ProjectsController; def rescue_action(e) raise e end; end
23
24 class ProjectsControllerTest < ActionController::TestCase
25 fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
26 :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
27 :attachments
28
29 def setup
30 @controller = ProjectsController.new
31 @request = ActionController::TestRequest.new
32 @response = ActionController::TestResponse.new
33 @request.session[:user_id] = nil
34 Setting.default_language = 'en'
35 end
36
37 def test_index_routing
38 assert_routing(
39 {:method => :get, :path => '/projects'},
40 :controller => 'projects', :action => 'index'
41 )
42 end
43
44 def test_index
45 get :index
46 assert_response :success
47 assert_template 'index'
48 assert_not_nil assigns(:projects)
49
50 assert_tag :ul, :child => {:tag => 'li',
51 :descendant => {:tag => 'a', :content => 'eCookbook'},
52 :child => { :tag => 'ul',
53 :descendant => { :tag => 'a',
54 :content => 'Child of private child'
55 }
56 }
57 }
58
59 assert_no_tag :a, :content => /Private child of eCookbook/
60 end
61
62 def test_index_atom_routing
63 assert_routing(
64 {:method => :get, :path => '/projects.atom'},
65 :controller => 'projects', :action => 'index', :format => 'atom'
66 )
67 end
68
69 def test_index_atom
70 get :index, :format => 'atom'
71 assert_response :success
72 assert_template 'common/feed.atom.rxml'
73 assert_select 'feed>title', :text => 'Redmine: Latest projects'
74 assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_by(User.current))
75 end
76
77 def test_add_routing
78 assert_routing(
79 {:method => :get, :path => '/projects/new'},
80 :controller => 'projects', :action => 'add'
81 )
82 assert_recognizes(
83 {:controller => 'projects', :action => 'add'},
84 {:method => :post, :path => '/projects/new'}
85 )
86 assert_recognizes(
87 {:controller => 'projects', :action => 'add'},
88 {:method => :post, :path => '/projects'}
89 )
90 end
91
92 def test_get_add
93 @request.session[:user_id] = 1
94 get :add
95 assert_response :success
96 assert_template 'add'
97 end
98
99 def test_get_add_by_non_admin
100 @request.session[:user_id] = 2
101 get :add
102 assert_response :success
103 assert_template 'add'
104 end
105
106 def test_post_add
107 @request.session[:user_id] = 1
108 post :add, :project => { :name => "blog",
109 :description => "weblog",
110 :identifier => "blog",
111 :is_public => 1,
112 :custom_field_values => { '3' => 'Beta' }
113 }
114 assert_redirected_to '/projects/blog/settings'
115
116 project = Project.find_by_name('blog')
117 assert_kind_of Project, project
118 assert_equal 'weblog', project.description
119 assert_equal true, project.is_public?
120 end
121
122 def test_post_add_by_non_admin
123 @request.session[:user_id] = 2
124 post :add, :project => { :name => "blog",
125 :description => "weblog",
126 :identifier => "blog",
127 :is_public => 1,
128 :custom_field_values => { '3' => 'Beta' }
129 }
130 assert_redirected_to '/projects/blog/settings'
131
132 project = Project.find_by_name('blog')
133 assert_kind_of Project, project
134 assert_equal 'weblog', project.description
135 assert_equal true, project.is_public?
136
137 # User should be added as a project member
138 assert User.find(2).member_of?(project)
139 assert_equal 1, project.members.size
140 end
141
142 def test_show_routing
143 assert_routing(
144 {:method => :get, :path => '/projects/test'},
145 :controller => 'projects', :action => 'show', :id => 'test'
146 )
147 end
148
149 def test_show_by_id
150 get :show, :id => 1
151 assert_response :success
152 assert_template 'show'
153 assert_not_nil assigns(:project)
154 end
155
156 def test_show_by_identifier
157 get :show, :id => 'ecookbook'
158 assert_response :success
159 assert_template 'show'
160 assert_not_nil assigns(:project)
161 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
162 end
163
164 def test_show_should_not_fail_when_custom_values_are_nil
165 project = Project.find_by_identifier('ecookbook')
166 project.custom_values.first.update_attribute(:value, nil)
167 get :show, :id => 'ecookbook'
168 assert_response :success
169 assert_template 'show'
170 assert_not_nil assigns(:project)
171 assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
172 end
173
174 def test_private_subprojects_hidden
175 get :show, :id => 'ecookbook'
176 assert_response :success
177 assert_template 'show'
178 assert_no_tag :tag => 'a', :content => /Private child/
179 end
180
181 def test_private_subprojects_visible
182 @request.session[:user_id] = 2 # manager who is a member of the private subproject
183 get :show, :id => 'ecookbook'
184 assert_response :success
185 assert_template 'show'
186 assert_tag :tag => 'a', :content => /Private child/
187 end
188
189 def test_settings_routing
190 assert_routing(
191 {:method => :get, :path => '/projects/4223/settings'},
192 :controller => 'projects', :action => 'settings', :id => '4223'
193 )
194 assert_routing(
195 {:method => :get, :path => '/projects/4223/settings/members'},
196 :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members'
197 )
198 end
199
200 def test_settings
201 @request.session[:user_id] = 2 # manager
202 get :settings, :id => 1
203 assert_response :success
204 assert_template 'settings'
205 end
206
207 def test_edit
208 @request.session[:user_id] = 2 # manager
209 post :edit, :id => 1, :project => {:name => 'Test changed name',
210 :issue_custom_field_ids => ['']}
211 assert_redirected_to 'projects/ecookbook/settings'
212 project = Project.find(1)
213 assert_equal 'Test changed name', project.name
214 end
215
216 def test_add_version_routing
217 assert_routing(
218 {:method => :get, :path => 'projects/64/versions/new'},
219 :controller => 'projects', :action => 'add_version', :id => '64'
220 )
221 assert_routing(
222 #TODO: use PUT
223 {:method => :post, :path => 'projects/64/versions/new'},
224 :controller => 'projects', :action => 'add_version', :id => '64'
225 )
226 end
227
228 def test_add_issue_category_routing
229 assert_routing(
230 {:method => :get, :path => 'projects/test/categories/new'},
231 :controller => 'projects', :action => 'add_issue_category', :id => 'test'
232 )
233 assert_routing(
234 #TODO: use PUT and update form
235 {:method => :post, :path => 'projects/64/categories/new'},
236 :controller => 'projects', :action => 'add_issue_category', :id => '64'
237 )
238 end
239
240 def test_destroy_routing
241 assert_routing(
242 {:method => :get, :path => '/projects/567/destroy'},
243 :controller => 'projects', :action => 'destroy', :id => '567'
244 )
245 assert_routing(
246 #TODO: use DELETE and update form
247 {:method => :post, :path => 'projects/64/destroy'},
248 :controller => 'projects', :action => 'destroy', :id => '64'
249 )
250 end
251
252 def test_get_destroy
253 @request.session[:user_id] = 1 # admin
254 get :destroy, :id => 1
255 assert_response :success
256 assert_template 'destroy'
257 assert_not_nil Project.find_by_id(1)
258 end
259
260 def test_post_destroy
261 @request.session[:user_id] = 1 # admin
262 post :destroy, :id => 1, :confirm => 1
263 assert_redirected_to 'admin/projects'
264 assert_nil Project.find_by_id(1)
265 end
266
267 def test_add_file
268 set_tmp_attachments_directory
269 @request.session[:user_id] = 2
270 Setting.notified_events = ['file_added']
271 ActionMailer::Base.deliveries.clear
272
273 assert_difference 'Attachment.count' do
274 post :add_file, :id => 1, :version_id => '',
275 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
276 end
277 assert_redirected_to 'projects/ecookbook/files'
278 a = Attachment.find(:first, :order => 'created_on DESC')
279 assert_equal 'testfile.txt', a.filename
280 assert_equal Project.find(1), a.container
281
282 mail = ActionMailer::Base.deliveries.last
283 assert_kind_of TMail::Mail, mail
284 assert_equal "[eCookbook] New file", mail.subject
285 assert mail.body.include?('testfile.txt')
286 end
287
288 def test_add_file_routing
289 assert_routing(
290 {:method => :get, :path => '/projects/33/files/new'},
291 :controller => 'projects', :action => 'add_file', :id => '33'
292 )
293 assert_routing(
294 {:method => :post, :path => '/projects/33/files/new'},
295 :controller => 'projects', :action => 'add_file', :id => '33'
296 )
297 end
298
299 def test_add_version_file
300 set_tmp_attachments_directory
301 @request.session[:user_id] = 2
302 Setting.notified_events = ['file_added']
303
304 assert_difference 'Attachment.count' do
305 post :add_file, :id => 1, :version_id => '2',
306 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
307 end
308 assert_redirected_to 'projects/ecookbook/files'
309 a = Attachment.find(:first, :order => 'created_on DESC')
310 assert_equal 'testfile.txt', a.filename
311 assert_equal Version.find(2), a.container
312 end
313
314 def test_list_files
315 get :list_files, :id => 1
316 assert_response :success
317 assert_template 'list_files'
318 assert_not_nil assigns(:containers)
319
320 # file attached to the project
321 assert_tag :a, :content => 'project_file.zip',
322 :attributes => { :href => '/attachments/download/8/project_file.zip' }
323
324 # file attached to a project's version
325 assert_tag :a, :content => 'version_file.zip',
326 :attributes => { :href => '/attachments/download/9/version_file.zip' }
327 end
328
329 def test_list_files_routing
330 assert_routing(
331 {:method => :get, :path => '/projects/33/files'},
332 :controller => 'projects', :action => 'list_files', :id => '33'
333 )
334 end
335
336 def test_changelog_routing
337 assert_routing(
338 {:method => :get, :path => '/projects/44/changelog'},
339 :controller => 'projects', :action => 'changelog', :id => '44'
340 )
341 end
342
343 def test_changelog
344 get :changelog, :id => 1
345 assert_response :success
346 assert_template 'changelog'
347 assert_not_nil assigns(:versions)
348 end
349
350 def test_roadmap_routing
351 assert_routing(
352 {:method => :get, :path => 'projects/33/roadmap'},
353 :controller => 'projects', :action => 'roadmap', :id => '33'
354 )
355 end
356
357 def test_roadmap
358 get :roadmap, :id => 1
359 assert_response :success
360 assert_template 'roadmap'
361 assert_not_nil assigns(:versions)
362 # Version with no date set appears
363 assert assigns(:versions).include?(Version.find(3))
364 # Completed version doesn't appear
365 assert !assigns(:versions).include?(Version.find(1))
366 end
367
368 def test_roadmap_with_completed_versions
369 get :roadmap, :id => 1, :completed => 1
370 assert_response :success
371 assert_template 'roadmap'
372 assert_not_nil assigns(:versions)
373 # Version with no date set appears
374 assert assigns(:versions).include?(Version.find(3))
375 # Completed version appears
376 assert assigns(:versions).include?(Version.find(1))
377 end
378
379 def test_project_activity_routing
380 assert_routing(
381 {:method => :get, :path => '/projects/1/activity'},
382 :controller => 'projects', :action => 'activity', :id => '1'
383 )
384 end
385
386 def test_project_activity_atom_routing
387 assert_routing(
388 {:method => :get, :path => '/projects/1/activity.atom'},
389 :controller => 'projects', :action => 'activity', :id => '1', :format => 'atom'
390 )
391 end
392
393 def test_project_activity
394 get :activity, :id => 1, :with_subprojects => 0
395 assert_response :success
396 assert_template 'activity'
397 assert_not_nil assigns(:events_by_day)
398
399 assert_tag :tag => "h3",
400 :content => /#{2.days.ago.to_date.day}/,
401 :sibling => { :tag => "dl",
402 :child => { :tag => "dt",
403 :attributes => { :class => /issue-edit/ },
404 :child => { :tag => "a",
405 :content => /(#{IssueStatus.find(2).name})/,
406 }
407 }
408 }
409 end
410
411 def test_previous_project_activity
412 get :activity, :id => 1, :from => 3.days.ago.to_date
413 assert_response :success
414 assert_template 'activity'
415 assert_not_nil assigns(:events_by_day)
416
417 assert_tag :tag => "h3",
418 :content => /#{3.day.ago.to_date.day}/,
419 :sibling => { :tag => "dl",
420 :child => { :tag => "dt",
421 :attributes => { :class => /issue/ },
422 :child => { :tag => "a",
423 :content => /#{Issue.find(1).subject}/,
424 }
425 }
426 }
427 end
428
429 def test_global_activity_routing
430 assert_routing({:method => :get, :path => '/activity'}, :controller => 'projects', :action => 'activity', :id => nil)
431 end
432
433 def test_global_activity
434 get :activity
435 assert_response :success
436 assert_template 'activity'
437 assert_not_nil assigns(:events_by_day)
438
439 assert_tag :tag => "h3",
440 :content => /#{5.day.ago.to_date.day}/,
441 :sibling => { :tag => "dl",
442 :child => { :tag => "dt",
443 :attributes => { :class => /issue/ },
444 :child => { :tag => "a",
445 :content => /#{Issue.find(5).subject}/,
446 }
447 }
448 }
449 end
450
451 def test_user_activity
452 get :activity, :user_id => 2
453 assert_response :success
454 assert_template 'activity'
455 assert_not_nil assigns(:events_by_day)
456
457 assert_tag :tag => "h3",
458 :content => /#{3.day.ago.to_date.day}/,
459 :sibling => { :tag => "dl",
460 :child => { :tag => "dt",
461 :attributes => { :class => /issue/ },
462 :child => { :tag => "a",
463 :content => /#{Issue.find(1).subject}/,
464 }
465 }
466 }
467 end
468
469 def test_global_activity_atom_routing
470 assert_routing({:method => :get, :path => '/activity.atom'}, :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom')
471 end
472
473 def test_activity_atom_feed
474 get :activity, :format => 'atom'
475 assert_response :success
476 assert_template 'common/feed.atom.rxml'
477 end
478
479 def test_archive_routing
480 assert_routing(
481 #TODO: use PUT to project path and modify form
482 {:method => :post, :path => 'projects/64/archive'},
483 :controller => 'projects', :action => 'archive', :id => '64'
484 )
485 end
486
487 def test_archive
488 @request.session[:user_id] = 1 # admin
489 post :archive, :id => 1
490 assert_redirected_to 'admin/projects'
491 assert !Project.find(1).active?
492 end
493
494 def test_unarchive_routing
495 assert_routing(
496 #TODO: use PUT to project path and modify form
497 {:method => :post, :path => '/projects/567/unarchive'},
498 :controller => 'projects', :action => 'unarchive', :id => '567'
499 )
500 end
501
502 def test_unarchive
503 @request.session[:user_id] = 1 # admin
504 Project.find(1).archive
505 post :unarchive, :id => 1
506 assert_redirected_to 'admin/projects'
507 assert Project.find(1).active?
508 end
509
510 def test_project_breadcrumbs_should_be_limited_to_3_ancestors
511 CustomField.delete_all
512 parent = nil
513 6.times do |i|
514 p = Project.create!(:name => "Breadcrumbs #{i}", :identifier => "breadcrumbs-#{i}")
515 p.set_parent!(parent)
516 get :show, :id => p
517 assert_tag :h1, :parent => { :attributes => {:id => 'header'}},
518 :children => { :count => [i, 3].min,
519 :only => { :tag => 'a' } }
520
521 parent = p
522 end
523 end
524
525 def test_copy_with_project
526 @request.session[:user_id] = 1 # admin
527 get :copy, :id => 1
528 assert_response :success
529 assert_template 'copy'
530 assert assigns(:project)
531 assert_equal Project.find(1).description, assigns(:project).description
532 assert_nil assigns(:project).id
533 end
534
535 def test_copy_without_project
536 @request.session[:user_id] = 1 # admin
537 get :copy
538 assert_response :redirect
539 assert_redirected_to :controller => 'admin', :action => 'projects'
540 end
541
542 def test_jump_should_redirect_to_active_tab
543 get :show, :id => 1, :jump => 'issues'
544 assert_redirected_to 'projects/ecookbook/issues'
545 end
546
547 def test_jump_should_not_redirect_to_inactive_tab
548 get :show, :id => 3, :jump => 'documents'
549 assert_response :success
550 assert_template 'show'
551 end
552
553 def test_jump_should_not_redirect_to_unknown_tab
554 get :show, :id => 3, :jump => 'foobar'
555 assert_response :success
556 assert_template 'show'
557 end
558
559 # A hook that is manually registered later
560 class ProjectBasedTemplate < Redmine::Hook::ViewListener
561 def view_layouts_base_html_head(context)
562 # Adds a project stylesheet
563 stylesheet_link_tag(context[:project].identifier) if context[:project]
564 end
565 end
566 # Don't use this hook now
567 Redmine::Hook.clear_listeners
568
569 def test_hook_response
570 Redmine::Hook.add_listener(ProjectBasedTemplate)
571 get :show, :id => 1
572 assert_tag :tag => 'link', :attributes => {:href => '/stylesheets/ecookbook.css'},
573 :parent => {:tag => 'head'}
574
575 Redmine::Hook.clear_listeners
576 end
577 end
@@ -1,85 +1,85
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../../test_helper'
19
20 class SortHelperTest < HelperTestCase
21 include SortHelper
22
23 def setup
24 @session = nil
25 @sort_param = nil
26 end
27
28 def test_default_sort_clause_with_array
29 sort_init 'attr1', 'desc'
30 sort_update(['attr1', 'attr2'])
31
32 assert_equal 'attr1 DESC', sort_clause
33 end
34
35 def test_default_sort_clause_with_hash
36 sort_init 'attr1', 'desc'
37 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
38
39 assert_equal 'table1.attr1 DESC', sort_clause
40 end
41
42 def test_default_sort_clause_with_multiple_columns
43 sort_init 'attr1', 'desc'
44 sort_update({'attr1' => ['table1.attr1', 'table1.attr2'], 'attr2' => 'table2.attr2'})
45
46 assert_equal 'table1.attr1 DESC, table1.attr2 DESC', sort_clause
47 end
48
49 def test_params_sort
50 @sort_param = 'attr1,attr2:desc'
51
52 sort_init 'attr1', 'desc'
53 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
54
55 assert_equal 'table1.attr1, table2.attr2 DESC', sort_clause
56 assert_equal 'attr1,attr2:desc', @session['foo_bar_sort']
57 end
58
59 def test_invalid_params_sort
60 @sort_param = 'invalid_key'
61
62 sort_init 'attr1', 'desc'
63 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
64
65 assert_equal 'table1.attr1 DESC', sort_clause
66 assert_equal 'attr1:desc', @session['foo_bar_sort']
67 end
68
69 def test_invalid_order_params_sort
70 @sort_param = 'attr1:foo:bar,attr2'
71
72 sort_init 'attr1', 'desc'
73 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
74
75 assert_equal 'table1.attr1, table2.attr2', sort_clause
76 assert_equal 'attr1,attr2', @session['foo_bar_sort']
77 end
78
79 private
80
81 def controller_name; 'foo'; end
82 def action_name; 'bar'; end
83 def params; {:sort => @sort_param}; end
84 def session; @session ||= {}; end
85 end
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../../test_helper'
19
20 class SortHelperTest < HelperTestCase
21 include SortHelper
22
23 def setup
24 @session = nil
25 @sort_param = nil
26 end
27
28 def test_default_sort_clause_with_array
29 sort_init 'attr1', 'desc'
30 sort_update(['attr1', 'attr2'])
31
32 assert_equal 'attr1 DESC', sort_clause
33 end
34
35 def test_default_sort_clause_with_hash
36 sort_init 'attr1', 'desc'
37 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
38
39 assert_equal 'table1.attr1 DESC', sort_clause
40 end
41
42 def test_default_sort_clause_with_multiple_columns
43 sort_init 'attr1', 'desc'
44 sort_update({'attr1' => ['table1.attr1', 'table1.attr2'], 'attr2' => 'table2.attr2'})
45
46 assert_equal 'table1.attr1 DESC, table1.attr2 DESC', sort_clause
47 end
48
49 def test_params_sort
50 @sort_param = 'attr1,attr2:desc'
51
52 sort_init 'attr1', 'desc'
53 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
54
55 assert_equal 'table1.attr1, table2.attr2 DESC', sort_clause
56 assert_equal 'attr1,attr2:desc', @session['foo_bar_sort']
57 end
58
59 def test_invalid_params_sort
60 @sort_param = 'invalid_key'
61
62 sort_init 'attr1', 'desc'
63 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
64
65 assert_equal 'table1.attr1 DESC', sort_clause
66 assert_equal 'attr1:desc', @session['foo_bar_sort']
67 end
68
69 def test_invalid_order_params_sort
70 @sort_param = 'attr1:foo:bar,attr2'
71
72 sort_init 'attr1', 'desc'
73 sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
74
75 assert_equal 'table1.attr1, table2.attr2', sort_clause
76 assert_equal 'attr1,attr2', @session['foo_bar_sort']
77 end
78
79 private
80
81 def controller_name; 'foo'; end
82 def action_name; 'bar'; end
83 def params; {:sort => @sort_param}; end
84 def session; @session ||= {}; end
85 end
@@ -1,71 +1,71
1 1 # redMine - project management software
2 2 # Copyright (C) 2006 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.dirname(__FILE__) + '/../test_helper'
19 19
20 20 class MemberTest < ActiveSupport::TestCase
21 21 fixtures :users, :projects, :roles, :members, :member_roles
22 22
23 23 def setup
24 24 @jsmith = Member.find(1)
25 25 end
26 26
27 def test_create
28 member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
27 def test_create
28 member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
29 29 assert member.save
30 30 member.reload
31 31
32 32 assert_equal 2, member.roles.size
33 assert_equal Role.find(1), member.roles.sort.first
34 end
33 assert_equal Role.find(1), member.roles.sort.first
34 end
35 35
36 36 def test_update
37 assert_equal "eCookbook", @jsmith.project.name
38 assert_equal "Manager", @jsmith.roles.first.name
39 assert_equal "jsmith", @jsmith.user.login
40
41 @jsmith.mail_notification = !@jsmith.mail_notification
37 assert_equal "eCookbook", @jsmith.project.name
38 assert_equal "Manager", @jsmith.roles.first.name
39 assert_equal "jsmith", @jsmith.user.login
40
41 @jsmith.mail_notification = !@jsmith.mail_notification
42 42 assert @jsmith.save
43 43 end
44 44
45 45 def test_update_roles
46 46 assert_equal 1, @jsmith.roles.size
47 47 @jsmith.role_ids = [1, 2]
48 48 assert @jsmith.save
49 49 assert_equal 2, @jsmith.reload.roles.size
50 50 end
51
52 def test_validate
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
51
52 def test_validate
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
55 55 assert !member.save
56 56
57 57 member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [])
58 58 # must have one role at least
59 assert !member.save
60 end
61
59 assert !member.save
60 end
61
62 62 def test_destroy
63 63 assert_difference 'Member.count', -1 do
64 assert_difference 'MemberRole.count', -1 do
64 assert_difference 'MemberRole.count', -1 do
65 65 @jsmith.destroy
66 66 end
67 67 end
68
69 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
68
69 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
70 70 end
71 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
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
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
1 # redMine - project management software
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
260 17
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
18 require File.dirname(__FILE__) + '/../test_helper'
273 19
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
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
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
@@ -1,154 +1,154
1 1 # redMine - project management software
2 2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.dirname(__FILE__) + '/../test_helper'
19 19
20 20 class RepositoryTest < ActiveSupport::TestCase
21 21 fixtures :projects,
22 22 :trackers,
23 23 :projects_trackers,
24 24 :repositories,
25 25 :issues,
26 26 :issue_statuses,
27 27 :changesets,
28 28 :changes,
29 29 :users,
30 30 :enumerations
31 31
32 32 def setup
33 33 @repository = Project.find(1).repository
34 34 end
35
36 def test_create
35
36 def test_create
37 37 repository = Repository::Subversion.new(:project => Project.find(3))
38 38 assert !repository.save
39 39
40 repository.url = "svn://localhost"
40 repository.url = "svn://localhost"
41 41 assert repository.save
42 42 repository.reload
43 43
44 44 project = Project.find(3)
45 assert_equal repository, project.repository
45 assert_equal repository, project.repository
46 46 end
47 47
48 48 def test_destroy
49 49 changesets = Changeset.count(:all, :conditions => "repository_id = 10")
50 50 changes = Change.count(:all, :conditions => "repository_id = 10", :include => :changeset)
51 51 assert_difference 'Changeset.count', -changesets do
52 52 assert_difference 'Change.count', -changes do
53 53 Repository.find(10).destroy
54 54 end
55 55 end
56 56 end
57 57
58 58 def test_should_not_create_with_disabled_scm
59 59 # disable Subversion
60 60 Setting.enabled_scm = ['Darcs', 'Git']
61 61 repository = Repository::Subversion.new(:project => Project.find(3), :url => "svn://localhost")
62 62 assert !repository.save
63 63 assert_equal I18n.translate('activerecord.errors.messages.invalid'), repository.errors.on(:type)
64 64 # re-enable Subversion for following tests
65 65 Setting.delete_all
66 66 end
67 67
68 68 def test_scan_changesets_for_issue_ids
69 69 Setting.default_language = 'en'
70 70
71 71 # choosing a status to apply to fix issues
72 72 Setting.commit_fix_status_id = IssueStatus.find(:first, :conditions => ["is_closed = ?", true]).id
73 73 Setting.commit_fix_done_ratio = "90"
74 74 Setting.commit_ref_keywords = 'refs , references, IssueID'
75 75 Setting.commit_fix_keywords = 'fixes , closes'
76 76 Setting.default_language = 'en'
77 77 ActionMailer::Base.deliveries.clear
78 78
79 79 # make sure issue 1 is not already closed
80 80 fixed_issue = Issue.find(1)
81 81 assert !fixed_issue.status.is_closed?
82 82 old_status = fixed_issue.status
83 83
84 84 Repository.scan_changesets_for_issue_ids
85 85 assert_equal [101, 102], Issue.find(3).changeset_ids
86 86
87 87 # fixed issues
88 88 fixed_issue.reload
89 89 assert fixed_issue.status.is_closed?
90 90 assert_equal 90, fixed_issue.done_ratio
91 91 assert_equal [101], fixed_issue.changeset_ids
92 92
93 93 # issue change
94 94 journal = fixed_issue.journals.find(:first, :order => 'created_on desc')
95 95 assert_equal User.find_by_login('dlopper'), journal.user
96 96 assert_equal 'Applied in changeset r2.', journal.notes
97 97
98 98 # 2 email notifications
99 99 assert_equal 2, ActionMailer::Base.deliveries.size
100 100 mail = ActionMailer::Base.deliveries.first
101 101 assert_kind_of TMail::Mail, mail
102 102 assert mail.subject.starts_with?("[#{fixed_issue.project.name} - #{fixed_issue.tracker.name} ##{fixed_issue.id}]")
103 103 assert mail.body.include?("Status changed from #{old_status} to #{fixed_issue.status}")
104 104
105 105 # ignoring commits referencing an issue of another project
106 106 assert_equal [], Issue.find(4).changesets
107 107 end
108 108
109 109 def test_for_changeset_comments_strip
110 110 repository = Repository::Mercurial.create( :project => Project.find( 4 ), :url => '/foo/bar/baz' )
111 111 comment = <<-COMMENT
112 112 This is a loooooooooooooooooooooooooooong comment
113 113
114 114
115 115 COMMENT
116 116 changeset = Changeset.new(
117 117 :comments => comment, :commit_date => Time.now, :revision => 0, :scmid => 'f39b7922fb3c',
118 118 :committer => 'foo <foo@example.com>', :committed_on => Time.now, :repository => repository )
119 119 assert( changeset.save )
120 120 assert_not_equal( comment, changeset.comments )
121 121 assert_equal( 'This is a loooooooooooooooooooooooooooong comment', changeset.comments )
122 122 end
123 123
124 124 def test_for_urls_strip
125 125 repository = Repository::Cvs.create(:project => Project.find(4), :url => ' :pserver:login:password@host:/path/to/the/repository',
126 126 :root_url => 'foo ')
127 127 assert repository.save
128 128 repository.reload
129 129 assert_equal ':pserver:login:password@host:/path/to/the/repository', repository.url
130 130 assert_equal 'foo', repository.root_url
131 131 end
132 132
133 133 def test_manual_user_mapping
134 134 assert_no_difference "Changeset.count(:conditions => 'user_id <> 2')" do
135 135 c = Changeset.create!(:repository => @repository, :committer => 'foo', :committed_on => Time.now, :revision => 100, :comments => 'Committed by foo.')
136 136 assert_nil c.user
137 137 @repository.committer_ids = {'foo' => '2'}
138 138 assert_equal User.find(2), c.reload.user
139 139 # committer is now mapped
140 140 c = Changeset.create!(:repository => @repository, :committer => 'foo', :committed_on => Time.now, :revision => 101, :comments => 'Another commit by foo.')
141 141 assert_equal User.find(2), c.user
142 142 end
143 143 end
144 144
145 145 def test_auto_user_mapping_by_username
146 146 c = Changeset.create!(:repository => @repository, :committer => 'jsmith', :committed_on => Time.now, :revision => 100, :comments => 'Committed by john.')
147 147 assert_equal User.find(2), c.user
148 148 end
149 149
150 150 def test_auto_user_mapping_by_email
151 151 c = Changeset.create!(:repository => @repository, :committer => 'john <jsmith@somenet.foo>', :committed_on => Time.now, :revision => 100, :comments => 'Committed by john.')
152 152 assert_equal User.find(2), c.user
153 153 end
154 154 end
@@ -1,223 +1,223
1 # redMine - project management software
2 # Copyright (C) 2006 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../test_helper'
19
20 class UserTest < ActiveSupport::TestCase
21 fixtures :users, :members, :projects, :roles, :member_roles
22
23 def setup
24 @admin = User.find(1)
25 @jsmith = User.find(2)
26 @dlopper = User.find(3)
27 end
28
29 def test_truth
30 assert_kind_of User, @jsmith
31 end
32
33 def test_create
34 user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
35
36 user.login = "jsmith"
37 user.password, user.password_confirmation = "password", "password"
38 # login uniqueness
39 assert !user.save
40 assert_equal 1, user.errors.count
41
42 user.login = "newuser"
43 user.password, user.password_confirmation = "passwd", "password"
44 # password confirmation
45 assert !user.save
46 assert_equal 1, user.errors.count
47
48 user.password, user.password_confirmation = "password", "password"
49 assert user.save
50 end
51
52 def test_mail_uniqueness_should_not_be_case_sensitive
53 u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
54 u.login = 'newuser1'
55 u.password, u.password_confirmation = "password", "password"
56 assert u.save
57
58 u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
59 u.login = 'newuser2'
60 u.password, u.password_confirmation = "password", "password"
61 assert !u.save
62 assert_equal I18n.translate('activerecord.errors.messages.taken'), u.errors.on(:mail)
63 end
64
65 def test_update
66 assert_equal "admin", @admin.login
67 @admin.login = "john"
68 assert @admin.save, @admin.errors.full_messages.join("; ")
69 @admin.reload
70 assert_equal "john", @admin.login
71 end
72
73 def test_destroy
74 User.find(2).destroy
75 assert_nil User.find_by_id(2)
76 assert Member.find_all_by_user_id(2).empty?
77 end
78
79 def test_validate
80 @admin.login = ""
81 assert !@admin.save
82 assert_equal 1, @admin.errors.count
83 end
84
85 def test_password
86 user = User.try_to_login("admin", "admin")
87 assert_kind_of User, user
88 assert_equal "admin", user.login
89 user.password = "hello"
90 assert user.save
91
92 user = User.try_to_login("admin", "hello")
93 assert_kind_of User, user
94 assert_equal "admin", user.login
95 assert_equal User.hash_password("hello"), user.hashed_password
96 end
97
98 def test_name_format
99 assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
100 Setting.user_format = :firstname_lastname
101 assert_equal 'John Smith', @jsmith.reload.name
102 Setting.user_format = :username
103 assert_equal 'jsmith', @jsmith.reload.name
104 end
105
106 def test_lock
107 user = User.try_to_login("jsmith", "jsmith")
108 assert_equal @jsmith, user
109
110 @jsmith.status = User::STATUS_LOCKED
111 assert @jsmith.save
112
113 user = User.try_to_login("jsmith", "jsmith")
114 assert_equal nil, user
115 end
116
117 def test_create_anonymous
118 AnonymousUser.delete_all
119 anon = User.anonymous
120 assert !anon.new_record?
121 assert_kind_of AnonymousUser, anon
122 end
123
124 def test_rss_key
125 assert_nil @jsmith.rss_token
126 key = @jsmith.rss_key
127 assert_equal 40, key.length
128
129 @jsmith.reload
130 assert_equal key, @jsmith.rss_key
131 end
132
133 def test_roles_for_project
134 # user with a role
135 roles = @jsmith.roles_for_project(Project.find(1))
136 assert_kind_of Role, roles.first
137 assert_equal "Manager", roles.first.name
138
139 # user with no role
140 assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?}
141 end
142
143 def test_mail_notification_all
144 @jsmith.mail_notification = true
145 @jsmith.notified_project_ids = []
146 @jsmith.save
147 @jsmith.reload
148 assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
149 end
150
151 def test_mail_notification_selected
152 @jsmith.mail_notification = false
153 @jsmith.notified_project_ids = [1]
154 @jsmith.save
155 @jsmith.reload
156 assert Project.find(1).recipients.include?(@jsmith.mail)
157 end
158
159 def test_mail_notification_none
160 @jsmith.mail_notification = false
161 @jsmith.notified_project_ids = []
162 @jsmith.save
163 @jsmith.reload
164 assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
165 end
166
167 def test_comments_sorting_preference
168 assert !@jsmith.wants_comments_in_reverse_order?
169 @jsmith.pref.comments_sorting = 'asc'
170 assert !@jsmith.wants_comments_in_reverse_order?
171 @jsmith.pref.comments_sorting = 'desc'
172 assert @jsmith.wants_comments_in_reverse_order?
173 end
174
175 def test_find_by_mail_should_be_case_insensitive
176 u = User.find_by_mail('JSmith@somenet.foo')
177 assert_not_nil u
178 assert_equal 'jsmith@somenet.foo', u.mail
179 end
180
181 def test_random_password
182 u = User.new
183 u.random_password
184 assert !u.password.blank?
185 assert !u.password_confirmation.blank?
186 end
187
188 if Object.const_defined?(:OpenID)
189
190 def test_setting_identity_url
191 normalized_open_id_url = 'http://example.com/'
192 u = User.new( :identity_url => 'http://example.com/' )
193 assert_equal normalized_open_id_url, u.identity_url
194 end
195
196 def test_setting_identity_url_without_trailing_slash
197 normalized_open_id_url = 'http://example.com/'
198 u = User.new( :identity_url => 'http://example.com' )
199 assert_equal normalized_open_id_url, u.identity_url
200 end
201
202 def test_setting_identity_url_without_protocol
203 normalized_open_id_url = 'http://example.com/'
204 u = User.new( :identity_url => 'example.com' )
205 assert_equal normalized_open_id_url, u.identity_url
206 end
207
208 def test_setting_blank_identity_url
209 u = User.new( :identity_url => 'example.com' )
210 u.identity_url = ''
211 assert u.identity_url.blank?
212 end
213
214 def test_setting_invalid_identity_url
215 u = User.new( :identity_url => 'this is not an openid url' )
216 assert u.identity_url.blank?
217 end
218
219 else
220 puts "Skipping openid tests."
221 end
222
223 end
1 # redMine - project management software
2 # Copyright (C) 2006 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
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
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 require File.dirname(__FILE__) + '/../test_helper'
19
20 class UserTest < ActiveSupport::TestCase
21 fixtures :users, :members, :projects, :roles, :member_roles
22
23 def setup
24 @admin = User.find(1)
25 @jsmith = User.find(2)
26 @dlopper = User.find(3)
27 end
28
29 def test_truth
30 assert_kind_of User, @jsmith
31 end
32
33 def test_create
34 user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
35
36 user.login = "jsmith"
37 user.password, user.password_confirmation = "password", "password"
38 # login uniqueness
39 assert !user.save
40 assert_equal 1, user.errors.count
41
42 user.login = "newuser"
43 user.password, user.password_confirmation = "passwd", "password"
44 # password confirmation
45 assert !user.save
46 assert_equal 1, user.errors.count
47
48 user.password, user.password_confirmation = "password", "password"
49 assert user.save
50 end
51
52 def test_mail_uniqueness_should_not_be_case_sensitive
53 u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
54 u.login = 'newuser1'
55 u.password, u.password_confirmation = "password", "password"
56 assert u.save
57
58 u = User.new(:firstname => "new", :lastname => "user", :mail => "newUser@Somenet.foo")
59 u.login = 'newuser2'
60 u.password, u.password_confirmation = "password", "password"
61 assert !u.save
62 assert_equal I18n.translate('activerecord.errors.messages.taken'), u.errors.on(:mail)
63 end
64
65 def test_update
66 assert_equal "admin", @admin.login
67 @admin.login = "john"
68 assert @admin.save, @admin.errors.full_messages.join("; ")
69 @admin.reload
70 assert_equal "john", @admin.login
71 end
72
73 def test_destroy
74 User.find(2).destroy
75 assert_nil User.find_by_id(2)
76 assert Member.find_all_by_user_id(2).empty?
77 end
78
79 def test_validate
80 @admin.login = ""
81 assert !@admin.save
82 assert_equal 1, @admin.errors.count
83 end
84
85 def test_password
86 user = User.try_to_login("admin", "admin")
87 assert_kind_of User, user
88 assert_equal "admin", user.login
89 user.password = "hello"
90 assert user.save
91
92 user = User.try_to_login("admin", "hello")
93 assert_kind_of User, user
94 assert_equal "admin", user.login
95 assert_equal User.hash_password("hello"), user.hashed_password
96 end
97
98 def test_name_format
99 assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
100 Setting.user_format = :firstname_lastname
101 assert_equal 'John Smith', @jsmith.reload.name
102 Setting.user_format = :username
103 assert_equal 'jsmith', @jsmith.reload.name
104 end
105
106 def test_lock
107 user = User.try_to_login("jsmith", "jsmith")
108 assert_equal @jsmith, user
109
110 @jsmith.status = User::STATUS_LOCKED
111 assert @jsmith.save
112
113 user = User.try_to_login("jsmith", "jsmith")
114 assert_equal nil, user
115 end
116
117 def test_create_anonymous
118 AnonymousUser.delete_all
119 anon = User.anonymous
120 assert !anon.new_record?
121 assert_kind_of AnonymousUser, anon
122 end
123
124 def test_rss_key
125 assert_nil @jsmith.rss_token
126 key = @jsmith.rss_key
127 assert_equal 40, key.length
128
129 @jsmith.reload
130 assert_equal key, @jsmith.rss_key
131 end
132
133 def test_roles_for_project
134 # user with a role
135 roles = @jsmith.roles_for_project(Project.find(1))
136 assert_kind_of Role, roles.first
137 assert_equal "Manager", roles.first.name
138
139 # user with no role
140 assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?}
141 end
142
143 def test_mail_notification_all
144 @jsmith.mail_notification = true
145 @jsmith.notified_project_ids = []
146 @jsmith.save
147 @jsmith.reload
148 assert @jsmith.projects.first.recipients.include?(@jsmith.mail)
149 end
150
151 def test_mail_notification_selected
152 @jsmith.mail_notification = false
153 @jsmith.notified_project_ids = [1]
154 @jsmith.save
155 @jsmith.reload
156 assert Project.find(1).recipients.include?(@jsmith.mail)
157 end
158
159 def test_mail_notification_none
160 @jsmith.mail_notification = false
161 @jsmith.notified_project_ids = []
162 @jsmith.save
163 @jsmith.reload
164 assert !@jsmith.projects.first.recipients.include?(@jsmith.mail)
165 end
166
167 def test_comments_sorting_preference
168 assert !@jsmith.wants_comments_in_reverse_order?
169 @jsmith.pref.comments_sorting = 'asc'
170 assert !@jsmith.wants_comments_in_reverse_order?
171 @jsmith.pref.comments_sorting = 'desc'
172 assert @jsmith.wants_comments_in_reverse_order?
173 end
174
175 def test_find_by_mail_should_be_case_insensitive
176 u = User.find_by_mail('JSmith@somenet.foo')
177 assert_not_nil u
178 assert_equal 'jsmith@somenet.foo', u.mail
179 end
180
181 def test_random_password
182 u = User.new
183 u.random_password
184 assert !u.password.blank?
185 assert !u.password_confirmation.blank?
186 end
187
188 if Object.const_defined?(:OpenID)
189
190 def test_setting_identity_url
191 normalized_open_id_url = 'http://example.com/'
192 u = User.new( :identity_url => 'http://example.com/' )
193 assert_equal normalized_open_id_url, u.identity_url
194 end
195
196 def test_setting_identity_url_without_trailing_slash
197 normalized_open_id_url = 'http://example.com/'
198 u = User.new( :identity_url => 'http://example.com' )
199 assert_equal normalized_open_id_url, u.identity_url
200 end
201
202 def test_setting_identity_url_without_protocol
203 normalized_open_id_url = 'http://example.com/'
204 u = User.new( :identity_url => 'example.com' )
205 assert_equal normalized_open_id_url, u.identity_url
206 end
207
208 def test_setting_blank_identity_url
209 u = User.new( :identity_url => 'example.com' )
210 u.identity_url = ''
211 assert u.identity_url.blank?
212 end
213
214 def test_setting_invalid_identity_url
215 u = User.new( :identity_url => 'this is not an openid url' )
216 assert u.identity_url.blank?
217 end
218
219 else
220 puts "Skipping openid tests."
221 end
222
223 end
@@ -1,117 +1,117
1 1 # redMine - project management software
2 2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.dirname(__FILE__) + '/../test_helper'
19 19
20 20 class WikiPageTest < ActiveSupport::TestCase
21 21 fixtures :projects, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
22 22
23 23 def setup
24 24 @wiki = Wiki.find(1)
25 25 @page = @wiki.pages.first
26 26 end
27
28 def test_create
27
28 def test_create
29 29 page = WikiPage.new(:wiki => @wiki)
30 30 assert !page.save
31 31 assert_equal 1, page.errors.count
32 32
33 page.title = "Page"
33 page.title = "Page"
34 34 assert page.save
35 35 page.reload
36 36
37 37 @wiki.reload
38 assert @wiki.pages.include?(page)
38 assert @wiki.pages.include?(page)
39 39 end
40 40
41 41 def test_find_or_new_page
42 42 page = @wiki.find_or_new_page("CookBook documentation")
43 43 assert_kind_of WikiPage, page
44 44 assert !page.new_record?
45 45
46 46 page = @wiki.find_or_new_page("Non existing page")
47 47 assert_kind_of WikiPage, page
48 48 assert page.new_record?
49 49 end
50 50
51 51 def test_parent_title
52 52 page = WikiPage.find_by_title('Another_page')
53 53 assert_nil page.parent_title
54 54
55 55 page = WikiPage.find_by_title('Page_with_an_inline_image')
56 56 assert_equal 'CookBook documentation', page.parent_title
57 57 end
58 58
59 59 def test_assign_parent
60 60 page = WikiPage.find_by_title('Another_page')
61 61 page.parent_title = 'CookBook documentation'
62 62 assert page.save
63 63 page.reload
64 64 assert_equal WikiPage.find_by_title('CookBook_documentation'), page.parent
65 65 end
66 66
67 67 def test_unassign_parent
68 68 page = WikiPage.find_by_title('Page_with_an_inline_image')
69 69 page.parent_title = ''
70 70 assert page.save
71 71 page.reload
72 72 assert_nil page.parent
73 73 end
74 74
75 75 def test_parent_validation
76 76 page = WikiPage.find_by_title('CookBook_documentation')
77 77
78 78 # A page that doesn't exist
79 79 page.parent_title = 'Unknown title'
80 80 assert !page.save
81 81 assert_equal I18n.translate('activerecord.errors.messages.invalid'), page.errors.on(:parent_title)
82 82 # A child page
83 83 page.parent_title = 'Page_with_an_inline_image'
84 84 assert !page.save
85 85 assert_equal I18n.translate('activerecord.errors.messages.circular_dependency'), page.errors.on(:parent_title)
86 86 # The page itself
87 87 page.parent_title = 'CookBook_documentation'
88 88 assert !page.save
89 89 assert_equal I18n.translate('activerecord.errors.messages.circular_dependency'), page.errors.on(:parent_title)
90 90
91 91 page.parent_title = 'Another_page'
92 92 assert page.save
93 93 end
94 94
95 95 def test_destroy
96 96 page = WikiPage.find(1)
97 97 page.destroy
98 98 assert_nil WikiPage.find_by_id(1)
99 99 # make sure that page content and its history are deleted
100 100 assert WikiContent.find_all_by_page_id(1).empty?
101 101 assert WikiContent.versioned_class.find_all_by_page_id(1).empty?
102 102 end
103 103
104 104 def test_destroy_should_not_nullify_children
105 105 page = WikiPage.find(2)
106 106 child_ids = page.child_ids
107 107 assert child_ids.any?
108 108 page.destroy
109 109 assert_nil WikiPage.find_by_id(2)
110 110
111 111 children = WikiPage.find_all_by_id(child_ids)
112 112 assert_equal child_ids.size, children.size
113 113 children.each do |child|
114 114 assert_nil child.parent_id
115 115 end
116 116 end
117 117 end
@@ -1,44 +1,44
1 1 # redMine - project management software
2 2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.dirname(__FILE__) + '/../test_helper'
19 19
20 20 class WikiTest < ActiveSupport::TestCase
21 21 fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
22
23 def test_create
22
23 def test_create
24 24 wiki = Wiki.new(:project => Project.find(2))
25 25 assert !wiki.save
26 26 assert_equal 1, wiki.errors.count
27 27
28 wiki.start_page = "Start page"
29 assert wiki.save
30 end
28 wiki.start_page = "Start page"
29 assert wiki.save
30 end
31 31
32 32 def test_update
33 33 @wiki = Wiki.find(1)
34 34 @wiki.start_page = "Another start page"
35 35 assert @wiki.save
36 36 @wiki.reload
37 37 assert_equal "Another start page", @wiki.start_page
38 38 end
39 39
40 40 def test_titleize
41 41 assert_equal 'Page_title_with_CAPITALES', Wiki.titleize('page title with CAPITALES')
42 42 assert_equal 'テスト', Wiki.titleize('テスト')
43 43 end
44 44 end
General Comments 0
You need to be logged in to leave comments. Login now