Weekly Timesheet Plugin (wk-time) 1.0

Added by Dhanasingh Krishnapandian over 9 years ago

We are happy to announce the release of version 1.0 of Weekly Timesheet Plugin (wk-time)
Following are the features of Release 1.0
- The timesheet can be filtered by projects and then by users.
- code for summing hours of same entry has been removed.
- Timesheet can be exported into PDF with signature sections
- Project hierarchy is shown in project dropdown
- Custom Fields can be modified from the timesheet
- The plugin can be configured
- comma is allowed as decimal separator on hours entry
- Users without Edit Permissions cannot edit / delete entries
- Italian translations are included

Thanks to Sanjay jain, Quang Tuan, Damian Rafferty, Rachid B, Steve Stefanovich, Krzysztof Rosiński for their feedback and feature requests.

Replies (79)

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Olivier,
Thanks for your feedback.
Like Zingi said, Redmine is using jquery instead of prototype in 2.1.0
and it has broken all our ajax calls.
'delete row' is one of our ajax calls.

We are about to release weekly timesheet 1.1 which will be compatible with Redmine 2.1.0

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Weekly Timesheet plugin version 1.1 is released, it is compatible with Redmine 2.1

Following are the features of 1.1
- The plugin is made compatible with Redmine 2.1.0
- Issues can be entered as Id
- Work time header can be configured to show/hide
- Allowing blank issues can be configured

Thanks to Bob Pack, Olivier Pinette, Karol Zaren for their feedback.

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Bob Pack about 9 years ago

Great work to you and your team, Dhanasingh!

I have some news. The requirements I gave were valid for our process, but now we are investigating adding a formal written step for some of the employees. This has brought up the need for the written form (we could use the PDF export) to have some custom text. Here is my suggestion:

In the configuration options, give an option for "Custom included text" - this could be entered as multiline text so users could put a paragraph of required text, or they could put name/value pairs similar to what's there (name: value) and will look similar because you'd display this directly below the existing name/values perhaps).

Another option we'd need is "Required text" - this would simply appear on the exported PDF, but even in the standard process, if you add the "Sign" step, the required text could be what pops up in the box. So, for example, if I enter as Required text: "Signing implies your understanding that these hours are entered in good faith" - this would appear on the exported PDF, AND it would appear if I tried to sign the timesheet online.

These are just suggestions, but adding some custom text would really be important based on what I'm hearing as we discuss out time logging system in our company; I'm sure it will be similar for others.

Thanks and great work as always. I had no problem upgrading.
Bob Pack

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Bob,
thanks for upgrading to the latest release.
thanks for your feedback as well.

Yeah, I did think about customizing some text for the timesheet during development.
But then want to hear from the community users, before I start customizing text for the pdf export.

So what is the difference between the "Custom Included text" and "Required Text" ?
do you need both ?
Can you give me some examples on what would you enter on "Custom Included text" ?

Do we put the required text right about the signature section in the pdf export ?

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Bob Pack about 9 years ago

Hello Dhanasingh,

Sorry for the delay in responding; I have been out at a conference for my company. We are undergoing an internal review of the way we record hours in my company, so I am hoping to use this as a basis to move towards using Redmine (especially with the Weekly Timesheet plugin, it won't work properly without it) for our timesheets.

The names I gave weren't that great, and as I'm reviewing it again, "Custom included text" was intended to be some custom text for the user-interface that could be added as static text. It was intended to provide a way to get some configured, custom text that could be added directly to the UI (as well as the PDF export of course). Maybe a better idea for "Custom included text" will be to have it ONLY be for PDF, and then remove the "Purchase Order:" line. Leave it for "Custom included Text" on a per-user basis. Also, make "Custom included text" multi-line, so multiple text lines could be added there.

"Required Text" was intended to be text that was required for proper processing. As you said, it would be best to have required text appear near the signature section of the PDF Export, and from the UI, if they are using the signature workflow we discussed before, the "Sign" step would cause a popup with "Required Text" to appear. That way, Required Text is always explicitly given to the user to verify their agreement with the statement given.

That was the idea, because different companies may have different "text" that is required to be displayed to the user for their verification/assent. We are receiving some guidance on new text to provide to users to get their verification that their hours are required; that is where this is coming from, so you understand.

Thanks as always,
Bob

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Bob,
thanks for the details.

Yeah, it might be easier to just do the custom fields for the pdf export.
I have already added the custom field to the configuration, but it is blank right now on the export.

We are also working on the approval system, we are introducing a new table for the weekly timesheet plugin

CREATE TABLE "wk_times" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"user_id" integer NOT NULL,
"begin_date" date NOT NULL,
"hours" float NOT NULL,
"status" varchar(2) DEFAULT 's' NOT NULL,
"submitted_on" date NOT NULL,
"statusupdate_on" date,
"submitter_id" integer NOT NULL,
"statusupdater_id" integer,
"notes" varchar(255),
"created_at" datetime NOT NULL,
"updated_at" datetime NOT NULL);

