Index: app/models/principal.rb
===================================================================
--- app/models/principal.rb	(wersja 2966)
+++ app/models/principal.rb	(kopia robocza)
@@ -19,7 +19,7 @@
   set_table_name 'users'
 
   has_many :members, :foreign_key => 'user_id', :dependent => :destroy
-  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"
+  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"
   has_many :projects, :through => :memberships
 
   # Groups and active users
Index: app/models/project_status.rb
===================================================================
--- app/models/project_status.rb	(wersja 0)
+++ app/models/project_status.rb	(wersja 0)
@@ -0,0 +1,47 @@
+# redMine - project management software
+# Copyright (C) 2006  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+class ProjectStatus < ActiveRecord::Base
+  before_destroy :check_integrity  
+  has_many :workflows, :foreign_key => "old_status_id", :dependent => :delete_all
+  acts_as_list
+
+  validates_presence_of :name
+  validates_uniqueness_of :name
+  validates_length_of :name, :maximum => 30
+  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
+
+  def after_save
+    ProjectStatus.update_all("is_default=#{connection.quoted_false}", ['id <> ?', id]) if self.is_default?
+  end  
+  
+  # Returns the default status for new issues
+  def self.default
+    find(:first, :conditions =>["is_default=?", true])
+  end
+
+  def <=>(status)
+    position <=> status.position
+  end
+  
+  def to_s; name end
+
+private
+  def check_integrity
+    raise "Can't delete status" if Project.find(:first, :conditions => ["status_id=?", self.id])
+  end
+end
Index: app/models/mailer.rb
===================================================================
--- app/models/mailer.rb	(wersja 2966)
+++ app/models/mailer.rb	(kopia robocza)
@@ -295,7 +295,7 @@
 
     s = ARCondition.new ["#{IssueStatus.table_name}.is_closed = ? AND #{Issue.table_name}.due_date <= ?", false, days.day.from_now.to_date]
     s << "#{Issue.table_name}.assigned_to_id IS NOT NULL"
-    s << "#{Project.table_name}.status = #{Project::STATUS_ACTIVE}"
+    s << "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)"
     s << "#{Issue.table_name}.project_id = #{project.id}" if project
     s << "#{Issue.table_name}.tracker_id = #{tracker.id}" if tracker
 
Index: app/models/project.rb
===================================================================
--- app/models/project.rb	(wersja 2966)
+++ app/models/project.rb	(kopia robocza)
@@ -16,9 +16,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 class Project < ActiveRecord::Base
-  # Project statuses
-  STATUS_ACTIVE     = 1
-  STATUS_ARCHIVED   = 9
+  belongs_to :status, :class_name => 'ProjectStatus', :foreign_key => 'status_id'
   
   # Specific overidden Activities
   has_many :time_entry_activities do
@@ -80,7 +78,7 @@
   before_destroy :delete_all_members
 
   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] } }
-  named_scope :active, { :conditions => "#{Project.table_name}.status = #{STATUS_ACTIVE}"}
+  named_scope :active, { :conditions => "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)"}
   named_scope :all_public, { :conditions => { :is_public => true } }
   named_scope :visible, lambda { { :conditions => Project.visible_by(User.current) } }
   
@@ -120,18 +118,19 @@
   #     Projects.visible_by(normal_user)  => "projects.status = 1 AND projects.is_public = 1"
   def self.visible_by(user=nil)
     user ||= User.current
+    base_statement = "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)" #status active
     if user && user.admin?
-      return "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"
+      return base_statement
     elsif user && user.memberships.any?
-      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(',')}))"
+      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(',')}))"
     else
-      return "#{Project.table_name}.status=#{Project::STATUS_ACTIVE} AND #{Project.table_name}.is_public = #{connection.quoted_true}"
+      return base_statement + " AND #{Project.table_name}.is_public = #{connection.quoted_true}"
     end
   end
   
   def self.allowed_to_condition(user, permission, options={})
     statements = []
