Redmine - إضافة "قضى وقتا" مجال قضايا العرض

StackOverflow https://stackoverflow.com/questions/321403

  •  11-07-2019
  •  | 
  •  

سؤال

كيف يمكنني إضافة "قضى" على أنها عمود ليتم عرضها في القضايا القائمة ؟

هل كانت مفيدة؟

المحلول

يمكنك أيضا القيام بذلك عن طريق إضافة عمود في وقت التشغيل.وهذا إضافة أمضى ساعات عمود دون تعديل Redmine الأساسية.مجرد قطرة البرمجية التالية إلى ملف lib/

مقتبس من:

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 

نصائح أخرى

وتوحيد اريك والأجوبة جويل، وهذا هو ما كنت بحاجة إلى القيام به للحصول عمود "قضى الوقت" إضافة إلى Redmine 1.0.3. لست متأكدا ما إذا كان هناك طريقة أفضل للحصول على إضافة النص الترجمة.

لإعطاء الحقل الجديد اسم محلية، إضافة إلى التكوين / لغات / en.yml حول خط 299 في نهاية التعاريف الملعب:

  field_spent_hours: Spent time

لإضافة عمود جديد، خلق ليب / spent_time_query_patch.rb مع المحتوى:

# 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

لتحصل على spent_time_query_patch أعلاه للتحميل في الواقع، خلق التكوين / المهيآت / spent_time_query_patch.rb مع المحتوى:

require 'spent_time_query_patch'

Query.class_eval do
  include QueryPatch
end

كما أنه سيكون من الرائع إذا كان العمود "قضى وقتا" كان للفرز.

بعد البحث عن أنتجت SQL, لقد نفذت للفرز الميزة في هذه الطريقة:

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

استبدال كل خط.أنا فقط أتمنى issue_id العمود اسم هو دائما "t0_r0" ...

PS:يمكنك أن تجد الكثير من الأمثلة في التطبيق/نماذج/الاستعلام.rb خطوط 122++

2-أرقام المشكلة: للأسف كان لدي الإختراق أحد الملفات الأساسية:التطبيق/المساعدين/queries_helper.rb

حول خط 44 تغيير هذا:

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

إلى:

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

تحرير:باستخدام التصحيح بدلا التلاعب المصدر مؤخرا قمنا تحديث redmine النظام ، لذلك المذكورة أعلاه إصلاح أيضا تم إزالتها.هذه المرة قررنا تنفيذ هذا التصحيح.

فتح أي المساعد (أنشأنا البرنامج المساعد لدينا قرد-تصحيح التغييرات الأساسية).فتح بائع/الإضافات/redmine_YOURPLUGIN/التطبيق/المساعدين/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

وهذه الميزة بناء في من 1.4.0 نسخة

AgileDwarf المساعد. هل يمكن أن يكون أمضى بعض الوقت وتستطيع أن تقول ما قضيت هذا الوقت (التطوير - تصميم -...)

ومنذ لا أحد أجاب، أنا فقط مطعون المصدر حتى انها اسفرت عن النتائج. بعد ذلك بدأت بلوق لشرح كيف فعلت ذلك.

اضافة عمود الوقت الذي يقضيه ل قائمة القضايا الافتراضي في Redmine

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top