Project

General

Profile

Feature #2530 » projectStatuses.patch

Adds project statuses - Anonymous, 2009-10-25 22:00

View differences:

app/models/principal.rb (kopia robocza)
19 19
  set_table_name 'users'
20 20

  
21 21
  has_many :members, :foreign_key => 'user_id', :dependent => :destroy
22
  has_many :memberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :project, :roles ], :conditions => "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}", :order => "#{Project.table_name}.name"
22
  has_many :memberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :project, :roles ], :conditions => "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)", :order => "#{Project.table_name}.name"
23 23
  has_many :projects, :through => :memberships
24 24

  
25 25
  # Groups and active users
app/models/project_status.rb (wersja 0)
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
class ProjectStatus < ActiveRecord::Base
19
  before_destroy :check_integrity  
20
  has_many :workflows, :foreign_key => "old_status_id", :dependent => :delete_all
21
  acts_as_list
22

  
23
  validates_presence_of :name
24
  validates_uniqueness_of :name
25
  validates_length_of :name, :maximum => 30
26
  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
27

  
28
  def after_save
29
    ProjectStatus.update_all("is_default=#{connection.quoted_false}", ['id <> ?', id]) if self.is_default?
30
  end  
31
  
32
  # Returns the default status for new issues
33
  def self.default
34
    find(:first, :conditions =>["is_default=?", true])
35
  end
36

  
37
  def <=>(status)
38
    position <=> status.position
39
  end
40
  
41
  def to_s; name end
42

  
43
private
44
  def check_integrity
45
    raise "Can't delete status" if Project.find(:first, :conditions => ["status_id=?", self.id])
46
  end
47
end
app/models/mailer.rb (kopia robocza)
295 295

  
296 296
    s = ARCondition.new ["#{IssueStatus.table_name}.is_closed = ? AND #{Issue.table_name}.due_date <= ?", false, days.day.from_now.to_date]
297 297
    s << "#{Issue.table_name}.assigned_to_id IS NOT NULL"
298
    s << "#{Project.table_name}.status = #{Project::STATUS_ACTIVE}"
298
    s << "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)"
299 299
    s << "#{Issue.table_name}.project_id = #{project.id}" if project
300 300
    s << "#{Issue.table_name}.tracker_id = #{tracker.id}" if tracker
301 301

  
app/models/project.rb (kopia robocza)
16 16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 17

  
18 18
class Project < ActiveRecord::Base
19
  # Project statuses
20
  STATUS_ACTIVE     = 1
21
  STATUS_ARCHIVED   = 9
19
  belongs_to :status, :class_name => 'ProjectStatus', :foreign_key => 'status_id'
22 20
  
23 21
  # Specific overidden Activities
24 22
  has_many :time_entry_activities do
......
80 78
  before_destroy :delete_all_members
81 79

  
82 80
  named_scope :has_module, lambda { |mod| { :conditions => ["#{Project.table_name}.id IN (SELECT em.project_id FROM #{EnabledModule.table_name} em WHERE em.name=?)", mod.to_s] } }
83
  named_scope :active, { :conditions => "#{Project.table_name}.status = #{STATUS_ACTIVE}"}
81
  named_scope :active, { :conditions => "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)"}
84 82
  named_scope :all_public, { :conditions => { :is_public => true } }
85 83
  named_scope :visible, lambda { { :conditions => Project.visible_by(User.current) } }
86 84
  
......
120 118
  #     Projects.visible_by(normal_user)  => "projects.status = 1 AND projects.is_public = 1"
121 119
  def self.visible_by(user=nil)
122 120
    user ||= User.current
121
    base_statement = "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)" #status active
123 122
    if user && user.admin?
124
      return "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"
123
      return base_statement
125 124
    elsif user && user.memberships.any?
126
      return "#{Project.table_name}.status=#{Project::STATUS_ACTIVE} AND (#{Project.table_name}.is_public = #{connection.quoted_true} or #{Project.table_name}.id IN (#{user.memberships.collect{|m| m.project_id}.join(',')}))"
125
      return base_statement + " AND (#{Project.table_name}.is_public = #{connection.quoted_true} or #{Project.table_name}.id IN (#{user.memberships.collect{|m| m.project_id}.join(',')}))"
127 126
    else
128
      return "#{Project.table_name}.status=#{Project::STATUS_ACTIVE} AND #{Project.table_name}.is_public = #{connection.quoted_true}"
127
      return base_statement + " AND #{Project.table_name}.is_public = #{connection.quoted_true}"
129 128
    end
130 129
  end
131 130
  
132 131
  def self.allowed_to_condition(user, permission, options={})
