Redmine

ToDo lists plugin

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.

Thanks! Very nice plugin and exactly as we were looking for! However it wasn't easy finding it :)Just one question: Is there really no Editing possibility for todo item or i just cant see it? If i accidentaly create mistake, i cannot fix this item and deleting and adding again is quite annoying :| Are you planning this feature in the future?

Thanks! Very nice plugin and exactly as we were looking for! However it wasn't easy finding it :)Just one question: Is there really no Editing possibility for todo item or i just cant see it? If i accidentaly create mistake, i cannot fix this item and deleting and adding again is quite annoying :| Are you planning this feature in the future?

Yes I am planning to allow editing, just trying to think of the nicest way to fit it into the UI!

Thanks! Very nice plugin and exactly as we were looking for! However it wasn't easy finding it :)Just one question: Is there really no Editing possibility for todo item or i just cant see it? If i accidentaly create mistake, i cannot fix this item and deleting and adding again is quite annoying :| Are you planning this feature in the future?

Yes I am planning to allow editing, just trying to think of the nicest way to fit it into the UI!

I have three solutions to suggest:

By double clicking item, replace text with input

Integrate right click menu - the same as for redmine issues list - menu could also have some more items in it, if there is any planned.

And of course there is always icon solution, but too much icons are not so good

Thanks heaps for that. Confirmed something I have been seeing with others.

Todos makes some patches to User and Project, so that I can use methods like User.current.todos and Project.todos.

Unfortunately it seems if your rails webserver is running in development mode, these patches dont work because it keeps reloading the classes with every request, and 'forgetting' the patches.As a temporary fix you can either use production mode, or make sure it has this line in config/environments/development.rb:config.cache_classes = true (instead of false, just like in production mode)

Does anyone know how you can apply permanent patches to Redmine classes that will stick in development mode? All im doing is class_eval'ing in a few association helpers.

after the installation of the latest version from github (migration + server restart + defining roles) I get an internal server error page, when I try to enter My todos or the project todos (if enabled).

Any ideas? Do I have to make some changes in permissions within the plugin? I am not that familiar with RoR. Thanks.

@axel, I made quite a few changes today, and im afraid a few of the commits left it in an unusable state. My latest commit(maybe 4 hours ago?) should have fixed all that up, so make sure you have the very latest version!

If thats not the case please post the error details from your log (REDMINE_DIR/log/production.log) or (REDMINE_DIR/log/development.log).

@Zou(and others),I have removed the patches to redmine core, so you should be able to run it in development mode now without changing anything in your conf

Well, yeah does the trick. But you should mention this somewhere in the readme, that the github project name (which is also the directory, that git clone creates in vendor/plugins) is not the real plugin name.

Nevertheless, I have some issues with the ajax features. When I mark a todo as done, it's only done after reloading the page. And after the reload I see a %> after the form box. After deleting the todo (which also only takes real effect after a page reload) the closing tag is gone again.

Yeah that does suck a little bit RE the install path. Nothing I can do though - Rails Engines requires the plugin's directory name when you load plugin css files, images etc, rather than the plugin name. Its inconsistent and it means you have to have the plugin in a fixed directory, which is annoying. In the install instructions i did gave a line to copy pasta with the correct path - it works if you do that. At your suggestion though I have added a note explicitly stating that.

As to your AJAX issues, I had a look and there were some CSS issues that ive fixed up now, if you want to update. I never saw that extra "%>" though?

Todos can belong to a project, so I wanted to add an association helper ":has_many :todos" into the Project class, so that in my Project todos view I could do something like@ todos = @project.todos instead of Todo.find_all_by_project_id(@project.id) . So i made some patch modules that patched patched project and User to do this and other things. 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. So now you have Todo.for_project(@project) which is still not ideal, but it works every time :)

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.

First time I run rake db:migrate_plugins it failed, because we only had a production database. So I created a development database.

I installed as described, but when running rake db:migrate_plugins, it creates the tables only in the development database.When I try to acceess mytodos, I get a Server Error, log says: "ActiveRecord::StatementInvalid (PGError: ERROR: Relation »todos« doesn't exists.".But the plugin mytodos is visible in our production enviroment. So why does it only create the tables in development?

First time I run rake db:migrate_plugins it failed, because we only had a production database. So I created a development database.

I installed as described, but when running rake db:migrate_plugins, it creates the tables only in the development database.When I try to acceess mytodos, I get a Server Error, log says: "ActiveRecord::StatementInvalid (PGError: ERROR: Relation »todos« doesn't exists.".But the plugin mytodos is visible in our production enviroment. So why does it only create the tables in development?