Doodle Plugin

Added by Felix Schäfer about 10 years ago

I'm not sure how many people will need this, but I've put together a little Doodle Plugin, which is a per-project module (like the wiki or the forums). The point is that basic functionality works, but there are still some design decisions to be made (e.g.: should you be able to completely delete your votes to a doodle, or just be able to set all your answers to "no"), and I'd need a little help with the css, so if anyone is interested, follow the discussion here and give me some feedback :-)

Anyway, I'll try to clean up the code tonight and post a link to the subversion repo here, and we'll see where it goes from there. The project is hosted in a redmine, but not a public enough one that we could discuss anything there, so we'll have to stick to this thread for the time being.

Replies (87)

RE: Doodle Plugin - Added by Felix Schäfer about 9 years ago

nick c wrote:

Thanks for you amazing fast responses to my questions, very much appreciated! Great plugin!

Glad it worked out, and thanks.

RE: Doodle Plugin - Added by Terence Mill about 9 years ago

Hi Felix,

i had time for analyzing the mailer.rb problem deeper.
If u can remember i got the following message when creating a doodle.

# Logfile created on Wed Oct 27 18:00:03 +0200 2010
ActionView::MissingTemplate (Missing template mailer/doodle_added.text.plain.rhtml in view path app/views):
  /app/models/mailer.rb:393:in `render_multipart'
  vendor/plugins/redmine_doodles/app/models/doodle.rb:64:in `send_mails'
  vendor/plugins/redmine_doodles/app/controllers/doodles_controller.rb:46:in `create'
  passenger (2.2.14) lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
  passenger (2.2.14) lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
  passenger (2.2.14) lib/phusion_passenger/railz/application_spawner.rb:441:in `start_request_handler'
  passenger (2.2.14) lib/phusion_passenger/railz/application_spawner.rb:381:in `handle_spawn_application'
  passenger (2.2.14) lib/phusion_passenger/utils.rb:252:in `safe_fork'
  passenger (2.2.14) lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application'
  passenger (2.2.14) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
  passenger (2.2.14) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
  passenger (2.2.14) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
  passenger (2.2.14) lib/phusion_passenger/abstract_server.rb:163:in `start'
  passenger (2.2.14) lib/phusion_passenger/railz/application_spawner.rb:222:in `start'
  passenger (2.2.14) lib/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'
  passenger (2.2.14) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
  passenger (2.2.14) lib/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'
  passenger (2.2.14) lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
  passenger (2.2.14) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  passenger (2.2.14) lib/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
  passenger (2.2.14) lib/phusion_passenger/spawn_manager.rb:154:in `spawn_application'
  passenger (2.2.14) lib/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
  passenger (2.2.14) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
  passenger (2.2.14) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
  passenger (2.2.14) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'

Tghe template is in correct place and rights are ok also.

I searched my redmine installation for mailer.rb and found 2 occourcences.

my-server:/redmine# find -name mailer.rb
./vendor/plugins/redmine_messenger/lib/redmine_messenger/mailer.rb
./app/models/mailer.rb

Is it possible that the messenger plugin mailer.rb overrides the system mailer.rb one, so that doodle an other plugins can't find things any more?
I attached the mailer.rb from redmine .1.0.1 and messenger, which are very different.

Tx for support.

Btw i have similar problem with other plugin "redmine_contacts "

./vendor/plugins/redmine_messenger/lib/redmine_messenger/mailer.rb
./app/models/mailer.rb

mailer.rb Magnifier - redmine_messenger 0.0.9 from plugins lib/redmine_messenger/ folder (840 Bytes)

mailer.rb Magnifier - redmine 1.0.1 from app/models folder (17.8 KB)

RE: Doodle Plugin - Added by Felix Schäfer about 9 years ago

Terence Mill wrote:

I searched my redmine installation for mailer.rb and found 2 occourcences.

[...]

Is it possible that the messenger plugin mailer.rb overrides the system mailer.rb one, so that doodle an other plugins can't find things any more?

The messenger plugin seems to extend mailer.rb too, and that clashes at some point… Could you try disabling (e.g. setting the permissions of the plugin folder to 000) the messenger plugin and see if the problem persists?

RE: Doodle Plugin - Added by Felix Schäfer about 9 years ago

Felix Schäfer wrote:

Terence Mill wrote:

I searched my redmine installation for mailer.rb and found 2 occourcences.

[...]

Is it possible that the messenger plugin mailer.rb overrides the system mailer.rb one, so that doodle an other plugins can't find things any more?

The messenger plugin seems to extend mailer.rb too, and that might clash at some point… Could you try disabling (e.g. setting the permissions of the plugin folder to 000) the messenger plugin and see if the problem persists?

RE: Doodle Plugin - Added by Terence Mill about 9 years ago

I deinstalled the messenger plugin and now it works..

The messenger_plugin project seems not to be to active, so i don't hope to get help from there. I will try to solve the problem, but need some help.
What could the inteison be to overwite the mailer.rb file. I is just an extension with the method "def create!", so isn't there a hook to extend the mailer.rb logic.?

Could i search for import of mailer.rb and just rename the ruby script and its calls?
A bad hack would be to extend the app/models/mailer.rb script with the "def create!" method.
Any way of using hooks or extension points?

Tx for help.

RE: Doodle Plugin - Added by Felix Schäfer about 9 years ago

Terence Mill wrote:

I deinstalled the messenger plugin and now it works..

The messenger_plugin project seems not to be to active, so i don't hope to get help from there. I will try to solve the problem, but need some help.
What could the inteison be to overwite the mailer.rb file. I is just an extension with the method "def create!", so isn't there a hook to extend the mailer.rb logic.?

The mailer.rb in redmine_messenger doesn't overwrite but extends the core mailer.rb, or at least it should. The alias_method :create_without_messenger!, :create! call is a valid ruby way to "rename" a method to substitute it with your own while still being able to call the original method.

Anyway, this is no simple matter if you don't have the necessary understanding of those ruby idioms, so I'm afraid you will need to dive in to get a grasp of them.

RE: Doodle Plugin - Added by Terence Mill about 9 years ago

Ok, but there is no method "create_without_messenger" or method "create" - just method "create_mail". So if this isn't used as kind of convetion (method prefix+scriptfilename) ther ist' even somtehing to overwrite. An why doe the mail.rb in messenger plugin folder overweite not only for redmine code usage, but for all plugins.
Of course you are right i don't have the ruby thinking and concepts at the moment..Is there a book you would proopse for a guy coming from the Java world? .. Maybe even in german?

RE: Doodle Plugin - Added by Terence Mill about 9 years ago

I thing that the execution context (path) of the doodel plugin is forced to change because of the overwriting mailer.rb in messanger path,
that way the doodle refeerence to the template files isn't correct any more. i Duno if path changing of execution contect id per conventions when an rb file is overwritten/extended od if there is some extra code in the messenger/xmpp plugin which does it .
Moreover i a super call could be used instead of alis way, but that shouldn't be the cause.

RE: Doodle Plugin - Added by Felix Schäfer about 9 years ago

Terence Mill wrote:

Ok, but there is no method "create_without_messenger" or method "create" - just method "create_mail". So if this isn't used as kind of convetion (method prefix+scriptfilename) ther ist' even somtehing to overwrite.

alias_method :create_without_messenger!, :create! aliases the method create! (the ! is part of the method name) to create_without_messenger!, i.e. after the alias_method call, the method created earlier as create! is now named create_without_messenger!. The original create! method comes from ActionMailer::Base, which Mailer is a subclass of. The create! method is used to create an "email object" to be processed further on.

An why doe the mail.rb in messenger plugin folder overweite not only for redmine code usage, but for all plugins.

As I said, the mailer.rb in the messenger plugin doesn't overwrite but extends the core Mailer class. The plugins aren't boxed either, but extend redmine as a whole, and redmine and all the plugins and everything gets loaded as one big "redmine-with-plugins" app, not as "redmine" and "plugin1" and "plugin2" and so on.

Of course you are right i don't have the ruby thinking and concepts at the moment..Is there a book you would proopse for a guy coming from the Java world? .. Maybe even in german?

I've learnt it from reading the ruby and ruby and rails guides and diving in, so nothing "academic" and nothing I could give you a book for (oh, and I disliked having to learn java in my earlier CS classes, so I can't give any good advice with that either, sorry).

Anyway, I don't think that the messenger plugin would need such a big patch, you have a link to the source for me? Have you contacted the author?

RE: Doodle Plugin - Added by Terence Mill about 9 years ago

Anyway, I don't think that the messenger plugin would need such a big patch, you have a link to the source for me? Have you contacted the author?

I have contacted the memebers romram (author)and mszczytowski (committer) and none of them is responding, seems as the issues ar not reactive also.
The Source is on github: https://github.com/mszczytowski/redmine_messenger/tree
I applied this patch also: http://github.com/mszczytowski/redmine_messenger/issues#issue/13

Would be great if you can check it out.

Tx for help!

RE: Doodle Plugin - Added by Felix Schäfer almost 9 years ago

I'm sorry I won't have the time to look at it until second half of january. I've made a note to do so by then, though feel free to remind me if I don't say much by then ;-)

RE: Doodle Plugin - Added by shopoto shopoto almost 9 years ago

[redmine-doodles] "No plugin called 'redmine_doodles' - please use the full name of a loaded plugin."

Hi everyone.!

I'm quite new to redmine / rails /ruby...
Anyway I've installed :
-Ruby 1.8.7
-RubyGems-1.3.7
-Redmine 1.0.4

Redmine worked perfectly to this point.

Then i tried to install:
-Redmine-doodles ( A clone from git repository)

So I've a directory
C:\redmine\vendor\plugins\redmine-doodles for this plugins with all files in it

I've launched succefully the command:

rake db:migrate_plugins RAILS_ENV=production

So i get all the tables neede for this plugin.

I re lauched my webserver with the command:
ruby script/server webrick -e production

But when I try to go to localhost:3000 i get:

RuntimeError in Welcome#index

Showing app/views/layouts/base.rhtml where line #19 raised:

No plugin called 'redmine_doodles' - please use the full name of a loaded plugin.

Extracted source (around line #19):

16:       body {behavior: url(<%= stylesheet_path "csshover.htc" %>);}
17:     </style>
18: <![endif]-->
19: <%= call_hook :view_layouts_base_html_head %>
20: <!-- page specific tags -->
21: <%= yield :header_tags -%>
22: </head>

RAILS_ROOT: C:/redmine
Application Trace | Framework Trace | Full Trace

C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:111:in `plugin_asset_path'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `pluginify_sources'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `map!'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `pluginify_sources'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:67:in `stylesheet_link_tag'
C:/redmine/vendor/plugins/redmine-doodles/lib/view_hooks.rb:5:in `view_layouts_base_html_head'
C:/redmine/lib/redmine/hook.rb:63:in `send'
C:/redmine/lib/redmine/hook.rb:63:in `call_hook'
C:/redmine/lib/redmine/hook.rb:63:in `each'
C:/redmine/lib/redmine/hook.rb:63:in `call_hook'
C:/redmine/lib/redmine/hook.rb:60:in `call_hook'
C:/redmine/lib/redmine/hook.rb:144:in `call_hook'
C:/redmine/app/views/layouts/base.rhtml:19:in `_run_rhtml_app47views47layouts47base46rhtml'