133 132
    statements = []
134
    base_statement = "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"
133
    base_statement = "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)" #status active
135 134
    if perm = Redmine::AccessControl.permission(permission)
136 135
      unless perm.project_module.nil?
137 136
        # If the permission belongs to a project module, make sure the module is enabled
......
233 232
  end
234 233
  
235 234
  def active?
236
    self.status == STATUS_ACTIVE
235
    !self.status.is_archived
237 236
  end
238 237
  
239 238
  # Archives the project and its descendants recursively
......
242 241
    children.each do |subproject|
243 242
      subproject.archive
244 243
    end
245
    update_attribute :status, STATUS_ARCHIVED
244
    update_attribute :status, ProjectStatus.find_all_by_is_archived(true).first
246 245
  end
247 246
  
248 247
  # Unarchives the project
249 248
  # All its ancestors must be active
250 249
  def unarchive
251 250
    return false if ancestors.detect {|a| !a.active?}
252
    update_attribute :status, STATUS_ACTIVE
251
    update_attribute :status, ProjectStatus.find_all_by_is_archived(false).first
253 252
  end
254 253
  
255 254
  # Returns an array of projects the project can be moved to
......
300 299
    @rolled_up_trackers ||=
301 300
      Tracker.find(:all, :include => :projects,
302 301
                         :select => "DISTINCT #{Tracker.table_name}.*",
303
                         :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status = #{STATUS_ACTIVE}", lft, rgt],
302
                         :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)", lft, rgt],
304 303
                         :order => "#{Tracker.table_name}.position")
305 304
  end
306 305
  
app/controllers/project_statuses_controller.rb (wersja 0)
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
class ProjectStatusesController < ApplicationController
19
  before_filter :require_admin
20

  
21
  verify :method => :post, :only => [ :destroy, :create, :update, :move ],
22
         :redirect_to => { :action => :list }
23
         
24
  def index
25
    list
26
    render :action => 'list' unless request.xhr?
27
  end
28

  
29
  def list
30
    @project_status_pages, @project_statuses = paginate :project_statuses, :per_page => 25, :order => "position"
31
    render :action => "list", :layout => false if request.xhr?
32
  end
33

  
34
  def new
35
    @project_status = ProjectStatus.new
36
  end
37

  
38
  def create
39
    @project_status = ProjectStatus.new(params[:project_status])
40
    if @project_status.save
41
      flash[:notice] = l(:notice_successful_create)
42
      redirect_to :action => 'list'
43
    else
44
      render :action => 'new'
45
    end
46
  end
47

  
48
  def edit
49
    @project_status = ProjectStatus.find(params[:id])
50
  end
51

  
52
  def update
53
    @project_status = ProjectStatus.find(params[:id])
54
    if @project_status.update_attributes(params[:project_status])
55
      flash[:notice] = l(:notice_successful_update)
56
      redirect_to :action => 'list'
57
    else
58
      render :action => 'edit'
59
    end
60
  end
61

  
62
  def destroy
63
    ProjectStatus.find(params[:id]).destroy
64
    redirect_to :action => 'list'
65
  rescue
66
    flash[:error] = "Unable to delete project status"
67
    redirect_to :action => 'list'
68
  end  	
69
end
app/controllers/admin_controller.rb (kopia robocza)
27 27
	
28 28
  def projects
29 29
    @status = params[:status] ? params[:status].to_i : 1
30
    c = ARCondition.new(@status == 0 ? "status <> 0" : ["status = ?", @status])
30
    c = ARCondition.new(@status == 0 ? "status_id <> 0" : "status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)")
31 31
    
32 32
    unless params[:name].blank?
33 33
      name = "%#{params[:name].strip.downcase}%"
app/controllers/projects_controller.rb (kopia robocza)
92 92
    @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position")
93 93
    @trackers = Tracker.all
94 94
    @root_projects = Project.find(:all,
95
                                  :conditions => "parent_id IS NULL AND status = #{Project::STATUS_ACTIVE}",
95
                                  :conditions => "parent_id IS NULL AND status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)",
96 96
                                  :order => 'name')
97 97
    if request.get?
98 98
      @project = Project.copy_from(params[:id])
app/views/project_statuses/list.rhtml (wersja 0)
1
<div class="contextual">
2
<%= link_to l(:label_project_status_new), {:action => 'new'}, :class => 'icon icon-add' %>
3
</div>
4

  
5
<h2><%=l(:label_project_status_plural)%></h2>
6
 
7
<table class="list">
8
  <thead><tr>
9
  <th><%=l(:field_status)%></th>