-    base_statement = "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"
+    base_statement = "#{Project.table_name}.status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)" #status active
     if perm = Redmine::AccessControl.permission(permission)
       unless perm.project_module.nil?
         # If the permission belongs to a project module, make sure the module is enabled
@@ -233,7 +232,7 @@
   end
   
   def active?
-    self.status == STATUS_ACTIVE
+    !self.status.is_archived
   end
   
   # Archives the project and its descendants recursively
@@ -242,14 +241,14 @@
     children.each do |subproject|
       subproject.archive
     end
-    update_attribute :status, STATUS_ARCHIVED
+    update_attribute :status, ProjectStatus.find_all_by_is_archived(true).first
   end
   
   # Unarchives the project
   # All its ancestors must be active
   def unarchive
     return false if ancestors.detect {|a| !a.active?}
-    update_attribute :status, STATUS_ACTIVE
+    update_attribute :status, ProjectStatus.find_all_by_is_archived(false).first
   end
   
   # Returns an array of projects the project can be moved to
@@ -300,7 +299,7 @@
     @rolled_up_trackers ||=
       Tracker.find(:all, :include => :projects,
                          :select => "DISTINCT #{Tracker.table_name}.*",
-                         :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status = #{STATUS_ACTIVE}", lft, rgt],
+                         :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],
                          :order => "#{Tracker.table_name}.position")
   end
   
Index: app/controllers/project_statuses_controller.rb
===================================================================
--- app/controllers/project_statuses_controller.rb	(wersja 0)
+++ app/controllers/project_statuses_controller.rb	(wersja 0)
@@ -0,0 +1,69 @@
+# redMine - project management software
+# Copyright (C) 2006  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+class ProjectStatusesController < ApplicationController
+  before_filter :require_admin
+
+  verify :method => :post, :only => [ :destroy, :create, :update, :move ],
+         :redirect_to => { :action => :list }
+         
+  def index
+    list
+    render :action => 'list' unless request.xhr?
+  end
+
+  def list
+    @project_status_pages, @project_statuses = paginate :project_statuses, :per_page => 25, :order => "position"
+    render :action => "list", :layout => false if request.xhr?
+  end
+
+  def new
+    @project_status = ProjectStatus.new
+  end
+
+  def create
+    @project_status = ProjectStatus.new(params[:project_status])
+    if @project_status.save
+      flash[:notice] = l(:notice_successful_create)
+      redirect_to :action => 'list'
+    else
+      render :action => 'new'
+    end
+  end
+
+  def edit
+    @project_status = ProjectStatus.find(params[:id])
+  end
+
+  def update
+    @project_status = ProjectStatus.find(params[:id])
+    if @project_status.update_attributes(params[:project_status])
+      flash[:notice] = l(:notice_successful_update)
+      redirect_to :action => 'list'
+    else
+      render :action => 'edit'
+    end
+  end
+
+  def destroy
+    ProjectStatus.find(params[:id]).destroy
+    redirect_to :action => 'list'
+  rescue
+    flash[:error] = "Unable to delete project status"
+    redirect_to :action => 'list'
+  end  	
+end
Index: app/controllers/admin_controller.rb
===================================================================
--- app/controllers/admin_controller.rb	(wersja 2966)
+++ app/controllers/admin_controller.rb	(kopia robocza)
@@ -27,7 +27,7 @@
 	
   def projects
     @status = params[:status] ? params[:status].to_i : 1
-    c = ARCondition.new(@status == 0 ? "status <> 0" : ["status = ?", @status])
+    c = ARCondition.new(@status == 0 ? "status_id <> 0" : "status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)")
     
     unless params[:name].blank?
       name = "%#{params[:name].strip.downcase}%"
Index: app/controllers/projects_controller.rb
===================================================================
--- app/controllers/projects_controller.rb	(wersja 2966)
+++ app/controllers/projects_controller.rb	(kopia robocza)
@@ -92,7 +92,7 @@
     @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position")
     @trackers = Tracker.all
     @root_projects = Project.find(:all,
-                                  :conditions => "parent_id IS NULL AND status = #{Project::STATUS_ACTIVE}",
+                                  :conditions => "parent_id IS NULL AND status_id IN (SELECT ps.id FROM #{ProjectStatus.table_name} ps WHERE ps.is_archived = 0)",
                                   :order => 'name')
     if request.get?
       @project = Project.copy_from(params[:id])
