Modify

Opened 7 years ago

Last modified 6 years ago

#1667 new enhancement

Create a desktop app to record time spend on a given task and update ticket when done

Reported by: coling Owned by: coling
Priority: normal Component: WorkLogPlugin
Severity: trivial Keywords: desktop integration
Cc: Trac Release: 0.10

Description

This plugin would be make a lot more useful by creating a desktop application (python-gtk? or for OSX or it's clone Vista, as a Widget or Gadget).

This would simply allow starting and stopping work on a given task and the time spend therein recorded locally. Little warnings would flash up periodically (e.g. every 15 minutes - configurable) to remind the user they are still working on this ticket - I get easily distracted ;)

Once the user clicks "stop", they will be asked if they want to submit now, and if so they have to enter in a brief description of what they have done. If they choose not to, the time will be cached locally until a later date.

This will make use of the XMLRPC interface and as such may need changes to the plugin itself (I am unsure of the technical details here).

I will start work on this in the near(ish) future as I think this kind of recording app would be of great benefit in our company.

My goal is for a cross platform tool as we have people running Linux, OSX and Windows in my organisation. It would need to support HTTP level authentication of the XMLRPC side of things.

Comments/suggestions welcome.

It may come in the form of a Qt App as I need to learn more about that and I'm quite happy in C++ but any other implementation suggestions are welcome (e.g. if python-gtk is a good option I'd like to look into it - Not got any epxerience of running such apps on Windows or OSX tho').

Col

Attachments (0)

Change History (15)

comment:1 Changed 7 years ago by bobbysmith007

That sounds fine to me, though I and mine don't have much use for it. I do not think you will need too much help from me to get this accomplished.

I am not a C++ hacker by any means, as that always seems to be the path of most resistance. Which is to say, I wouldn't recommend doing this in C++, but my opinion on that account is not worth much. I have never tried to deploy an app to all three major platforms, but if I had to guess, the python gui stuff would be quicker to implement cross platform. Another hideous thought that comes to mind is a java/swing app, which was pretty easy cross-platform gui code the last time I used it.

Before starting, I would look around at existing time tracking software, that may more closely meet your needs than this software.

Other notes:

  • If you are mostly interacting via subversion, there is a very handy commit hook that will allow you to record time from SVN commit messages.
  • http://blogs.acceleration.net/ryan/articles/2018.aspx is an app by a coworker that accomplished some of what you were talking about. Its based on the Mozilla Xul Runner program and thus is pretty cross platform as well. It might give you a starting point closer to your end goal.

Good luck and please keep me informed of your progress,

Russ

comment:2 Changed 7 years ago by coling

Great tips Russ, thank you.

I have decided to use Python for the GUI but have also decided to actually use a Trac plugin for the backend functionality, making the Frontend application very simple.

I have started the WorkLogPlugin for this purpose. It has the added benefit that the desired functionality will be available to me even if I do not start a desktop application (although I still fully intend to do so).

The plugin is still in flux but if anyone is interested in playing it will be easy enough to fix later (the database schema is simple but I want to change it already! I do not foresee any further changes after this tho', so I wont need to work on a db schema version if I commit the change soon!)

comment:3 Changed 7 years ago by bobbysmith007

  • Component changed from TimingAndEstimationPlugin to WorkLogPlugin
  • Owner changed from bobbysmith007 to coling

Glad to hear you went the plugin route, that makes the whole environment better :).

I went ahead and changed this ticket to point at your plugin. Please let me know if you need any help integrating with TimingAndEstimationPlugin.

Cheers,

Russ

comment:4 Changed 7 years ago by khundeen

Hi,

I really like this idea a lot. In fact I though about using Mylyn to track the hours since it already have feature to count the hour spend on coding. However, it doesn't count time spend on other tasks.

There is also a java app that I use to track any custom task. But it doesn't integrate with Trac but you could also check it out for some idea. http://processdash.sourceforge.net/.

I think it might be a bit late to change anything but it could be very useful enhance to ingetrate the processdash with trac.


comment:5 Changed 7 years ago by coling

Hi,

I've not started on the design of this desktop app yet, so plenty time for changing how it operates, although I think I've got a fairly good idea in my head :)

Most the effort I've spent so far is to design the WorkLogPlugin which is coming along nicely. This will form the back end of the overall design (e.g. the desktop application will just for a light wrapper around XMLRPC calls with a couple of bells and whistles for good measure :))

Good to know I'm not the only one who thinks there is value in such a plugin :)

comment:6 Changed 7 years ago by coling

I wont pretend to know much about processdash nor PSP/TSP generally (though it appears I now have more reading to do!!), but it seems that the graphs and other views of processdash could be integrated into the WorkLogPlugin. If you understand it a bit better and have an idea of what kind of graphs would be useful, please open a new enhancement about it and I'll see what I can do :)

