Desarrollo de plugins
para #redmine
Cambios significativos entre ramas 1.x y 2.x
@ imonteroperez
Redmine
Desarrollo de un plugin en tres pasos
1. Crear el plugin
$ ruby script/rails generate redmine_plugin <plugin_name>
         create plugins/<plugin_name>/app
         create plugins/<plugin_name>/app/controllers
         create plugins/<plugin_name>/app/helpers
         create plugins/<plugin_name>/app/models
         create plugins/<plugin_name>/app/views
         create plugins/<plugin_name>/db/migrate
         create plugins/<plugin_name>/lib/tasks
         create plugins/<plugin_name>/assets/images
         create plugins/<plugin_name>/assets/javascripts
         create plugins/<plugin_name>/assets/stylesheets
         create plugins/<plugin_name>/config/locales
         create plugins/<plugin_name>/test
         create plugins/<plugin_name>/README.rdoc
         create plugins/<plugin_name>/init.rb
         create plugins/<plugin_name>/config/routes.rb
         create plugins/<plugin_name>/config/locales/en.yml
         create plugins/<plugin_name>/test/test_helper.rb
$ ruby script/rails generate redmine_plugin <plugin_name>
         create plugins/<plugin_name>/app
         create plugins/<plugin_name>/app/controllers
         create plugins/<plugin_name>/app/helpers
         create plugins/<plugin_name>/app/models
         create plugins/<plugin_name>/app/views
         create plugins/<plugin_name>/db/migrate
         create plugins/<plugin_name>/lib/tasks
         create plugins/<plugin_name>/assets/images
         create plugins/<plugin_name>/assets/javascripts
         create plugins/<plugin_name>/assets/stylesheets
         create plugins/<plugin_name>/config/locales
         create plugins/<plugin_name>/test
         create plugins/<plugin_name>/README.rdoc
         create plugins/<plugin_name>/init.rb
         create plugins/<plugin_name>/config/routes.rb
         create plugins/<plugin_name>/config/locales/en.yml
         create plugins/<plugin_name>/test/test_helper.rb
Redmine::Plugin.register :<plugin_name> do
                   name <NAME>
                   author <AUTHOR>
                   description <DESCRIPTION>
                   version '0.0.1'
                  end



Dir["#{File.dirname(__FILE__)}/config/initializers/**/*.rb"].sort.each do |initializer|
            require initializer
end


APP_CONFIG = YAML.load_file("#{File.dirname(__FILE__)}/../config.yml")[Rails.env]


require <module>


                 http://<HOST>:<PORT>/admin/plugins
2. Crear el modelo
$ ruby script/rails generate redmine_plugin_model <plugin_name>
  <model_name> [field[:type][:index] field[:type][:index] ...]

   create plugins/<plugin_name>/app/models/<model_name>.rb
   create plugins/<plugin_name>/test/unit/<model_name>_test.rb
   create plugins/<plugin_name>/db/migrate/001_create_<model_name>s.rb
3. Crear el controlador
$ ruby script/rails generate redmine_plugin_controller <plugin_name>
 <controller_name> [<actions>]
 create plugins/<plugin_name>/app/controllers/<controller_name>_controller.rb
 create plugins/<plugin_name>/app/helpers/<controller_name>_helper.rb
 create plugins/<plugin_name>/test/functional/<controller_name>_controller_test.rb

 { create plugins/<plugin_name>/app/views/<controller_name>/<action>.html.erb }
Recursos
http://www.redmine.org/projects/redmine/wiki/Plugin_Tutorial
http://www.redmine.org/plugins
http://www.redmine.org/projects/redmine/wiki/Plugin_List
Cambios 2.x
http://projects.andriylesyuk.com/projects/base/wiki/Porting-
to-Redmine-2
Gracias por vuestra atenció n!

Redmine Betabeers SVQ

  • 1.
    Desarrollo de plugins para#redmine Cambios significativos entre ramas 1.x y 2.x @ imonteroperez
  • 2.
  • 6.
    Desarrollo de unplugin en tres pasos
  • 7.
  • 8.
    $ ruby script/railsgenerate redmine_plugin <plugin_name> create plugins/<plugin_name>/app create plugins/<plugin_name>/app/controllers create plugins/<plugin_name>/app/helpers create plugins/<plugin_name>/app/models create plugins/<plugin_name>/app/views create plugins/<plugin_name>/db/migrate create plugins/<plugin_name>/lib/tasks create plugins/<plugin_name>/assets/images create plugins/<plugin_name>/assets/javascripts create plugins/<plugin_name>/assets/stylesheets create plugins/<plugin_name>/config/locales create plugins/<plugin_name>/test create plugins/<plugin_name>/README.rdoc create plugins/<plugin_name>/init.rb create plugins/<plugin_name>/config/routes.rb create plugins/<plugin_name>/config/locales/en.yml create plugins/<plugin_name>/test/test_helper.rb
  • 9.
    $ ruby script/railsgenerate redmine_plugin <plugin_name> create plugins/<plugin_name>/app create plugins/<plugin_name>/app/controllers create plugins/<plugin_name>/app/helpers create plugins/<plugin_name>/app/models create plugins/<plugin_name>/app/views create plugins/<plugin_name>/db/migrate create plugins/<plugin_name>/lib/tasks create plugins/<plugin_name>/assets/images create plugins/<plugin_name>/assets/javascripts create plugins/<plugin_name>/assets/stylesheets create plugins/<plugin_name>/config/locales create plugins/<plugin_name>/test create plugins/<plugin_name>/README.rdoc create plugins/<plugin_name>/init.rb create plugins/<plugin_name>/config/routes.rb create plugins/<plugin_name>/config/locales/en.yml create plugins/<plugin_name>/test/test_helper.rb
  • 10.
    Redmine::Plugin.register :<plugin_name> do name <NAME> author <AUTHOR> description <DESCRIPTION> version '0.0.1' end Dir["#{File.dirname(__FILE__)}/config/initializers/**/*.rb"].sort.each do |initializer| require initializer end APP_CONFIG = YAML.load_file("#{File.dirname(__FILE__)}/../config.yml")[Rails.env] require <module> http://<HOST>:<PORT>/admin/plugins
  • 11.
  • 12.
    $ ruby script/railsgenerate redmine_plugin_model <plugin_name> <model_name> [field[:type][:index] field[:type][:index] ...] create plugins/<plugin_name>/app/models/<model_name>.rb create plugins/<plugin_name>/test/unit/<model_name>_test.rb create plugins/<plugin_name>/db/migrate/001_create_<model_name>s.rb
  • 13.
    3. Crear elcontrolador
  • 14.
    $ ruby script/railsgenerate redmine_plugin_controller <plugin_name> <controller_name> [<actions>] create plugins/<plugin_name>/app/controllers/<controller_name>_controller.rb create plugins/<plugin_name>/app/helpers/<controller_name>_helper.rb create plugins/<plugin_name>/test/functional/<controller_name>_controller_test.rb { create plugins/<plugin_name>/app/views/<controller_name>/<action>.html.erb }
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.