CREATE INDEX "index_wk_times_on_begin_date" ON "wk_times" ("begin_date");
CREATE INDEX "index_wk_times_on_user_id" ON "wk_times" ("user_id");

We need to see if we can use the existing custom fields feature for this new table also.

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Bob Pack about 9 years ago

Hello Dhanasingh,

I do still kind of like the idea of having two different concepts of customizable text, "Required assent" or something, that would show up in the UI-based signature prompt, and also on the PDF export near the signature, and then some kind of general customized text.

However, I did want to ask something else - can Weekly Timesheets be made to support a custom field associated with Spent Time? This would be key for our workflow.

I added a custom field to "Spent Time" in Redmine, called Client. It is a "List" type, but it could be a "Text" type as well in the future I believe. This is because we explicitly track "Activity" as Billable and Non-Billable, and would like to separately track Client... even separate from Issues because sometimes one issue can be billed to two clients... and separate from Billable/Non-Billable because sometimes something that could have been billed if the contract was written better, needs to be Non-Billable. In that case, it would be a Non-Billable expense that we'd associate with the client still, for tracking purposes.

Anyway, I can add a custom field to "Spent Time" in Redmine, called Client - but this custom field won't show up anywhere in Weekly Time. If I "Log Time" through Redmine, I can enter a Client. Is there a way to support these custom fields in Weekly Timesheets?

Thanks,
Bob

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Custom fields from spent time is supported from Weekly Timesheet 1.0
When you click on the icon next to the hours text box, you should see the custom fields pop open.

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Bob Pack about 9 years ago

Ah, I see it, and it makes perfect sense, because as a Custom Field on "Spent Time" it should be there. So, is there any way to get a whole row with a custom field, like a new (custom) column as Activity?

Thanks,
Bob

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Well, I think one person was asking about this earlier.

We are bringing back 'comments' to the row using a plugin configuration called 'Use one comment per row'.
Comments used to be in the row until version 0.7

The problem with custom fields is; we can't bring all the custom fields to the row, because it can cramp up the row.
May be, we let the admin pick which custom fields he wants on the row.

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Bob Pack about 9 years ago

That would be great, I think. For us, comments are useful on a per-time basis, not important to have them per-row.

What is very important for us, though, is to have "Client" per-row, AND to have it appear on the exported PDF.

Can we have the option for the custom field to be per-row, and to select it to be included on the PDF export?

Thanks,
Bob

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Ok, I will add this to our feature list, but not sure if we will be able to put it into our next release.

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Bob Pack about 9 years ago

If it's at all possible to get the custom field (or at least a selected custom field configuration) into the PDF (and in a per-row basis of the main form) in the next version, that would really be great. We will have bigger discussions about this item next week in our company as we are specifically redoing our time accounting. The early word is that printouts of the timesheets will be used, and we will transition away from online sign/approval of sheets.

I will have more information about this next week, but right off the bat I can say that having the custom field as a per-row entry and appearing in the PDF export will be important.

Either way, though - whatever you get done, I'll definitely take a look at and provide feedback. It's actually the only plugin I am using at this time in Redmine, and am really grateful for the timely responses and support!

Thanks,
Bob

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Bob,
no problems.
we will give it a try and see how much we can get done for the next release 1.2

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Bob Pack about 9 years ago

Hello,

I have been reviewing some of our requirements, and they are rich. We are trying to follow regulations for our time tracking from the US, which have a lot of items.

One thing that may help is - in addition to having a "signed_by" and "approved_by" we would also need "signed_on" and "approved_on" which is a full date/timestamp, with full date and time of the signing and approving. I saw the table had signed_by and signed_on (it looked like) but wasn't sure if it had the approved_by and approved_on, or how that would work.

I am still reviewing other requirements, but this addition will help. I have to find a way in Redmine to get this data (signed_by and signed_on, as well as approved_by and approved_on) into a full exported report in a meaningful way... but having those fields in the weekly_timesheet plugin seems like a good start.

Thanks as always!
Bob

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian about 9 years ago

Bob,
The approved_on and approved_by is actually captured.

The approved_on, rejected_on and unsubmitted_on will be stored in the statusupdate_on field.
Please note, we don't keep history of all the status changes, we only store the last status.
so if 'Approved' is the last status on the timesheet, then the statusupdater_id will be the approver_id and statusupdate_on will be the approved_on.

Here is the latest table schema

