Giter VIP home page Giter VIP logo

wht's Introduction

Working Hours Tracker

Sponsored PRs Welcome license

An easy to use and simple Working Hours Tracker for SailfishOS

  • Newest stable version available in Jolla store
  • Newest version available in openrepos
  • Newest version also available with direct download here

Quick links

Project page
Changelog
License
Roadmap
Development

Working Hours Tracker GIF

Donate

Donations are welcome :)

Flattr this git repo

Paypal EUR
Paypal USD

Translate

Working Hours Tracker project is in transifex. Please contribute to translations there:

https://www.transifex.com/projects/p/working-hours-tracker/

Updating resources in transifex

You will need the Transifex CLI tool

The file .tx/config contains the basic config for what needs to be pushed to tx.

~/.transifexrc, which stores your Transifex credentials in your home directory. You shouldn’t share this file since it contains your own credentials.

To push a source file, use the -s or --source flag with the push command:

$ tx push -s

To pull translations from Transifex, run the following command:

$ tx pull -a

License

See license here

Development

Testing

WIP

Releasing

Notes to myself on how to release a new version. This should be automated somehow.

  • Verify that changes work correctly on all device types
  • Push related changes to master
  • Pull newest translations from Transifex $ tx pull -a
  • Update harbour-workinghourstracker.yaml with correct version and build numbers
  • Update CHANGELOG.md with related changes
  • Update harbour-workinghourstracker.changes with related changes
  • Build ARM, x86, and AAarch64 versions in QT Creator
  • Commit these changes with commmit message: Release v.X.Y.Z-b
  • Push changes to master
  • Create tag X.Y.Z-b
  • Push tag to origin
  • Create a new release in GitHub with new binaries as attachments
  • Release new binaries in openrepos
  • Optionally send new release to Jolla store QA
  • Make sure Github issues and Roadmap project are up to date

wht's People

Contributors

blizzz avatar krzyc avatar markopaasila avatar nokius avatar olpeh avatar rikujolla avatar ttln avatar tylertemp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wht's Issues

Start a subtimer during tracking

Starting a timer whle having another timer running should pause the currently running timer.
After stopping the new timer, the user should be prompted to continue on the old (or if done multiple times on one of the old timers)

Major refactoring (code + db)

The code needs refactoring:

  • Start refactoring
  • Move timer logic to C++
  • DB could be handled only in C++
  • Keep it more DRY
  • Use some kind of a library for handling dates and times

DB:

  • Use unix timestamps for timers or DATETIMES?
  • Better structure

This would take quite a lot of effort, but it would be nice for the future when adding more and more features.

EDIT: Already started doing this.

Geolocation for projects

I think its nice to have an optional geolocation for projects.
A worksman has a new project and locate this locally. If he is adding some hours, then he gets the possible project by geolocation as a suggestion. If there are more possible location, you could take a selection .

Sending report by mail seems to be broken

The "send by mail" feature in the day, week, month and year view is broken. The export as csv feature works properly. Neither the mail app starts, nor a popup appears. The terminal output is: "[W] unknown:104 - file:///usr/share/harbour-workinghourstracker/qml/pages/All.qml:104: ReferenceError: getProject is not defined"

Allow user to give project / tasks default descriptions

Currently the previous given description is shown for new records. While good for projects with long tasks, sometimes annoying when working on projects with many smaller tasks.

Default text would allow user to start writing right away, instead of first deleting everything.

Project name not found

"Summary for project not found"
when no project is set as default.

Should not occur actually.
Probably occured because I manually replaced the database.

Splitting timer hours into different entries

I would like to have a possibility to split the duration into several tasks. Say you had timer on for 8 hours and you worked with 3 different projects. Should be easy to split into those three task without having to write it to the description.

Stop timer from outside of application

I would like to automate it as much as possible. It's already pretty easy to start the timer (via situations, start timer with start of app, start app when connected to office wireless), but it would be helpful to also be able to automate the stop of the timer, eg when leaving the wireless. Situations is able to run a command when something happens, but that would require being able to stop a timer via a command.

Entry editing

Thanks for the nice app. I use it now daily for a month.
If I cklick on an entry, it opens for editing. But the times are changed in the editorview to the actual time, the duration isn't altered. This is annoying if you want to alter e.g. the project.

Sincerly, Helge

Is it possible, that tasks are global?

A question from a user:
"Is it possible, that tasks are global?
I have to every project the same tasks again. Now I have to input the tasks to every new project manualy. If the tasks are global set, I can use it in each project."

