FreshBooks Plasmoid

Plasma 4 Extensions

Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

1
Become a Fan
7.2

Description:
Simple time tracking plasmoid synchronizing with the FreshBooks (www.freshbooks.com) on-line time tracking service using the FreshBooks API.

The plasmoid can communicate with FreshBooks Plasmoid Monitor (http://www.kde-look.org/content/show.php?content=115880) via DBus. FreshBooks Plasmoid Monitor is a tiny monitor for FreshBooks Plasmoid to be placed in a plasma panel.

All contributions (bug fixing, features, artwork, translations etc.) are very much welcome. Contact details can be found in the plasmoid package.

Functionality:
* Listing FreshBooks projects and tasks connected with the projects.
* Simple time counting.
* Time can be input manually in various formats: 0.000, mm:ss, hh:mm:ss.
* Logging time (with notes) to FreshBooks.
* Customizable background.
* Global keyboard shortcut for starting/pausing the counter.
* Token stored in KWallet.
* DBus interface
* Communicates with FreshBooks Plasmoid Monitor

Depends on plasma-scriptengine-python.
Uses freshbooks.py by Matt Culbreth (http://mattculbreth.com).
Last changelog:

2010-03-09 - Version 0.4.1
* Fixed regression related to KWallet interface and KDE 4.3

2010-02-17 - Version 0.4
* Now compatible with KDE 4.4

2009-11-25 - Version 0.3.1
Bugs:
* Fixed the bug causing errors when logging time without refreshing.

2009-11-25 - Version 0.3
Features:
* Hours edit accepts time in different formats: 0.000, 00:00, 00:00:00
* The projects and tasks are now saved, therefore refreshing is not required on startup.
Bugs:
* Changed 'Reset' to 'Clear'
* Now it is possible to modify the counter's state by editing the hours.
* Now countingStopped DBus signal is sent when time is logged (updates button status in Monitor)


2009-11-22 - Version 0.2
Features:
* Added configuration options enabling/disabling automatic refresh on startup and setting the delay
* DBus interface for monitoring and controlling the plasmoid
* Compatible with the FreshBooks Plasmoid Monitor
Bugs:
* Notes are now cleared when resetting or logging
* Added missing i18n()
* Fixed the problem with saving size of the plasmoid

2009-11-20 - Version 0.1
* Initial version


Ratings & Comments

11 Comments

SzntGbor

Hi! I tried your widget, set my account and token, but the project and task options are empty. I've tried to reinstall the widget, but nothing to change. I see this when run plasmoidviewer freshbooks-plasmoid: Quote:

: plasmoidviewer freshbooks-plasmoid plasmoidviewer(19977)/plasma main: setting FormFactor to "planar" plasmoidviewer(19977)/plasma main: setting Location to "floating" plasmoidviewer(19977)/plasma main: setting containment to "null" plasmoidviewer(19977)/plasma main: setting auth policy plasmoidviewer(19977)/libplasma Plasma::Corona::Corona: !!{} STARTUP TIME 23156706 Corona ctor start plasmoidviewer(19977)/plasma main: just load applet plasmoidviewer(19977)/plasma FullView::addApplet: adding applet "freshbooks-plasmoid" in "null" plasmoidviewer(19977)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-szantogabor/ksycoca4" plasmoidviewer(19977)/kdecore (services) KServiceFactory::findServiceByDesktopPath: "" not found plasmoidviewer(19977)/libplasma Plasma::AppletPrivate::init: Check your constructor! You probably want to be passing in a Service::Ptr or a QVariantList with a valid storageid as arg[0]. plasmoidviewer(19977)/libplasma Plasma::PluginLoader::loadApplet: we have a script using the "python" API plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::KPythonPluginFactory: KPythonPluginFactory::KPythonPluginFactory() plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::initialize: Initializing Python interpreter. plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::initialize: Succesfully initialized Python interpreter. plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: KPythonPluginFactory::create iface: Plasma::AppletScript plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: keyword to be used for finding the plugin code: "plasma_scriptengine_python/pyappletscript.py" plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: Path to plugin code is: "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py" plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: Returning result qobject plasmoidviewer(19977)/libplasma Plasma::AppletPrivate::setupScriptSupport: setting up script support, package is in "/home/szantogabor/.kde/share/apps/plasma/plasmoids/freshbooks-plasmoid/" which is a "Plasmoid" package , main script is "/home/szantogabor/.kde/share/apps/plasma/plasmoids/freshbooks-plasmoid/contents/code/main.py" Installing icons... Done! plasmoidviewer(19977)/kdeui (Wallet) KWallet::Wallet::openWallet: Pass a valid window to KWallet::Wallet::openWallet(). plasmoidviewer(19977)/plasma FullView::addApplet: connecting ---------------- Using wallet. QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::end: Painter not active, aborted plasmoidviewer(19977)/kdeui (Wallet) KWallet::Wallet::openWallet: Pass a valid window to KWallet::Wallet::openWallet().
I'm using the latest kubuntu, the KDE version is 4.7.2 Could you help me, what i miss?

pronobis

I have just tried in Kubuntu 11.10 and KDE 4.7.2 and it worked without problems. Also the messages you pasted do not indicate any error. I don't really have any idea here, sorry.

mrthebob

OK, I removed that folder you were talking about and re-installed. All's good now. Thanks :)

mrthebob

After "installing" and adding the widget to the Plasmoid Desktop, the widget tells me: ========== This object could not be created for the following reason: Could not locate the freshbooks-plasmoid package for the FreshBooks Plasmoid widget. ========== I do have the required plasma-scriptengine-python package installed. This works on my desktop, but not on my new laptop (on which I put the latest Kubuntu). Many thanks for your help!

pronobis

Looks like some installation problem. Which KDE version are you using? Could you check if you have the package installed in .kde/share/apps/plasma/plasmoids? What happens if you run "plasmoidviewer freshbooks-plasmoid"?

gribelu

Hi. First of all thanks for this. I was tired of using the web interface. Any idea why it freezes plasma while it's refreshing the projects? It takes about 2 minutes to refresh too. I'm on KDE 4.4.1, Kubuntu 9.10 64 bit.

pronobis

Yes, I am aware of both problems. The first problem can be fixed. Currently, the refreshing runs in the main thread which blocks the whole plasma for some time. Will fix that as soon as I find some time (of course, patches are welcome!). Unfortunately, the second problem is difficult to solve. Simply the Freshbooks API is very inefficient and requires multiple queries to be sent to the server.

warnec

Non-related question - your profile says You are from Stockholm, yet the screens prove the system the screenshots were taken from was in Polish. How's that possible? ;)

pronobis

Well, it's that difficult to spot a Pole in Stockholm these days :)

Creap

Looks interesting, though I already track my time through an ERP system. Would be nice with something similar but connected to for instance KTimeTracker.

pronobis

I'm not using KTimeTracker myself, but the code could serve as an example for someone willing to implement that functionality.

Pling
0 Affiliates
Details
license
version 0.4.1
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 1

More Plasma 4 Extensions from pronobis:

FreshBooks Plasmoid Monitor
pronobis
last update date: 15 years ago

Score 5.7

Other Plasma 4 Extensions:

Icon Tasks deb build
N00bun2
last update date: 14 years ago

Score 4.3

Prayer Times Plasmoid
riyad
last update date: 13 years ago

Score 5.2

KPrayertime4 Islamic Prayer Times
ahaq
last update date: 15 years ago

Score 4.4

Hostinfo
mgraesslin
last update date: 13 years ago

Score 4.7

Monitor QuadCore Russian
kuchumovn
last update date: 16 years ago

Score 5.0

blaKjaK
werevire
last update date: 15 years ago

Score 5.0