Jak powinienem dodać "Czas spędzony" jako kolumnę wyświetlaną na liście problemów?Redmine - Dodaj pole "Czas spędzony" do wyświetlania problemów
Odpowiedz
Można również zrobić to dodając kolumnę przy starcie. Spowoduje to dodanie kolumny zużytych godzin bez modyfikowania rdzenia Redmine. Wystarczy włożyć następujący kod do pliku w lib/
Adaptacja:
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
Ponieważ nikt nie odpowiedział, po prostu wsunąłem źródło, dopóki nie uzyskało wyników. Potem założyłem bloga, aby wyjaśnić, jak to zrobiłem.
Konsolidacja Eric i Joela odpowiedź, to jest to, co potrzebne, aby zrobić, aby dodać kolumnę "Zużyty czas" do Redmine 1.0.3. Nie wiem, czy istnieje lepszy sposób na dodanie tekstu tłumaczenia.
Aby nadać nowego pola zlokalizowaną nazwę, dodane do config/locales/en.yml wokół linii 299 na końcu definicji polu:
field_spent_hours: Spent time
Aby dodać nową kolumnę, stworzony lib/spent_time_query_patch .rb z zawartością:
# 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
aby uzyskać spent_time_query_patch powyżej faktycznie załadowania stworzonego config/inicjalizatorów/spent_time_query_patch.rb o treści:
require 'spent_time_query_patch'
Query.class_eval do
include QueryPatch
end
Dzięki za napisanie tego dla innych. :) –
Nie sprawdziło się to dla mnie - czy istnieją jakieś komendy do uruchomienia, aby uzyskać redmine, aby zobaczyć zmiany? – Toby
Potrzebowałem zatrzymać i zrestartować mój serwer WWW. (Nie jestem ekspertem od Railsów/Ruby, ale jeśli z jakiegoś powodu twoja konfiguracja nie jest skonfigurowana do autoloadowania plików .rb w config/initializers /, fragment Query.class_eval nigdy się nie uruchomi, a łatka nie będzie Załadowany, być może podwójnie sprawdź, czy masz właściciela/uprawnienia do pliku poprawnie ustawione, aby serwer mógł je odczytać. Być może ktoś z większą wiedzą o Ruby mógłby skomentować, jak przetestować, które ścieżki są włączone dla ...) – user2067021
Byłoby również fajnie, gdyby kolumna "Czas spędzony" była do sortowania.
Po patrząc wytworzonego SQL, po prostu wdrożony Sortable Wyróżnij się w ten sposób:
base.add_available_column(QueryColumn.new(:spent_hours,
:sortable => "(select sum(hours) from time_entries where time_entries.issue_id = t0_r0)")
)
Wymień odpowiednią linię. Mam tylko nadzieję, nazwa kolumna issue_id jest zawsze "t0_r0" ...
PS: Można znaleźć wiele przykładów w liniach app/models/query.rb 122 ++
2-Cyfry Problem: Niestety, musiałem siekać jednym z podstawowych plików: app/pomocników/queries_helper.rb
wokół linii 44, to zmienić:
when 'Fixnum', 'Float'
if column.name == :done_ratio
progress_bar(value, :width => '80px')
else
value.to_s
end
do:
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
EDYCJA: Korzystanie z patcha zamiast manipulowania źródłem Niedawno zrobiliśmy aktualizację systemu redmine, więc wyżej wspomniana poprawka została również usunięta. Tym razem postanowiliśmy zaimplementować to jako łatkę.
Otwórz dowolną wtyczkę (Stworzyliśmy wtyczkę dla naszych zmian patcha na rdzeniu). otworzyć vendor/plugins/redmine_YOURPLUGIN/app/pomocników/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
Ta funkcja build in od 1.4.0 wersji
za pomocą AgileDwarf wtyczki. Możesz spędzić czas & możesz powiedzieć o tym, co spędziłeś tym razem (rozwój - projektowanie -...)
- 1. Jak zmierzyć całkowity czas spędzony w funkcji?
- 2. Netbeans - czas spędzony na ścieżce w projekcie
- 3. Jak obliczyć czas spędzony w aplikacji Facebook?
- 4. Czas `gprof` spędzony w poszczególnych liniach kodu
- 5. Czas wyświetlania w PST
- 6. czas wyświetlania ładnie
- 7. Szalony czas spędzony na hakach z free/malloc, pamięci zewnętrznej?
- 8. Jak znaleźć czas spędzony w przyszłości w Scali?
- 9. Dodaj czas trwania do C++ punkcie czasowym
- 10. Dodaj pole niestandardowe do kursu Moodle
- 11. Dodaj pole tekstowe pomocnika rails do atrybutu?
- 12. Symfony2 dodaj pole reCaptcha do formularza rejestracyjnego
- 13. Widok kontenera za pomocą scenorysów, interakcji i wyświetlania problemów
- 14. Dobra dokumentacja do pisania wtyczek Redmine
- 15. Redmine vs. Retrospectiva
- 16. Dodaj pole wyboru "Zapamiętaj mnie"
- 17. Czas wyświetlania do milisekund w języku Ruby 1.8.7
- 18. Co oznacza czas procesora Incl, czas procesora, czas rzeczywistego procesora, czas rzeczywistego procesora w trybie śledzenia?
- 19. Jaki jest najlepszy sposób mapowania wymagań do funkcji w Redmine?
- 20. Redmine vs Chiliproject
- 21. Django Czas trwania Pole z wartością ujemną
- 22. Używanie Redmine z zewnętrzną Wiki?
- 23. Jak umieścić pustą linię w redmine wiki?
- 24. Migracje wtyczek dla Redmine
- 25. Dodaj pola DATA i CZAS, aby uzyskać pole DATETIME w MySQL
- 26. Dodaj nowe pole do kolekcji o wartości istniejącego pola.
- 27. Dodaj pole CCK do formularza niestandardowego w Drupal 7
- 28. Dodaj pole niestandardowe/kolumnę do opracowania z Rails 4
- 29. Dodaj dolny cień pole do menu na scrollup i scrolldown
- 30. Dodaj pole image/awatar do użytkowników w django
Z powodzeniem użyłem tej metody zeszłej nocy, aby upewnić się, że projekt wyświetla się jako samodzielna kolumna sortowalna. Pełny kod źródłowy nie znajduje się w tej odpowiedzi, przejdź do: http://github.com/edavis10/redmine-question-plugin/tree/master/lib/question_query_patch.rb Dzięki Eric i Joel. – banderson623
Ponieważ ta odpowiedź się starzeje, pomyślałem, że powinienem zapytać przed próbowaniem: czy wiesz, czy to działa z Redmine 0.9.3? – Oskar
@Osker: Powinien, nie sądzę, że API bardzo się zmieniło. –