Project

General

Profile

ToDo lists plugin

Added by david lyons almost 16 years ago

Hello people,

Ive developed a very usable little ToDo lists plugin for Redmine, sort of inspired by Basecamp. It allows you to create nestable per-project todo lists, as well as a general, personal ToDo list for stuff not related to a particular project.
It supports:
  • drag & drop reordering of lists
  • Ability to tie a todo item to an Issue
  • Ability to assign todos to other users
  • Ability to assign a due date to Todo items

Intended use is for developers - We found that Issues(bug/feature request) are often too coarse and can represent too large a unit of work to use it to track your day-to-day work. For example - there might be a feature request to say 'add a new screen with the ability to search users by various fields, and calculate their blah blah blah'. We use the todo lists to keep track of all the things we have to do(design, implement each sub feature, etc) to implement that Feature.

I did intend to add some basic Scrumm-ish workflow management to the todo lists; however it seems now that there are other Scrumm plugins around now built by larger teams than me that are more sophisticated than I could probably achieve in my spare time.

Anyway, check it out at http://github.com/dalyons/redmine-todos-scrum-plugin/tree/master and see if it warrants inclusion on the Wiki plugins list :). Any feedback, suggestions etc, very welcome.


Replies (146)

RE: ToDo lists plugin - Added by Alexey Lustin about 14 years ago

Alexandr Ivanov wrote:

ru locale for your plugin. if you want

Alexandr. I have download ru.yml what you atach to this forum and save it in Unix format with UTF-8 encodings

ru.yml (1.64 KB) ru.yml ru.yml in UNIX format with UTF-8

RE: ToDo lists plugin - Added by Alexey Lustin about 14 years ago

Alexandr Ivanov wrote:

ru locale for your plugin. if you want

and one more thing: in your translation there is some grammar errors ;) because you hurry, i think

todo_new_issue_tooltip: связвно с
project_module_todo_lists: Бытсые заметки

RE: ToDo lists plugin - Added by Anonymous about 14 years ago

Oh, thanks! I'm always in a hurry! )

RE: ToDo lists plugin - Added by FLX _ almost 14 years ago

Is there a way to have a simple todo list inside a wiki article?

RE: ToDo lists plugin - Added by Nikolay Didenko over 13 years ago

david lyons wrote:

Ivan Khrustalev and ricardo...

I dont really know what to do from here. I cant reproduce the error, and you say are not getting anything at all in your logs when you do the javascript actions.
If thats true, its like the requests are not hitting rails at all, they are not being sent by the browser. Even if the url was wrong or something, there would be action in the logs.

I really dont know how to troubleshoot this one, sorry. Maybe try a different browser, just to rule out that it might be a javascript/Prototype problem. Check to see if you have any script errors on the page. Lame, but thats really the only things I can think of - that its a javascript/browser issue.

The last words are true :) And it helps me fix this problem. The reason is path with host in ajax request, that can be differ than current host in address line of browser. And you have probably another session. I saw just empty response on AJAX request.

This patch helps me:

diff -rup redmine_todos_plugin.orig/app/views/todos/create.rjs redmine_todos_plugin/app/views/todos/create.rjs
--- redmine_todos_plugin.orig/app/views/todos/create.rjs    2011-04-10 18:58:00.000000000 +0600
+++ redmine_todos_plugin/app/views/todos/create.rjs    2011-04-10 18:32:17.000000000 +0600
@@ -11,7 +11,7 @@ page.insert_html :bottom, parent_ul_id, 
 root_ul_id = TodosController::UL_ID + @todo.root.parent_or_root_id
 page.sortable(root_ul_id, 
                 {   
-                  :url => polymorphic_url([@todo.todoable, :todos], :action =>:sort), :method => :post,
+                  :url => polymorphic_url([@todo.todoable, :todos], :only_path => true, :action =>:sort), :method => :post,
                   :handle => "todo-content", :tree => true 
                 })