C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:111:in `plugin_asset_path'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `pluginify_sources'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `map!'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `pluginify_sources'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:67:in `stylesheet_link_tag'
C:/redmine/vendor/plugins/redmine-doodles/lib/view_hooks.rb:5:in `view_layouts_base_html_head'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/object/misc.rb:39:in `returning'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `send'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:306:in `with_template'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:30:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/template.rb:205:in `render_template'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:265:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:352:in `_render_with_layout'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:262:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1250:in `render_for_file'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:945:in `render_without_benchmark'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/1.8/benchmark.rb:308:in `realtime'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1326:in `default_render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1332:in `perform_action_without_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:617:in `call_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:638:in `run_before_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:189:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:189:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:635:in `run_before_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:615:in `call_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/1.8/benchmark.rb:308:in `realtime'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/rescue.rb:160:in `perform_action_without_flash'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/flash.rb:146:in `perform_action'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `send'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `process_without_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:606:in `process'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:391:in `process'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:386:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/routing/route_set.rb:437:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:87:in `dispatch'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:121:in `_call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:9:in `cache'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:28:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/string_coercion.rb:25:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/params_parser.rb:15:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/session/cookie_store.rb:93:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/failsafe.rb:26:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `synchronize'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:106:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/static.rb:31:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `each'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/log_tailer.rb:17:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:50:in `service'
C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:95:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `each'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:23:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:82:in `start'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:14:in `run'
C:/Ruby187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:111
C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3