Index: app/views/project_statuses/list.rhtml
===================================================================
--- app/views/project_statuses/list.rhtml	(wersja 0)
+++ app/views/project_statuses/list.rhtml	(wersja 0)
@@ -0,0 +1,35 @@
+<div class="contextual">
+<%= link_to l(:label_project_status_new), {:action => 'new'}, :class => 'icon icon-add' %>
+</div>
+
+<h2><%=l(:label_project_status_plural)%></h2>
+ 
+<table class="list">
+  <thead><tr>
+  <th><%=l(:field_status)%></th>
+  <th><%=l(:field_is_default)%></th>
+  <th><%=l(:field_is_archived)%></th>
+  <th><%=l(:button_sort)%></th>
+  <th></th>
+  </tr></thead>
+  <tbody>  
+<% for status in @project_statuses %>
+  <tr class="<%= cycle("odd", "even") %>">
+  <td><%= link_to status.name, :action => 'edit', :id => status %></td>
+  <td align="center"><%= image_tag 'true.png' if status.is_default? %></td>
+  <td align="center"><%= image_tag 'true.png' if status.is_archived? %></td>
+  <td align="center" style="width:15%;"><%= reorder_links('project_status', {:action => 'update', :id => status}) %></td>
+  <td class="buttons">
+    <%= link_to(l(:button_delete), { :action => 'destroy', :id => status },
+    															 :method => :post,
+    															 :confirm => l(:text_are_you_sure),
+    															 :class => 'icon icon-del') %>
+  </td>
+  </tr>
+<% end %>
+  </tbody>
+</table>
+
+<p class="pagination"><%= pagination_links_full @project_status_pages %></p>
+
+<% html_title(l(:label_project_status_plural)) -%>
Index: app/views/project_statuses/_form.rhtml
===================================================================
--- app/views/project_statuses/_form.rhtml	(wersja 0)
+++ app/views/project_statuses/_form.rhtml	(wersja 0)
@@ -0,0 +1,17 @@
+<%= error_messages_for 'project_status' %>
+
+<div class="box">
+<!--[form:project_status]-->
+<p><label for="project_status_name"><%=l(:field_name)%><span class="required"> *</span></label>
+<%= text_field 'project_status', 'name'  %></p>
+
+<p><label for="project_status_is_archived"><%=l(:field_is_archived)%></label>
+<%= check_box 'project_status', 'is_archived' %></p>
+
+<p><label for="project_status_is_default"><%=l(:field_is_default)%></label>
+<%= check_box 'project_status', 'is_default' %></p>
+
+<%= call_hook(:view_project_statuses_form, :project_status => @project_status) %>
+
+<!--[eoform:project_status]-->
+</div>
Index: app/views/project_statuses/edit.rhtml
===================================================================
--- app/views/project_statuses/edit.rhtml	(wersja 0)
+++ app/views/project_statuses/edit.rhtml	(wersja 0)
@@ -0,0 +1,6 @@
+<h2><%= link_to l(:label_project_status_plural), :controller => 'project_statuses', :action => 'index' %> &#187; <%=h @project_status %></h2>
+
+<% form_tag({:action => 'update', :id => @project_status}, :class => "tabular") do %>
+  <%= render :partial => 'form' %>
+  <%= submit_tag l(:button_save) %>
+<% end %>
Index: app/views/project_statuses/new.rhtml
===================================================================
--- app/views/project_statuses/new.rhtml	(wersja 0)
+++ app/views/project_statuses/new.rhtml	(wersja 0)
@@ -0,0 +1,6 @@
+<h2><%= link_to l(:label_project_status_plural), :controller => 'project_statuses', :action => 'index' %> &#187; <%=l(:label_project_status_new)%></h2>
+
+<% form_tag({:action => 'create'}, :class => "tabular") do %>
+  <%= render :partial => 'form' %>
+  <%= submit_tag l(:button_create) %>
+<% end %>
Index: app/views/admin/index.rhtml
===================================================================
--- app/views/admin/index.rhtml	(wersja 2966)
+++ app/views/admin/index.rhtml	(kopia robocza)
@@ -24,6 +24,7 @@
 <p class="icon22 icon22-tracker">
 <%= link_to l(:label_tracker_plural), :controller => 'trackers' %> |
 <%= link_to l(:label_issue_status_plural), :controller => 'issue_statuses' %> |