diff -rup redmine_todos_plugin.orig/app/views/todos/_inline_edit.html.erb redmine_todos_plugin/app/views/todos/_inline_edit.html.erb
--- redmine_todos_plugin.orig/app/views/todos/_inline_edit.html.erb    2011-04-10 18:58:00.000000000 +0600
+++ redmine_todos_plugin/app/views/todos/_inline_edit.html.erb    2011-04-10 18:33:00.000000000 +0600
@@ -21,7 +21,7 @@
       <% end %>
       <br />
       <%= f.submit %>
-      <%= link_to_remote("cancel", :url => polymorphic_path([todo.todoable,todo]), :method => :get) %>
+      <%= link_to_remote("cancel", :url => polymorphic_path([todo.todoable,todo], :only_path => true), :method => :get) %>

     <% end %>
diff -rup redmine_todos_plugin.orig/app/views/todos/_root_todos.html.erb redmine_todos_plugin/app/views/todos/_root_todos.html.erb
--- redmine_todos_plugin.orig/app/views/todos/_root_todos.html.erb    2011-04-10 18:58:00.000000000 +0600
+++ redmine_todos_plugin/app/views/todos/_root_todos.html.erb    2011-04-10 18:31:45.000000000 +0600
@@ -12,7 +12,7 @@
          sortable_element(
             TodosController::UL_ID + 'root', 
             #:url => {:controller => todos_controller, :action => 'sort', :project_id => project_id},
-            :url => polymorphic_url([parent_object, :todos], :action =>:sort), :method => :post,
+            :url => polymorphic_url([parent_object, :todos], :only_path => true, :action =>:sort), :method => :post,
             :handle => "todo-content", :tree => true
          ) 
       end 
diff -rup redmine_todos_plugin.orig/app/views/todos/_todo.html.erb redmine_todos_plugin/app/views/todos/_todo.html.erb
--- redmine_todos_plugin.orig/app/views/todos/_todo.html.erb    2011-04-10 18:58:00.000000000 +0600
+++ redmine_todos_plugin/app/views/todos/_todo.html.erb    2011-04-10 18:31:24.000000000 +0600
@@ -18,23 +18,23 @@
     %>

     <%= link_to_remote( todo_img,
-          :url => polymorphic_url([parent_object,todo], :action => :toggle_complete), :method => :post,
+          :url => polymorphic_url([parent_object,todo], :only_path => true, :action => :toggle_complete), :method => :post,
           :html => {:class => todo_class} 
          )
     %><%= link_to_remote( image_tag('add.png', :title => l(:todo_add_child_tooltip)), 
-      :url => new_polymorphic_url( [parent_object,:todo], :parent_id => todo, :issue_id => todo_issue), :method => :get,
+      :url => new_polymorphic_url( [parent_object,:todo], :only_path => true, :parent_id => todo, :issue_id => todo_issue), :method => :get,

       #{ :controller => "#{'projects/' + todo.project.identifier.to_s + '/' if todo.project}#{'issues/' + todo_issue.to_s + '/' if todo_issue}#{todos_controller}/#{todo.id}",     :action => 'new' },
       :html => {:class => 'icon-new'}, 
       :update => "todo#{todo.id}-new-box" ) 

     %><%= link_to_remote( image_tag('edit.png', :title => 'Edit'), 
-      :url => edit_polymorphic_url( [parent_object,todo]), :method => :get,
+      :url => edit_polymorphic_url( [parent_object,todo], :only_path => true ), :method => :get,
       :html => {:class => 'icon-edit'}, 
       :update => "todo_#{todo.id}" )

     %><%= link_to_remote( image_tag('delete.png', :title => l(:todo_delete_tooltip)), 
-      :url => polymorphic_url([ parent_object,todo]), :method => :delete,
+      :url => polymorphic_url([ parent_object,todo], :only_path => true), :method => :delete,
       :confirm => l(:text_are_you_sure), :html => {:class => 'icon-delete'}, 
       :update => "todo_#{todo.id}" ) 