C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:111:in `plugin_asset_path'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `pluginify_sources'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `map!'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:104:in `pluginify_sources'
C:/redmine/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb:67:in `stylesheet_link_tag'
C:/redmine/vendor/plugins/redmine-doodles/lib/view_hooks.rb:5:in `view_layouts_base_html_head'
C:/redmine/lib/redmine/hook.rb:63:in `send'
C:/redmine/lib/redmine/hook.rb:63:in `call_hook'
C:/redmine/lib/redmine/hook.rb:63:in `each'
C:/redmine/lib/redmine/hook.rb:63:in `call_hook'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/object/misc.rb:39:in `returning'
C:/redmine/lib/redmine/hook.rb:60:in `call_hook'
C:/redmine/lib/redmine/hook.rb:144:in `call_hook'
C:/redmine/app/views/layouts/base.rhtml:19:in `_run_rhtml_app47views47layouts47base46rhtml'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `send'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:306:in `with_template'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:30:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/template.rb:205:in `render_template'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:265:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:352:in `_render_with_layout'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:262:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1250:in `render_for_file'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:945:in `render_without_benchmark'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/1.8/benchmark.rb:308:in `realtime'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1326:in `default_render'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1332:in `perform_action_without_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:617:in `call_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:638:in `run_before_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:189:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:189:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:635:in `run_before_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:615:in `call_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/1.8/benchmark.rb:308:in `realtime'
C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/rescue.rb:160:in `perform_action_without_flash'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/flash.rb:146:in `perform_action'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `send'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `process_without_filters'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:606:in `process'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:391:in `process'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:386:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/routing/route_set.rb:437:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:87:in `dispatch'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:121:in `_call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:9:in `cache'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:28:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/string_coercion.rb:25:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/params_parser.rb:15:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/session/cookie_store.rb:93:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/failsafe.rb:26:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `synchronize'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:106:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/static.rb:31:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `each'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/log_tailer.rb:17:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:50:in `service'
C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:95:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `each'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:23:in `start'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:82:in `start'
C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:14:in `run'
C:/Ruby187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:111
C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3

