Project

General

Profile

Update for real time recording Stuff to do plugin (GOYELLO)

Added by GOYELLO IT Services over 15 years ago

Hello.

We decided to seperate this post from orginal plugin content to avoid missunderstandings.
Lately We have done set of changes to Eric Davis Stuff to do plugin enabling to record time that will be logged later.
We announced our work in this post, and now we have come with first update of our version. We added new feature of showing spent time custom fields in logging options.
You can read more and download it from here.
It is still in test phase, so if you encounter any problems, please give us notice.


Replies (7)

RE: Update for real time recording Stuff to do plugin (GOYELLO) - Added by Eric Davis over 15 years ago

Why didn't you just fork my plugin on Github and use that as the base? By creating a new project and removing the commit history, you've pretty much guaranteed that my users and I users will not be able to use your code or add your changes into the official plugin. This makes me really sad, since it effectively fragments the community and is going to make supporting the plugin even harder.

Eric Davis

RE: Update for real time recording Stuff to do plugin (GOYELLO) - Added by GOYELLO IT Services over 15 years ago

Hi Eric!

Thanks for your reply.
I must say that our whole team in our company had quite a big issue with choosing how to publish our work to public. In the end, we decided to represent it as a separate repository. The reason why we decided to do so is that in our implementation we use mainly javascript coding instead of ruby on rails. Consequently, our plugin, in 75%, works on javascripts and about 85% of original code has been modified, or is not in use. If you look in the sources you will notice that the modified version bases actually only on the manner in which “Stuff to do” lists were created. Which would mean that the only common feature of these two plugins is the lists’ arrangement.

The idea for the project modification originally came from “ Stuff to do” and therefore we can create a new branch to your repo (with option of removing our original git repo completely). But it is very important to answer the question if it will be possible to merge those two different subapplications in the future?

Bearing this in mind, we can change the situation to the following:
  1. Keep the repo of GOYELLO on Github, but make the branch on your repo as well
  2. Move GOYELLO repo to the branch of your repo (with GOYELLO repo removal)
  3. Change the name of GOYELLO plugin and its repo (so it won’t collide with your “ Stuff to do”)

,or leave everything as is.

It is very important for us not to cause confusion in the Redmine community. Especially that we already working on some other projects ,which are the modifications of existing plugins, we would like to avoid future misunderstandings.

RE: Update for real time recording Stuff to do plugin (GOYELLO) - Added by Alexey Lustin over 15 years ago

in my Redmine there is Postgres backend

thats why i have an 2 exceptions, after i fix that with patch

---
 app/controllers/stuff_to_do_controller.rb |    4 ++--
 app/models/next_issue.rb                  |    5 ++++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/app/controllers/stuff_to_do_controller.rb b/app/controllers/stuff_to_do_controller.rb
index 082eaad..aaf6ef2 100644
--- a/app/controllers/stuff_to_do_controller.rb
+++ b/app/controllers/stuff_to_do_controller.rb
@@ -79,8 +79,8 @@ class StuffToDoController < ApplicationController
     fetch_issues(sort_clause)

     @i = 0;
-    @users = User.all(:conditions => ["`members`.`project_id` IN (?)", User.current.projects.map(&:id)],
-      :joins => "left join `members` on `members`.`user_id` = `users`.`id`").uniq
+    users_project = Member.all(:conditions => ["project_id IN (?)", User.current.projects.map(&:id)]).uniq
+    @users = User.all(:conditions => ["id IN (?)", users_project])
     @filters = filters_for_view

     if(!@@remote.nil? && @@remote == true)
diff --git a/app/models/next_issue.rb b/app/models/next_issue.rb
index 82c3bfb..d33a6e3 100644
--- a/app/models/next_issue.rb
+++ b/app/models/next_issue.rb
@@ -70,7 +70,10 @@ class NextIssue < ActiveRecord::Base
         :conditions => ["#{Enumeration.table_name}.id = (?) AND #{IssueStatus.table_name}.is_closed = ?", priority.id, false ],
         :order => order)
     end
-    next_issues = NextIssue.find(:all, :conditions => { :user_id => user.id }).collect(&:issue)
+    next_issues = NextIssue.find(:all, :conditions => { :user_id => user.id }).map {
+          |item| Issue.find(:first, :conditions => {:id => item.issue_id})
+        }

     return issues - next_issues
   end
--
1.6.0.4