10
  <th><%=l(:field_is_default)%></th>
11
  <th><%=l(:field_is_archived)%></th>
12
  <th><%=l(:button_sort)%></th>
13
  <th></th>
14
  </tr></thead>
15
  <tbody>  
16
<% for status in @project_statuses %>
17
  <tr class="<%= cycle("odd", "even") %>">
18
  <td><%= link_to status.name, :action => 'edit', :id => status %></td>
19
  <td align="center"><%= image_tag 'true.png' if status.is_default? %></td>
20
  <td align="center"><%= image_tag 'true.png' if status.is_archived? %></td>
21
  <td align="center" style="width:15%;"><%= reorder_links('project_status', {:action => 'update', :id => status}) %></td>
22
  <td class="buttons">
23
    <%= link_to(l(:button_delete), { :action => 'destroy', :id => status },
24
    															 :method => :post,
25
    															 :confirm => l(:text_are_you_sure),
26
    															 :class => 'icon icon-del') %>
27
  </td>
28
  </tr>
29
<% end %>
30
  </tbody>
31
</table>
32

  
33
<p class="pagination"><%= pagination_links_full @project_status_pages %></p>
34

  
35
<% html_title(l(:label_project_status_plural)) -%>
app/views/project_statuses/_form.rhtml (wersja 0)
1
<%= error_messages_for 'project_status' %>
2

  
3
<div class="box">
4
<!--[form:project_status]-->
5
<p><label for="project_status_name"><%=l(:field_name)%><span class="required"> *</span></label>
6
<%= text_field 'project_status', 'name'  %></p>
7

  
8
<p><label for="project_status_is_archived"><%=l(:field_is_archived)%></label>
9
<%= check_box 'project_status', 'is_archived' %></p>
10

  
11
<p><label for="project_status_is_default"><%=l(:field_is_default)%></label>
12
<%= check_box 'project_status', 'is_default' %></p>
13

  
14
<%= call_hook(:view_project_statuses_form, :project_status => @project_status) %>
15

  
16
<!--[eoform:project_status]-->
17
</div>
app/views/project_statuses/edit.rhtml (wersja 0)
1
<h2><%= link_to l(:label_project_status_plural), :controller => 'project_statuses', :action => 'index' %> &#187; <%=h @project_status %></h2>
2

  
3
<% form_tag({:action => 'update', :id => @project_status}, :class => "tabular") do %>
4
  <%= render :partial => 'form' %>
5
  <%= submit_tag l(:button_save) %>
6
<% end %>
app/views/project_statuses/new.rhtml (wersja 0)
1
<h2><%= link_to l(:label_project_status_plural), :controller => 'project_statuses', :action => 'index' %> &#187; <%=l(:label_project_status_new)%></h2>
2

  
3
<% form_tag({:action => 'create'}, :class => "tabular") do %>
4
  <%= render :partial => 'form' %>
5
  <%= submit_tag l(:button_create) %>
6
<% end %>
app/views/admin/index.rhtml (kopia robocza)
24 24
<p class="icon22 icon22-tracker">
25 25
<%= link_to l(:label_tracker_plural), :controller => 'trackers' %> |
26 26
<%= link_to l(:label_issue_status_plural), :controller => 'issue_statuses' %> |
27
<%= link_to l(:label_project_status_plural), :controller => 'project_statuses' %> |
27 28
<%= link_to l(:label_workflow), :controller => 'workflows', :action => 'edit' %>
28 29
</p>
29 30

  
app/views/projects/_form.rhtml (kopia robocza)
7 7
<% if User.current.admin? && !@project.possible_parents.empty? %>
8 8
    <p><label><%= l(:field_parent) %></label><%= parent_project_select_tag(@project) %></p>
9 9
<% end %>
10

  
10
<p><%= f.select :status_id, (ProjectStatus.find(:all).sort.collect {|p| [p.name, p.id]}), :required => true %></p>
11 11
<p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p>
12 12
<p><%= f.text_field :identifier, :required => true, :disabled => @project.identifier_frozen? %>
13 13
<% unless @project.identifier_frozen? %>
app/views/projects/show.rhtml (kopia robocza)
4 4
	<%= textilizable @project.description %>	
5 5
	<ul>
6 6
	<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= link_to(h(@project.homepage), @project.homepage) %></li><% end %>
7
        <li><%=l(:field_status)%>: <%= @project.status.name%></li>
7 8
  <% if @subprojects.any? %>
8 9
 	<li><%=l(:label_subproject_plural)%>:
9 10
	    <%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ") %></li>
