Opened 6 years ago
Last modified 5 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 6 years ago by bobbysmith007
comment:2 Changed 6 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 6 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 6 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 6 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 6 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 6 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: ↓ 9 Changed 6 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: ↓ 10 Changed 6 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 6 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 6 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 6 years ago by coling
comment:13 follow-up: ↓ 14 Changed 6 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 6 years ago by protocolus@…
Wow that was fast! Can't wait to try it out.
comment:15 Changed 5 years ago by anonymous
How about making it in Adobe AIR? It may be easier.


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:
Good luck and please keep me informed of your progress,
Russ