Patch #2931

Templating for description of new tickets by Tracker

Added by Rodrigo Panachi about 3 years ago. Updated 4 months ago.

Status:New Start date:
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:Issues
Target version:Candidate for next major release

Description

This patch allows to assign a template for Trackers to be inserted in the description field when creating a new Issue. This is useful to maintain the standardization of issues.

This was diff'd against svn trunk revision 2568.

templating_for_trackers.diff - SVN diff for revision 2568 (2.2 kB) Magnifier Rodrigo Panachi, 2009-03-08 18:18

102_add_trackers_template.rb - DB migration for templating description (192 Bytes) Magnifier Rodrigo Panachi, 2009-03-08 18:21

tracker_templates_redmine_0.9.6.diff - tracker_templates_redmine_0.9.6.diff (1.9 kB) Magnifier Pieter Smith, 2010-07-22 13:40

tracker_templates_redmine_0.9.6.diff - Tracker description templates for Redmine 0.9.6 (1.9 kB) Magnifier Pieter Smith, 2010-07-22 16:23

tracker_templates_redmine_1.2-stable.diff - Tracker dependent Issue Description templates for Redmine 1.2-stable (3.2 kB) Magnifier Martin Corino, 2011-09-20 09:37


Related issues

related to Feature #643: Issue description templates New 2008-02-12
related to Feature #1138: Issue templates Closed 2008-04-29

History

#2 Updated by Damien Couderc about 3 years ago

Related to ticket #1138

#3 Updated by Pieter Smith almost 2 years ago

I updated the patch for Redmine 0.9.6. Note that the patch only includes the English language definitions.

#4 Updated by Pieter Smith almost 2 years ago

Oops... Here is the updated file:

#5 Updated by Pieter Smith almost 2 years ago

My apologies. I diffed the states in the wrong order. Here is the proper 0.9.6 patch.

#6 Updated by Light Kong almost 2 years ago

We installed this latest patch on 1.0.0. and are able to configure different description templates for different trackers.

Upon creation of new issue, the description template for the default tracker is shown. However, when a different tracker is chosen from the drop down list, the description template shown remains the one for the default tracker while other custom fields are updated according to the chosen tracker. Somehow it does not update the description template according to the chosen tracker. Please advice.

#7 Updated by Rodrigo Panachi almost 2 years ago

Light Kong, the description is changed only on creation of an issue (new record) in order to prevent the lost of issue's description when editing. Feel free to change this behavior.

#8 Updated by Avery Chan over 1 year ago

Some tips on installing this patch (I was puzzled at first).

In you root of redmine installation where you have tracker_templates_redmine_0.9.6.diff:

> patch -p1 <  tracker_templates_redmine_0.9.6.diff 
> rake db:migrate

You may need to tweak the cols style in app/views/trackers/_form.rhtml to fit in your particular preferences, but go to Administration->Tracker-><your tracker here> and you should see the form.

#9 Updated by Damien Couderc over 1 year ago

Hi,
any reason why this is not yet in trunk ?

#10 Updated by Terence Mill over 1 year ago

+1

#11 Updated by Antoine Roux over 1 year ago

+1 ! :o)

#12 Updated by Dominic Clifton about 1 year ago

+1

#13 Updated by John Stone about 1 year ago

This is a great patch that I would love to see included as standard.

It is worth noting that the default ":string" type for the template column in 102_add_trackers_template.rb above limits the template to 255 chars. Change that to ":text" for larger templates.

#14 Updated by John Stone about 1 year ago

This patch appears to break the "Duplicate issue" functionality. I've tweaked it so it works on my 1.1.2.stable copy. I'm a complete newbie at Ruby on Rails; corrections/oversights welcome. ;)

+++ L:/www/redmine/app/views/issues/_form.rhtml    Tue May 17 17:51:00 2011
@@ -15,7 +15,7 @@
 <% end %>

 <p><%= f.text_area :description,
-                   :value => (@issue.new_record? ? @issue.tracker.template : @issue.description),
+                   :value => ((@issue.new_record? && @issue.description.blank?) ? @issue.tracker.template : @issue.description),
                    :cols => 60,
                    :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
                    :accesskey => accesskey(:edit),

#15 Updated by Thomas Elsgaard about 1 year ago

+1

This is truely an great patch, it should really be included!!

#16 Updated by Olivier Chabanel 12 months ago

Hi,

I'm using Redmine 1.0.1 and I try to use this patch with the command:

root@projet:/opt/bitnami/apps/redmine# patch -p1 < tracker_templates_redmine_0.9.6.diff
patch: **** Only garbage was found in the patch input.

Could someone give me a hint how to apply the patch correctly?

Thanks

#17 Updated by Etienne Massip 11 months ago

  • Category set to Issues
  • Target version set to Candidate for next major release

#18 Updated by R Chang 10 months ago

Hi,

I am trying to apply this patch and these are the steps I performed:

% rake 102_add_trackers_template.rb
(in /usr/share/redmine-1.2.0)
% rake db:migrate
(in /usr/share/redmine-1.2.0)
% patch -pl < tracker_templates_redmine_0.9.6.diff 
patch: ** strip count l is not a number

I'm not sure what that error means? Any help is appreciated. Thanks!

#19 Updated by George Palmer 8 months ago