db/migrate/20091021011305_add_status_to_project.rb (wersja 0)
1
class AddStatusToProject < ActiveRecord::Migration
2
  include Redmine::I18n
3
  def self.up
4
    set_language_if_valid Setting.default_language
5
    create_table "project_statuses", :force => true do |t|
6
      t.column "name", :string, :limit => 30, :default => "", :null => false
7
      t.column "is_archived", :boolean, :default => false, :null => false
8
      t.column "is_default", :boolean, :default => false, :null => false
9
      t.column :position, :integer, :default => 1
10
    end
11
    remove_column(:projects, :status)
12
    add_column :projects, :status_id, :integer, :default => 1, :null => false
13

  
14
    # Project statuses
15
    proposed       = ProjectStatus.create!(:name => l(:default_project_status_proposed), :is_archived => false, :is_default => true, :position => 1)
16
    in_planning  = ProjectStatus.create!(:name => l(:default_project_status_in_planning), :is_archived => false, :is_default => false, :position => 2)
17
    in_progress  = ProjectStatus.create!(:name => l(:default_project_status_in_progress), :is_archived => false, :is_default => false, :position => 3)
18
    on_hold  = ProjectStatus.create!(:name => l(:default_project_status_on_hold), :is_archived => false, :is_default => false, :position => 4)
19
    complete    = ProjectStatus.create!(:name => l(:default_project_status_complete), :is_archived => false, :is_default => false, :position => 5)
20
    archived  = ProjectStatus.create!(:name => l(:default_project_status_archived), :is_archived => true, :is_default => false, :position => 6)
21

  
22
    Project.find(:all).each do |project|
23
      project.status = in_progress
24
      project.save
25
    end
26
  end
27

  
28
  def self.down
29
      raise ActiveRecord::IrreversibleMigration, "Can't recover deleted data"
30
  end
31
end
config/locales/lt.yml (kopia robocza)
862 862
  text_journal_added: "{{label}} {{value}} added"
863 863
  field_active: Active
864 864
  enumeration_system_activity: System Activity
865

  
866
  label_project_status_plural: Project statuses
867
  label_project_status_new: New status
868
  default_project_status_proposed: Proposed
869
  default_project_status_in_planning: In Planning
870
  default_project_status_in_progress: In Progress
871
  default_project_status_on_hold: On Hold
872
  default_project_status_complete: Colmplete
873
  default_project_status_archived: Archived
874
  field_is_archived: Archived
875
  
config/locales/ro.yml (kopia robocza)
829 829
  text_journal_added: "{{label}} {{value}} added"
830 830
  field_active: Active
831 831
  enumeration_system_activity: System Activity
832

  
833
  label_project_status_plural: Project statuses
834
  label_project_status_new: New status
835
  default_project_status_proposed: Proposed
836
  default_project_status_in_planning: In Planning
837
  default_project_status_in_progress: In Progress
838
  default_project_status_on_hold: On Hold
839
  default_project_status_complete: Colmplete
840
  default_project_status_archived: Archived
841
  field_is_archived: Archived
842
  
config/locales/zh.yml (kopia robocza)
854 854
  enumeration_activities: 活动(时间跟踪)
855 855
  field_active: Active
856 856
  enumeration_system_activity: System Activity
857

  
858
  label_project_status_plural: Project statuses
859
  label_project_status_new: New status
860
  default_project_status_proposed: Proposed
861
  default_project_status_in_planning: In Planning
862
  default_project_status_in_progress: In Progress
863
  default_project_status_on_hold: On Hold
864
  default_project_status_complete: Colmplete
865
  default_project_status_archived: Archived
866
  field_is_archived: Archived
867
  
config/locales/pt.yml (kopia robocza)
844 844
  text_journal_added: "{{label}} {{value}} added"
845 845
  field_active: Active
846 846
  enumeration_system_activity: System Activity
847

  
848
  label_project_status_plural: Project statuses
849
  label_project_status_new: New status
850
  default_project_status_proposed: Proposed
851
  default_project_status_in_planning: In Planning
852
  default_project_status_in_progress: In Progress
853
  default_project_status_on_hold: On Hold
854
  default_project_status_complete: Colmplete
855
  default_project_status_archived: Archived
856
  field_is_archived: Archived
857
  
config/locales/ca.yml (kopia robocza)
829 829
  text_journal_added: "{{label}} {{value}} added"
830 830
  field_active: Active
831 831
  enumeration_system_activity: System Activity
832

  
833
  label_project_status_plural: Project statuses
834
  label_project_status_new: New status
835
  default_project_status_proposed: Proposed
836
  default_project_status_in_planning: In Planning
837
  default_project_status_in_progress: In Progress