Request

Parameters:

None

Show session dump

--- 

Response

Headers:

{"Content-Type"=>"",
 "Cache-Control"=>"no-cache"}

Any ideas on how i Can solve this bug and have redmine-doodles to work?

Any help would be appreciated !

Thx by advance!

[Resolved] RE: Doodle Plugin - Added by shopoto shopoto almost 9 years ago

Resolved

I had to rename
redmine-doodles
in
redmine_doodles

to have it works

Ps Thx again Ivan

RE: Doodle Plugin - Added by Felix Schäfer almost 9 years ago

I have patched my redmine to support underscores in project identifiers and updated the project identifier and repository URL accordingly (from redmine-doodles to redmine_doodles). This will avoid future problems for people who want to clone the repository, people who have already cloned it from http://fachschaften.org will need to edit their config though, as I don't plan on adding redirects.

RE: Doodle Plugin - Added by Felix Schäfer almost 9 years ago

Just a quick note about release 0.5.1: French and Korean locales, the description field should be fully wikified, and you now can delete doodles (provided correct permissions).

@Terence Mill: I also made a change to the lib dir of the plugin that should avoid collisions with other plugins, though it probably won't fix the problem you are seeing. I had a quick look at the messenger plugin, and I couldn't find anything really bad, so I think it's bad karma and a combination of code snippets that work individually but not together :-/

RE: Doodle Plugin - Added by Terence Mill almost 9 years ago

Felix Schäfer wrote:

Just a quick note about release 0.5.1: French and Korean locales, the description field should be fully wikified, and you now can delete doodles (provided correct permissions).

@Terence Mill: I also made a change to the lib dir of the plugin that should avoid collisions with other plugins, though it probably won't fix the problem you are seeing. I had a quick look at the messenger plugin, and I couldn't find anything really bad, so I think it's bad karma and a combination of code snippets that work individually but not together :-/

The change doesn't solve the problem

Btw. there is a strange i18n bug
There are two dupe labels with different text, but it works... ??