diff -rup redmine_todos_plugin.orig/app/views/todos/todo.rjs redmine_todos_plugin/app/views/todos/todo.rjs
--- redmine_todos_plugin.orig/app/views/todos/todo.rjs    2011-04-10 18:58:00.000000000 +0600
+++ redmine_todos_plugin/app/views/todos/todo.rjs    2011-04-10 18:32:02.000000000 +0600
@@ -12,7 +12,7 @@ page.replace_html li_id, @element_html
 root_ul_id = TodosController::UL_ID + @todo.root.parent_or_root_id
 page.sortable(root_ul_id, 
                 {   
-                  :url => polymorphic_url([@todo.todoable, :todos], :action =>:sort), :method => :post,
+                  :url => polymorphic_url([@todo.todoable, :todos], :only_path => true, :action =>:sort), :method => :post,
                   :handle => "todo-content", :tree => true 
                 })

diff -rup redmine_todos_plugin.orig/config/locales/ru.yml redmine_todos_plugin/config/locales/ru.yml
--- redmine_todos_plugin.orig/config/locales/ru.yml    2011-04-10 18:58:00.000000000 +0600
+++ redmine_todos_plugin/config/locales/ru.yml    2011-04-10 18:52:44.000000000 +0600
@@ -1,6 +1,6 @@
 #Todos Russian locale File for Rails >= 2.2.2
 ru:
-  label_todo_plural: Списки задач
+  label_todo_plural: Список заметок
   project_todos_title: Заметки
   my_todos_title: Заметки к выполнению

@@ -36,6 +36,11 @@ ru:
   permission_edit_project_todo_lists: Редактирование списков заметок
   permission_use_personal_todo_lists: Использовать свой список заметок

-  
-  
-  
+  label_related_todos: Связанные заметки
+
+  todo_not_found_error: "Заметок не найдено!" 
+
+  label_todo: Заметка
+  todo_status_done: Закрыта
+  todo_status_new: Новая
+  todo_status_updated: Обновлено

RE: ToDo lists plugin - Added by Torben Wilson over 13 years ago

Hi all!

Big Redmine fan here--and the Todo plugin has been very useful. There is just one problem: when copying a project, Todos attached to Issues within that project do not get copied as well (the way that subtasks etc do). Is this intentional? Is it user error (very well could be)? Is it just technically not feasible?

I'm a programmer but have zero experience with Ruby or Rails except for installing it and using it, and unfortunately work pressures prevent me from spending time on learning it right now, much as I'd love to. Is this something which could be done, and if so, how easily? If it's possible and just needs a reason to happen, we'd be willing to negotiate a contract to get the work done.

Thanks for any hints/ideas/responses.

RE: ToDo lists plugin - Added by Quan Tong Anh over 13 years ago

Hi,

I've tried Todo lists plugin yesterday and happy with it. But I want to suggest some features:
  • send an email to Assignee when I add a related Todo to an issue.
  • send an reminder email at the end of due date.

Thanks,

RE: ToDo lists plugin - Added by Alexander Kulemin over 13 years ago

Quan Tong Anh wrote:

Hi,

I've tried Todo lists plugin yesterday and happy with it. But I want to suggest some features:
  • send an email to Assignee when I add a related Todo to an issue.
  • send an reminder email at the end of due date.

Hi.
I was doing for myself. May be it will be useful for you.

RE: ToDo lists plugin - Added by Roland Discein over 13 years ago

Hi all!

I found nice hole in permissions of this plugin from this commit

Look at th init.rb from line 48 (at present version):

    permission :edit_todos,
      {:todos => [:create, :destroy, :new, :toggle_complete, :sort, :edit, :update],
        :issues => [:create, :destroy, :new, :toggle_complete, :sort, :edit, :update]}

So, if I create some role and check "Edit ToDos" for it, then the user with this role can delete issues in project!

Are these issues privileges necessary? If not, fix this bug, please.

RE: ToDo lists plugin - Added by Alexander Kulemin over 13 years ago

Roland Discein wrote:
...