Or if you're really keen, please just submit patches :D

comment:7 in reply to: ↑ description Changed 7 years ago by protocolus@…

Replying to coling:

This plugin would be make a lot more useful by creating a desktop application (python-gtk? or for OSX or it's clone Vista, as a Widget or Gadget).

I've started work on a wxPython app, that makes it cross platform Mac, Linux and Windows.

This would simply allow starting and stopping work on a given task and the time spend therein recorded locally. Little warnings would flash up periodically (e.g. every 15 minutes - configurable) to remind the user they are still working on this ticket - I get easily distracted ;)

This doesn't fit my needs so I'll let you add this after ;)

Once the user clicks "stop", they will be asked if they want to submit now, and if so they have to enter in a brief description of what they have done. If they choose not to, the time will be cached locally until a later date.

I also want to add an option to change the status of the ticket.

This will make use of the XMLRPC interface and as such may need changes to the plugin itself (I am unsure of the technical details here).

I found some nice python sample code for the XMLRPC so that seems doable. I want to populate a dropdown box of all assigned tickets.

I will start work on this in the near(ish) future as I think this kind of recording app would be of great benefit in our company.

Awesome idea actually :D

My goal is for a cross platform tool as we have people running Linux, OSX and Windows in my organisation. It would need to support HTTP level authentication of the XMLRPC side of things.

Cross platform is addressed with wxPython and you can even have a systray icon on windows and linux.

comment:8 follow-up: Changed 7 years ago by coling

That's really great news! Thank you!

It's so nice to see people taking an interest and confirming what I thought about WorklogPLugin and TimingAndEstimationPlugin and them being useful tools for Trac.

If it would help I can prioritise the XMLRPC part of WorklogPlugin to make sure it's done sooner rather than later? Although if you you want to write it yourself I will happily apply the patch! I tried to keep most the logic in the manager class so that wrapping XMLRPC around it would be quite simple.

Please keep me informed.

:D

comment:9 in reply to: ↑ 8 ; follow-up: Changed 7 years ago by anonymous

Replying to coling:

That's really great news! Thank you!

Well thank you for writing such a handy tool.

It's so nice to see people taking an interest and confirming what I thought about WorklogPLugin and TimingAndEstimationPlugin and them being useful tools for Trac.

They are very useful in fact I got to ditch a very ugly time tracking software package to use this instead.

If it would help I can prioritise the XMLRPC part of WorklogPlugin to make sure it's done sooner rather than later? Although if you you want to write it yourself I will happily apply the patch! I tried to keep most the logic in the manager class so that wrapping XMLRPC around it would be quite simple.

I'd like that alot actually. I'm digging in to the desktop side so being able to call start and stop from there would be great. I was looking at doing an ugly form submit hack but I wasn't sure what one of the values you have in your hidden form was for.

Would you expose a comment field as well in the API? I was reading on one of your other threads about comments being added to the ticket and to the worklog #1898

That would be very handy if so.

Thanks again.

comment:10 in reply to: ↑ 9 Changed 7 years ago by coling

Replying to anonymous:

Replying to coling:

If it would help I can prioritise the XMLRPC part of WorklogPlugin to make sure it's done sooner rather than later? Although if you you want to write it yourself I will happily apply the patch! I tried to keep most the logic in the manager class so that wrapping XMLRPC around it would be quite simple.

I'd like that alot actually. I'm digging in to the desktop side so being able to call start and stop from there would be great. I was looking at doing an ugly form submit hack but I wasn't sure what one of the values you have in your hidden form was for.

No problem. I'll look into this sometime soon. Probably over the weekend, so it should be available in the next few days.

Would you expose a comment field as well in the API? I was reading on one of your other threads about comments being added to the ticket and to the worklog #1898

Yup, it'll be in there :)

comment:11 Changed 7 years ago by coling

(In [2557]) Refs #1667 by adding an XMLRPC interface to WorkLogPlugin.
I should stress that this is 100% untested and the permissions are totally wrong.
It should hopefully provide something to test even if it doesn't work 100%.

comment:12 Changed 7 years ago by coling

(In [2558]) Refs #1667 - fixes things when xmlrpcplugin is not installed.

comment:13 follow-up: Changed 7 years ago by coling

OK as you can see there now exists an XMLRPC interface. I've not tested it at all so it's 100% guesswork on my part..... fingers crossed it all works. It more or less should do, but I wouldn't put my house on it!

comment:14 in reply to: ↑ 13 Changed 7 years ago by protocolus@…

Wow that was fast! Can't wait to try it out.

comment:15 Changed 6 years ago by anonymous

How about making it in Adobe AIR? It may be easier.

Add Comment

Modify Ticket

Action
as new .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.