Patch #4975 » 0001-Add-feature-to-automatically-archive-old-projects.patch
app/controllers/projects_controller.rb | ||
---|---|---|
91 | 91 |
@issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position") |
92 | 92 |
@trackers = Tracker.all |
93 | 93 |
@root_projects = Project.find(:all, |
94 |
:conditions => "parent_id IS NULL AND status = #{Project::STATUS_ACTIVE}",
|
|
94 |
:conditions => "parent_id IS NULL AND status < #{Project::STATUS_ARCHIVED}",
|
|
95 | 95 |
:order => 'name') |
96 | 96 |
@source_project = Project.find(params[:id]) |
97 | 97 |
if request.get? |
... | ... | |
371 | 371 |
rescue ActiveRecord::RecordNotFound |
372 | 372 |
render_404 |
373 | 373 |
end |
374 | ||
375 |
def reactivate |
|
376 |
@project = Project.find(params[:id]) |
|
377 |
if @project.status == Project::STATUS_INACTIVE |
|
378 |
@project.status = Project::STATUS_ACTIVE |
|
379 |
@project.save! |
|
380 |
flash[:notice] = l(:notice_successful_reactivate) |
|
381 |
else |
|
382 |
flash[:error] = l(:error_failed_to_reactivate) |
|
383 |
end |
|
384 |
redirect_to(:controller => 'projects', :action => 'show', :id => @project) |
|
385 |
end |
|
374 | 386 |
|
375 | 387 |
private |
376 | 388 |
# Find project of id params[:id] |
app/controllers/sys_controller.rb | ||
---|---|---|
55 | 55 |
render :nothing => true, :status => 404 |
56 | 56 |
end |
57 | 57 | |
58 |
def mark_all_inactive_projects |
|
59 |
date = Time.now.last_month |
|
60 |
(Project.active.select { |p| !p.active_since?(date) && p.created_on < date && p.descendants.size == 0 }).each do |p| |
|
61 |
p.status = Project::STATUS_INACTIVE |
|
62 |
(p.principals.select {|user| user.allowed_to?(:reactivate_project, p)}).each do |u| |
|
63 |
Mailer.deliver_inactive_reminder(u, p) |
|
64 |
end |
|
65 |
p.save |
|
66 |
end |
|
67 |
render :nothing => true, :status => 200 |
|
68 |
end |
|
69 | ||
70 |
def archive_inactive_projects |
|
71 |
date = Time.now.last_month |
|
72 |
Project.find(:all, :conditions => {:status => Project::STATUS_INACTIVE}).each do |p| |
|
73 |
if p.active_since?(date) |
|
74 |
p.status = Project::STATUS_ACTIVE |
|
75 |
else |
|
76 |
p.archive |
|
77 |
end |
|
78 |
p.save |
|
79 |
end |
|
80 |
render :nothing => true, :status => 200 |
|
81 |
end |
|
82 | ||
58 | 83 |
protected |
59 | 84 | |
60 | 85 |
def check_enabled |
app/models/mailer.rb | ||
---|---|---|
299 | 299 | |
300 | 300 |
s = ARCondition.new ["#{IssueStatus.table_name}.is_closed = ? AND #{Issue.table_name}.due_date <= ?", false, days.day.from_now.to_date] |
301 | 301 |
s << "#{Issue.table_name}.assigned_to_id IS NOT NULL" |
302 |
s << "#{Project.table_name}.status = #{Project::STATUS_ACTIVE}"
|
|
302 |
s << "#{Project.table_name}.status < #{Project::STATUS_ARCHIVED}"
|
|
303 | 303 |
s << "#{Issue.table_name}.project_id = #{project.id}" if project |
304 | 304 |
s << "#{Issue.table_name}.tracker_id = #{tracker.id}" if tracker |
305 | 305 | |
... | ... | |
311 | 311 |
end |
312 | 312 |
end |
313 | 313 | |
314 |
def inactive_reminder(user, project) |
|
315 |
set_language_if_valid(user.language) |
|
316 |
recipients user.mail |
|
317 |
subject "[#{Setting.app_title.to_s} - #{l(:mail_subject_project_activity_warning)}] #{project.name}" |
|
318 |
body :project => project, |
|
319 |
:url => url_for(:controller => 'projects', :action => 'reactivate', :id => project) |
|
320 |
render_multipart('inactive_reminder', body) |
|
321 |
end |
|
322 | ||
314 | 323 |
private |
315 | 324 |
def initialize_defaults(method_name) |
316 | 325 |
super |
app/models/principal.rb | ||
---|---|---|
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 < #{Project::STATUS_ARCHIVED}", :order => "#{Project.table_name}.name"
|
|
23 | 23 |
has_many :projects, :through => :memberships |
24 | 24 | |
25 | 25 |
# Groups and active users |
app/models/project.rb | ||
---|---|---|
18 | 18 |
class Project < ActiveRecord::Base |
19 | 19 |
# Project statuses |
20 | 20 |
STATUS_ACTIVE = 1 |
21 |
STATUS_INACTIVE = 5 |
|
21 | 22 |
STATUS_ARCHIVED = 9 |
22 | 23 |
|
23 | 24 |
# Specific overidden Activities |
... | ... | |
77 | 78 |
before_destroy :delete_all_members, :destroy_children |
78 | 79 | |
79 | 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] } } |
80 |
named_scope :active, { :conditions => "#{Project.table_name}.status = #{STATUS_ACTIVE}"}
|
|
81 |
named_scope :active, { :conditions => "#{Project.table_name}.status < #{STATUS_ARCHIVED}"}
|
|
81 | 82 |
named_scope :all_public, { :conditions => { :is_public => true } } |
82 | 83 |
named_scope :visible, lambda { { :conditions => Project.visible_by(User.current) } } |
83 | 84 |
|
... | ... | |
103 | 104 |
def self.visible_by(user=nil) |
104 | 105 |
user ||= User.current |
105 | 106 |
if user && user.admin? |
106 |
return "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"
|
|
107 |
return "#{Project.table_name}.status < #{Project::STATUS_ARCHIVED}"
|
|
107 | 108 |
elsif user && user.memberships.any? |
108 |
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(',')}))"
|
|
109 |
return "#{Project.table_name}.status < #{Project::STATUS_ARCHIVED} AND (#{Project.table_name}.is_public = #{connection.quoted_true} or #{Project.table_name}.id IN (#{user.memberships.collect{|m| m.project_id}.join(',')}))"
|
|
109 | 110 |
else |
110 |
return "#{Project.table_name}.status=#{Project::STATUS_ACTIVE} AND #{Project.table_name}.is_public = #{connection.quoted_true}"
|
|
111 |
return "#{Project.table_name}.status < #{Project::STATUS_ARCHIVED} AND #{Project.table_name}.is_public = #{connection.quoted_true}"
|
|
111 | 112 |
end |
112 | 113 |
end |
113 | 114 |
|
114 | 115 |
def self.allowed_to_condition(user, permission, options={}) |
115 | 116 |
statements = [] |
116 |
base_statement = "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"
|
|
117 |
base_statement = "#{Project.table_name}.status < #{Project::STATUS_ARCHIVED}"
|
|
117 | 118 |
if perm = Redmine::AccessControl.permission(permission) |
118 | 119 |
unless perm.project_module.nil? |
119 | 120 |
# If the permission belongs to a project module, make sure the module is enabled |
... | ... | |
217 | 218 |
end |
218 | 219 |
|
219 | 220 |
def active? |
220 |
self.status == STATUS_ACTIVE
|
|
221 |
self.status < STATUS_ARCHIVED
|
|
221 | 222 |
end |
222 | 223 |
|
223 | 224 |
# Archives the project and its descendants |
... | ... | |
322 | 323 |
@rolled_up_trackers ||= |
323 | 324 |
Tracker.find(:all, :include => :projects, |
324 | 325 |
:select => "DISTINCT #{Tracker.table_name}.*", |
325 |
:conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status = #{STATUS_ACTIVE}", lft, rgt],
|
|
326 |
:conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status < #{STATUS_ARCHIVED}", lft, rgt],
|
|
326 | 327 |
:order => "#{Tracker.table_name}.position") |
327 | 328 |
end |
328 | 329 |
|
... | ... | |
342 | 343 |
@shared_versions ||= |
343 | 344 |
Version.scoped(:include => :project, |
344 | 345 |
:conditions => "#{Project.table_name}.id = #{id}" + |
345 |
" OR (#{Project.table_name}.status = #{Project::STATUS_ACTIVE} AND (" +
|
|
346 |
" OR (#{Project.table_name}.status < #{Project::STATUS_ARCHIVED} AND (" +
|
|
346 | 347 |
" #{Version.table_name}.sharing = 'system'" + |
347 | 348 |
" OR (#{Project.table_name}.lft >= #{root.lft} AND #{Project.table_name}.rgt <= #{root.rgt} AND #{Version.table_name}.sharing = 'tree')" + |
348 | 349 |
" OR (#{Project.table_name}.lft < #{lft} AND #{Project.table_name}.rgt > #{rgt} AND #{Version.table_name}.sharing IN ('hierarchy', 'descendants'))" + |
... | ... | |
497 | 498 |
end |
498 | 499 |
end |
499 | 500 |
|
501 |
def active_since? date |
|
502 |
u = User.find(1) |
|
503 |
return Redmine::Activity::Fetcher.new(u, :project => self).events(date, Time.now).size > 0 |
|
504 |
end |
|
505 | ||
500 | 506 |
private |
501 | 507 |
|
502 | 508 |
# Destroys children before destroying self |
app/views/mailer/inactive_reminder.text.html.rhtml | ||
---|---|---|
1 |
<p><%= l(:mail_body_project_activity_warning, :project => @project.name) %></p><br /> |
|
2 |
<%= @url %> |
app/views/mailer/inactive_reminder.text.plain.rhtml | ||
---|---|---|
1 |
<%= l(:mail_body_project_activity_warning, :project => @project.name) %> |
|
2 |
<%= @url %> |
config/locales/bg.yml | ||
---|---|---|
881 | 881 |
permission_export_wiki_pages: Export wiki pages |
882 | 882 |
setting_cache_formatted_text: Cache formatted text |
883 | 883 |
permission_manage_project_activities: Manage project activities |
884 |
|
|
884 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
885 |
notice_successful_reactivate: Successful reactivation. |
|
886 |
mail_subject_project_activity_warning: Activity reminder |
|
887 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
888 |
permission_reactivate_project: Reactivate Project |
|
889 |
config/locales/bs.yml | ||
---|---|---|
905 | 905 |
permission_export_wiki_pages: Export wiki pages |
906 | 906 |
setting_cache_formatted_text: Cache formatted text |
907 | 907 |
permission_manage_project_activities: Manage project activities |
908 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
909 |
notice_successful_reactivate: Successful reactivation. |
|
910 |
mail_subject_project_activity_warning: Activity reminder |
|
911 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
912 |
permission_reactivate_project: Reactivate Project |
config/locales/ca.yml | ||
---|---|---|
884 | 884 |
permission_export_wiki_pages: Export wiki pages |
885 | 885 |
setting_cache_formatted_text: Cache formatted text |
886 | 886 |
permission_manage_project_activities: Manage project activities |
887 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
888 |
notice_successful_reactivate: Successful reactivation. |
|
889 |
mail_subject_project_activity_warning: Activity reminder |
|
890 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
891 |
permission_reactivate_project: Reactivate Project |
config/locales/cs.yml | ||
---|---|---|
887 | 887 |
permission_export_wiki_pages: Export wiki pages |
888 | 888 |
setting_cache_formatted_text: Cache formatted text |
889 | 889 |
permission_manage_project_activities: Manage project activities |
890 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
891 |
notice_successful_reactivate: Successful reactivation. |
|
892 |
mail_subject_project_activity_warning: Activity reminder |
|
893 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
894 |
permission_reactivate_project: Reactivate Project |
config/locales/da.yml | ||
---|---|---|
907 | 907 |
permission_export_wiki_pages: Export wiki pages |
908 | 908 |
setting_cache_formatted_text: Cache formatted text |
909 | 909 |
permission_manage_project_activities: Manage project activities |
910 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
911 |
notice_successful_reactivate: Successful reactivation. |
|
912 |
mail_subject_project_activity_warning: Activity reminder |
|
913 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
914 |
permission_reactivate_project: Reactivate Project |
config/locales/de.yml | ||
---|---|---|
907 | 907 |
permission_export_wiki_pages: Wiki-Seiten exportieren |
908 | 908 |
setting_cache_formatted_text: Formattierten Text zwischenspeichern |
909 | 909 |
permission_manage_project_activities: Projektaktivitäten verwalten |
910 |
error_failed_to_reactivate: Das Projekt konnte nicht reaktiviert werden. |
|
911 |
notice_successful_reactivate: Erfolgreich reaktiviert. |
|
912 |
mail_subject_project_activity_warning: Aktivitätswarnung |
|
913 |
mail_body_project_activity_warning: |- |
|
914 |
Das Projekt "{{project}}" weist seit über einem Monat keine Aktivität mehr auf. Falls das Projekt |
|
915 |
nicht mehr benötigt wird, ignorieren sie diese E-Mail. In 14 Tagen wird das Projekt automatisch |
|
916 |
archiviert. Falls Sie das Projekt "{{project}}" noch benötigen, klicken sie auf folgenden Link, |
|
917 |
um es wieder zu aktivieren. |
|
918 |
permission_reactivate_project: Projekt reaktivieren. |
config/locales/el.yml | ||
---|---|---|
887 | 887 |
permission_export_wiki_pages: Export wiki pages |
888 | 888 |
setting_cache_formatted_text: Cache formatted text |
889 | 889 |
permission_manage_project_activities: Manage project activities |
890 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
891 |
notice_successful_reactivate: Successful reactivation. |
|
892 |
mail_subject_project_activity_warning: Activity reminder |
|
893 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
894 |
permission_reactivate_project: Reactivate Project |
config/locales/en.yml | ||
---|---|---|
139 | 139 |
notice_successful_update: Successful update. |
140 | 140 |
notice_successful_delete: Successful deletion. |
141 | 141 |
notice_successful_connection: Successful connection. |
142 |
notice_successful_reactivate: Successful reactivation. |
|
142 | 143 |
notice_file_not_found: The page you were trying to access doesn't exist or has been removed. |
143 | 144 |
notice_locking_conflict: Data has been updated by another user. |
144 | 145 |
notice_not_authorized: You are not authorized to access this page. |
... | ... | |
165 | 166 |
error_issue_done_ratios_not_updated: "Issue done ratios not updated." |
166 | 167 |
error_workflow_copy_source: 'Please select a source tracker or role' |
167 | 168 |
error_workflow_copy_target: 'Please select target tracker(s) and role(s)' |
169 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
168 | 170 |
|
169 | 171 |
warning_attachments_not_saved: "{{count}} file(s) could not be saved." |
170 | 172 |
|
... | ... | |
182 | 184 |
mail_body_wiki_content_added: "The '{{page}}' wiki page has been added by {{author}}." |
183 | 185 |
mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated" |
184 | 186 |
mail_body_wiki_content_updated: "The '{{page}}' wiki page has been updated by {{author}}." |
187 |
mail_subject_project_activity_warning: "Activity reminder" |
|
188 |
mail_body_project_activity_warning: "Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days." |
|
185 | 189 |
|
186 | 190 |
gui_validation_error: 1 error |
187 | 191 |
gui_validation_error_plural: "{{count}} errors" |
... | ... | |
385 | 389 |
permission_delete_messages: Delete messages |
386 | 390 |
permission_delete_own_messages: Delete own messages |
387 | 391 |
permission_export_wiki_pages: Export wiki pages |
392 |
permission_reactivate_project: Reactivate Project |
|
388 | 393 |
|
389 | 394 |
project_module_issue_tracking: Issue tracking |
390 | 395 |
project_module_time_tracking: Time tracking |
config/locales/es.yml | ||
---|---|---|
931 | 931 |
permission_export_wiki_pages: Export wiki pages |
932 | 932 |
setting_cache_formatted_text: Cache formatted text |
933 | 933 |
permission_manage_project_activities: Manage project activities |
934 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
935 |
notice_successful_reactivate: Successful reactivation. |
|
936 |
mail_subject_project_activity_warning: Activity reminder |
|
937 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
938 |
permission_reactivate_project: Reactivate Project |
config/locales/fi.yml | ||
---|---|---|
917 | 917 |
permission_export_wiki_pages: Export wiki pages |
918 | 918 |
setting_cache_formatted_text: Cache formatted text |
919 | 919 |
permission_manage_project_activities: Manage project activities |
920 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
921 |
notice_successful_reactivate: Successful reactivation. |
|
922 |
mail_subject_project_activity_warning: Activity reminder |
|
923 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
924 |
permission_reactivate_project: Reactivate Project |
config/locales/fr.yml | ||
---|---|---|
908 | 908 |
enumeration_system_activity: Activité système |
909 | 909 |
label_board_sticky: Sticky |
910 | 910 |
label_board_locked: Verrouillé |
911 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
912 |
notice_successful_reactivate: Successful reactivation. |
|
913 |
mail_subject_project_activity_warning: Activity reminder |
|
914 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
915 |
permission_reactivate_project: Reactivate Project |
config/locales/gl.yml | ||
---|---|---|
907 | 907 |
permission_export_wiki_pages: Export wiki pages |
908 | 908 |
setting_cache_formatted_text: Cache formatted text |
909 | 909 |
permission_manage_project_activities: Manage project activities |
910 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
911 |
notice_successful_reactivate: Successful reactivation. |
|
912 |
mail_subject_project_activity_warning: Activity reminder |
|
913 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
914 |
permission_reactivate_project: Reactivate Project |
config/locales/he.yml | ||
---|---|---|
891 | 891 |
permission_export_wiki_pages: Export wiki pages |
892 | 892 |
setting_cache_formatted_text: Cache formatted text |
893 | 893 |
permission_manage_project_activities: Manage project activities |
894 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
895 |
notice_successful_reactivate: Successful reactivation. |
|
896 |
mail_subject_project_activity_warning: Activity reminder |
|
897 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
898 |
permission_reactivate_project: Reactivate Project |
config/locales/hr.yml | ||
---|---|---|
894 | 894 |
permission_export_wiki_pages: Export wiki pages |
895 | 895 |
setting_cache_formatted_text: Cache formatted text |
896 | 896 |
permission_manage_project_activities: Manage project activities |
897 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
898 |
notice_successful_reactivate: Successful reactivation. |
|
899 |
mail_subject_project_activity_warning: Activity reminder |
|
900 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
901 |
permission_reactivate_project: Reactivate Project |
config/locales/hu.yml | ||
---|---|---|
912 | 912 |
permission_export_wiki_pages: Export wiki pages |
913 | 913 |
setting_cache_formatted_text: Cache formatted text |
914 | 914 |
permission_manage_project_activities: Manage project activities |
915 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
916 |
notice_successful_reactivate: Successful reactivation. |
|
917 |
mail_subject_project_activity_warning: Activity reminder |
|
918 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
919 |
permission_reactivate_project: Reactivate Project |
config/locales/id.yml | ||
---|---|---|
899 | 899 |
permission_export_wiki_pages: Export wiki pages |
900 | 900 |
setting_cache_formatted_text: Cache formatted text |
901 | 901 |
permission_manage_project_activities: Manage project activities |
902 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
903 |
notice_successful_reactivate: Successful reactivation. |
|
904 |
mail_subject_project_activity_warning: Activity reminder |
|
905 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
906 |
permission_reactivate_project: Reactivate Project |
config/locales/it.yml | ||
---|---|---|
894 | 894 |
permission_export_wiki_pages: Export wiki pages |
895 | 895 |
setting_cache_formatted_text: Cache formatted text |
896 | 896 |
permission_manage_project_activities: Manage project activities |
897 |
|
|
897 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
898 |
notice_successful_reactivate: Successful reactivation. |
|
899 |
mail_subject_project_activity_warning: Activity reminder |
|
900 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
901 |
permission_reactivate_project: Reactivate Project |
config/locales/ja.yml | ||
---|---|---|
916 | 916 |
enumeration_activities: 作業分類 (時間トラッキング) |
917 | 917 |
enumeration_system_activity: システム作業分類 |
918 | 918 |
permission_manage_project_activities: Manage project activities |
919 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
920 |
notice_successful_reactivate: Successful reactivation. |
|
921 |
mail_subject_project_activity_warning: Activity reminder |
|
922 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
923 |
permission_reactivate_project: Reactivate Project |
config/locales/ko.yml | ||
---|---|---|
947 | 947 |
permission_export_wiki_pages: Export wiki pages |
948 | 948 |
setting_cache_formatted_text: Cache formatted text |
949 | 949 |
permission_manage_project_activities: Manage project activities |
950 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
951 |
notice_successful_reactivate: Successful reactivation. |
|
952 |
mail_subject_project_activity_warning: Activity reminder |
|
953 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
954 |
permission_reactivate_project: Reactivate Project |
config/locales/lt.yml | ||
---|---|---|
955 | 955 |
permission_export_wiki_pages: Export wiki pages |
956 | 956 |
setting_cache_formatted_text: Cache formatted text |
957 | 957 |
permission_manage_project_activities: Manage project activities |
958 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
959 |
notice_successful_reactivate: Successful reactivation. |
|
960 |
mail_subject_project_activity_warning: Activity reminder |
|
961 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
962 |
permission_reactivate_project: Reactivate Project |
config/locales/nl.yml | ||
---|---|---|
869 | 869 |
permission_export_wiki_pages: Export wiki pages |
870 | 870 |
setting_cache_formatted_text: Cache formatted text |
871 | 871 |
permission_manage_project_activities: Manage project activities |
872 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
873 |
notice_successful_reactivate: Successful reactivation. |
|
874 |
mail_subject_project_activity_warning: Activity reminder |
|
875 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
876 |
permission_reactivate_project: Reactivate Project |
config/locales/no.yml | ||
---|---|---|
882 | 882 |
permission_export_wiki_pages: Export wiki pages |
883 | 883 |
setting_cache_formatted_text: Cache formatted text |
884 | 884 |
permission_manage_project_activities: Manage project activities |
885 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
886 |
notice_successful_reactivate: Successful reactivation. |
|
887 |
mail_subject_project_activity_warning: Activity reminder |
|
888 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
889 |
permission_reactivate_project: Reactivate Project |
config/locales/pl.yml | ||
---|---|---|
912 | 912 |
permission_export_wiki_pages: Eksport stron wiki |
913 | 913 |
permission_manage_project_activities: Zarządzanie aktywnościami projektu |
914 | 914 |
setting_cache_formatted_text: Cache formatted text |
915 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
916 |
notice_successful_reactivate: Successful reactivation. |
|
917 |
mail_subject_project_activity_warning: Activity reminder |
|
918 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
919 |
permission_reactivate_project: Reactivate Project |
config/locales/pt-BR.yml | ||
---|---|---|
915 | 915 |
permission_export_wiki_pages: Export wiki pages |
916 | 916 |
setting_cache_formatted_text: Cache formatted text |
917 | 917 |
permission_manage_project_activities: Manage project activities |
918 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
919 |
notice_successful_reactivate: Successful reactivation. |
|
920 |
mail_subject_project_activity_warning: Activity reminder |
|
921 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
922 |
permission_reactivate_project: Reactivate Project |
config/locales/pt.yml | ||
---|---|---|
899 | 899 |
permission_export_wiki_pages: Export wiki pages |
900 | 900 |
setting_cache_formatted_text: Cache formatted text |
901 | 901 |
permission_manage_project_activities: Manage project activities |
902 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
903 |
notice_successful_reactivate: Successful reactivation. |
|
904 |
mail_subject_project_activity_warning: Activity reminder |
|
905 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
906 |
permission_reactivate_project: Reactivate Project |
config/locales/ro.yml | ||
---|---|---|
884 | 884 |
permission_export_wiki_pages: Export wiki pages |
885 | 885 |
setting_cache_formatted_text: Cache formatted text |
886 | 886 |
permission_manage_project_activities: Manage project activities |
887 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
888 |
notice_successful_reactivate: Successful reactivation. |
|
889 |
mail_subject_project_activity_warning: Activity reminder |
|
890 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
891 |
permission_reactivate_project: Reactivate Project |
config/locales/ru.yml | ||
---|---|---|
995 | 995 |
permission_export_wiki_pages: Export wiki pages |
996 | 996 |
setting_cache_formatted_text: Cache formatted text |
997 | 997 |
permission_manage_project_activities: Manage project activities |
998 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
999 |
notice_successful_reactivate: Successful reactivation. |
|
1000 |
mail_subject_project_activity_warning: Activity reminder |
|
1001 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
1002 |
permission_reactivate_project: Reactivate Project |
config/locales/sk.yml | ||
---|---|---|
886 | 886 |
permission_export_wiki_pages: Export wiki pages |
887 | 887 |
setting_cache_formatted_text: Cache formatted text |
888 | 888 |
permission_manage_project_activities: Manage project activities |
889 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
890 |
notice_successful_reactivate: Successful reactivation. |
|
891 |
mail_subject_project_activity_warning: Activity reminder |
|
892 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
893 |
permission_reactivate_project: Reactivate Project |
config/locales/sl.yml | ||
---|---|---|
883 | 883 |
permission_export_wiki_pages: Export wiki pages |
884 | 884 |
setting_cache_formatted_text: Cache formatted text |
885 | 885 |
permission_manage_project_activities: Manage project activities |
886 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
887 |
notice_successful_reactivate: Successful reactivation. |
|
888 |
mail_subject_project_activity_warning: Activity reminder |
|
889 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
890 |
permission_reactivate_project: Reactivate Project |
config/locales/sr.yml | ||
---|---|---|
902 | 902 |
permission_export_wiki_pages: Export wiki pages |
903 | 903 |
setting_cache_formatted_text: Cache formatted text |
904 | 904 |
permission_manage_project_activities: Manage project activities |
905 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
906 |
notice_successful_reactivate: Successful reactivation. |
|
907 |
mail_subject_project_activity_warning: Activity reminder |
|
908 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
909 |
permission_reactivate_project: Reactivate Project |
config/locales/sv.yml | ||
---|---|---|
936 | 936 |
permission_export_wiki_pages: Export wiki pages |
937 | 937 |
setting_cache_formatted_text: Cache formatted text |
938 | 938 |
permission_manage_project_activities: Manage project activities |
939 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
940 |
notice_successful_reactivate: Successful reactivation. |
|
941 |
mail_subject_project_activity_warning: Activity reminder |
|
942 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
943 |
permission_reactivate_project: Reactivate Project |
config/locales/th.yml | ||
---|---|---|
884 | 884 |
permission_export_wiki_pages: Export wiki pages |
885 | 885 |
setting_cache_formatted_text: Cache formatted text |
886 | 886 |
permission_manage_project_activities: Manage project activities |
887 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
888 |
notice_successful_reactivate: Successful reactivation. |
|
889 |
mail_subject_project_activity_warning: Activity reminder |
|
890 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
891 |
permission_reactivate_project: Reactivate Project |
config/locales/tr.yml | ||
---|---|---|
914 | 914 |
permission_export_wiki_pages: Export wiki pages |
915 | 915 |
setting_cache_formatted_text: Cache formatted text |
916 | 916 |
permission_manage_project_activities: Manage project activities |
917 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
918 |
notice_successful_reactivate: Successful reactivation. |
|
919 |
mail_subject_project_activity_warning: Activity reminder |
|
920 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
921 |
permission_reactivate_project: Reactivate Project |
config/locales/uk.yml | ||
---|---|---|
883 | 883 |
permission_export_wiki_pages: Export wiki pages |
884 | 884 |
setting_cache_formatted_text: Cache formatted text |
885 | 885 |
permission_manage_project_activities: Manage project activities |
886 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
887 |
notice_successful_reactivate: Successful reactivation. |
|
888 |
mail_subject_project_activity_warning: Activity reminder |
|
889 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
890 |
permission_reactivate_project: Reactivate Project |
config/locales/vi.yml | ||
---|---|---|
946 | 946 |
permission_export_wiki_pages: Export wiki pages |
947 | 947 |
setting_cache_formatted_text: Cache formatted text |
948 | 948 |
permission_manage_project_activities: Manage project activities |
949 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
950 |
notice_successful_reactivate: Successful reactivation. |
|
951 |
mail_subject_project_activity_warning: Activity reminder |
|
952 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
953 |
permission_reactivate_project: Reactivate Project |
config/locales/zh-TW.yml | ||
---|---|---|
978 | 978 |
permission_export_wiki_pages: Export wiki pages |
979 | 979 |
setting_cache_formatted_text: Cache formatted text |
980 | 980 |
permission_manage_project_activities: Manage project activities |
981 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
982 |
notice_successful_reactivate: Successful reactivation. |
|
983 |
mail_subject_project_activity_warning: Activity reminder |
|
984 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
985 |
permission_reactivate_project: Reactivate Project |
config/locales/zh.yml | ||
---|---|---|
909 | 909 |
permission_export_wiki_pages: Export wiki pages |
910 | 910 |
setting_cache_formatted_text: Cache formatted text |
911 | 911 |
permission_manage_project_activities: Manage project activities |
912 |
|
|
912 |
error_failed_to_reactivate: "Can't reactivate the project." |
|
913 |
notice_successful_reactivate: Successful reactivation. |
|
914 |
mail_subject_project_activity_warning: Activity reminder |
|
915 |
mail_body_project_activity_warning: Your project '{{project}}' has no activity for a month. If you still need the project, click the following link, otherwise the project will be archived in 14 days. |
|
916 |
permission_reactivate_project: Reactivate Project |
config/routes.rb | ||
---|---|---|
184 | 184 |
project_views.connect 'projects/:id/versions/new', :action => 'add_version' |
185 | 185 |
project_views.connect 'projects/:id/categories/new', :action => 'add_issue_category' |
186 | 186 |
project_views.connect 'projects/:id/settings/:tab', :action => 'settings' |
187 |
project_views.connect 'projects/:id/reactivate', :action => 'reactivate' |
|
187 | 188 |
end |
188 | 189 | |
189 | 190 |
projects.with_options :action => 'activity', :conditions => {:method => :get} do |activity| |
lib/redmine.rb | ||
---|---|---|
33 | 33 |
map.permission :manage_members, {:projects => :settings, :members => [:new, :edit, :destroy, :autocomplete_for_member]}, :require => :member |
34 | 34 |
map.permission :manage_versions, {:projects => [:settings, :add_version], :versions => [:edit, :close_completed, :destroy]}, :require => :member |
35 | 35 |
map.permission :add_subprojects, {:projects => :add}, :require => :member |
36 |
map.permission :reactivate_project, {:projects => :reactivate}, :require => :member |
|
36 | 37 |
|
37 | 38 |
map.project_module :issue_tracking do |map| |
38 | 39 |
# Issue categories |