838
  default_project_status_on_hold: On Hold
839
  default_project_status_complete: Colmplete
840
  default_project_status_archived: Archived
841
  field_is_archived: Archived
842
  
config/locales/pt-BR.yml (kopia robocza)
858 858
  text_journal_added: "{{label}} {{value}} adicionado"
859 859
  field_active: Active
860 860
  enumeration_system_activity: System Activity
861

  
862
  label_project_status_plural: Project statuses
863
  label_project_status_new: New status
864
  default_project_status_proposed: Proposed
865
  default_project_status_in_planning: In Planning
866
  default_project_status_in_progress: In Progress
867
  default_project_status_on_hold: On Hold
868
  default_project_status_complete: Colmplete
869
  default_project_status_archived: Archived
870
  field_is_archived: Archived
871
  
config/locales/tr.yml (kopia robocza)
859 859
  text_journal_added: "{{label}} {{value}} added"
860 860
  field_active: Active
861 861
  enumeration_system_activity: System Activity
862

  
863
  label_project_status_plural: Project statuses
864
  label_project_status_new: New status
865
  default_project_status_proposed: Proposed
866
  default_project_status_in_planning: In Planning
867
  default_project_status_in_progress: In Progress
868
  default_project_status_on_hold: On Hold
869
  default_project_status_complete: Colmplete
870
  default_project_status_archived: Archived
871
  field_is_archived: Archived
872
  
config/locales/ru.yml (kopia robocza)
940 940
  text_journal_added: "{{label}} {{value}} added"
941 941
  field_active: Active
942 942
  enumeration_system_activity: System Activity
943

  
944
  label_project_status_plural: Project statuses
945
  label_project_status_new: New status
946
  default_project_status_proposed: Proposed
947
  default_project_status_in_planning: In Planning
948
  default_project_status_in_progress: In Progress
949
  default_project_status_on_hold: On Hold
950
  default_project_status_complete: Colmplete
951
  default_project_status_archived: Archived
952
  field_is_archived: Archived
953
  
config/locales/el.yml (kopia robocza)
832 832
  text_journal_added: "{{label}} {{value}} added"
833 833
  field_active: Active
834 834
  enumeration_system_activity: System Activity
835

  
836
  label_project_status_plural: Project statuses
837
  label_project_status_new: New status
838
  default_project_status_proposed: Proposed
839
  default_project_status_in_planning: In Planning
840
  default_project_status_in_progress: In Progress
841
  default_project_status_on_hold: On Hold
842
  default_project_status_complete: Colmplete
843
  default_project_status_archived: Archived
844
  field_is_archived: Archived
845
  
config/locales/en.yml (kopia robocza)
831 831
  enumeration_doc_categories: Document categories
832 832
  enumeration_activities: Activities (time tracking)
833 833
  enumeration_system_activity: System Activity
834

  
835
  label_project_status_plural: Project statuses
836
  label_project_status_new: New status
837
  default_project_status_proposed: Proposed
838
  default_project_status_in_planning: In Planning
839
  default_project_status_in_progress: In Progress
840
  default_project_status_on_hold: On Hold
841
  default_project_status_complete: Colmplete
842
  default_project_status_archived: Archived
843
  field_is_archived: Archived
844
  
config/locales/gl.yml (kopia robocza)
852 852
  text_journal_added: "{{label}} {{value}} added"
853 853
  field_active: Active
854 854
  enumeration_system_activity: System Activity
855

  
856
  label_project_status_plural: Project statuses
857
  label_project_status_new: New status
858
  default_project_status_proposed: Proposed
859
  default_project_status_in_planning: In Planning
860
  default_project_status_in_progress: In Progress
861
  default_project_status_on_hold: On Hold
862
  default_project_status_complete: Colmplete
863
  default_project_status_archived: Archived
864
  field_is_archived: Archived
config/locales/cs.yml (kopia robocza)
832 832
  text_journal_added: "{{label}} {{value}} added"
833 833
  field_active: Active
834 834
  enumeration_system_activity: System Activity
835

  
836
  label_project_status_plural: Project statuses
837
  label_project_status_new: New status
838
  default_project_status_proposed: Proposed
839
  default_project_status_in_planning: In Planning
840
  default_project_status_in_progress: In Progress
841
  default_project_status_on_hold: On Hold
842
  default_project_status_complete: Colmplete
843
  default_project_status_archived: Archived
844
  field_is_archived: Archived
845
  
config/locales/es.yml (kopia robocza)
873 873
  text_journal_added: "{{label}} {{value}} added"
874 874
  field_active: Active