CREATE TABLE "wktimes"
("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"user_id" integer NOT NULL,
"begin_date" date NOT NULL,
"hours" float NOT NULL,
"status" varchar(2) DEFAULT 'n' NOT NULL,
"submitted_on" date,
"statusupdate_on" date,
"submitter_id" integer,
"statusupdater_id" integer,
"notes" varchar(255),
"created_at" datetime NOT NULL,
"updated_at" datetime NOT NULL);

CREATE INDEX "index_wktimes_on_begin_date" ON "wktimes" ("begin_date");
CREATE INDEX "index_wktimes_on_user_id" ON "wktimes" ("user_id");

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Razi Baluchi almost 9 years ago

Is it safe to assume that everyone using this plugin is doing so with projects that have relatively few issues? It seems to take a long time (>60s) to bring up the edit view with our projects that all have over 20,000 issues each.

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian almost 9 years ago

Razi,
Yeah, 20,000 issues might take time. first it needs to retrieve them from db and then create a dropdown with all those 20,000 issues. We did some tuning on version 1.2 of the plugin not sure if thats going to help, what version are you using?.

You can try and reduce the number of issues by unchecking this setting "Include Previous Week's Closed Issues"

or try to enter issue by its id or subject

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Razi Baluchi almost 9 years ago

Dhansingh,

We're using 1.0. We won't be able to upgrade until we switch to 2.2 some time in the next 3 months.

We have ~20k issues, but if I understand the logic correctly, its only populating the drop down with the issues that are either open or closed within the last week? At least that's what I see in the drop down. So, about a 100 show up in the list which should be manageable.

If you could point me in a direction where I could look to see where all the time is being spent, it would be very helpful as this is a great plugin and fills a very much needed requirement for us. I ran in debug mode, but am unable to see anything that points to the issue. The render timing varies between 85 - 100 seconds:

Rendering wktime/edit
Completed in 85501ms (View: 85322, DB: 19) |

Thanks for the assistance

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian almost 9 years ago

Razi,
if you are only getting 100 issues in the dropdown, then you are seeing only the open issues.
Looks like the page is rendered on the server in 85501ms (85 seconds or 1 min and 25 sec).
This is the file '_edit_issues2.html' which renders the timesheet.
We were actually going to be db for every row (in 1.0)
In 1.2, we eliminated by caching the previously rendered project.

So if your rows are listing the same project over and over again, then our tuning in 1.2 should help.

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Jai prakash almost 9 years ago

Dhanasingh,

I want to point out some odd behaviour not really sure if its a bug or some configaration error from my side.

At the wktime home page I am able to edit the "user_id" part of the url . This allows me to view and edit another users timesheet

http://localhost:3000/wktime/edit?startday=2012-08-26&tab=wktime&user_id=143
I could replace 143 with som other id say 100 and able to edit that users timesheet

In role and permissions under Time Tracking, I have only enabled the following permissons
Log spent time
Edit own time logs

@razi I am too having the same performance problem . My project have abt 20k issue ,takes quiet a bit of time to load .

redmine version > 2.2.0
WkTime version > 1.4
OS ==> fedora 15

Regards,
Jaiprakash

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Razi Baluchi almost 9 years ago

Dhansingh,

Could you explain the flow behind the edit view? I understand that it's populating the drop down; where I get lost is details around the specific query being executed. Is it looking for all issues that the user has a time entry for in the last week? or is it all open issues + issues closed in the last week?

It almost seems like the query includes all issues in the project - at least in some clause - since the performance seems related to the number of total issues in the project

Thanks a lot for your assistance,

-razi

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian almost 9 years ago

Jaiprakash,
yeah, it seems like the permission piece is broken in the last few releases, we will get it fixed in the next release.

In your case how many issues do you get in your dropdown ? is it also in the order of 100s ?

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian almost 9 years ago

Razi,
It will only the issues which are shown in the dropdown.

In the latest version, the code is in the wktime_controller and method set_visible_issues(entry)

In version 1.0, the code for retrieving issue is in edit_issues2.rhtml

if Setting.plugin_redmine_wktime['wktime_closed_issue_ind'].to_i == 1
allIssues = Issue.find_all_by_project_id(entry.nil? ? (@logtime_projects.blank? ? 0 : @logtime_projects[0].id) : entry.project_id)
else
allIssues = Issue.find_all_by_project_id(entry.nil? ? (@logtime_projects.blank? ? 0 : @logtime_projects[0].id) : entry.project_id,
:conditions => ["#{IssueStatus.table_name}.is_closed = ? OR #{Issue.table_name}.updated_on >= ?", false, @mon],
:include => :status)
end

Dhanasingh

RE: Weekly Timesheet Plugin (wk-time) 1.0 - Added by Dhanasingh Krishnapandian almost 9 years ago

Razi,
It will get all the open issues for a project (row) and any issues closed in the last week.

Dhanasingh

1 2 3 4 (51-75/79)