Add states to records

States, such as "Done", "Billed", "Payment received" would be nice addition. Exporting / viewing should also have support to group by these states.

Firstpage does not get updated

Just a feature. Firstpage gets updated only after adding hours or when the app is started.

If the app is left on without adding hours and the day changes, the info is wrong.

Should maybe get updated everytime the firstpage gets viewed?

More features when using the commandline arguments

Todo

  • Starting
  • Stopping
  • Possibility to select project
  • Possibility to select task
  • Possibility to set description
  • Possibility to save using last entered specs
  • Create a backup
  • Fix an issue that causes breakduration to become negative
  • Allow only one instance of the app to run

Tags for records

Record could be "tagged" as e.g. Analysis, Documentation, Testing etc

Bug: Time counter on cover does not get updated after the phone awakes from sleeping

I usually start the timer in the morning when I come to work. The app is then just running in background with visible cover.
Now when I wake up the phone after a couple of time to see how much time I already spend at work the time counter (hour, minute) on the cover shows the last time before the phone went into sleeping mode. Thus I need to wait for appr. one minute until the cover timer gets updated.
EDIT: The bug also appears inside the app. The timer also shows the old time until it gets updated by the timer object within the next minute.

I know this is a design limitation in timer handling on Sailfhish OS. I had it also with my app Time2Go. A workaround would be to update the cover timer every second. Or maybe you discover a way to get notified when the phone comes out from deep sleep mode...

Nice work so far! Keep it up!

Working hours and hours worked

It would be very useful for me if you add working hours and hours I've worked, to know how many hours I've worked too much or how many hours I must recover hours.

Export to CSV sometimes formats times incorrectly

The time format can sometimes be corrupted in hours-to-csv-text type output.
Here is an example from this week;

[nemo@Sailfish ~]$ 
[nemo@Sailfish ~]$ cat /home/nemo/Documents/Thisweek.csv 
'{cd4e8ffa-d9f5-4c2d-8a2b-a333016f6a11}','2017-11-15','07:-1','16:22',9.3800000000000008,'20153201429507964488','No description','0,'0'
'{bd248d06-053b-4738-894f-d968c4bf2e99}','2017-11-14','21:29','21:55',0.42999999999999999,'20153201429507964488','No description','0,'0'
'{7119dbb6-de34-49a0-8107-36ecbd1fa2c2}','2017-11-14','07:-1','16:19',9.3300000000000001,'20153201429507964488','No description','0,'0'
'{0a717a33-f887-433c-bcac-7a12f5f500a8}','2017-11-13','18:48','19:40',2.4700000000000002,'20153201429507964488','No description','0,'0'
'{b0766b97-97ee-4978-aa23-aece9e5ce2e1}','2017-11-13','07:00','15:07',8.1199999999999992,'20153201429507964488','No description','0,'0'
[nemo@Sailfish ~]$ 

I apologise for the bad formatting in above section, but if you concentrate on it you can probably see that the date/startTime/endTime fields of the first row are as follows;

'2017-11-15','07:-1','16:22'

In reality this should appear as;

'2017-11-15','06:59','16:22'

It seems to me that data["startTime"].toString() method is for some reason mangling the date value into something that it really never should be doing...?

Translation don't work

...or where do I change it? Swedish .qt file is present, but it don't translate.

SFOS v1.1.4
WHT v1.0.4

Refactoring and cleanup

The code needs refactoring:

  • Start refactoring
  • Move timer logic to C++
  • DB could be handled only in C++
  • Keep it more DRY

Translations

I could contribute translations. It would be easier, if you include translations files to GitHub.

Database backups (export/import)

  • Option to backup the database to a file
  • Option to import the database from file
  • Exporting all hours as CSV
  • Exporting category as CSV

Rethink the UI

The UI would need an update:

  • Who needs year/all reports anyways?
  • Month list/selector
  • Daterange selector
  • More swipeable or tab based views
  • Add some design love

Removing multiple hours-items during remorse timer can fail index being wrong

If you try to remove multiple hour-items so that remorse timer is still running for the first item.. the removal might fail as the index is not anymore correct (or incorrect hour-item is removed eg. topmost item is set to be removed, while remorse timer is running remove the item below and you will get your item below the second removal deleted).

8<- first remove this
7<-while remorse timer running remove this
6

You will end up with

7

as the 6 has index which 7 had first.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.