875 875
  enumeration_system_activity: System Activity
876

  
877
  label_project_status_plural: Project statuses
878
  label_project_status_new: New status
879
  default_project_status_proposed: Proposed
880
  default_project_status_in_planning: In Planning
881
  default_project_status_in_progress: In Progress
882
  default_project_status_on_hold: On Hold
883
  default_project_status_complete: Colmplete
884
  default_project_status_archived: Archived
885
  field_is_archived: Archived
886
  
config/locales/ko.yml (kopia robocza)
892 892
  text_journal_added: "{{label}} {{value}} added"
893 893
  field_active: Active
894 894
  enumeration_system_activity: System Activity
895

  
896
  label_project_status_plural: Project statuses
897
  label_project_status_new: New status
898
  default_project_status_proposed: Proposed
899
  default_project_status_in_planning: In Planning
900
  default_project_status_in_progress: In Progress
901
  default_project_status_on_hold: On Hold
902
  default_project_status_complete: Colmplete
903
  default_project_status_archived: Archived
904
  field_is_archived: Archived
905
  
config/locales/zh-TW.yml (kopia robocza)
921 921
  enumeration_activities: 活動 (時間追蹤)
922 922
  field_active: Active
923 923
  enumeration_system_activity: System Activity
924

  
925
  label_project_status_plural: Project statuses
926
  label_project_status_new: New status
927
  default_project_status_proposed: Proposed
928
  default_project_status_in_planning: In Planning
929
  default_project_status_in_progress: In Progress
930
  default_project_status_on_hold: On Hold
931
  default_project_status_complete: Colmplete
932
  default_project_status_archived: Archived
933
  field_is_archived: Archived
934
  
config/locales/it.yml (kopia robocza)
839 839
  text_journal_added: "{{label}} {{value}} added"
840 840
  field_active: Active
841 841
  enumeration_system_activity: System Activity
842

  
843
  label_project_status_plural: Project statuses
844
  label_project_status_new: New status
845
  default_project_status_proposed: Proposed
846
  default_project_status_in_planning: In Planning
847
  default_project_status_in_progress: In Progress
848
  default_project_status_on_hold: On Hold
849
  default_project_status_complete: Colmplete
850
  default_project_status_archived: Archived
851
  field_is_archived: Archived
852
  
config/locales/sk.yml (kopia robocza)
831 831
  text_journal_added: "{{label}} {{value}} added"
832 832
  field_active: Active
833 833
  enumeration_system_activity: System Activity
834

  
835
  label_project_status_plural: Project statuses
836
  label_project_status_new: New status
837
  default_project_status_proposed: Proposed
838
  default_project_status_in_planning: In Planning
839
  default_project_status_in_progress: In Progress
840
  default_project_status_on_hold: On Hold
841
  default_project_status_complete: Colmplete
842
  default_project_status_archived: Archived
843
  field_is_archived: Archived
844
  
config/locales/sl.yml (kopia robocza)
828 828
  text_journal_added: "{{label}} {{value}} added"
829 829
  field_active: Active
830 830
  enumeration_system_activity: System Activity
831

  
832
  label_project_status_plural: Project statuses
833
  label_project_status_new: New status
834
  default_project_status_proposed: Proposed
835
  default_project_status_in_planning: In Planning
836
  default_project_status_in_progress: In Progress
837
  default_project_status_on_hold: On Hold
838
  default_project_status_complete: Colmplete
839
  default_project_status_archived: Archived
840
  field_is_archived: Archived
841
  
config/locales/uk.yml (kopia robocza)
828 828
  text_journal_added: "{{label}} {{value}} added"
829 829
  field_active: Active
830 830
  enumeration_system_activity: System Activity
831

  
832
  label_project_status_plural: Project statuses
833
  label_project_status_new: New status
834
  default_project_status_proposed: Proposed
835
  default_project_status_in_planning: In Planning
836
  default_project_status_in_progress: In Progress
837
  default_project_status_on_hold: On Hold
838
  default_project_status_complete: Colmplete
839
  default_project_status_archived: Archived
840
  field_is_archived: Archived
841
  
config/locales/sr.yml (kopia robocza)
847 847
  text_journal_added: "{{label}} {{value}} added"
848 848
  field_active: Active
849 849
  enumeration_system_activity: System Activity
850

  
851
  label_project_status_plural: Project statuses
852
  label_project_status_new: New status
853
  default_project_status_proposed: Proposed
854
  default_project_status_in_planning: In Planning
855
  default_project_status_in_progress: In Progress
856
  default_project_status_on_hold: On Hold
857
  default_project_status_complete: Colmplete
