Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stuff_to_do for redmine 2.0 with rails 3 (Feature #6551) #7

Open
wants to merge 233 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
233 commits
Select commit Hold shift + click to select a range
f4bab9d
fixes #6551 @3h - removed deprecated ARcondition, added compatibility…
neffets Jul 3, 2012
2ee8bf8
Fix "PG::Error: ERROR: operator does not exist: boolean = integer"
alevkin Jul 9, 2012
4657b80
Fixes for latest ruby/rails
Jul 30, 2012
d55b930
Remove old shit
Jul 30, 2012
1c89235
Add new shit
Jul 30, 2012
2460376
For New Redmine
Jul 30, 2012
0fdb02f
For New Redmine
Jul 30, 2012
45a14d2
fixes
Aug 4, 2012
561261c
estimate time display upd
Aug 21, 2012
f81c332
menu fix for current redmine
Aug 21, 2012
8f5192d
Closes #4: Fix viewing other's stuff to do
ande3577 Sep 3, 2012
d6b2c70
Closes #1: Add stuff to do permission.
ande3577 Sep 3, 2012
bada79e
Closes #5: added user option to enable/disable stuff to do plugin
ande3577 Sep 7, 2012
52ac564
Closes #8: No longer shows stuff to do enabled if user does not have …
ande3577 Sep 12, 2012
bf03f6b
Closes #11: Time grid no longer creates error
ande3577 Sep 13, 2012
631f012
Closes #6: Can add to stuff to do from issue page or context menu
ande3577 Sep 21, 2012
b179f4d
Added not about version compatibility
ande3577 Sep 23, 2012
95aa3b9
Closes #16: changed account menu to use a hook
ande3577 Sep 25, 2012
3a8886f
changed default enabled setting to true
ande3577 Sep 25, 2012
48699cf
Added code to support ActionMailer from Rails 3 (this fixes an 'Inter…
Rumega Sep 27, 2012
a80a71c
Localization support in mail messages (not tested with Redmine 1.x, b…
Rumega Sep 27, 2012
bc0d3e0
Closes #19: Move to sidebar
ande3577 Oct 2, 2012
c739c8d
Closes #15: enable csv export
ande3577 Oct 5, 2012
31b0d25
Closes #20: filter improvements
ande3577 Oct 7, 2012
e91a80f
Closes #2: Each user has a list of stuff to do reportees
ande3577 Oct 8, 2012
ac935c0
Closes #22: fix access errors for filters.
ande3577 Oct 8, 2012
561a82f
no longer deletes title bar
ande3577 Oct 10, 2012
77e5fd5
Closes #23: tweak to back links format
ande3577 Oct 11, 2012
760c30e
refs #6551 - merge stuff of "Romega" - stuff_to_do_mailer is working …
neffets Oct 22, 2012
a1236a3
refs #6551 - merge stuff of "Romega" - stuff_to_do_mailer is working …
neffets Oct 22, 2012
e1b5207
Closes #29: add option to export description to csv
ande3577 Feb 13, 2013
ed14549
1. show language select in recommend_below e-mail
neffets Feb 13, 2013
ac203b2
version changed to 0.5.0 because rails3 supported
neffets Feb 13, 2013
bc26caf
README extended for the rake commands in redmine2.x / rails3
neffets Feb 13, 2013
2493158
README list formatting only
neffets Feb 13, 2013
08db006
README refrence of new commiters and download urls
neffets Feb 13, 2013
36de477
Closes #18: fix mailer server error
ande3577 Mar 4, 2013
bc0ade4
Closes #28: add a second drop-down control to select project
ande3577 Mar 27, 2013
c3f5ff0
Closes #31: Fix priority enumeration in stylesheet
ande3577 Apr 4, 2013
aa591b9
Closes #32: show issues assigned to group
ande3577 Apr 6, 2013
0e4514e
Closes #32: Allows adding from issue/context menu if assigned to group
ande3577 Apr 6, 2013
b27833d
Make "time_grid" feature not crash. Changed all link_remote_to to lin…
neffets Apr 18, 2013
1b2130a
Closes #33: reordering list resets project filter
ande3577 Apr 28, 2013
ad8511d
fixes mailer issue, no mails where sent
neffets May 13, 2013
fa6b115
Add permission view_others_stuff_to_do, so that privileged user can v…
neffets May 13, 2013
4dc6169
translations now work in redmine 2.3, we have not to hardcode the tit…
neffets May 13, 2013
67ce4bc
Forms in rails3 gives have a return value instead of echoing the output.
neffets May 13, 2013
94247f2
Improves filter - normal user can now filter to (status and priority)…
neffets May 13, 2013
abe0863
line for postgres support added, but not yet activated
neffets May 13, 2013
523f519
bugfix in case statement
neffets May 13, 2013
6022932
bugfix: partly reverts @94247f2
neffets May 13, 2013
06caddd
bugfix: js prototype function last() for array does not exists in jqu…
neffets May 14, 2013
3704155
Closes #34: update jquery to fix on IE
ande3577 Jun 1, 2013
8bbea3f
Closes #37: add screenshots
ande3577 Jun 18, 2013
ba5c9fb
Closes #36: allow hiding issues from manager when viewing other's stu…
ande3577 Jun 21, 2013
f87f3c6
Closes #39: Add localization for daily and running totals
ande3577 Jul 17, 2013
d5dc95d
Initial commit
Oct 1, 2013
43e5d54
Added officer_id to issues table
Oct 1, 2013
8ca654a
The plugin is ready to go
Oct 2, 2013
6fa6e7e
Added example cron.sh file to be used by cronjob
Oct 2, 2013
ec218ce
SQL statement did not work with MySQL Server. The 'IS' was missing
Oct 2, 2013
c32bbc1
Changed url generating functions because the old ones made mistakes
Oct 2, 2013
8267fc7
Now it is possible to subscribe to the escalation alert mailer in the…
Oct 8, 2013
21f28f3
Mass-assignment problem with CustomField.type solved
Oct 8, 2013
4a7a779
Adds indication when adding to another users stuff to do
ande3577 Oct 13, 2013
d6838ef
Added missing accept_api_auth function
Oct 25, 2013
10f35d4
Excludes closed issues
Nov 1, 2013
68647f6
Added statuses_for_stuff_to_do plugin setting.
JangoSteve Nov 18, 2013
9c35a13
Added statuses_for_stuff_to_do filter to listed issues in stuff to do…
JangoSteve Nov 18, 2013
77fc590
Added status to issue partial on stuff to do page.
JangoSteve Nov 18, 2013
dd7d018
Add default of 'all' to list all open statuses (equivalent to current…
JangoSteve Nov 18, 2013
a9fddcd
Added user periodic mailer to send list of stuff to do to users perio…
JangoSteve Nov 18, 2013
edb94d9
Fixed mailer links to use whole url in issue and project mailer parti…
JangoSteve Nov 18, 2013
8e39e12
Remove issues from stuff to do when issues are updated with unavailab…
JangoSteve Nov 18, 2013
6a75794
Added periodic summary mailer for email configured for plugin email_t…
JangoSteve Nov 18, 2013
89a99be
Merge remote-tracking branch 'jangosteve/add-status-config'
ande3577 Nov 19, 2013
6fa7d1e
Merge remote-tracking branch 'jangosteve/periodic-user-mailer'
ande3577 Nov 19, 2013
0338c1d
Update de.yml
cforce Dec 2, 2013
a6138b1
Merge pull request #49 from cforce/patch-3
ande3577 Dec 15, 2013
f731ec9
Set default mailer threshold to -1 (disabled), to prevent error until…
ande3577 Dec 15, 2013
11bbf0b
Fix error if enabled trackers are nil
ande3577 Dec 29, 2013
b8f8ef7
Remove time grid (didn't work anyway and not sure if it ever really did)
ande3577 Dec 29, 2013
ac8646b
Fix another reference to available trackers
ande3577 Jan 2, 2014
d52adb3
Changed plugins name
Jan 14, 2014
7ceb5fb
Names with old files deleted
Jan 14, 2014
c0517e0
Renamed Subscription custom field
Jan 14, 2014
69d4752
Entered github url and raised version number
Jan 14, 2014
85c4405
Added email configuration hint
Jan 14, 2014
a4ac668
Some changes made most of this plugin work on redmine 2.3.3
Jan 14, 2014
398779b
Plugin works on 2.3.3., too
Jan 14, 2014
f2755e3
Added rake db:migrate instruction to README
Jan 15, 2014
a03a4d3
Removed call to update function in 2nd migration step
Jan 15, 2014
959d557
Merge branch 'master' of [email protected]:raafael911/redmine_reminder.git
Jan 15, 2014
4c5ba6c
Update README.rdoc
Jan 15, 2014
ef9c7c8
Fix no subscribers found
Jan 18, 2014
3aaff3d
Merge branch 'master' of [email protected]:raafael911/redmine_reminder.git
Jan 18, 2014
d39944c
@Threshold variable was not visible in mailer view
Jan 20, 2014
39b1145
French translation by pousterlus
Jan 23, 2014
fd626b6
Add clear function
ande3577 Jan 28, 2014
68c8fce
Move manage all users' stuff to do to permission instead of user setting
ande3577 Jan 28, 2014
bdcb270
Update README.rdoc
Feb 14, 2014
2cdd933
Polish translation by pharao45.
Feb 15, 2014
6170109
Reenable link to CSV format
ande3577 Feb 16, 2014
083da2c
Updated stuff_to_do page format to be consistent with redmine format …
JangoSteve Feb 18, 2014
d4f73f7
Switched to rake task
Mar 21, 2014
c846d08
Update fr.yml
Mar 21, 2014
ee5f4c5
Update pl.yml
Mar 21, 2014
3dc729a
Update en.yml
Mar 21, 2014
15adc1b
Updated README and description in init.rb
Mar 22, 2014
9f00697
Custom reminder period configurable per user
Mar 22, 2014
2f7eba5
Raised version in init.rb
Mar 22, 2014
d6d0d12
Corrected cron.sh RAILS_ENV
Apr 13, 2014
07f694c
Update pt-br.yml.
allisson Jul 10, 2014
ba66bf4
Merge pull request #54 from allisson/master
ande3577 Jul 12, 2014
d3d49a7
Fixed incorrect available status getting
Aug 13, 2014
e4f6f32
Merge branch 'master' of github.com:SyntSupport/redmine-stuff-to-do-p…
Aug 19, 2014
9e548cf
Merge pull request #55 from SyntSupport/master
ande3577 Aug 19, 2014
deca30e
Bezüglich #8755:
Jun 2, 2015
aa844ad
Merge branch 'master' of github.com:raafael911/redmine_reminder
Jun 3, 2015
a64b1d0
Compatible to Redmine 3
Jun 3, 2015
c6724cf
Merge branch 'master' of github.com:raafael911/redmine_reminder
Jun 3, 2015
ecb0f11
Rescued fatally wrong commit
Jun 3, 2015
a4e3e5e
Add polish translate
meron1122 Oct 27, 2015
5db038b
Merge pull request #1 from meron1122/polish-translate
Oct 28, 2015
e19e7cf
fit for rails4 and redmine 3.x
Sep 12, 2016
a0588fe
Rails 3+4 compatibility for bulk-operations on issues
Nov 11, 2016
54fd4fe
refs #3 - TimeGrid - fixed time_grid
Feb 16, 2017
6e9d7c9
refs #3 - bugfix date_field
Feb 16, 2017
2b996dc
bump version to 0.6.0 rails4 support, redmine 2.x, old redmine 1.x ca…
Feb 16, 2017
df86a11
merge until ande3577/redmine-stuff-to-do-plugin/commit/95aa3b94d2c0de…
Feb 17, 2017
4d838b7
merge until ande3577/redmine-stuff-to-do-plugin/commit/95aa3b94d2c0de…
Feb 17, 2017
533fee6
refs ande3577/redmine-stuff-to-do-plugin/commit/c739c8da8bd676cbb91b9…
Feb 17, 2017
46a54cf
improve filters
Feb 17, 2017
8f2c1f2
Closes #2: Each user has a list of stuff to do reportees
Feb 17, 2017
e5933c6
Closes ande3577/redmine-stuff-to-do-plugin#22: fix access errors for …
Feb 17, 2017
5563554
no longer deletes title bar refs ande3577/redmine-stuff-to-do-plugin
Feb 17, 2017
5208c87
Closes ande3577/redmine-stuff-to-do-plugin#23: tweak to back links fo…
Feb 17, 2017
0d87237
Closes ande3577/redmine-stuff-to-do-plugin#29: add option to export d…
Feb 17, 2017
83f9692
Closes ande3577/redmine-stuff-to-do-plugin#28: add a second drop-down…
Feb 17, 2017
071eaff
ande3577/redmine-stuff-to-do-plugin#31: Fix priority enumeration in s…
Feb 17, 2017
f633826
ande3577/redmine-stuff-to-do-plugin#32: show issues assigned to group
Feb 17, 2017
2df106c
ande3577/redmine-stuff-to-do-plugin#32: Allows adding from issue/cont…
Feb 17, 2017
b5fde1f
ande3577/redmine-stuff-to-do-plugin#33: reordering list resets projec…
Feb 17, 2017
d3bf899
ande3577/redmine-stuff-to-do-plugin#34: update jquery to fix on IE
Feb 17, 2017
ca3e3c0
Closes #37: add screenshots
Feb 17, 2017
f10f25a
ande3577/redmine-stuff-to-do-plugin#36: allow hiding issues from mana…
Feb 17, 2017
d56dd50
ande3577/redmine-stuff-to-do-plugin#39: Add localization for daily an…
Feb 17, 2017
2a64533
Adds indication when adding to another users stuff to do
Feb 17, 2017
280b07c
Added statuses_for_stuff_to_do plugin setting.
JangoSteve Nov 18, 2013
a802ea3
Added statuses_for_stuff_to_do filter to listed issues in stuff to do…
JangoSteve Nov 18, 2013
056edf9
Added status to issue partial on stuff to do page.
JangoSteve Nov 18, 2013
cc4f02f
Add default of 'all' to list all open statuses (equivalent to current…
JangoSteve Nov 18, 2013
5bba1da
Remove issues from stuff to do when issues are updated with unavailab…
JangoSteve Nov 18, 2013
25ef9b0
Added user periodic mailer to send list of stuff to do to users perio…
JangoSteve Nov 18, 2013
1b99541
Fixed mailer links to use whole url in issue and project mailer parti…
JangoSteve Nov 18, 2013
b18599a
Merge periodic-user-mailer from ande3577/redmine-stuff-to-do-plugin
JangoSteve Nov 18, 2013
0aceef8
Update de.yml
cforce Dec 2, 2013
e702e98
Set default mailer threshold to -1 (disabled), to prevent error until…
ande3577 Dec 15, 2013
07e7e73
Fix error if enabled trackers are nil
ande3577 Dec 29, 2013
ad68000
Fix another reference to available trackers
ande3577 Jan 2, 2014
3ac42ed
Add clear function
ande3577 Jan 28, 2014
7c89ca1
Move manage all users' stuff to do to permission instead of user setting
ande3577 Jan 28, 2014
942f7bb
Reenable link to CSV format
ande3577 Feb 16, 2014
f9d9f00
iCSV-Link works. (the changes for removing time-grid I did not follow;
Feb 17, 2017
a1afd19
Updated stuff_to_do page format to be consistent with redmine format …
JangoSteve Feb 18, 2014
179e2d6
Update pt-br.yml.
allisson Jul 10, 2014
d6125df
Update pt-br.yml.
Feb 17, 2017
15d65fd
Fixed incorrect available status getting
Aug 13, 2014
ed8b7c6
JohnBat26 коррекция
Feb 17, 2017
6856b75
JohnBat26/stuff_to_do_plugin commit#e19d0c1cafb6d8a93f03947da688d5abf…
Feb 17, 2017
fee943c
JohnBat27/stuff_to_do_plugin 15 May 2015 6e8e3dbc25eb926ceb0f050a3362…
Feb 17, 2017
607819b
JohnBat27/stuff_to_do_plugin 15 May 2015 6e8e3dbc25eb926ceb0f050a3362…
Feb 17, 2017
1cb954a
fixed jQuery 1.10 missing browser function for contextMenu
Feb 17, 2017
562049a
rails3+4 @alectower - Update migration query method calls
Feb 17, 2017
139351f
polish translation thanx to @wojts
Feb 17, 2017
c9c394e
Merge branch 'master' of https://github.com/ande3577/redmine-stuff-to…
Feb 17, 2017
87158a2
Merge branch 'ande3577-master' into merge-other-develops
Feb 17, 2017
736b43b
Replaced function call which was incompatible to new Rails version
Feb 20, 2017
14ef964
last authors included stuff
Mar 23, 2017
95c4062
start for test cases
Mar 23, 2017
84e5146
Bug fixed #5 Shortcuts on Issue-Page with patch by @tknaller
Jun 30, 2017
b4ebd9b
add due date, update czech translation
Dejv6 May 12, 2017
427b210
fix styles for header
Dejv6 Jun 23, 2017
b5b4ec7
update czech translation in sidebar
Dejv6 Jun 27, 2017
7bb66dc
relayouting s-t-d javascript and whitespace-changes, move init-timegr…
Jun 30, 2017
32e2a21
bug fixed #6 - Time-Grid addItem now working
Jun 30, 2017
1347da9
bumping version to 0.6.2
Jun 30, 2017
424a83c
fixed #8 - compatibility - make stuff_to_do plugin more ready for for…
Jul 23, 2017
6d4a857
refs #8 - gemspec worried old redmine
Jul 25, 2017
8e82062
layout fix - localized variants of hours and date often to long for p…
Jul 28, 2017
df51478
fixed #9 - added issue context_menu for better administer
Jul 28, 2017
d8e6319
fixed #9 - css overflow made scroll-x (overdue-icons), fixed
Jul 28, 2017
34c6ed6
fixed #9 - z-index move l_hours behind context_menu
Jul 28, 2017
1606921
refs #9 - context_menu without parameters only from version 3.4.X
Aug 6, 2017
cbd6641
refs #9 - context_menu via StuffToDoHelper for not get conflicts with…
Aug 6, 2017
1aac683
Compatibility for 3.4.4
Mar 21, 2018
3fc121b
preparing for rails5, al is running at rails4 too (redmine 3.4.11), r…
Aug 12, 2019
9f2e401
refs #11, remove deprecated only_path attribute
Aug 12, 2019
c0ef2e2
refs #11 - repair tests for rails4 before upgrade
Aug 12, 2019
cd61bb4
refs #11 - some more tests before upgrade
Aug 16, 2019
b35e5ec
Merge branch 'master' of github.com:neffets/redmine-stuff-to-do-plugin
Aug 16, 2019
8872335
dropping old rails2 support, require minimum redmine 3.x
Aug 23, 2019
345e464
change to GPL v3
Aug 23, 2019
1c62554
removed old r2 lang translations
Aug 24, 2019
50c8d63
removing old r2 route definition
Aug 24, 2019
5103f63
rails migration, remaining stuff to do the mailings
Aug 24, 2019
7f0372b
unnecessary arra to_hash and rails/init removed; now running on rails…
Aug 25, 2019
91d12b4
Bugfix CSV export
Aug 25, 2019
f848166
gem not yet, record_helper_tags comes only in rails5 so in redmine4
Aug 27, 2019
54d5d5d
prepare for merging, updates czech translations
Aug 27, 2019
9d1cfdc
Merge remote-tracking branch 'raafael911/master' into merge-raafael911
Aug 28, 2019
0ff2601
ws changes
Aug 29, 2019
64d2a61
ws changes, and cleanup translations
Aug 29, 2019
9769d27
Merge branch 'compatible-redmine3'
Aug 29, 2019
d8803c3
fix available statuses
Dejv6 Jul 18, 2017
5d20442
bugfix available statuses
Aug 30, 2019
b68b112
Merge branch 'compatible-redmine3'
Aug 30, 2019
cc442ad
new firefox/redmine 4.1.0 left/right now uses display=flex
Jan 22, 2020
0de6937
updated styling to match latest version of public/themes/alternate/st…
mwaddell Aug 19, 2021
15c37d6
removing superfluous spaces
mwaddell Aug 19, 2021
b518cd8
Merge pull request #15 from pangaeatech/FixingStyle
neffets Aug 22, 2021
35f2397
Don't return deleted items
mwaddell Aug 22, 2021
4296646
Merge pull request #16 from pangaeatech/Task15443-DeleteCrash
neffets Aug 22, 2021
5a3b4aa
prefer highest priority before created
Mar 6, 2023
8d23ac2
adding gemfile group
Mar 6, 2023
60fa3bc
fix email empty caused split error
Mar 6, 2023
d01d143
add threshold_cnt for stuff_to_do max limit(default 5), and add local…
Mar 6, 2023
81875fd
Merge branch 'master' of github.com:neffets/redmine-stuff-to-do-plugin
Mar 6, 2023
44c09ed
fix the reorder.js 422 error bug
Mar 6, 2023
b8e0e8c
Rails-6 compatibility
Mar 6, 2023
5561039
Fix links
kristapsk Mar 13, 2024
31808cb
Merge pull request #20 from RTBC-SIA/kristapsk-patch-1
neffets Mar 16, 2024
0d55479
Update README.md https links
neffets Mar 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions CREDITS.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
Thanks go to the following people for patches and contributions:

1. Original Version

* Eric Davis of Little Stream Software - Project Maintainer
* Tim Haskins of Copious Creative - Project sponsorship
* Bill Tihen of Leysin American School - Project sponsorship
* The many translators who have submitted patches

2. development since 2012

* Steffen Schüssler <[email protected]>
* Rumega
* ande3577
* wojts
* JohnBat27
* JangoSteve
911 changes: 623 additions & 288 deletions GPL.txt

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
source 'https://rubygems.org'

gem "acts_as_list"
# since rails 5
gem "record_tag_helper"

group :test do
gem "rails-controller-testing"
end
52 changes: 35 additions & 17 deletions README.rdoc → README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
= Redmine Stuff To Do Plugin
# Redmine Stuff To Do Plugin

The Stuff To Do plugin allows a user to order and prioritize the issues and projects they are doing into a specific order. It will also allow other privileged users to reorder the user's workload.
Master branch supports redmine version 3.x and up. For previous versions use the compatible branches.

== Features
![StuffToDo](img/StuffToDo.png "Stuff to Do")

![StuffToDo-Issues](img/StuffToDo-Issue.png "Stuff to Do - Issues Page")

## Features

* Sorting and prioritizing of cross-project To Do lists
* Easy to use drag and drop interface
Expand All @@ -11,36 +16,49 @@ The Stuff To Do plugin allows a user to order and prioritize the issues and proj
* Notification emails based on low workload counts
* Drag and drop time logging using the Time Grid

== Getting the plugin
## Getting the plugin

A copy of the plugin can be downloaded from {Little Stream Software}[https://projects.littlestreamsoftware.com/projects/redmine-stuff-to-do/files] or from {GitHub}[http://github.com/edavis10/redmine-stuff-to-do]
A copy of the plugin can be downloaded for original versions from Little Stream Software or for newer versions from [GitHub](https://github.com/neffets/redmine-stuff-to-do-plugin).


== Installation and Setup
## Installation and Setup

1. Follow the Redmine plugin installation steps at: http://www.redmine.org/wiki/redmine/Plugins Make sure the plugin is installed to +vendor/plugins/stuff_to_do_plugin+
2. Run the plugin migrations +rake db:migrate_plugins+
1. Follow the Redmine plugin installation steps at: https://www.redmine.org/projects/redmine/wiki/Plugins
* for redmine>=2.x/>=rails3: Make sure the plugin is installed to: *plugins/stuff_to_do_plugin*
2. Run the plugin migrations
* for redmine>=2.x/>=rails3: *rake redmine:plugins:migrate*
3. Restart your Redmine web servers (e.g. mongrel, thin, mod_rails)
4. Login and configure the plugin (Administration > Plugins > Configure)
5. Click the Stuff To Do link in the top left menu
5. Setup permissions
1. Use Stuff to Do - allow a user to manage their own Stuff to Do list
2. View Others Stuff to Do - allow a user to view the Stuff to Do list of their assignees (set in account/user settings)
3. View all users stuff to do - view the stuff to do of all users, even if they are not your assignee
4. Manage Stuff to Do Reportees - allow a user to select whose Stuff to Do list they can view
5. View All Reportee Issues - when viewing another's stuff to do list, view all available issues, even if they would not normally be visible to the current user
6. View All Reportee Stuff to Do - when viewing another's stuff to do list, view all issues that are currently in their Doing Now and Recommended lists
6. Click the Stuff To Do link in the top left menu

== Usage
## Usage

There are three panes that can be sorted:

=== What I'm doing now
### What I'm doing now

This pane lists the next 5 items a user is supposed to be working on. These items should be the *most* important things assigned to the user. As the user closes an item, the items lower in the list will rise up and fill in this pane. Items are closed by either closing the issue (Issues) or archiving a project (Project)

=== What's recommended to do next
### What's recommended to do next

This pane lists extra items for the user. These items are used as overflow for the What I'm doing now.

=== What's available
### What's available

This pane lists all the open issues that are assigned to the user or the projects visible to the user. They are the pool of things that a user can draw on as they work.

=== Workflow
### Time grid

TODO: describe the "time_grid" feature

### Workflow

The standard workflow for this plugin is as follows:

Expand All @@ -51,11 +69,11 @@ The standard workflow for this plugin is as follows:

If the user is an Administrator, they have the permission to edit other users' lists. This allows them to act as the system Project Manager.

== License
## License

This plugin is licensed under the GNU GPL v2. See COPYRIGHT.txt and GPL.txt for details.
This plugin is licensed under the GNU GPL v3. See COPYRIGHT.txt and GPL.txt for details.

== Project help
## Project help

If you need help you can contact the maintainer at his email address (See CREDITS.txt) or create an issue in the Bug Tracker. The bug tracker is located at https://projects.littlestreamsoftware.com
If you need help you can contact the maintainer at his email address (See CREDITS.txt) or comment on github. If You are a developer feel free to fork und pull Your changes on github.

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.0
0.7.1
113 changes: 92 additions & 21 deletions app/controllers/stuff_to_do_controller.rb
Original file line number Diff line number Diff line change
@@ -1,54 +1,93 @@
class StuffToDoController < ApplicationController
unloadable

before_filter :get_user
before_filter :get_time_grid, :only => [:index, :time_grid]
before_filter :require_admin, :only => :available_issues
include StuffToDoHelper

before_action :get_user, :get_project
before_action :get_time_grid, only: [:index, :time_grid]
helper :stuff_to_do
helper :custom_fields
helper :timelog

def index
@doing_now = StuffToDo.doing_now(@user)
@recommended = StuffToDo.recommended(@user)
@available = StuffToDo.available(@user, default_filters )

@users = User.active
@available = StuffToDo.available(@user, @project, default_filters )

@users = StuffToDoReportee.reportees_for(User.current)
@users << User.current unless @users.include?(User.current)
@filters = filters_for_view

respond_to do |format|
format.html { render template: 'stuff_to_do/index', layout: !request.xhr? }
format.csv { send_data(stuff_to_do_to_csv(@doing_now, @recommended, @available, @user, params), type: 'text/csv; header=present', filename: 'export.csv') }
end
end

def delete
if !params[:issue_id].nil? && !params[:user_id].nil?
StuffToDo.remove(params[:user_id], params[:issue_id] )
end

respond_to do |format|
format.html { redirect_to_referer_or { render text: ('Deleting Issue from stuff-to-do.'), layout: true} }
format.js { render partial: 'stuff-to-do', layout: false}
end
end

def add
if !params[:issue_id].nil? && !params[:user_id].nil?
StuffToDo.add(params[:user_id], params[:issue_id], params[:to_front] == "true")
end
respond_to do |format|
format.html { redirect_to_referer_or { render text: ('Adding issue to stuff-to-do.'), layout: true} }
format.js { render partial: 'stuff-to-do', layout: false}
end
end

def reorder
StuffToDo.reorder_list(@user, params[:stuff])
@doing_now = StuffToDo.doing_now(@user)
@recommended = StuffToDo.recommended(@user)
@available = StuffToDo.available(@user, get_filters )
@available = StuffToDo.available(@user, @project, get_filters )

respond_to do |format|
format.html { redirect_to :action => 'index'}
format.js { render :partial => 'panes', :layout => false}
format.html { redirect_to action: 'index'}
format.js { render partial: 'panes', layout: false}
end
end

def available_issues
@available = StuffToDo.available(@user, get_filters)
@available = StuffToDo.available(@user, @project, get_filters)

respond_to do |format|
format.html { redirect_to action: 'index'}
format.js { render partial: 'right_panes', layout: false}
end
end

def clear
StuffToDo.where(user_id: @user).destroy_all

respond_to do |format|
format.html { redirect_to :action => 'index'}
format.js { render :partial => 'right_panes', :layout => false}
format.html { redirect_to action: 'index', user_id: @user }
format.js { redirect_to action: 'index', user_id: @user }
end
end

def time_grid
get_time_grid
Rails.logger.debug "get_time_grid issues = #{@spent_issues.inspect}"
respond_to do |format|
format.html { redirect_to :action => 'index'}
format.js { render :partial => 'time_grid', :layout => false}
format.html { redirect_to action: 'index'}
format.js { render partial: 'time_grid', layout: false}
end
end

def add_to_time_grid
issue = Issue.visible.find_by_id(params[:issue_id])
# Issue exists and isn't already in user's list
if issue && !User.current.time_grid_issues.exists?(issue)
if issue && !User.current.time_grid_issues.exists?(issue.id)
User.current.time_grid_issues << issue
end
get_time_grid
Expand All @@ -66,7 +105,8 @@ def save_time_entry
@time_entry = TimeEntry.new
@time_entry.user = User.current
if params[:time_entry] && params[:time_entry].first
@time_entry.attributes = params[:time_entry].first
@time_entry.safe_attributes = params[:time_entry].first
# [ :issue_id, :spent_on, :hours, :comments, :activity_id ]
end
@time_entry.project = @time_entry.issue.project if @time_entry.issue
respond_to do |format|
Expand All @@ -76,18 +116,28 @@ def save_time_entry

format.js { time_grid }
else
format.js { render :text => @time_entry.errors.full_messages.join(', '), :status => 403, :layout => false }
format.js { render text: @time_entry.errors.full_messages.join(', '), status: 403, layout: false }
end
end
end

private

def get_project
if params[:project_id] && !params[:project_id].empty?
@project = Project.where(id: params[:project_id]).first
if @project.nil?
render_404
return false
end
end
end

def get_user
render_403 unless User.current.logged?

if params[:user_id] && params[:user_id] != User.current.id.to_s
if User.current.admin?
if User.current.allowed_to?(:view_others_stuff_to_do, @project, global: true)
@user = User.find(params[:user_id])
else
render_403
Expand All @@ -98,11 +148,11 @@ def get_user
end

def filters_for_view
StuffToDoFilter.new
StuffToDoFilter.new(user: @user)
end

def get_filters
return default_filters unless params[:filter]
return default_filters if params[:filter].nil? or params[:filter].empty?

id = params[:filter].split('-')[-1]

Expand Down Expand Up @@ -133,7 +183,8 @@ def default_filters
def get_time_grid
@date = parse_date_from_params
@calendar = Redmine::Helpers::Calendar.new(@date, current_language, :week)
@issues = User.current.time_grid_issues.visible.all(:order => "#{Issue.table_name}.id ASC")
@spent_issues = User.current.time_grid_issues.visible.order("#{Issue.table_name}.id ASC").to_a
#Rails.logger.debug "get_time_grid issues = #{@spent_issues.inspect}"
@time_entry = TimeEntry.new
end

Expand All @@ -159,4 +210,24 @@ def parse_date_from_params
date ||= Date.civil(params[:year].to_i, params[:month].to_i, params[:day].to_i) if params[:year] && params[:month] && params[:day]
date ||= Date.today
end

def default_filters
if StuffToDo.using_issues_as_items?
return @user
elsif StuffToDo.using_projects_as_items?
return Project.new
else
# Edge case
return { }
end
end

def load_stuff(filters=nil)
filters ||= default_filters

@doing_now = StuffToDo.doing_now(@user)
@recommended = StuffToDo.recommended(@user)
@available = StuffToDo.available(@user, @project, filters )
end

end
71 changes: 71 additions & 0 deletions app/controllers/stuff_to_do_reportee_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
class StuffToDoReporteeController < ApplicationController
unloadable

before_action :get_user

def index
render :index, locals: { from_admin_menu: false }
end

def admin
render :index, layout: "admin", locals: { from_admin_menu: true }
end

def add
unless params[:reportee_ids].nil?
params[:reportee_ids].each do |reportee_id|
if !StuffToDoReportee.new(user: @user, reportee: User.find(reportee_id)).save
flash[:error] = l(:stuff_to_do_cannot_create_reportee_error)
end
end
end

unless params[:group_ids].nil?
params[:group_ids].each do |group_id|
if !StuffToDoReportee.new(user: @user, group: Group.find(group_id)).save
flash[:error] = l(:stuff_to_do_cannot_create_reportee_error)
end
end
end

respond_to do |format|
format.html { redirect_to controller: 'stuff_to_do_reportee', action: 'index', user_id: @user.id }
format.js
end
end

def delete
if [email protected]? && !params[:reportee_id].nil?
StuffToDoReportee.where(user_id: @user.id, reportee_id: params[:reportee_id]).each do |reportee|
reportee.destroy
end
end

if [email protected]? && !params[:group_id].nil?
StuffToDoReportee.where(user_id: @user.id, group_id: params[:group_id]).each do |group_reportee|
group_reportee.destroy
end
end

respond_to do |format|
format.html { redirect_to controller: 'stuff_to_do_reportee', action: 'index', user_id: @user.id }
format.js
end
end


def get_user
return deny_access unless User.current.logged?

if params[:user_id]
if User.current.admin? || (User.current.id.to_s == params[:user_id])
@user = User.find(params[:user_id])
else
deny_access
end
else
@user = User.current
end
end

end
Loading