Are these issues privileges necessary? If not, fix this bug, please.

I deleted it and plugin now working normally.

RE: ToDo lists plugin - Added by Sanjay jain about 13 years ago

If the assignee deletes a todo before completing it, that would mean it would never get done. Is it possible to disable the delete for the assignee?

Also it would be nice to have a notes field so comments can be made.

thanks

RE: ToDo lists plugin - Added by Carlos Scaloni about 13 years ago

Please! Is it working with Redmine 1.2.1?? Thanks

RE: ToDo lists plugin - Added by Roland Discein about 13 years ago

Carlos Scaloni wrote:

Please! Is it working with Redmine 1.2.1?? Thanks

Yep

RE: ToDo lists plugin - Added by Matt N about 13 years ago

Hi, are the todos suppose to appear in Calendar? I don't see it in mine (using 1.2.1 Redmine).

Thanks!

RE: ToDo lists plugin - Added by Mischa The Evil about 13 years ago

Matt N wrote:

Hi, are the todos suppose to appear in Calendar? I don't see it in mine (using 1.2.1 Redmine).

As far as I remember the todos from this plugin aren't supposed to show up in the Calendar.

RE: ToDo lists plugin - Added by katowi katowi about 12 years ago

Trying to install plugin, but when im doing:

rake db:migrate_plugins RAILS_ENV=production
there is an error occured:

rake aborted!
no such file to load -- dispatcher

Tasks: TOP => db:migrate_plugins => redmine:plugins:migrate => environment
And with trace:

rake db:migrate_plugins RAILS_ENV=production trace
rake aborted!
no such file to load -
ace
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:357:in `standard_rake_options'
/usr/local/lib/ruby/1.8/optparse.rb:1298:in `call'
/usr/local/lib/ruby/1.8/optparse.rb:1298:in `parse_in_order'
/usr/local/lib/ruby/1.8/optparse.rb:1254:in `catch'
/usr/local/lib/ruby/1.8/optparse.rb:1254:in `parse_in_order'
/usr/local/lib/ruby/1.8/optparse.rb:1248:in `order!'
/usr/local/lib/ruby/1.8/optparse.rb:1339:in `permute!'
/usr/local/lib/ruby/1.8/optparse.rb:1360:in `parse!'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:425:in `handle_options'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:74:in `init'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:72:in `init'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:64:in `run'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/usr/local/bin/rake:23:in `load'
/usr/local/bin/rake:23
GEM ENV:

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.24
- RUBY VERSION: 1.8.7 (2012-02-08 patchlevel 358) [amd64-freebsd7]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/local/bin/ruby18
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- amd64-freebsd-7
- GEM PATHS:
- /usr/local/lib/ruby/gems/1.8
- /home/redmine/gems
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://rubygems.org/
And redmine v2.1.0.

I ll be glad to see any suggests.

Thank in advance.

RE: ToDo lists plugin - Added by alaca kala about 12 years ago

Hi

Any plans to update this for Redmine 2?

RE: ToDo lists plugin - Added by Adam Zielinski about 11 years ago

I think they won't bother, but I created an alternative: http://www.redmine.org/plugins/todo_lists/

RE: ToDo lists plugin - Added by Tushar Garg over 8 years ago

Thomas Löber wrote:

david lyons wrote:

The problem was, they work fine in production mode, but not in development mode, because in dev mode it reloads the Redmine classes every request and loses the patches, then you get errors like NoSuchMethod Project.todos. I tried a bunch of things to force it to reload the patches as well as the redmine classes, but nothing worked reliably, so in the end i tore it all out and used named scopes instead.

Did you try Dispatcher.to_prepare to have your model patches reloaded in development mode? This works fine in a plugin I wrote.
[...]

RE: ToDo lists plugin - Added by Tushar Garg over 8 years ago

Hello Sir,

Please tell, where I have to add dispatcher function to resolve this problem, and please also tell that after adding dispatcher, if I again change the environment to production, will it affect the code or it will work fine?

Thank you

(126-146/146)