permission_create_doodles: "Delete doodles"
permission_create_doodles: "Create doodles"

RE: Doodle Plugin - Added by Peng Wang almost 9 years ago

I translated it into Chinese, hope it can help.

Br
-Peng

zh.yml Magnifier (38.1 KB)

RE: Doodle Plugin - Added by Terence Mill almost 9 years ago

i added an Enhancement:

We want to have all "Doodle" naming to be translated to native language.

app/views/doodles/show.html.erb

replace

<h2>Doodle #<%= @doodle.id %></h2>

with
<h2><%= l(:label_doodle)%> #<%= @doodle.id %></h2>

and it would be nice if you could make the url path "doodle" also configurable in terms of localization

Txx!

RE: Doodle Plugin - Added by Felix Schäfer almost 9 years ago

Peng Wang wrote:

I translated it into Chinese, hope it can help.

I'm really sorry, I had gotten your mail and added it to my local working directory, but hadn't uploaded it to the master repository. Thanks for the translation, there are some new strings too if you want to update it :-)

RE: Doodle Plugin - Added by Felix Schäfer almost 9 years ago

Terence Mill wrote:

The change doesn't solve the problem

I'm really sorry about that, but I can't think of anything else short of doing a full debug of a redmine install with both plugins installed, and I don't have the time for that. Were you able to contact the author of the messenger plugin? Did he have some more ideas about what else to try?

Btw. there is a strange i18n bug
There are two dupe labels with different text, but it works... ??

permission_create_doodles: "Delete doodles"
permission_create_doodles: "Create doodles"

Those strings are used in the permissions pane ("Administration" > "Roles and permissions"), and IIRC the last one is the one that gets used. Anyway, I've updated the language files, including a new string project_module_doodles which is the title of the "Doodle permissions block" in the aforementioned permissions pane. This probably is in most locales the same as label_doodle_plural, I can't use it at that place though, so both have to be in there.

RE: Doodle Plugin - Added by Felix Schäfer almost 9 years ago

Terence Mill wrote:

i added an Enhancement:

We want to have all "Doodle" naming to be translated to native language.

Thanks, added that too in the last commit.

and it would be nice if you could make the url path "doodle" also configurable in terms of localization

Not possible in the sense that localization is user-specific, the urls are not and should be idempotent. If you want to change it for your whole installation though, you can change the following line:

   project.resources :doodles, :shallow => true, :new => {:preview => :post}, :member => {:lock => :post} do |doodle|

to:

   project.resources :things, :controller => 'doodles', :shallow => true, :new => {:preview => :post}, :member => {:lock => :post} do |doodle|

In the above example, the "name" in the urls to doodles will be things rather than doodles, adapt as needed (and you can chooses nearly any string you want, it doesn't have to be plural either).

RE: Doodle Plugin - Added by Terence Mill almost 9 years ago

I Changed my routes.rb like this

#custom routes for this plugin
ActionController::Routing::Routes.draw do |map|
  map.resources :projects, :only => [] do |project|
    project.resources :things, :controller => 'umfrage', :shallow => true, :new => {:preview => :post}, :member => {:lock => :post} do |doodle|
      doodle.resources :doodle_answers, :shallow => true, :only => [:create, :update]
    end
  end
end

..and restarted apache - no effect

RE: Doodle Plugin - Added by Felix Schäfer almost 9 years ago

Terence Mill wrote:

I Changed my routes.rb like this

Heh, you changed the wrong parameter :-) The 4th line should look something like:

   project.resources :umfrage, :controller => 'doodles', :shallow => true, :new => {:preview => :post}, :member => {:lock => :post} do |doodle|

RE: Doodle Plugin - Added by Terence Mill almost 9 years ago

Ok, i know i am complete rails noob ;)
Works now, tx for help!

RE: Doodle Plugin - Added by Terence Mill almost 9 years ago

It would be fantastic if you could add some feature to the plugin.

  • If ya create a doddle to be answered by defined users, a checkbox which makes the user must answer the doodle (eg. which a popup next on next login) before proceeding
  • If ya create a doddle to be answered by defined users, a checkbox to send an email invitation to answert the doodle
  • a button to select all users to answer a doodle
  • a wiki integration to show results of a doodle in a table or even a chart

1 2 3 4 (51-75/87)