Frage

Wie würde ich mich über die „verbrachte Zeit“ als eine Spalte hinzufügen in der Problemliste angezeigt werden?

War es hilfreich?

Lösung

Sie können dies auch tun, indem Sie die Spalte zur Laufzeit hinzufügen. Dies wird die verbrauchte Stunden Spalte ohne Änderung der Redmine Kern hinzuzufügen. Legen Sie einfach den folgenden Code in einer Datei im lib /

übernommen aus:

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 

Andere Tipps

Konsolidieren von Eric und Joels Antworten, das ist, was ich hinzugefügt, um einen ‚Verbrauchte Zeit‘ -Spalte zu erhalten tun musste 1.0.3 Redmine. Nicht sicher, ob es eine bessere Art und Weise des Übersetzungstext zu erhalten hinzugefügt.

Um das neue Feld einen lokalisierten Namen zu geben, hinzugefügt, um config / locales / en.yml um die Linie 299 am Ende der Felddefinitionen:

  field_spent_hours: Spent time

Um die neue Spalte erstellt lib / spent_time_query_patch.rb mit Inhalt hinzufügen:

# 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

die spent_time_query_patch oben Um tatsächlich zu laden, erstellt config / initializers / spent_time_query_patch.rb mit Inhalt:

require 'spent_time_query_patch'

Query.class_eval do
  include QueryPatch
end
  

Auch wäre es cool, wenn die Spalte „Verbrauchte Zeit“ war sortierbar.

Nach der erzeugten SQL aufzublicken, ich implementiert gerade das sortierbare Merkmal dieser auf diese Weise:

base.add_available_column(QueryColumn.new(:spent_hours, 
 :sortable => "(select sum(hours) from time_entries where time_entries.issue_id = t0_r0)")
) 

Setzen Sie die entsprechende Zeile. Ich hoffe nur, die ISSUE_ID Spalte Name ist immer „t0_r0“ ...

PS: Sie können viele Beispiele in app / models / query.rb Linien 122 ++

finden

2-Digits Problem: Leider hatte ich eine der Kerndateien hacken: app / Helfer / queries_helper.rb

Um die Leitung 44, das ändern:

when 'Fixnum', 'Float'                              
  if column.name == :done_ratio
    progress_bar(value, :width => '80px')
  else
    value.to_s
  end

in:

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

EDIT: ein Patch statt Verwenden der Quelle Vor kurzem Manipulation, wir haben ein Update des redmine System, so dass die oben genannten Fix wurde ebenfalls entfernt. Diesmal haben wir uns entschieden, dass als Patch zu implementieren.

jedes Plugin Aufmachen (Wir haben ein Plugin für unsere affen Patch Änderungen am Kern). eröffnen Verkäufer / plugins / redmine_YOURPLUGIN / app / Helfer / 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

Diese Funktion in von Version 1.4.0 bauen

mithilfe von AgileDwarf Plugin. Sie können haben Zeit damit verbracht und man kann sagen, was Sie diese Zeit verbrachte (Entwicklung - Design -...)

Da niemand antwortete, ich stieß nur die Quelle, bis sie Ergebnisse erzielt. Dann begann ich, einen Blog zu erklären, wie ich es tat.

hinzufügen verbrachte Zeit Spalte Standardproblemliste in Redmine

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top