+<%= link_to l(:label_project_status_plural), :controller => 'project_statuses' %> |
 <%= link_to l(:label_workflow), :controller => 'workflows', :action => 'edit' %>
 </p>
 
Index: app/views/projects/_form.rhtml
===================================================================
--- app/views/projects/_form.rhtml	(wersja 2966)
+++ app/views/projects/_form.rhtml	(kopia robocza)
@@ -7,7 +7,7 @@
 <% if User.current.admin? && !@project.possible_parents.empty? %>
     <p><label><%= l(:field_parent) %></label><%= parent_project_select_tag(@project) %></p>
 <% end %>
-
+<p><%= f.select :status_id, (ProjectStatus.find(:all).sort.collect {|p| [p.name, p.id]}), :required => true %></p>
 <p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p>
 <p><%= f.text_field :identifier, :required => true, :disabled => @project.identifier_frozen? %>
 <% unless @project.identifier_frozen? %>
Index: app/views/projects/show.rhtml
===================================================================
--- app/views/projects/show.rhtml	(wersja 2966)
+++ app/views/projects/show.rhtml	(kopia robocza)
@@ -4,6 +4,7 @@
 	<%= textilizable @project.description %>	
 	<ul>
 	<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= link_to(h(@project.homepage), @project.homepage) %></li><% end %>
+        <li><%=l(:field_status)%>: <%= @project.status.name%></li>
   <% if @subprojects.any? %>
  	<li><%=l(:label_subproject_plural)%>:
 	    <%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ") %></li>
Index: db/migrate/20091021011305_add_status_to_project.rb
===================================================================
--- db/migrate/20091021011305_add_status_to_project.rb	(wersja 0)
+++ db/migrate/20091021011305_add_status_to_project.rb	(wersja 0)
@@ -0,0 +1,31 @@
+class AddStatusToProject < ActiveRecord::Migration
+  include Redmine::I18n
+  def self.up
+    set_language_if_valid Setting.default_language
+    create_table "project_statuses", :force => true do |t|
+      t.column "name", :string, :limit => 30, :default => "", :null => false
+      t.column "is_archived", :boolean, :default => false, :null => false
+      t.column "is_default", :boolean, :default => false, :null => false
+      t.column :position, :integer, :default => 1
+    end
+    remove_column(:projects, :status)
+    add_column :projects, :status_id, :integer, :default => 1, :null => false
+
+    # Project statuses
+    proposed       = ProjectStatus.create!(:name => l(:default_project_status_proposed), :is_archived => false, :is_default => true, :position => 1)
+    in_planning  = ProjectStatus.create!(:name => l(:default_project_status_in_planning), :is_archived => false, :is_default => false, :position => 2)
+    in_progress  = ProjectStatus.create!(:name => l(:default_project_status_in_progress), :is_archived => false, :is_default => false, :position => 3)
+    on_hold  = ProjectStatus.create!(:name => l(:default_project_status_on_hold), :is_archived => false, :is_default => false, :position => 4)
+    complete    = ProjectStatus.create!(:name => l(:default_project_status_complete), :is_archived => false, :is_default => false, :position => 5)
+    archived  = ProjectStatus.create!(:name => l(:default_project_status_archived), :is_archived => true, :is_default => false, :position => 6)
+
+    Project.find(:all).each do |project|
+      project.status = in_progress
+      project.save
+    end
+  end
+
+  def self.down
+      raise ActiveRecord::IrreversibleMigration, "Can't recover deleted data"
+  end
+end
Index: config/locales/lt.yml
===================================================================
--- config/locales/lt.yml	(wersja 2966)
+++ config/locales/lt.yml	(kopia robocza)
@@ -862,3 +862,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/ro.yml
===================================================================
--- config/locales/ro.yml	(wersja 2966)
+++ config/locales/ro.yml	(kopia robocza)
@@ -829,3 +829,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/zh.yml
===================================================================
--- config/locales/zh.yml	(wersja 2966)
+++ config/locales/zh.yml	(kopia robocza)
@@ -854,3 +854,14 @@
   enumeration_activities: 活动（时间跟踪）
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/pt.yml
===================================================================
--- config/locales/pt.yml	(wersja 2966)
+++ config/locales/pt.yml	(kopia robocza)
@@ -844,3 +844,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/ca.yml
===================================================================
--- config/locales/ca.yml	(wersja 2966)
+++ config/locales/ca.yml	(kopia robocza)
@@ -829,3 +829,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/pt-BR.yml
===================================================================
--- config/locales/pt-BR.yml	(wersja 2966)
+++ config/locales/pt-BR.yml	(kopia robocza)
@@ -858,3 +858,14 @@
   text_journal_added: "{{label}} {{value}} adicionado"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/tr.yml