858
  default_project_status_archived: Archived
859
  field_is_archived: Archived
860
  
config/locales/da.yml (kopia robocza)
852 852
  text_journal_added: "{{label}} {{value}} added"
853 853
  field_active: Active
854 854
  enumeration_system_activity: System Activity
855

  
856
  label_project_status_plural: Project statuses
857
  label_project_status_new: New status
858
  default_project_status_proposed: Proposed
859
  default_project_status_in_planning: In Planning
860
  default_project_status_in_progress: In Progress
861
  default_project_status_on_hold: On Hold
862
  default_project_status_complete: Colmplete
863
  default_project_status_archived: Archived
864
  field_is_archived: Archived
865
  
config/locales/sv.yml (kopia robocza)
879 879
  label_time_entry_plural: Spent time
880 880
  field_active: Active
881 881
  enumeration_system_activity: System Activity
882

  
883
  label_project_status_plural: Project statuses
884
  label_project_status_new: New status
885
  default_project_status_proposed: Proposed
886
  default_project_status_in_planning: In Planning
887
  default_project_status_in_progress: In Progress
888
  default_project_status_on_hold: On Hold
889
  default_project_status_complete: Colmplete
890
  default_project_status_archived: Archived
891
  field_is_archived: Archived
892
  
config/locales/bg.yml (kopia robocza)
826 826
  text_journal_added: "{{label}} {{value}} added"
827 827
  field_active: Active
828 828
  enumeration_system_activity: System Activity
829

  
830
  label_project_status_plural: Project statuses
831
  label_project_status_new: New status
832
  default_project_status_proposed: Proposed
833
  default_project_status_in_planning: In Planning
834
  default_project_status_in_progress: In Progress
835
  default_project_status_on_hold: On Hold
836
  default_project_status_complete: Colmplete
837
  default_project_status_archived: Archived
838
  field_is_archived: Archived
839
  
config/locales/de.yml (kopia robocza)
852 852
  text_journal_added: "{{label}} {{value}} added"
853 853
  field_active: Active
854 854
  enumeration_system_activity: System Activity
855

  
856
  label_project_status_plural: Project statuses
857
  label_project_status_new: New status
858
  default_project_status_proposed: Proposed
859
  default_project_status_in_planning: In Planning
860
  default_project_status_in_progress: In Progress
861
  default_project_status_on_hold: On Hold
862
  default_project_status_complete: Colmplete
863
  default_project_status_archived: Archived
864
  field_is_archived: Archived
865
  
config/locales/ja.yml (kopia robocza)
861 861
  text_journal_added: "{{label}} {{value}} added"
862 862
  field_active: Active
863 863
  enumeration_system_activity: System Activity
864

  
865
  label_project_status_plural: Project statuses
866
  label_project_status_new: New status
867
  default_project_status_proposed: Proposed
868
  default_project_status_in_planning: In Planning
869
  default_project_status_in_progress: In Progress
870
  default_project_status_on_hold: On Hold
871
  default_project_status_complete: Colmplete
872
  default_project_status_archived: Archived
873
  field_is_archived: Archived
874
  
config/locales/he.yml (kopia robocza)
836 836
  text_journal_added: "{{label}} {{value}} added"
837 837
  field_active: Active
838 838
  enumeration_system_activity: System Activity
839

  
840
  label_project_status_plural: Project statuses
841
  label_project_status_new: New status
842
  default_project_status_proposed: Proposed
843
  default_project_status_in_planning: In Planning
844
  default_project_status_in_progress: In Progress
845
  default_project_status_on_hold: On Hold
846
  default_project_status_complete: Colmplete
847
  default_project_status_archived: Archived
848
  field_is_archived: Archived
config/locales/fi.yml (kopia robocza)
862 862
  text_journal_added: "{{label}} {{value}} added"
863 863
  field_active: Active
864 864
  enumeration_system_activity: System Activity
865

  
866
  label_project_status_plural: Project statuses
867
  label_project_status_new: New status
868
  default_project_status_proposed: Proposed
869
  default_project_status_in_planning: In Planning
870
  default_project_status_in_progress: In Progress
871
  default_project_status_on_hold: On Hold
872
  default_project_status_complete: Colmplete
873
  default_project_status_archived: Archived
874
  field_is_archived: Archived
875
  
config/locales/bs.yml (kopia robocza)
850 850
  text_journal_added: "{{label}} {{value}} added"
851 851
  field_active: Active
852 852
  enumeration_system_activity: System Activity
853

  
854
  label_project_status_plural: Project statuses
855
  label_project_status_new: New status
856
  default_project_status_proposed: Proposed
