Tôi sẽ làm cách nào để thêm "Spent Time" làm cột được hiển thị trong danh sách các vấn đề?Redmine - Thêm trường "Spent Time" cho các vấn đề Hiển thị
Trả lời
Bạn cũng có thể làm điều này bằng cách thêm cột khi chạy. Điều này sẽ thêm cột giờ đã dành mà không sửa đổi lõi Redmine. Chỉ cần thả đoạn mã sau vào một tập tin trong thư mục lib/
Phỏng theo:
require_dependency 'query' module QueryPatch def self.included(base) # :nodoc: base.extend(ClassMethods) # Same as typing in the class base.class_eval do unloadable # Send unloadable so it will not be unloaded in development base.add_available_column(QueryColumn.new(:spent_hours)) end end module ClassMethods unless Query.respond_to?(:available_columns=) # Setter for +available_columns+ that isn't provided by the core. def available_columns=(v) self.available_columns = (v) end end unless Query.respond_to?(:add_available_column) # Method to add a column to the +available_columns+ that isn't provided by the core. def add_available_column(column) self.available_columns
Vì không có ai trả lời, tôi chỉ chọc vào nguồn cho đến khi nó mang lại kết quả. Sau đó, tôi bắt đầu một blog để giải thích làm thế nào tôi đã làm nó.
Củng cố Eric và Joel của câu trả lời, đây là những gì tôi cần làm để có được cột 'Thời gian đã' được thêm vào Redmine 1.0.3. Bạn không chắc chắn liệu có cách nào tốt hơn để thêm văn bản dịch hay không.
Để cung cấp cho các lĩnh vực mới một tên cục bộ, thêm vào config/miền địa phương/en.yml xung quanh dòng 299 ở phần cuối của các định nghĩa lĩnh vực:
field_spent_hours: Spent time
Để thêm các cột mới, tạo lib/spent_time_query_patch rb với nội dung:
# Based on http://github.com/edavis10/question_plugin/blob/master/lib/question_query_patch.rb
require_dependency 'query'
module QueryPatch
def self.included(base) # :nodoc:
base.extend(ClassMethods)
# Same as typing in the class
base.class_eval do
unloadable # Send unloadable so it will not be unloaded in development
base.add_available_column(QueryColumn.new(:spent_hours))
end
end
module ClassMethods
unless Query.respond_to?(:available_columns=)
# Setter for +available_columns+ that isn't provided by the core.
def available_columns=(v)
self.available_columns = (v)
end
end
unless Query.respond_to?(:add_available_column)
# Method to add a column to the +available_columns+ that isn't provided by the core.
def add_available_column(column)
self.available_columns << (column)
end
end
end
end
để có được spent_time_query_patch trên để thực sự tải, tạo config/initializers/spent_time_query_patch.rb với nội dung:
require 'spent_time_query_patch'
Query.class_eval do
include QueryPatch
end
Cảm ơn bạn đã viết thư này cho người khác. :) –
Điều này dường như không hiệu quả đối với tôi - có bất kỳ lệnh nào để chạy để lấy redmine để xem các thay đổi không? – Toby
Tôi cần dừng và khởi động lại máy chủ web của mình. (Tôi không phải là chuyên gia Rails/Ruby, nhưng nếu vì lý do nào đó, thiết lập của bạn không được cấu hình để tự động tải các tệp .rb trong config/initializers/sau đó đoạn mã Query.class_eval sẽ không bao giờ chạy và bản vá không Có thể kiểm tra xem bạn đã có quyền sở hữu/quyền của tệp trên các tệp mới được đặt chính xác sao cho máy chủ web có thể đọc chúng. Có lẽ ai đó có nhiều chuyên gia về Ruby có thể nhận xét về cách kiểm tra tính năng tự động tải của đường dẫn cho ...) – user2067021
Ngoài ra, sẽ rất tuyệt nếu cột "Thời gian đã tiêu" có thể được sắp xếp.
Sau khi nhìn lên SQL sản xuất, tôi chỉ triển khai tính năng sắp xếp được này theo cách này:
base.add_available_column(QueryColumn.new(:spent_hours,
:sortable => "(select sum(hours) from time_entries where time_entries.issue_id = t0_r0)")
)
Thay thế dòng tương ứng. Tôi chỉ hy vọng tên cột ISSUE_ID luôn là "t0_r0" ...
PS: Bạn có thể tìm thấy rất nhiều ví dụ trong dòng ứng dụng/mô hình/query.rb 122 ++
Vấn đề 2-Digits: Thật không may, tôi đã phải hack một trong các tập tin cốt lõi: app/giúp đỡ/queries_helper.rb
Khoảng dòng 44, thay đổi này:
when 'Fixnum', 'Float'
if column.name == :done_ratio
progress_bar(value, :width => '80px')
else
value.to_s
end
thành:
when 'Fixnum', 'Float'
if column.name == :done_ratio
progress_bar(value, :width => '80px')
elsif column.name == :spent_hours
sprintf "%.2f", value
else
value.to_s
end
CHỈNH SỬA: Sử dụng miếng vá thay vì thao tác nguồn Gần đây, chúng tôi đã cập nhật hệ thống redmine, vì vậy sửa chữa đã đề cập ở trên cũng đã bị xóa. Lần này, chúng tôi quyết định thực hiện điều đó dưới dạng bản vá.
Mở bất kỳ plugin nào (Chúng tôi đã tạo plugin cho các thay đổi về bản vá khỉ của chúng tôi trên lõi). mở ra vendor/plugins/redmine_YOURPLUGIN/app/giúp đỡ/queries_helper.rb
module QueriesHelper
def new_column_content(column, issue)
value = column.value(issue)
if value.class.name == "Float" and column.name == :spent_hours
sprintf "%.2f", value
else
__column_content(column, issue)
end
end
alias_method :__column_content, :column_content
alias_method :column_content, :new_column_content
end
Tính năng này build in từ 1.4.0 phiên bản
bằng cách sử dụng AgileDwarf plugin. Bạn có thể đã dành thời gian & bạn có thể nói cho những gì bạn đã dành thời gian này (phát triển - thiết kế -...)
- 1. @ vấn đề hiển thị phông chữ trong Chrome cho PC
- 2. Vấn đề hiển thị lưới libgdx
- 3. FolderBrowserDialog hiển thị vấn đề SelectedPath
- 4. Highcharts - HTML tooltip & datalabels hiển thị vấn đề
- 5. Hiển thị Time in AM/PM định dạng trong android
- 6. Vấn đề hiển thị WideChar trên Windows 7
- 7. Vấn đề hiển thị nhập văn bản với Twitter Bootstrap
- 8. Cách làm cho bạn không hiển thị các vấn đề được giải quyết
- 9. Vấn đề hiển thị Fast Scroll với ListAdapter và SectionIndexer
- 10. Cách tốt nhất để liên kết vấn đề Redmine với SVN revision
- 11. Vấn đề hiển thị ảo hóa DataGrid hàng
- 12. vấn đề hiển thị wxBitmaps bằng cách sử dụng wxPython
- 13. Đường viền chấm chấm CSS hiển thị vấn đề
- 14. Ẩn gợi ý "Hiển thị vấn đề" trong studio android
- 15. PhoneGap và Galaxy s4 hiển thị vấn đề
- 16. Hiển thị CSS: bảng; vấn đề khoảng cách trên Chrome
- 17. trang đơn hiển thị, nhiều trang in vấn đề
- 18. Django: Thêm các lớp CSS khi hiển thị các trường biểu mẫu trong một mẫu
- 19. Symfony2 và Twig hiển thị các vấn đề về hiệu suất
- 20. Hiển thị các trường có lỗi cho các biểu mẫu lồng nhau trong Rails 3.2 + SimpleForm
- 21. Thêm tệp vào redmine qua dòng lệnh
- 22. Hiển thị lỗi trường Grails
- 23. Các vấn đề với việc hiển thị bản đồ lát lớn trong WPF
- 24. các vấn đề NP-complete đầu tiên được hiển thị là NP-complete như thế nào?
- 25. Redmine + Gitolite - Vấn đề với quyền của kho lưu trữ và nhiều hơn nữa
- 26. DataContractSerializer vấn đề với các sự kiện/trường đại biểu
- 27. UICollectionView hiển thị các ô sai sau khi di chuyển - vấn đề dequeue?
- 28. phpMyAdmin không hiển thị các cột được thêm
- 29. phpMyAdmin - Hiển thị các trường BLOB dưới dạng văn bản?
- 30. Thêm trường DATE và TIME để nhận trường DATETIME trong MySQL
Tôi đã sử dụng thành công phương pháp này tối qua để đảm bảo dự án hiển thị dưới dạng cột có thể sắp xếp. Mã nguồn đầy đủ không có trong câu trả lời này, chỉ cần truy cập: http://github.com/edavis10/redmine-question-plugin/tree/master/lib/question_query_patch.rb Cảm ơn Eric và Joel. – banderson623
Vì câu trả lời này ngày càng lớn nên tôi nghĩ tôi nên hỏi trước khi thử: Bạn có biết liệu điều này có hiệu quả với Redmine 0.9.3 không? – Oskar
@Osker: Tôi không nghĩ rằng API đã thay đổi nhiều. –