===================================================================
--- config/locales/tr.yml	(wersja 2966)
+++ config/locales/tr.yml	(kopia robocza)
@@ -859,3 +859,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/ru.yml
===================================================================
--- config/locales/ru.yml	(wersja 2966)
+++ config/locales/ru.yml	(kopia robocza)
@@ -940,3 +940,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/el.yml
===================================================================
--- config/locales/el.yml	(wersja 2966)
+++ config/locales/el.yml	(kopia robocza)
@@ -832,3 +832,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/en.yml
===================================================================
--- config/locales/en.yml	(wersja 2966)
+++ config/locales/en.yml	(kopia robocza)
@@ -831,3 +831,14 @@
   enumeration_doc_categories: Document categories
   enumeration_activities: Activities (time tracking)
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/gl.yml
===================================================================
--- config/locales/gl.yml	(wersja 2966)
+++ config/locales/gl.yml	(kopia robocza)
@@ -852,3 +852,13 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
Index: config/locales/cs.yml
===================================================================
--- config/locales/cs.yml	(wersja 2966)
+++ config/locales/cs.yml	(kopia robocza)
@@ -832,3 +832,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/es.yml
===================================================================
--- config/locales/es.yml	(wersja 2966)
+++ config/locales/es.yml	(kopia robocza)
@@ -873,3 +873,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/ko.yml
===================================================================
--- config/locales/ko.yml	(wersja 2966)
+++ config/locales/ko.yml	(kopia robocza)
@@ -892,3 +892,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/zh-TW.yml
===================================================================
--- config/locales/zh-TW.yml	(wersja 2966)
+++ config/locales/zh-TW.yml	(kopia robocza)
@@ -921,3 +921,14 @@
   enumeration_activities: 活動 (時間追蹤)
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/it.yml
===================================================================
--- config/locales/it.yml	(wersja 2966)
+++ config/locales/it.yml	(kopia robocza)
@@ -839,3 +839,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/sk.yml
===================================================================
--- config/locales/sk.yml	(wersja 2966)
+++ config/locales/sk.yml	(kopia robocza)
@@ -831,3 +831,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/sl.yml
===================================================================
--- config/locales/sl.yml	(wersja 2966)
+++ config/locales/sl.yml	(kopia robocza)
@@ -828,3 +828,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/uk.yml
===================================================================
--- config/locales/uk.yml	(wersja 2966)
+++ config/locales/uk.yml	(kopia robocza)
@@ -828,3 +828,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/sr.yml
===================================================================
--- config/locales/sr.yml	(wersja 2966)
+++ config/locales/sr.yml	(kopia robocza)
@@ -847,3 +847,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/da.yml
===================================================================
--- config/locales/da.yml	(wersja 2966)
+++ config/locales/da.yml	(kopia robocza)
@@ -852,3 +852,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/sv.yml
===================================================================
--- config/locales/sv.yml	(wersja 2966)
+++ config/locales/sv.yml	(kopia robocza)
@@ -879,3 +879,14 @@
   label_time_entry_plural: Spent time
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/bg.yml
===================================================================
--- config/locales/bg.yml	(wersja 2966)
+++ config/locales/bg.yml	(kopia robocza)
@@ -826,3 +826,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/de.yml
===================================================================
--- config/locales/de.yml	(wersja 2966)
+++ config/locales/de.yml	(kopia robocza)
@@ -852,3 +852,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/ja.yml
===================================================================
--- config/locales/ja.yml	(wersja 2966)
+++ config/locales/ja.yml	(kopia robocza)
@@ -861,3 +861,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/he.yml
===================================================================
--- config/locales/he.yml	(wersja 2966)
+++ config/locales/he.yml	(kopia robocza)
@@ -836,3 +836,13 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
Index: config/locales/fi.yml
===================================================================
--- config/locales/fi.yml	(wersja 2966)
+++ config/locales/fi.yml	(kopia robocza)
@@ -862,3 +862,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/bs.yml
===================================================================
--- config/locales/bs.yml	(wersja 2966)
+++ config/locales/bs.yml	(kopia robocza)
@@ -850,3 +850,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/fr.yml
===================================================================
--- config/locales/fr.yml	(wersja 2966)
+++ config/locales/fr.yml	(kopia robocza)
@@ -854,3 +854,14 @@
   text_journal_added: "{{label}} {{value}} ajouté"
   field_active: Actif
   enumeration_system_activity: Activité système
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/nl.yml
===================================================================
--- config/locales/nl.yml	(wersja 2966)
+++ config/locales/nl.yml	(kopia robocza)
@@ -814,3 +814,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/pl.yml
===================================================================
--- config/locales/pl.yml	(wersja 2966)
+++ config/locales/pl.yml	(kopia robocza)
@@ -855,3 +855,14 @@
   text_journal_added: "Dodano {{label}} {{value}}"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Statusy projektów
