mirror of
https://github.com/redmine/redmine.git
synced 2025-11-09 06:46:01 +01:00
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@16132 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -325,21 +325,28 @@ class IssuesController < ApplicationController
|
|||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
raise Unauthorized unless @issues.all?(&:deletable?)
|
raise Unauthorized unless @issues.all?(&:deletable?)
|
||||||
@hours = TimeEntry.where(:issue_id => @issues.map(&:id)).sum(:hours).to_f
|
|
||||||
|
# all issues and their descendants are about to be deleted
|
||||||
|
issues_and_descendants_ids = Issue.self_and_descendants(@issues).pluck(:id)
|
||||||
|
time_entries = TimeEntry.where(:issue_id => issues_and_descendants_ids)
|
||||||
|
@hours = time_entries.sum(:hours).to_f
|
||||||
|
|
||||||
if @hours > 0
|
if @hours > 0
|
||||||
case params[:todo]
|
case params[:todo]
|
||||||
when 'destroy'
|
when 'destroy'
|
||||||
# nothing to do
|
# nothing to do
|
||||||
when 'nullify'
|
when 'nullify'
|
||||||
TimeEntry.where(['issue_id IN (?)', @issues]).update_all('issue_id = NULL')
|
time_entries.update_all(:issue_id => nil)
|
||||||
when 'reassign'
|
when 'reassign'
|
||||||
reassign_to = @project.issues.find_by_id(params[:reassign_to_id])
|
reassign_to = @project && @project.issues.find_by_id(params[:reassign_to_id])
|
||||||
if reassign_to.nil?
|
if reassign_to.nil?
|
||||||
flash.now[:error] = l(:error_issue_not_found_in_project)
|
flash.now[:error] = l(:error_issue_not_found_in_project)
|
||||||
return
|
return
|
||||||
|
elsif issues_and_descendants_ids.include?(reassign_to.id)
|
||||||
|
flash.now[:error] = l(:error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted)
|
||||||
|
return
|
||||||
else
|
else
|
||||||
TimeEntry.where(['issue_id IN (?)', @issues]).
|
time_entries.update_all(:issue_id => reassign_to.id, :project_id => reassign_to.project_id)
|
||||||
update_all("issue_id = #{reassign_to.id}")
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# display the destroy form if it's a user request
|
# display the destroy form if it's a user request
|
||||||
|
|||||||
@@ -1081,6 +1081,15 @@ class Issue < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Returns a scope of the given issues and their descendants
|
||||||
|
def self.self_and_descendants(issues)
|
||||||
|
Issue.joins("JOIN #{Issue.table_name} ancestors" +
|
||||||
|
" ON ancestors.root_id = #{Issue.table_name}.root_id" +
|
||||||
|
" AND ancestors.lft <= #{Issue.table_name}.lft AND ancestors.rgt >= #{Issue.table_name}.rgt"
|
||||||
|
).
|
||||||
|
where(:ancestors => {:id => issues.map(&:id)})
|
||||||
|
end
|
||||||
|
|
||||||
# Finds an issue relation given its id.
|
# Finds an issue relation given its id.
|
||||||
def find_relation(relation_id)
|
def find_relation(relation_id)
|
||||||
IssueRelation.where("issue_to_id = ? OR issue_from_id = ?", id, id).find(relation_id)
|
IssueRelation.where("issue_to_id = ? OR issue_from_id = ?", id, id).find(relation_id)
|
||||||
|
|||||||
@@ -7,8 +7,10 @@
|
|||||||
<p>
|
<p>
|
||||||
<label><%= radio_button_tag 'todo', 'destroy', true %> <%= l(:text_destroy_time_entries) %></label><br />
|
<label><%= radio_button_tag 'todo', 'destroy', true %> <%= l(:text_destroy_time_entries) %></label><br />
|
||||||
<label><%= radio_button_tag 'todo', 'nullify', false %> <%= l(:text_assign_time_entries_to_project) %></label><br />
|
<label><%= radio_button_tag 'todo', 'nullify', false %> <%= l(:text_assign_time_entries_to_project) %></label><br />
|
||||||
|
<% if @project %>
|
||||||
<label><%= radio_button_tag 'todo', 'reassign', false, :onchange => 'if (this.checked) { $("#reassign_to_id").focus(); }' %> <%= l(:text_reassign_time_entries) %></label>
|
<label><%= radio_button_tag 'todo', 'reassign', false, :onchange => 'if (this.checked) { $("#reassign_to_id").focus(); }' %> <%= l(:text_reassign_time_entries) %></label>
|
||||||
<%= text_field_tag 'reassign_to_id', params[:reassign_to_id], :size => 6, :onfocus => '$("#todo_reassign").attr("checked", true);' %>
|
<%= text_field_tag 'reassign_to_id', params[:reassign_to_id], :size => 6, :onfocus => '$("#todo_reassign").attr("checked", true);' %>
|
||||||
|
<% end %>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<%= submit_tag l(:button_apply) %>
|
<%= submit_tag l(:button_apply) %>
|
||||||
|
|||||||
@@ -1208,3 +1208,5 @@ ar:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1303,3 +1303,5 @@ az:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1196,3 +1196,5 @@ bg:
|
|||||||
text_repository_identifier_info: 'Позволени са малки букви (a-z), цифри, тирета и _.<br />Промяна след създаването му не е възможна.'
|
text_repository_identifier_info: 'Позволени са малки букви (a-z), цифри, тирета и _.<br />Промяна след създаването му не е възможна.'
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1221,3 +1221,5 @@ bs:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1198,3 +1198,5 @@ ca:
|
|||||||
setting_new_item_menu_tab: Pestanya de nous objectes en el menu de cada projecte
|
setting_new_item_menu_tab: Pestanya de nous objectes en el menu de cada projecte
|
||||||
label_new_object_tab_enabled: Mostrar el llistat desplegable "+"
|
label_new_object_tab_enabled: Mostrar el llistat desplegable "+"
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: "Cap projecte disposa d'un tipus d'assumpte sobre el qual vostè pugui crear un assumpte"
|
error_no_projects_with_tracker_allowed_for_new_issue: "Cap projecte disposa d'un tipus d'assumpte sobre el qual vostè pugui crear un assumpte"
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1209,3 +1209,5 @@ cs:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1225,3 +1225,5 @@ da:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1211,3 +1211,5 @@ de:
|
|||||||
label_new_object_tab_enabled: Dropdown-Menü "+" anzeigen
|
label_new_object_tab_enabled: Dropdown-Menü "+" anzeigen
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1208,3 +1208,5 @@ el:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1210,3 +1210,5 @@ en-GB:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -215,6 +215,7 @@ en:
|
|||||||
error_ldap_bind_credentials: "Invalid LDAP Account/Password"
|
error_ldap_bind_credentials: "Invalid LDAP Account/Password"
|
||||||
error_no_tracker_allowed_for_new_issue_in_project: "The project doesn't have any trackers for which you can create an issue"
|
error_no_tracker_allowed_for_new_issue_in_project: "The project doesn't have any trackers for which you can create an issue"
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: "There are no projects with trackers for which you can create an issue"
|
error_no_projects_with_tracker_allowed_for_new_issue: "There are no projects with trackers for which you can create an issue"
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: "Spent time cannot be reassigned to an issue that is about to be deleted"
|
||||||
|
|
||||||
mail_subject_lost_password: "Your %{value} password"
|
mail_subject_lost_password: "Your %{value} password"
|
||||||
mail_body_lost_password: 'To change your password, click on the following link:'
|
mail_body_lost_password: 'To change your password, click on the following link:'
|
||||||
|
|||||||
@@ -1238,3 +1238,5 @@ es-PA:
|
|||||||
setting_new_item_menu_tab: Pestaña de creación de nuevos objetos en el menú de cada proyecto
|
setting_new_item_menu_tab: Pestaña de creación de nuevos objetos en el menú de cada proyecto
|
||||||
label_new_object_tab_enabled: Mostrar la lista desplegable "+"
|
label_new_object_tab_enabled: Mostrar la lista desplegable "+"
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: Ningún proyecto dispone de un tipo sobre el cual puedas crear una petición
|
error_no_projects_with_tracker_allowed_for_new_issue: Ningún proyecto dispone de un tipo sobre el cual puedas crear una petición
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1236,3 +1236,5 @@ es:
|
|||||||
setting_new_item_menu_tab: Pestaña de creación de nuevos objetos en el menú de cada proyecto
|
setting_new_item_menu_tab: Pestaña de creación de nuevos objetos en el menú de cada proyecto
|
||||||
label_new_object_tab_enabled: Mostrar la lista desplegable "+"
|
label_new_object_tab_enabled: Mostrar la lista desplegable "+"
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: Ningún proyecto dispone de un tipo sobre el cual puedas crear una petición
|
error_no_projects_with_tracker_allowed_for_new_issue: Ningún proyecto dispone de un tipo sobre el cual puedas crear una petición
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1213,3 +1213,5 @@ et:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1209,3 +1209,5 @@ eu:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1209,3 +1209,5 @@ fa:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1229,3 +1229,5 @@ fi:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -235,6 +235,7 @@ fr:
|
|||||||
error_ldap_bind_credentials: "Identifiant ou mot de passe LDAP incorrect"
|
error_ldap_bind_credentials: "Identifiant ou mot de passe LDAP incorrect"
|
||||||
error_no_tracker_allowed_for_new_issue_in_project: "Le projet ne dispose d'aucun tracker sur lequel vous pouvez créer une demande"
|
error_no_tracker_allowed_for_new_issue_in_project: "Le projet ne dispose d'aucun tracker sur lequel vous pouvez créer une demande"
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: "Aucun projet ne dispose d'un tracker sur lequel vous pouvez créer une demande"
|
error_no_projects_with_tracker_allowed_for_new_issue: "Aucun projet ne dispose d'un tracker sur lequel vous pouvez créer une demande"
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: "Le temps passé ne peut pas être réaffecté à une demande qui va être supprimée"
|
||||||
|
|
||||||
mail_subject_lost_password: "Votre mot de passe %{value}"
|
mail_subject_lost_password: "Votre mot de passe %{value}"
|
||||||
mail_body_lost_password: 'Pour changer votre mot de passe, cliquez sur le lien suivant :'
|
mail_body_lost_password: 'Pour changer votre mot de passe, cliquez sur le lien suivant :'
|
||||||
|
|||||||
@@ -1216,3 +1216,5 @@ gl:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1213,3 +1213,5 @@ he:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1207,3 +1207,5 @@ hr:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1227,3 +1227,5 @@
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1212,3 +1212,5 @@ id:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1203,3 +1203,5 @@ it:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1219,3 +1219,5 @@ ja:
|
|||||||
label_new_object_tab_enabled: '"+" ドロップダウンを表示'
|
label_new_object_tab_enabled: '"+" ドロップダウンを表示'
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1247,3 +1247,5 @@ ko:
|
|||||||
label_new_object_tab_enabled: 메뉴에 "+" 탭 표시
|
label_new_object_tab_enabled: 메뉴에 "+" 탭 표시
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1197,3 +1197,5 @@ lt:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1202,3 +1202,5 @@ lv:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1208,3 +1208,5 @@ mk:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1209,3 +1209,5 @@ mn:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1187,3 +1187,5 @@ nl:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1198,3 +1198,5 @@
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1223,3 +1223,5 @@ pl:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1226,3 +1226,5 @@ pt-BR:
|
|||||||
label_new_object_tab_enabled: Exibir o "+" suspenso
|
label_new_object_tab_enabled: Exibir o "+" suspenso
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1211,3 +1211,5 @@ pt:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1203,3 +1203,5 @@ ro:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1310,3 +1310,5 @@ ru:
|
|||||||
label_new_object_tab_enabled: Отображать выпадающий список "+"
|
label_new_object_tab_enabled: Отображать выпадающий список "+"
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1198,3 +1198,5 @@ sk:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1208,3 +1208,5 @@ sl:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1204,3 +1204,5 @@ sq:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1210,3 +1210,5 @@ sr-YU:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1209,3 +1209,5 @@ sr:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1241,3 +1241,5 @@ sv:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1205,3 +1205,5 @@ th:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1216,3 +1216,5 @@ tr:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1203,3 +1203,5 @@ uk:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1261,3 +1261,5 @@ vi:
|
|||||||
label_new_object_tab_enabled: Display the "+" drop-down
|
label_new_object_tab_enabled: Display the "+" drop-down
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1278,3 +1278,5 @@
|
|||||||
description_date_from: 輸入起始日期
|
description_date_from: 輸入起始日期
|
||||||
description_date_to: 輸入結束日期
|
description_date_to: 輸入結束日期
|
||||||
text_repository_identifier_info: '僅允許使用小寫英文字母 (a-z), 阿拉伯數字, 虛線與底線。<br />一旦儲存之後, 代碼便無法再次被更改。'
|
text_repository_identifier_info: '僅允許使用小寫英文字母 (a-z), 阿拉伯數字, 虛線與底線。<br />一旦儲存之後, 代碼便無法再次被更改。'
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -1201,3 +1201,5 @@ zh:
|
|||||||
label_new_object_tab_enabled: 显示 "+" 为下拉列表
|
label_new_object_tab_enabled: 显示 "+" 为下拉列表
|
||||||
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
error_no_projects_with_tracker_allowed_for_new_issue: There are no projects with trackers
|
||||||
for which you can create an issue
|
for which you can create an issue
|
||||||
|
error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted: Spent time cannot
|
||||||
|
be reassigned to an issue that is about to be deleted
|
||||||
|
|||||||
@@ -4687,7 +4687,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_response :success
|
assert_response :success
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_destroy_issue_with_no_time_entries
|
def test_destroy_issue_with_no_time_entries_should_delete_the_issues
|
||||||
assert_nil TimeEntry.find_by_issue_id(2)
|
assert_nil TimeEntry.find_by_issue_id(2)
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
@@ -4698,7 +4698,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_nil Issue.find_by_id(2)
|
assert_nil Issue.find_by_id(2)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_destroy_issues_with_time_entries
|
def test_destroy_issues_with_time_entries_should_show_the_reassign_form
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
assert_no_difference 'Issue.count' do
|
assert_no_difference 'Issue.count' do
|
||||||
@@ -4714,6 +4714,20 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_destroy_issues_with_time_entries_should_show_hours_on_issues_and_descendants
|
||||||
|
parent = Issue.generate_with_child!
|
||||||
|
TimeEntry.generate!(:issue => parent)
|
||||||
|
TimeEntry.generate!(:issue => parent.children.first)
|
||||||
|
leaf = Issue.generate!
|
||||||
|
TimeEntry.generate!(:issue => leaf)
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
|
delete :destroy, :ids => [parent.id, leaf.id]
|
||||||
|
assert_response :success
|
||||||
|
|
||||||
|
assert_select 'p', :text => /3\.00 hours were reported/
|
||||||
|
end
|
||||||
|
|
||||||
def test_destroy_issues_and_destroy_time_entries
|
def test_destroy_issues_and_destroy_time_entries
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
@@ -4755,6 +4769,24 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_equal 2, TimeEntry.find(2).issue_id
|
assert_equal 2, TimeEntry.find(2).issue_id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_destroy_issues_with_time_entries_should_reassign_time_entries_of_issues_and_descendants
|
||||||
|
parent = Issue.generate_with_child!
|
||||||
|
TimeEntry.generate!(:issue => parent)
|
||||||
|
TimeEntry.generate!(:issue => parent.children.first)
|
||||||
|
leaf = Issue.generate!
|
||||||
|
TimeEntry.generate!(:issue => leaf)
|
||||||
|
target = Issue.generate!
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
|
assert_difference 'Issue.count', -3 do
|
||||||
|
assert_no_difference 'TimeEntry.count' do
|
||||||
|
delete :destroy, :ids => [parent.id, leaf.id], :todo => 'reassign', :reassign_to_id => target.id
|
||||||
|
assert_response 302
|
||||||
|
end
|
||||||
|
end
|
||||||
|
assert_equal 3, target.time_entries.count
|
||||||
|
end
|
||||||
|
|
||||||
def test_destroy_issues_and_reassign_time_entries_to_an_invalid_issue_should_fail
|
def test_destroy_issues_and_reassign_time_entries_to_an_invalid_issue_should_fail
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
@@ -4768,6 +4800,18 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_template 'destroy'
|
assert_template 'destroy'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_destroy_issues_and_reassign_time_entries_to_an_issue_to_delete_should_fail
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
|
assert_no_difference 'Issue.count' do
|
||||||
|
assert_no_difference 'TimeEntry.count' do
|
||||||
|
delete :destroy, :ids => [1, 3], :todo => 'reassign', :reassign_to_id => 3
|
||||||
|
end
|
||||||
|
end
|
||||||
|
assert_response :success
|
||||||
|
assert_select '#flash_error', :text => I18n.t(:error_cannot_reassign_time_entries_to_an_issue_about_to_be_deleted)
|
||||||
|
end
|
||||||
|
|
||||||
def test_destroy_issues_from_different_projects
|
def test_destroy_issues_from_different_projects
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user