This only appears to work on the default tracker. When you change the tracker it does not update the description. Any ideas on how to make this work?

Thanks

#20 Updated by Pieter Smith 8 months ago

We fixed this in our implementation. I have asked the relevant engineer to post a patch for 1.2.1.

#21 Updated by Martin Corino 8 months ago

The attached patches provide support for the tracker templates and take care of the updating issue when changing trackers, i.e. when changing the Tracker on an issue the Description content of an issue will be updated to the template of the new Tracker as long as the Description content has not been changed.

#22 Updated by Martin Corino 8 months ago

BTW. I've not included the migration patch to add the template column to the tracker table. Just use the 102_add_trackers_template.rb provided above or create your own (f.i. to make the column 'text' instead of 'string').

Martin Corino wrote:

The attached patches provide support for the tracker templates and take care of the updating issue when changing trackers, i.e. when changing the Tracker on an issue the Description content of an issue will be updated to the template of the new Tracker as long as the Description content has not been changed.

#23 Updated by John Stone 8 months ago

Thanks Martin for the 1.2 update. Note that the patch does not include the tweak for app/views/trackers/_form.rhtml for showing the template edit box.

#24 Updated by John Stone 8 months ago

For whomever ports this into the main code, note that there appears to be a minor bug (with an easy workaround) using 1.2.1-stable:

  1. Add templates for trackers "Bug" and "Feature."
  2. Open a new issue of type "Bug."
  3. Select the "Tracker" drop-down list and change it from "Bug" to "Feature." Observe proper switch to the "Feature" template.
  4. Change the tracker type to "Support" or another type that has no template created yet.
  5. Change the tracker type back to "Bug."
  6. ERROR: "Internal error" appears where the template would normally exist.
  7. WORKAROUND: Simply create a template for each tracker or, if you don't want a template for a particular tracker, open the tracker anyway and click "Save" with the template box left empty so it creates a blank template.

#25 Updated by Olivier Chabanel 8 months ago

Sorry, I'm not used to patch redmine and I have some diffuculties here. Could someone give what are the steps to patch the 1.2 stable version?
Any help would be very appreciated.

I tried these steps with no luck:

cd in root redmine directory

% patch -pl < tracker_templates_redmine_1.2-stable.diff 
% rake 102_add_trackers_template.rb
% rake db:migrate

I have an error when I try to create a new issue. With this message in the log:

NoMethodError (undefined method `template' for #<ActiveRecord::Associations::BelongsToAssociation:0x7fe68d1e3680>):
  app/controllers/issues_controller.rb:316:in `build_new_issue_from_params'
  /opt/passenger-3.0.5/lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  /opt/passenger-3.0.5/lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
  /opt/passenger-3.0.5/lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send'
  /opt/passenger-3.0.5/lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application'
  /opt/passenger-3.0.5/lib/phusion_passenger/utils.rb:479:in `safe_fork'
  /opt/passenger-3.0.5/lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:357:in `__send__'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:180:in `start'
  /opt/passenger-3.0.5/lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
  /opt/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
  /opt/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  /opt/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
  /opt/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
  /opt/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:357:in `__send__'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  /opt/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  /opt/passenger-3.0.5/helper-scripts/passenger-spawn-server:99

Rendering /var/www/redmine/public/500.html (500 Internal Server Error)

Thanks

#26 Updated by John Stone 8 months ago

Hmm...Something in the 1.2.1 batch of tweaks for this seems to be preventing the "Duplicate" function from copying over the source bug description. Investigating...

#27 Updated by John Stone 8 months ago

Duplicate functionality resolved.

*** L:/www/redmine/app/controllers/issues_controller.rb.duplicatebroken    Tue Oct 11 16:31:53 2011
--- L:/www/redmine/app/controllers/issues_controller.rb    Tue Oct 11 16:25:17 2011
***************
*** 317,323 ****
--- 317,325 ----
                (_prev_tracker = @project.trackers.find(params[:prev_tracker_id])) &&                         # previous tracker (+ template)
                (params[:issue][:description].gsub(/\r|\n/, '') != _prev_tracker.template.gsub(/\r|\n/, ''))  # description changed
          params[:issue] ||= {} 
+         unless params[:copy_from]
              params[:issue][:description] = @issue.tracker.template
+         end
        end
      end
      @issue.start_date ||= Date.today

#28 Updated by Hugh Gallagher 7 months ago

Hmmm.. I have the same issues as Olivier Chabanel on Redmine 1.2.1.stable

% patch -p1 < tracker_templates_redmine_1.2-stable.diff 
% rake 102_add_trackers_template.rb
% rake db:migrate

I've added the patch as above and then manually added the two lines from John Stone's additional fix.

NoMethodError (undefined method `template' for #<ActiveRecord::Associations::BelongsToAssociation:0xb708075c>):
  app/controllers/issues_controller.rb:319:in `build_new_issue_from_params'
  passenger (3.0.9) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
  passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
  passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application'
  passenger (3.0.9) lib/phusion_passenger/utils.rb:479:in `safe_fork'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:180:in `start'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
  passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.9) helper-scripts/passenger-spawn-server:99

Rendering /opt/redmine-1.2.1/public/500.html (500 Internal Server Error)

#29 Updated by Slan Buas 4 months ago

Anyone made a patch for 1.3 ? thnx

Also available in: Atom PDF