versiones tutorial easy redmine

tutorial - Redmine: agregue el campo "Tiempo gastado" a la pantalla de problemas



redmine tutorial (6)

¿Cómo podría agregar el "Tiempo transcurrido" como una columna para mostrar en la lista de problemas?


También puede hacer esto agregando la columna en tiempo de ejecución. Esto agregará la columna de horas gastadas sin modificar el núcleo de Redmine. Simplemente coloque el siguiente código en un archivo en lib /

Adaptado de:

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


Además, sería genial, si la columna "Tiempo transcurrido" fuera ordenable.

Después de buscar el SQL producido, acabo de implementar la función ordenable de esta manera:

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

Reemplace la línea respectiva. Solo espero que el nombre de la columna issue_id sea siempre "t0_r0" ...

PD: puedes encontrar muchos ejemplos en las aplicaciones / modelos / líneas query.rb 122 ++

Problema de 2 dígitos: desafortunadamente, tuve que hackear uno de los archivos principales: app / helpers / queries_helper.rb

Alrededor de la línea 44, cambia esto:

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

dentro:

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

EDITAR: Usar un parche en lugar de manipular la fuente Recientemente, hicimos una actualización del sistema redmine, por lo que la reparación mencionada anteriormente también se eliminó. Esta vez, decidimos implementar eso como un parche.

Abre cualquier complemento (creamos un complemento para nuestros cambios de parche de mono en el núcleo). abrir proveedor / plugins / redmine_YOURPLUGIN / app / helpers / 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


Al consolidar las respuestas de Eric y Joel, esto es lo que necesitaba hacer para agregar una columna de "Tiempo de uso" a Redmine 1.0.3. No estoy seguro de si hay una forma mejor de agregar texto de traducción.

Para darle al nuevo campo un nombre localizado, agregado a config / locales / en.yml alrededor de la línea 299 al final de las definiciones de campo:

field_spent_hours: Spent time

Para agregar la nueva columna, creó lib / spent_time_query_patch.rb con contenido:

# 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

Para obtener el tiempo pasado_query_patch arriba para cargar realmente, creó config / initializers / spent_time_query_patch.rb con contenido:

require ''spent_time_query_patch'' Query.class_eval do include QueryPatch end


Esta característica se construye a partir de la versión 1.4.0


mediante el uso del complemento AgileDwarf . Puede haber pasado tiempo y puede decir lo que pasó esta vez (desarrollo - diseño -...)