857
  default_project_status_in_planning: In Planning
858
  default_project_status_in_progress: In Progress
859
  default_project_status_on_hold: On Hold
860
  default_project_status_complete: Colmplete
861
  default_project_status_archived: Archived
862
  field_is_archived: Archived
863
  
config/locales/fr.yml (kopia robocza)
854 854
  text_journal_added: "{{label}} {{value}} ajouté"
855 855
  field_active: Actif
856 856
  enumeration_system_activity: Activité système
857

  
858
  label_project_status_plural: Project statuses
859
  label_project_status_new: New status
860
  default_project_status_proposed: Proposed
861
  default_project_status_in_planning: In Planning
862
  default_project_status_in_progress: In Progress
863
  default_project_status_on_hold: On Hold
864
  default_project_status_complete: Colmplete
865
  default_project_status_archived: Archived
866
  field_is_archived: Archived
867
  
config/locales/nl.yml (kopia robocza)
814 814
  text_journal_added: "{{label}} {{value}} added"
815 815
  field_active: Active
816 816
  enumeration_system_activity: System Activity
817

  
818
  label_project_status_plural: Project statuses
819
  label_project_status_new: New status
820
  default_project_status_proposed: Proposed
821
  default_project_status_in_planning: In Planning
822
  default_project_status_in_progress: In Progress
823
  default_project_status_on_hold: On Hold
824
  default_project_status_complete: Colmplete
825
  default_project_status_archived: Archived
826
  field_is_archived: Archived
827
  
config/locales/pl.yml (kopia robocza)
855 855
  text_journal_added: "Dodano {{label}} {{value}}"
856 856
  field_active: Active
857 857
  enumeration_system_activity: System Activity
858

  
859
  label_project_status_plural: Statusy projektów
860
  label_project_status_new: Nowy status
861
  default_project_status_proposed: Zaproponowany
862
  default_project_status_in_planning: Planowany
863
  default_project_status_in_progress: W Toku
864
  default_project_status_on_hold: Wstrzymany
865
  default_project_status_complete: Ukończony
866
  default_project_status_archived: Zarchiwizowany
867
  field_is_archived: Zarchiwizowany
868
  
config/locales/th.yml (kopia robocza)
829 829
  text_journal_added: "{{label}} {{value}} added"
830 830
  field_active: Active
831 831
  enumeration_system_activity: System Activity
832

  
833
  label_project_status_plural: Project statuses
834
  label_project_status_new: New status
835
  default_project_status_proposed: Proposed
836
  default_project_status_in_planning: In Planning
837
  default_project_status_in_progress: In Progress
838
  default_project_status_on_hold: On Hold
839
  default_project_status_complete: Colmplete
840
  default_project_status_archived: Archived
841
  field_is_archived: Archived
842
  
config/locales/no.yml (kopia robocza)
827 827
  text_journal_added: "{{label}} {{value}} added"
828 828
  field_active: Active
829 829
  enumeration_system_activity: System Activity
830

  
831
  label_project_status_plural: Project statuses
832
  label_project_status_new: New status
833
  default_project_status_proposed: Proposed
834
  default_project_status_in_planning: In Planning
835
  default_project_status_in_progress: In Progress
836
  default_project_status_on_hold: On Hold
837
  default_project_status_complete: Colmplete
838
  default_project_status_archived: Archived
839
  field_is_archived: Archived
840
  
config/locales/hu.yml (kopia robocza)
857 857
  text_journal_added: "{{label}} {{value}} added"
858 858
  field_active: Active
859 859
  enumeration_system_activity: System Activity
860

  
861
  label_project_status_plural: Project statuses
862
  label_project_status_new: New status
863
  default_project_status_proposed: Proposed
864
  default_project_status_in_planning: In Planning
865
  default_project_status_in_progress: In Progress
866
  default_project_status_on_hold: On Hold
867
  default_project_status_complete: Colmplete
868
  default_project_status_archived: Archived
869
  field_is_archived: Archived
870
  
config/locales/vi.yml (kopia robocza)
891 891
  text_journal_added: "{{label}} {{value}} added"
892 892
  field_active: Active
893 893
  enumeration_system_activity: System Activity
894

  
895
  label_project_status_plural: Project statuses
896
  label_project_status_new: New status
897
  default_project_status_proposed: Proposed
898
  default_project_status_in_planning: In Planning
899
  default_project_status_in_progress: In Progress
900
  default_project_status_on_hold: On Hold
901
  default_project_status_complete: Colmplete
902
  default_project_status_archived: Archived
903
  field_is_archived: Archived
904
  
    (1-1/1)