kulesa / redmine_better_gantt_chart

Better Gantt Chart for Redmine
194 stars 89 forks source link

Compatible with redmine 2.1.x? #86

Closed cforce closed 11 years ago

drewkeller commented 11 years ago

I made a fork for doing some work on this (redmine 2.0 branch) using redmine 2.1..3. https://github.com/drewkeller/redmine_better_gantt_chart/tree/redmine_2.0

cforce commented 11 years ago

I test with redmine 2.1.4 and error raises

Started GET "/projects/spielwiese/issues/gantt" for Processing by GanttsController#show as HTML Parameters: {"project_id"=>"spielwiese"} Current user: 00001276 (id=3) Rendered queries/_filters.html.erb (128.0ms) PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT Rendered plugins/redmine_better_gantt_chart/app/views/gantts/show.html.erb within layouts/base (3019.0ms) Completed 500 Internal Server Error in 3618ms

ActionView::Template::Error (undefined method gantt_calendar_for' for #<#<Class:0x1ba6404>:0x1fc7cf1>): 73: 74: # Width of the entire chart 75: g_width = ((@gantt.work_days_in(@gantt.date_to, @gantt.date_from) + 1) * zoom).to_i 76: @gantt.render(:top => headers_height + 8, 77: :zoom => zoom, 78: :g_width => g_width, 79: :subject_width => subject_width) app/models/project.rb:713:inproject_tree' app/models/project.rb:709:in `project_tree'

kulesa commented 11 years ago

Hey @drewkeller, thanks for your efforts! I guess the branch is a work-in-progress? I just tested it and had few errors. Could you make a pull request once it is ready to be merged?

drewkeller commented 11 years ago

It's working for me without errors. I don't have very many tasks, though. If you can provide more information about your errors, I can see if I can figure something out, but I don't really write things in Ruby, so I'm not sure how successful I will be unless I can actually see an error happen.

On 12/10/2012 11:29 AM, Alexey Kuleshov wrote:

Hey @drewkeller https://github.com/drewkeller, thanks for your efforts! I guess the branch is a work-in-progress? I just tested it and had few errors. Could you make a pull request once it is ready to be merged?

— Reply to this email directly or view it on GitHub https://github.com/kulesa/redmine_better_gantt_chart/issues/86#issuecomment-11208036.

drewkeller commented 11 years ago

I'm not really sure, but I'm guessing "gantt_calendar_for" must be getting called as part of the chain called by the render function on line 76. Which sounds to me like Ruby can't find it even though it's in application_helper_patch.rb. That file is included when patches.rb is called by init.rb. You restarted redmine after installing the plugin, right? To be safe, I usually also migrate plugins, clear the cache and clear sessions after installing a plugin.

On 12/10/2012 10:50 AM, Terence Miller wrote:

I test with redmine 2.1.4 and error raises

Started GET "/projects/spielwiese/issues/gantt" for Processing by GanttsController#show as HTML Parameters: {"project_id"=>"spielwiese"} Current user: 00001276 (id=3) Rendered queries/_filters.html.erb (128.0ms) PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT PRINTINTINTINTINT Rendered plugins/redmine_better_gantt_chart/app/views/gantts/show.html.erb within layouts/base (3019.0ms) Completed 500 Internal Server Error in 3618ms

ActionView::Template::Error (undefined method |gantt_calendar_for' for

<#Class:0x1ba6404:0x1fc7cf1>):

73: 74: # Width of the entire chart 75: g_width = ((@gantt.work_days_in(@gantt.date_to, @gantt.date_from)

  • 1) * zoom).to_i 76: @gantt.render(:top => headers_height + 8, 77: :zoom => zoom, 78: :g_width => g_width, 79: :subject_width => subject_width) app/models/project.rb:713:in|project_tree' app/models/project.rb:709:in `project_tree'

— Reply to this email directly or view it on GitHub https://github.com/kulesa/redmine_better_gantt_chart/issues/86#issuecomment-11205609.

cforce commented 11 years ago

I executed following for RAILS_ENV=production

rake tmp:cache:clear rake tmp:sessions:clear rake redmine:plugins:migrate

Using last Commit on branch redmine_2.0 of https://github.com/drewkeller/redmine_better_gantt_chart

SHA-1: 6243784351a3594724b830c7655f5afcd12d059d


In init.rb i see "require_dependency 'redmine_better_gantt_chart/patches' " An there is a file "redmine_better_gantt_chart\lib\redmine_better_gantt_chart\patches.rb"

Here again the log file:

DEPRECATION WARNING: Passing the format in the template name is deprecated. Please pass render with :formats => [:atom] instead. (called from realtime at /home/sidfunktion/.rvm/rubies/jruby-1.7.0/lib/ruby/1.9/benchmark.rb:295) Rendered common/feed.atom.builder (70.0ms) Completed 500 Internal Server Error in 1181ms

ActionView::Template::Error (undefined method absolute_base_url' for Redmine::Utils:Module): 24: xml.email(author.mail) if author.is_a?(User) && !author.mail.blank? && !author.pref.hide_mail 25: end if author 26: xml.content "type" => "html" do 27: xml.text! textilizable(item, :event_description, :only_path => false) 28: end 29: end 30: end app/views/common/feed.atom.builder:27:in_app_views_common_feed_atom_builder_1955938774_40300' app/views/common/feed.atom.builder:26:in `_app_views_common_feed_atombuilder1955938774_40300' app/views/common/feed.atom.builder:11:in_app_views_common_feed_atom_builder___1955938774_40300' app/views/common/feed.atom.builder:10:in_app_views_common_feed_atom_builder_1955938774_40300' app/views/common/feed.atom.builder:2:in`_app_views_common_feed_atombuilder1955938774_40300' app/controllers/application_controller.rb:405:in render_feed' app/controllers/activities_controller.rb:56:inindex' app/controllers/activities_controller.rb:44:in `index'

Started GET "/projects/spielwiese/issues/gantt" for 172.25.252.99 at 2012-12-11 15:15:28 +0100 Processing by GanttsController#show as HTML Parameters: {"project_id"=>"spielwiese"} Current user: 00001276 (id=3) Rendered queries/_filters.html.erb (132.0ms) Rendered plugins/redmine_better_gantt_chart/app/views/gantts/show.html.erb within layouts/base (2589.0ms) Completed 500 Internal Server Error in 3299ms

ActionView::Template::Error (undefined method gantt_calendar_for' for #<#<Class:0xa951fa>:0x44ffb5>): 73: 74: # Width of the entire chart 75: g_width = ((@gantt.work_days_in(@gantt.date_to, @gantt.date_from) + 1) * zoom).to_i 76: @gantt.render(:top => headers_height + 8, 77: :zoom => zoom, 78: :g_width => g_width, 79: :subject_width => subject_width) app/models/project.rb:713:inproject_tree' app/models/project.rb:709:in `project_tree'

drewkeller commented 11 years ago

Yeah, you just gotta love Ruby's "secret" file locations. I'm pretty sure that reference is correct and ruby "knows" to look in the lib folder. I guess you could try moving the file or changing the reference in the code and see what happens.

andreav commented 11 years ago

I all, I tested drewkeller's version on Readmine 2.2 but an error is raised during rake redmine:plugins:migrate command: I report it here because there is no Issue queue on that repository:

undefined method reschedule_after' for classIssue' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/core_ext/module/aliasing.rb:31:in alias_method' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/core_ext/module/aliasing.rb:31:inalias_method_chain' /opt/redmine-2.2/plugins/redmine_better_gantt_chart/lib/redmine_better_gantt_chart/issue_dependency_patch.rb:8:in included' /opt/redmine-2.2/plugins/redmine_better_gantt_chart/lib/redmine_better_gantt_chart/issue_dependency_patch.rb:6:inclass_eval' /opt/redmine-2.2/plugins/redmine_better_gantt_chart/lib/redmine_better_gantt_chart/issue_dependency_patch.rb:6:in included' /opt/redmine-2.2/plugins/redmine_better_gantt_chart/lib/redmine_better_gantt_chart/patches.rb:13:ininclude' /opt/redmine-2.2/plugins/redmine_better_gantt_chart/lib/redmine_better_gantt_chart/patches.rb:13:in send' /opt/redmine-2.2/plugins/redmine_better_gantt_chart/lib/redmine_better_gantt_chart/patches.rb:13 /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:inrequire' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in require' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:inload_dependency' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in require' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:359:inrequire_or_load' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:313:in depend_on' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:225:inrequire_dependency' /opt/redmine-2.2/plugins/redmine_better_gantt_chart/init.rb:6:in _callback_before_5' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:429:in_run831708869prepare4callbacks' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:405:in send' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:405:in__run_callback' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:385:in _run_prepare_callbacks' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:81:insend' /var/lib/gems/1.8/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:81:in run_callbacks' /var/lib/gems/1.8/gems/actionpack-3.2.9/lib/action_dispatch/middleware/reloader.rb:74:inprepare!' /var/lib/gems/1.8/gems/actionpack-3.2.9/lib/action_dispatch/middleware/reloader.rb:48:in prepare!' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/application/finisher.rb:47 /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/initializable.rb:30:ininstance_exec' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/initializable.rb:30:in run' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/initializable.rb:55:inrun_initializers' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/initializable.rb:54:in each' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/initializable.rb:54:inrun_initializers' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/application.rb:136:in initialize!' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/railtie/configurable.rb:30:insend' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/railtie/configurable.rb:30:in method_missing' /opt/redmine-2.2/config/environment.rb:14 /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/application.rb:103:inrequire' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/application.rb:103:in require_environment!' /var/lib/gems/1.8/gems/railties-3.2.9/lib/rails/application.rb:297:ininitialize_tasks' Tasks: TOP => redmine:plugins:migrate => environment

Thanks for both efforts.

cforce commented 11 years ago

Ok, i found one of the other plugins which makes trouble

see #87

drewkeller commented 11 years ago

2.2.0? Hmm. Roadmap says it's due in 4 days. I guess I'll have to try it out.

Also of interest in the roadmap.... It looks like 2.3 is going to include drawing the arrows for the relations as shown in issue #3436 (http://www.redmine.org/issues/3436).

andreav commented 11 years ago

I was just evaluating migration effort toward version 2.2 (which includes support for weekends and work days), but this plugin works very well on 2.1.4, and support them too, so I will stay on 2.14 at the moment! Thank you.

elektrojohn commented 11 years ago

Im using a bitnami stack installation in a VM (redmine version 2.1.2 and according versions of Ruby and so on I suppose...) I tried the branch redmine_2.0 from drewkeller without success. I get the error message "500 Internal Server Error" when I try to access the login page. When I remove the folder redmine_better_gantt_chart from the plugins directory and I restart redmine everything is working.

In the error.log from apache I found the following error message

[ pid=2074 thr=70214013415860 file=utils.rb:176 time=2012-12-13 12:31:57.574 ]: *** Exception PhusionPassenger::UnknownError in PhusionPassenger::ClassicRails::ApplicationSpawner (Could not find gem 'rspec (~> 2.10.0) ruby' in any of the gem sources listed in your Gemfile. (Bundler::GemNotFound)) (process 2074, thread #):
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/resolver.rb:280:in `resolve'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/resolver.rb:160:in `start'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/resolver.rb:128:in `resolve'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/resolver.rb:127:in `catch'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/resolver.rb:127:in `resolve'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/definition.rb:151:in `resolve'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/definition.rb:90:in `specs'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/definition.rb:135:in `specs_for'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/definition.rb:124:in `requested_specs'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/environment.rb:23:in `requested_specs'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:11:in `setup'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler.rb:110:in `setup'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/utils.rb:326:in `prepare_app_process'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/classic_rails/application_spawner.rb:176:in `initialize_server'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/utils.rb:563:in `report_app_init_status'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/classic_rails/application_spawner.rb:174:in `initialize_server'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:204:in `start_synchronously'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:180:in `start'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:357:in `__send__'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
    from /opt/bitnami/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.17/helper-scripts/passenger-spawn-server:99
[ pid=2130 thr=139914531530496 file=ext/apache2/Hooks.cpp:884 time=2012-12-13 12:31:57.680 ]: Unexpected error in mod_passenger: Cannot spawn application '/opt/bitnami/apache2/htdocs/../../apps/redmine/htdocs': An error occured while spawning the application.
  Backtrace:
     in 'virtual Passenger::SessionPtr Passenger::ApplicationPool::Client::get(const Passenger::PoolOptions&)' (Client.h:742)
     in 'Passenger::SessionPtr Hooks::getSession(const Passenger::PoolOptions&)' (Hooks.cpp:312)
     in 'int Hooks::handleRequest(request_rec*)' (Hooks.cpp:585)

I don't know anything about Ruby... Any hints on how to solve this issue are appreciated.

Thanks in advance!

drewkeller commented 11 years ago

@andreav Thanks for the feedback!

@elektrojohn Sounds like you need to run "bundle install" again. You need to do that whenever you install a plugin that needs extra ruby gems. CD to your redmine root directory and then run the same "bundle install" command that you used when you installed redmine (umm... maybe you didn't since you're on Bitnami?).

I'm not using Bitnami, so I don't know how correct this is (http://wiki.bitnami.org/Applications/BitNami_Redmine_Stack#How_to_install_a_plugin_on_Redmine.3f) You might want to Google to figure out which "without" options you want here.

2. [...snip....] You should run this command from a use_redmine console:

$ cd installdir
$ ./use_redmine
$ cd apps/redmine/htdocs
$ bundle install --without postgresql test development

3. Restart Redmine application.

Frankly, I don't think the rspec gem is really needed so you could just delete that line from the plugin's gemfile. However, you'll probably get another error on the next extra gem encountered, so that's not really a fix. So bundle install is probably better.

kulesa commented 11 years ago

Frankly, it would be quite difficult to keep up with Redmine changes. For example, Issue#reschedule_after in 2.2 was renamed to reschedule_on, and that not to mention other related changes.

It looks like the core team is finally doing big rework of the Gantt chart, and very soon Redmine will have all features of the plugin. If the core Redmine will draw relations between issues, have correct rescheduling of related issues and support of workdays and weekends, the proper thing would be probably to abandon the plugin and contribute to the core instead.

@drewkeller, what do you think? Looking at the roadmap, Is there anything in the plugin that will still be missing in Redmine?

andreav commented 11 years ago

In my opinion, there is still a big hole in the core:

"Group result by" feature, only present on issues page, is still missing on the gantt page.

When grouping by user, this feature would emulate the "Workload" plugin (here: https://github.com/dnoise/Redmine-Wordkload-Dnoise.git or with more features here: https://github.com/Rumega/Redmine-Workload-Dnoise.git) Grouping by users is particularly useful when tasks are organized in sequential order (the one following the other, without holes between tasks).

At the moment, Workload plugin in not working on 2.1...i'm investigating..

drewkeller commented 11 years ago

I haven't tried the 2.2 Gantt chart yet, so I'm not sure exactly what's included in it.

You can see the screenshots in my fork as a demonstration of most of the following (https://github.com/drewkeller/redmine_better_gantt_chart/tree/redmine_2.0/screenshots):

How well does it work to contribute things to core? Issue 2024 (with a patch) has been open for four years and has over 100 comments in it, and yet does not appear in the roadmap?

kulesa commented 11 years ago

Well, that's quite a list. I have no experience contributing to Redmine, but I have the same impression that some patches don't get merged for years just because of either lack of interest from the core team members, or because of low quality of code of the patches, or because of the complexity of the proposed changes. I can understand why they would be hesitant to merge #2024: existing code of Gantt chart is a mess, and adding new major feature would just increase complexisty and make it harder to maintain. But still I think contributing to core is the right thing to do.

As for the question, to abandon the plugin or not, here is a comparision of major features of the plugin with core Redmine:

So far it looks like 50/50, and I need to take a closer look at the roadmap and the recent changes in core Redmine.

andreav commented 11 years ago

Sorry @kulesa if i write this here, but I have no way to reach @drewkeller.

When I create two issues, and then set the second issue following the first one, the due date of the second issue is cropped (sliced) at Friday.

For instance: issue A: 4 days starting from Monday issue B: 4 days starting from Monday issueB follows issueA

revaluated issueB due date stops on Friday.

I cannot find where Redmine (or the plugin) re-evaluates this date.

Please, help!

drewkeller commented 11 years ago

@andreav Did you get the plugin to work on redmine 2.2? Kulesa probably know better than me, but I will try to answer.... The plugin doesn't really do any reevaluation of dates when an issue is being saved, except for the case mentioned by kulesa in his 12/14 post. As for display in the html Gantt chart, I wrote a function called work_days_in() or somesuch where it gets the number of workdays between two dates. The original Calendar module has some code that I think does something similar (probably in a more ruby-ish way).

kulesa commented 11 years ago

Well, actually the plugin should have rescheduled issueB to start on Friday, but this doesn't work on Redmine versions >= 2.0. And I don't know if it worth fixing, because it looks they are fixing rescheduling in core Redmine 2.2.

andreav commented 11 years ago

@kulesa you are right, there is a fix in 2.2 but i think this is not the case. If I try the same test from comment 19 on redmine 2.1 (without installing better gantt chart plugin), it seems to work (days are shifted forward, and issue duration is not changed).

However, I agree with you, this is a turbulent moment for gantt, dates and so on for redmine..it worths to wait until a more stable scenario before introducing fixes/patches..

I will try to port it on redmine 2.2 just as an exercise, but I don't know nothing about ruby and rails..so do not rely on me! ;)

Thank you both!

smulrich commented 11 years ago

I'm very interested in this discussion and am hoping things have not stalled. Has anyone had luck with porting to 2.2? I installed 2.2 and was hoping for better gantt functionality. Issue sorting and scheduling of sub tasks is improved but I still find it lacking. I am primarily looking for click and drag of task bars (issue 2024). Having to go in and manually edit and change due dates of each individual task is incredibly time consuming. Has anyone had success with 2.2?

smulrich commented 11 years ago

So, shockingly, I got this to run on redmine 2.2.2 using drewkeller's fork: https://github.com/drewkeller/redmine_better_gantt_chart/tree/redmine_2.0

I haven't contributed to other peoples projects in github so I'm not sure how to push this. Here is what I did:

  1. Cloned the redmine_2.0 branch in my plugins directory.
  2. Created my own branch for experimentation
  3. Deleted GemFile and GemFile.lock.
  4. Renamed "reschedule_after" to "reschedule_on" and "reschedule_after_with_earlier_date" to "reschedule_on_with_earlier_date" in lib/redmine_better_gantt_chart/issue_dependency_patch.rb 5: ran 'bundle exec rake redmine:plugins:migrate RAILS_ENV=production' from my redmine directory.
  5. Restart Redmine

This is completely untested but does load successfully. Good luck!

vinceve commented 11 years ago

@smulrich tried this, on first sight this looks ok. However when I try to "drag" some issues around I get "Completed 400 Bad Request"

Started POST "/gantts/edit_gantt/i1" for 127.0.0.1 at 2013-05-08 11:07:23 +0200
Processing by GanttsController#edit_gantt as TEXT
  Parameters: {"day"=>"16", "date_from"=>"2013-05-01", "date_to"=>"2013-10-31", "zoom"=>"2", "project_id"=>"test", "id"=>"i1"}
  ←[1m←[35m (1.0ms)←[0m  SELECT MAX("settings"."updated_on") AS max_id FROM "settings"
  ←[1m←[36mUser Load (0.0ms)←[0m  ←[1mSELECT "users".* FROM "users" WHERE "users"."type" IN ('User', 'AnonymousUser') AND "users"."id" = ? AND (users.status = 1) LIMIT 1←[0m  [["id", 1]]
  Current user: admin (id=1)
  ←[1m←[35mProject Load (1.0ms)←[0m  SELECT "projects".* FROM "projects" WHERE "projects"."identifier" = 'test' LIMIT 1
  ←[1m←[36mEnabledModule Load (0.0ms)←[0m  ←[1mSELECT name FROM "enabled_modules" WHERE "enabled_modules"."project_id" = 1←[0m
  ←[1m←[35mUserPreference Load (0.0ms)←[0m  SELECT "user_preferences".* FROM "user_preferences" WHERE "user_preferences"."user_id" = 1 LIMIT 1
  ←[1m←[36mIssue Load (1.0ms)←[0m  ←[1mSELECT "issues".* FROM "issues" WHERE "issues"."id" = ? LIMIT 1←[0m  [["id", "1"]]
  ←[1m←[35mProject Load (0.0ms)←[0m  SELECT "projects".* FROM "projects" WHERE "projects"."id" IN (1)
  ←[1m←[36mTracker Load (0.0ms)←[0m  ←[1mSELECT "trackers".* FROM "trackers" WHERE "trackers"."id" IN (1)←[0m
  ←[1m←[35mIssueStatus Load (0.0ms)←[0m  SELECT "issue_statuses".* FROM "issue_statuses" WHERE "issue_statuses"."id" IN (1)
  ←[1m←[36mUser Load (0.0ms)←[0m  ←[1mSELECT "users".* FROM "users" WHERE "users"."type" IN ('User', 'AnonymousUser') AND "users"."id" IN (1)←[0m
  ←[1m←[35mIssuePriority Load (0.0ms)←[0m  SELECT "enumerations".* FROM "enumerations" WHERE "enumerations"."type" IN ('IssuePriority') AND "enumerations"."id" IN (2) ORDER BY enumerations.position ASC
  Rendered text template (0.0ms)
Completed 400 Bad Request in 17ms (Views: 0.0ms | ActiveRecord: 3.0ms)

Edit: after testing it some more and installing more plugins (burndown chart) I get this error:

ActionView::Template::Error (undefined method `gantt_calendar_for' for #<#<Class:0x68c1db0>:0x63094f8>):
    73:
    74:   # Width of the entire chart
    75:   g_width = ((@gantt.work_days_in(@gantt.date_to, @gantt.date_from) + 1) * zoom).to_i
    76:   @gantt.render(:top => headers_height + 8,
    77:                 :zoom => zoom,
    78:                 :g_width => g_width,
    79:                 :subject_width => subject_width)
  app/models/project.rb:723:in `block in project_tree'
  app/models/project.rb:719:in `each'
  app/models/project.rb:719:in `project_tree'