+  label_project_status_new: Nowy status
+  default_project_status_proposed: Zaproponowany
+  default_project_status_in_planning: Planowany
+  default_project_status_in_progress: W Toku
+  default_project_status_on_hold: Wstrzymany
+  default_project_status_complete: Ukończony
+  default_project_status_archived: Zarchiwizowany
+  field_is_archived: Zarchiwizowany
+  
\ No newline at end of file
Index: config/locales/th.yml
===================================================================
--- config/locales/th.yml	(wersja 2966)
+++ config/locales/th.yml	(kopia robocza)
@@ -829,3 +829,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/no.yml
===================================================================
--- config/locales/no.yml	(wersja 2966)
+++ config/locales/no.yml	(kopia robocza)
@@ -827,3 +827,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/hu.yml
===================================================================
--- config/locales/hu.yml	(wersja 2966)
+++ config/locales/hu.yml	(kopia robocza)
@@ -857,3 +857,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
Index: config/locales/vi.yml
===================================================================
--- config/locales/vi.yml	(wersja 2966)
+++ config/locales/vi.yml	(kopia robocza)
@@ -891,3 +891,14 @@
   text_journal_added: "{{label}} {{value}} added"
   field_active: Active
   enumeration_system_activity: System Activity
+
+  label_project_status_plural: Project statuses
+  label_project_status_new: New status
+  default_project_status_proposed: Proposed
+  default_project_status_in_planning: In Planning
+  default_project_status_in_progress: In Progress
+  default_project_status_on_hold: On Hold
+  default_project_status_complete: Colmplete
+  default_project_status_archived: Archived
+  field_is_archived: Archived
+  
\ No newline at end of file