when i had a third exception
ActionView::TemplateError (stack level too deep) on line #1 of vendor/plugins/stuff_to_do_plugin/app/views/stuff_to_do/_doing_issue.html.erb:
1: <% logtime_entry = LogtimeEntry.find_by_user_id_and_issue_id(@user.id, doing_issue.id) %>
2: <li class="issue <%= doing_issue_counter.odd? ? "odd" : "even" %> priority-<%= doing_issue.priority.position %>" 
3:     id="issue_<%= doing_issue.id %>" 
4:     <% if(!logtime_entry.nil? && logtime_entry.state == 'Pending') %>

tommorow, if i have a time i would see what happened

RE: Update for real time recording Stuff to do plugin (GOYELLO) - Added by Eric Davis over 15 years ago

GOYELLO IT Services wrote:

The idea for the project modification originally came from “ Stuff to do” and therefore we can create a new branch to your repo (with option of removing our original git repo completely). But it is very important to answer the question if it will be possible to merge those two different subapplications in the future?

This is tricky for three reasons:

  1. Your version of the code is based on an older version of Stuff To Do. In the latest version of Stuff To Do, I've reorganized the data to order to allow Projects to be items in the list. This means you will need to update your version before we could discuss merging them.
  2. Redmine tracks plugins and the plugin's data based on their names. So by having two plugins named the same, there is the potential someone will try to use the data created from my plugin with your plugin or vice versa. The effect of this is magnified by the data changes I made (point 1).
  3. Your pluign is using the same Ruby classes as mine, so if someone tries to install both of them the code will be mixed and cause application errors.
Bearing this in mind, we can change the situation to the following:
  1. Keep the repo of GOYELLO on Github, but make the branch on your repo as well
  2. Move GOYELLO repo to the branch of your repo (with GOYELLO repo removal)
  3. Change the name of GOYELLO plugin and its repo (so it won’t collide with your “ Stuff to do”)

If you are able to update your version of the plugin to match mine, I'd be happy to review your changes and see about merging it into my plugin. At the very least, if you had your own fork on Github anyone would be able to pull down the changes and the version they wanted to use.

Changing the name would be an alternative but you will also need to rename the Ruby classes also in order to prevent conflicts (e.g. StuffToDoController).

It is very important for us not to cause confusion in the Redmine community. Especially that we already working on some other projects ,which are the modifications of existing plugins, we would like to avoid future misunderstandings.

I'm glad you feel that way about the community. It might save some confusion to contact the plugin authors if you are working on some larger changes. Or at least use a fork of their repository so everyone can see the changes easily.

Eric Davis

P.S. I also completed a feature similar to your time tracking about a month ago that I'm getting ready to merge into the master branch.

RE: Update for real time recording Stuff to do plugin (GOYELLO) - Added by GOYELLO IT Services about 15 years ago

Hi Eric,

regarding:

It might save some confusion to contact the plugin authors

Yes, you are right. In the time when you were working on your plugin, we have continued ours. It was impossible to work on our changes tracking your own as well.

Your pluign is using the same Ruby classes as mine, so if someone tries to install both of them the code will be mixed and cause application errors.

I agree with you. That is why we have posted it as a different version of the same plugin. If someone installs them both, this is his choice to do so.

P.S. I also completed a feature similar to your time tracking about a month ago that I'm getting ready to merge into the master branch.

It is really pity that we didn't manage to agree through emails on more tight cooperation. This could save us both some time.
I am curious, how your feature looks like. If you publish it, then we can have a look how we can merge it.

RE: Update for real time recording Stuff to do plugin (GOYELLO) - Added by Eric Davis about 15 years ago

GOYELLO IT Services wrote:

Yes, you are right. In the time when you were working on your plugin, we have continued ours. It was impossible to work on our changes tracking your own as well.

It's not impossible, it just takes some work to collorabate and use git's branches to separate work in progress.

It is really pity that we didn't manage to agree through emails on more tight cooperation. This could save us both some time.
I am curious, how your feature looks like. If you publish it, then we can have a look how we can merge it.

The code was published to the time-grid/master branch since I started on it in July. It is already in production for my customer and I'll be merging it into the next release.

Eric Davis

RE: Update for real time recording Stuff to do plugin (GOYELLO) - Added by Terence Mill about 14 years ago

Is there any progress? The stufftodo plugin can't real time recorxding till now, does it?
The goyello version else has lack of editing other users task list.

Goyello also has a nug i found.
In the user selection of the TodoList Board there are also user listed which are locked by admin.

    (1-7/7)