Code Monkey home page Code Monkey logo

gtg's Introduction

Getting Things GNOME! (GTG) is a personal tasks and TODO list items organizer for the GNOME desktop environment inspired by the Getting Things Done (GTD) methodology. GTG is designed with flexibility, adaptability, and ease of use in mind so it can be used as more than just GTD software. GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.

You are currently reading the index of the information intended for new contributors (beta testers, developers, packagers, etc.), found in the project's main software development and management hub.

See our website for the list of features and information intended for users (including how to install the stable release with pre-built packages). Except if you're here to report an issue – then you can just directly create an issue rather than continue reading.

Mastodon badge Twitter badge

Starting point for testers, bug reporters, and new contributors

  • Keep reading below for basic instructions on how to get the development version of GTG running.
  • See the CONTRIBUTING.md file to ensure you have realistic expectations regarding feature requests, and to learn how you can effectively help the project. Your involvement is what keeps this project moving forward, and we need you to play an active part in implementing desired improvements!
    • Explore the docs/contributors/ subfolder to see reference documentation for contributors, including coding/style conventions, how to deal with Git and submit patches, etc.

Setting up & running the development version

Getting the code

Execute this command to get the latest development code (if you don't have it already) and then move to that directory:

git clone https://github.com/getting-things-gnome/gtg.git && cd gtg

Later, when you want to update to the latest development version (assuming you are still in the "gtg" directory and did not make changes locally), you can do so with:

git pull --rebase

Dependencies

  • meson (>= 0.51.0)
  • python3 (>= 3.8)
  • python-caldav
  • pycairo
  • pygobject (>= 3.20)
  • libLarch (>= 3.2)
  • lxml
  • itstool
  • gettext
  • GtkSourceView (>= 4.0)
  • libsecret
  • Introspection (GIR) files and libraries from:
    • GLib
    • pango
    • gdk-pixbuf
    • GTK 3
    • GtkSourceView 4
    • secret

You can get most of those from your distribution packages:

# On Fedora:
sudo dnf install meson python3-cairo python3-gobject gtk3 itstool gettext python3-lxml libsecret gtksourceview4
# On Debian 10 (buster), you need to install the backported version, activate it with:
echo 'deb http://deb.debian.org/debian buster-backports main' | sudo tee -a /etc/apt/sources.list
# On Debian/Ubuntu:
sudo apt install meson python3-gi-cairo python3-gi gir1.2-pango-1.0 gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0 itstool gettext python3-lxml libgirepository1.0-dev libsecret-1.0 gir1.2-secret-1

liblarch may be harder to come by until distributions package the python3 version of it, alongside GTG 0.6+ itself. You can get it in the meanwhile via PIP (commonly provided by python3-pip package):

pip3 install --user -e git+https://github.com/getting-things-gnome/liblarch.git#egg=liblarch

Alternatively, if you had checked out a specific version of liblarch that you want to test, in a parent folder for example (../liblarch), you could do: pip3 install --user ../liblarch/ (you can later remove that with pip3 uninstall liblarch if you need to).

Optional Dependencies

  • setproctitle (to set the process title when listing processes with ps et al.)

Test dependencies

To run the current test suite, you need some additional packages (this list may be out of date):

# On Fedora:
sudo dnf install python3-pytest python3-pyflakes python3-spec python3-pycodestyle
# On Ubuntu/Debian:
sudo apt install python3-pytest python3-pyflakes python3-pep8 python3-pycodestyle python3-caldav

You currently also need the optional plugin dependencies, as the tests don't automatically skip them. (Help welcome improving that!)

Solving dependencies for plugins (optional)

There are additional plugins (modules for extending the user interface) and synchronization services (modules for importing/exporting tasks from/to external services) that might need additional packages to work correctly.

Dependencies for the "Export and print" plugin:

  • python3-cheetah
  • pdflatex (in the texlive-extra-utils package on Ubuntu and Debian)
  • pdfjam (in the texlive-extra-utils package on Ubuntu and Debian, possibly in texlive-pdfjam on Fedora)
  • pdftk (now called pdftk-java in Ubuntu, and no longer available in Fedora)

On Ubuntu and Debian you can install all that with:

# On Ubuntu/Debian:
sudo apt install python3-cheetah pdftk-java texlive-extra-utils texlive-latex-base

Running the beast

In order to run the development/git version of GTG, you need to launch the debug.sh script There is a shortcut to it in the root directory where you downloaded the code, that you can execute simply with this command:

./launch.sh

This is the safest way to run the git version, as it does not touch your normal user data (see below).

You can use ./launch.sh -? to get a list of options useful for development you can append to the command, such as:

  • -d to enable debug logs
  • -w to enable additional python development stuff like deprecation warnings
  • -p prefix-prog to prepend prefix-prog to the main gtg executable script, useful to run under a debugger: ./launch.sh -p 'python3 -m pudb' (with pudb) or a profiler: ./launch.sh -p 'python3 -m cProfile -o gtg.prof'
  • -s dataset to use the dataset called dataset. It'll store it inside the tmp folder of the current working directory. If it doesn't exists, it'll create a new clean one. There are pre-made ones you can use by replacing dataset with one of the following:
    • bryce - An anonymized dataset with a fair number of tasks
    • screenshots - Pre-made tasks that can be used to show off GTG

If you somehow need to pass arguments directly to the gtg binary itself, anything after -- is passed to gtg directly. For example, use the following command to show the help for gtg itself:

./launch.sh -- --help

To examine the UI elements, you might be interested to use GTKs interactive debugger, that you can use by prepending GTK_DEBUG=interactive like:

GTK_DEBUG=interactive ./launch.sh

If there is any problem with meson (the build system) or anything else, try deleting the build folder first and try again: rm -rf .local_build. No data should be lost since it is just re-generateable build files.

Setting up a development environment

Now that you have installed all the dependencies and know how to run the tests, it's possible that you would like to make code changes and submit them for review.

We use pre-commit to run some checks that ensure that our codebase is clean and consistent.

Install it with pip install pre-commit, and install the pre-commit hooks with pre-commit install.

The checks will now run every time you make a commit, and fix files if necessary. It's generally a good idea to always run them, but you can also bypass them by running git commit --no-verify, if necessary.

The CI system runs the checks on each commit to master, and on each pull request. If you want to make sure they pass before opening your PR, you can run them locally with pre-commit run --all-files.

For more guidelines about contributing, see CONTRIBUTING.md.

"Where is my user data and config stored?"

It depends:

  • If you are running a version installed system-wide (ex: a package provided by a Linux distribution), as GTG adheres to the Freedesktop XDG Base Directories specification, you will typically find it spread across:
    • ${XDG_DATA_HOME:-$HOME/.local/share}/gtg like ~/.local/share/gtg/
    • ${XDG_CONFIG_HOME:-$HOME/.config}/gtg like ~/.config/gtg/
    • ${XDG_CACHE_HOME:-$HOME/.cache}/gtg like ~/.cache/gtg/
  • If you are running the Flatpak package version, those directories are all in ~/.var/app/org.gnome.GTG/ (or something similar)
  • If you are running launch.sh (the launcher from the Git/development version), GTG doesn't touch your normal user data, it uses the tmp subdirectory in your current working directory (usually the repository root, the gtg folder). You can pass -s name to use a different folder inside the tmp directory, the default being default.

If you want to import a copy of your gtg data to the development version, simply run at the repository root one of the following commands:

./scripts/import_tasks_from_local.sh # local/system-wide install data
./scripts/import_tasks_from_flatpak.sh # flatpak data

Viewing the user manual

Whether to learn how GTG works from a user's perspective, or to preview changes you may have made to the user manual, you will need the "Yelp" help viewer application, which you can easily install on any Linux distribution (if it is not already present).

When installed system-wide, you can then view the user manual either by accessing it through GTG (press F1 or use the Help menu) or through the command line:

yelp help:gtg

If you want to read the documentation directly from the source code, run this command (from the source root directory):

yelp docs/user_manual/C/index.page

Other documentation

gtg's People

Contributors

aroquen avatar broussea avatar bryceharrington avatar diegogangl avatar dktrkranz avatar huxuan avatar invernizzi avatar iwontbecreative avatar izidormatusov avatar kevinmehall avatar khaeru avatar kocio-pl avatar leio avatar mrabhiram avatar nekohayo avatar neui avatar nimits1 avatar odoood avatar parinporecha avatar pcabido avatar picsel2 avatar ploum avatar ranchester2 avatar rivaldi8 avatar sagarghuge avatar sqatx avatar tkdchen avatar vansia43 avatar wolterhv avatar zeddo123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gtg's Issues

not able to sync with rtm, new tasks are deleted

I've had RTM sync setup for a while. This is THE feature that makes GTG useful for me.

A while ago, all of my tasks disappeared. Months and months ago. I gave up on GTG but I figured there was just a bugfix I needed to wait for. Well, it seems that wait is endless so here's my bug.

All of my tasks are still in RTM.
Before I just deleted .local/share/gtg, all of my tasks were in an xml in that directory.
(I purged and reinstalled GTG, hoping to fix the issues)

Still none of my tasks appear in GTG, they're no longer synced to local and if I create a new task in GTG, when the RTM sync happens, it's deleted.

2014-09-23 13:10:39,042 - DEBUG - requester:delete_task:138 - deleting task 53ea1a2e-12fb-4106-b54e-c9211dae1710
2014-09-23 13:10:39,061 - DEBUG - requester:delete_task:138 - deleting task 8c87b4c6-bffd-4cca-b345-1fc2e66951cc
2014-09-23 13:12:39,088 - DEBUG - backend_rtm:refresh_rtm_tasks_dict:685 - refreshing rtm

task not shown in work view if one of it tags deactivated in work view

If a task is due and at least one of its tags is disabled in work view then the task doesn't appear when work view is activated. (I am using 0.3)

I am not 100% sure whether this actually is a bug or just intended behavior. It could also be seen as a feature to easily ban certain things from your work view.

Symbolic toolbar icons

Followup to the 4-years-old https://bugs.launchpad.net/gtg/+bug/500873

The current toolbar icons pretty much all look alike, they have almost the same shapes. See the "Make Icon Silhouettes Distinct" section in https://developer.gnome.org/hig-book/unstable/icons-design.html.en

Back then I suggested changing the icons. Now, the answer is even simpler: just use standard symbolic icons like the rest of GNOME applications. I can probably provide a patch for that when you're done porting to GTK 3.

You could simply use standard stock GTK icons for this:

  • gtk.STOCK_NEW for creating a new task
  • gtk.STOCK_OK for marking a task as "done"
  • gtk.STOCK_CANCEL for marking a task as "not to be done anymore"

And thus it will be better integrated (theme-able), etc.

Version tags

Is there any way I can find the version 0.3.1 in the repository other than trying to correlate the logs with it?

I read in http://gtg.readthedocs.org/en/latest/releases/v0.3.1.html that version 0.3.1 was released at 24/11/2013, so it looks like the corresponding commit was f29aa26 , but there should be a tag pointing to it.

By the way, I'm looking for this version because Debian's GTG is quite unstable. Is this a known problem?

Thanks!

Too many DBus error messages

Version: devel

When cannot connect to Tomboy and Gnote, Gnote and Tomboy backend reports too many error messages with same content. This would bother users.

In my laptop, running GTG from master branch, Tomboy backend will report 4 connection error messags, and then 32 errors if try to enable again.

As of writing this issue, I did not get time to look into the implementation, have no idea why this happens. If it does, by design, it would be improved to reduce the number of error messages. For instance, only one message when the first time of trying to connect.

"Due" Value doesn't update unless GTG is restarted

I often hibernate my laptop instead of shutting it down. Unfortunately GTG doesn't track the current date/time and update the "Due" column value in the task list view. So far the only way I've found to do this is to restart GTG.

Enter task in quick-add, but open a selected task rather than creating a new one

Version: dev version

Reproduce steps:

  • select an arbitrary task in task browser
  • then, decide to add a new task, go to quick-add and enter some text
  • press enter, this issue happens. the selected task is opened, but adding the new task is the one should happen.

Workaround is to unselect the task before press enter in quick-add.

Deleting tasks by mistake is too easy

I started using gtg recently. The UI is quite nice and I started adding more and more tasks to it (some of them quite urgent).

However, right now I just pressed by mistake Delete, and there is no confirmation pop up and no way of retrieving my tasks. I just lost some important tasks that I had to do. One should be able to easily undo the deletion of tasks.

Plugin "Urgency Color" throws TypeError & ValueError

TypeError

Steps to reproduce

  1. Activate "Urgency Color" plugin
  2. Unset due date of any task
  3. Exit GTG
  4. Open GTG
    Actual behaviour: GTG throws TypeError.
File "/usr/local/lib/python3.4/dist-packages/GTG/plugins/urgency_color/urgency_color.py", line 86, in get_node_bgcolor
    elif (daysleft < 0 and ddate != Date.no_date()):
TypeError: unorderable types: NoneType() < int()

Expected behaviour: GTG opens with "Urgency Color" plugin activated.

ValueError

Steps to reproduce

  1. Activate "Urgency Color" plugin
  2. Change due date of any task to more than a month later than start date (so that _get_gradient_color is called)
  3. Exit GTG
  4. Open GTG
    Actual behaviour: ValueError is thrown.
ValueError: Expected string but got Gdk.Color(red=53199, green=65535, blue=33924)<class 'gi.overrides.Gdk.Color'>

Expected behaviour: GTG opens & "Urgency Color" plugin sets background of the task to the colour returned by _get_gradient_color.

Ctrl-Q doesn't work from task windows

GTG uses Ctrl-Q to quit. However, it only works from the task browser window. It would be very convenient to be able to quit also from task windows.

Editing, Finishing or discarding a subtask doesn't automatically update the parent task window when it's open

When I have a task's view window open and made changes wich affect that task, the changes aren't automatically updated on the task window.

Examples of changes that aren't automatically updated on the task window:
Finnishing, discarding and renaming a subtask.

If i want to see the changes applied in the task window, i need to close and reopen that window.

System info:
Version: Getting Things GNOME! 0.3.1
Fedora 20.

Show a splash screen with loading progressbar on startup if dataset/treeview is too big to be ready in less than 5 seconds

GTG is extremely slow to start, even if I prune old deleted tasks (thanks to the plugin that does that). My XML file weighs around 200 KB and I have around 400 tasks (90-100 actionable).

On a blazing fast Core i7 + SSD, it takes 15 seconds to start (warm start, not even cold start). On older computers, especially netbooks, you can easily wait 30 seconds.

I don't like to sweep big performance issues like that under the rug, but at least until you fix the startup time it would be really nice to have at least a splash screen, ideally with a progressbar, to indicate to the user that something is happening.

Error while trying to start GTG after installing GTG and liblarch from source

I installed GTG and liblarch from the source code by running sudo python3 setup.py install
On trying to run GTG, I get this error -

Traceback (most recent call last):
  File "/usr/local/bin/gtg", line 233, in <module>
    main()
  File "/usr/local/bin/gtg", line 172, in main
    manager = Manager(req)
  File "/usr/local/lib/python3.3/dist-packages/GTG/gtk/manager.py", line 78, in __init__
    self.browser = TaskBrowser(self.req, self)
  File "/usr/local/lib/python3.3/dist-packages/GTG/gtk/browser/browser.py", line 100, in __init__
    self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
gi._glib.GError: Failed to open file '/usr/local/lib/python3.3/dist-packages/GTG/gtk/browser/taskbrowser.ui': No such file or directory

Parent tasks can corrupt themselves when a subtask's title starts with a tag, preventing opening the parent task (traceback where n.firstChild is None, so has no attribute 'nodeValue')

Initially filed at https://bugs.launchpad.net/gtg/+bug/1356130

I've been using 0.3.1 without problems for nearly a year, and now I'me starting to encounter some problems. I'm not using any synchronization plugins.

It seems the cause is that some tasks become like this eventually:

 <task id="4719fc1a-d78b-427f-abe4-394227009cb7" status="Active" tags="@contrats,@phone" uuid="baaadd00-fdb6-4b5d-b3bd-8b1d258a24b2">
  <title>faire une offre fixed cost + contrat, à [email protected] ; JFDI</title>
  <duedate>2014-08-14</duedate>
  <modified>2014-08-12T15:00:54</modified>
  <subtask>70b62c0f-e3d6-485a-827e-d99a461f2945</subtask>
  <content>&lt;tag&gt;@contrats&lt;/tag&gt;,
 &lt;tag/&gt; John Smith to collect his address &amp;quot;for his own good&amp;quot;</content>
  <task-remote-ids/>
 </task>

The problem is that after restarting gtg, I try to open up the task, and I can't because I hit this traceback:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/GTG/gtk/editor/taskviewserial.py", line 158, in unserialize
    success = self.parsexml(content_buf, ite, element.firstChild)
  File "/usr/lib/python2.7/site-packages/GTG/gtk/editor/taskviewserial.py", line 207, in parsexml
    text = n.firstChild.nodeValue
AttributeError: 'NoneType' object has no attribute 'nodeValue'

Now, looking at the offending code, I see this:

                    if n.nodeName == "subtask":
                        tid = n.firstChild.nodeValue
                        # We remove the added subtask from the list
                        # Of known subtasks
                        # If the subtask is not in the list, we don't write it
                        if tid in subtasks:
                            subtasks.remove(tid)
                            line_nbr = itera.get_line()
                            self.tv.write_subtask(buf, line_nbr, tid)
                    elif n.nodeName == "tag":
                        text = n.firstChild.nodeValue
                        if text:
                            self.insert_tag(buf, text, itera)
                            # We remove the added tag from the tag list
                            # of known tag for this task
                            taglist2.append(text)

Shouldn't it be something like this instead (just guessing)? :

                    if n.nodeName == "subtask" and hasattr(n, "firstChild"):
                        tid = n.firstChild.nodeValue
                        # We remove the added subtask from the list
                        # Of known subtasks
                        # If the subtask is not in the list, we don't write it
                        if tid in subtasks:
                            subtasks.remove(tid)
                            line_nbr = itera.get_line()
                            self.tv.write_subtask(buf, line_nbr, tid)
                    elif n.nodeName == "tag" and hasattr(n, "firstChild"):
                        text = n.firstChild.nodeValue
                        if text:
                            self.insert_tag(buf, text, itera)
                            # We remove the added tag from the tag list
                            # of known tag for this task
                            taglist2.append(text)

Make task windows of type "utility" and transient_for the main window

GTG creates standard window types for all open tasks. Instead, they should do this:

window.set_transient_for(the_main_window)
window.set_type_hint(Gdk.WindowTypeHint.UTILITY)

This will allow window managers like GNOME Shell (and its extensions) to properly understand that those windows are part of that application and should be grouped/attached together in overview mode; it can also help extensions such as "Window blur effects" figure out that it shouldn't blur out things within the same application.

Closed Tasks remover defaults to deleting tasks automatically

When the Closed tasks remover plugin is first enabled, the user hasn't yet had a chance to set the age of tasks that should be deleted, which defaults to 30 days. As a result, all tasks older than that are immediately deleted.

I'd suggest the default for 'Delete tasks automatically' should be 'off', so that the user can adjust the task age first and then enable automatic task removal.

Unhandled error when enable RTM sync service and cannot access Internet at the same time

This is a subsequent issue to #63

Version: devel

Steps to reproduce:

  1. Ensure network connection is established, but cannot access Internet. Especially when you connect to an network where authentication is required for the Internet access.
  2. Launch GTG from command line, then add RTM in synchronization service and enable it
  3. A short time later, check in the terminal, following traceback is printed

Expected result:

Catch this error, then keep silent and stop the authentication request. It's not necessary to let user know such low level errors.

Exception in thread Thread-21:
Traceback (most recent call last):
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 125, in getAuthURL
    frob = self.authInfo.get('frob')
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 74, in get
    raise AuthStateMachine.NoData('No data for <%s>' % state)
GTG.backends.rtm.rtm.NoData: No data for <frob>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.3/json/decoder.py", line 368, in raw_decode
    obj, end = self.scan_once(s, idx)
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.3/threading.py", line 637, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.3/threading.py", line 594, in run
    self._target(*self._args, **self._kwargs)
  File "/home/chen/git/gtg/GTG/backends/backend_rtm.py", line 567, in _authenticate
    subprocess.Popen(['xdg-open', self.rtm.getAuthURL()])
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 127, in getAuthURL
    frob = self.getNewFrob()
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 119, in getNewFrob
    rsp = self.get(method='rtm.auth.getFrob')
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 107, in get
    data = dottedDict('ROOT', json.loads(json_data.decode('utf-8')))
  File "/usr/lib64/python3.3/json/__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python3.3/json/decoder.py", line 352, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python3.3/json/decoder.py", line 370, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Merge the Plugins and preferences.

We have the GtkNotebook in preferences so we can merge the plugins with preferences dialog box by adding it to another page of notebook. and also we can provide the preferences menu as a app menu .

< Open for discussion >

No module named 'GTG'

Hi staff,
I'm using Ubuntu 14.04 and daily gtg,
running gtg obtain: bash: /usr/bin/gtg: permission denied

so make it runnable:

chmod +x /usr/share/gtg/GTG/gtg
chmod +x /usr/share/gtg/GTG/gtcli
chmod +x /usr/share/gtg/GTG/gtg_new_task

now obtain: gtg
Traceback (most recent call last):
File "/usr/bin/gtg", line 57, in
from GTG import _
ImportError: No module named 'GTG'

the python3-xdg version is:

dpkg -l |grep python3-xdg
ii python3-xdg 0.25-4 all Python 3 library to access freedesktop.org standards

thanks

Unhandled error when enable RTM sync service and no network connection at the same time

Version: devel

Steps to reproduce

  1. Close all network connection, either wireless and wired connection
  2. Launch GTG from command line, then add RTM in synchronization service and enable it
  3. A short time later, check in the terminal, following traceback is printed

Expected result:
Catch this error, then keep silent and stop the authentication request. It's not necessary to let user know such low level errors.

Exception in thread Thread-21:
Traceback (most recent call last):
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 125, in getAuthURL
    frob = self.authInfo.get('frob')
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 74, in get
    raise AuthStateMachine.NoData('No data for <%s>' % state)
GTG.backends.rtm.rtm.NoData: No data for <frob>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.3/urllib/request.py", line 1248, in do_open
    h.request(req.get_method(), req.selector, req.data, headers)
  File "/usr/lib64/python3.3/http/client.py", line 1061, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python3.3/http/client.py", line 1099, in _send_request
    self.endheaders(body)
  File "/usr/lib64/python3.3/http/client.py", line 1057, in endheaders
    self._send_output(message_body)
  File "/usr/lib64/python3.3/http/client.py", line 902, in _send_output
    self.send(msg)
  File "/usr/lib64/python3.3/http/client.py", line 840, in send
    self.connect()
  File "/usr/lib64/python3.3/http/client.py", line 818, in connect
    self.timeout, self.source_address)
  File "/usr/lib64/python3.3/socket.py", line 417, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.3/threading.py", line 637, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.3/threading.py", line 594, in run
    self._target(*self._args, **self._kwargs)
  File "/home/chen/git/gtg/GTG/backends/backend_rtm.py", line 567, in _authenticate
    subprocess.Popen(['xdg-open', self.rtm.getAuthURL()])
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 127, in getAuthURL
    frob = self.getNewFrob()
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 119, in getNewFrob
    rsp = self.get(method='rtm.auth.getFrob')
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 103, in get
    json_data = openURL(SERVICE_URL, params).read()
  File "/home/chen/git/gtg/GTG/backends/rtm/rtm.py", line 193, in openURL
    return urllib.request.urlopen(url)
  File "/usr/lib64/python3.3/urllib/request.py", line 156, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib64/python3.3/urllib/request.py", line 469, in open
    response = self._open(req, data)
  File "/usr/lib64/python3.3/urllib/request.py", line 487, in _open
    '_open', req)
  File "/usr/lib64/python3.3/urllib/request.py", line 447, in _call_chain
    result = func(*args)
  File "/usr/lib64/python3.3/urllib/request.py", line 1268, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "/usr/lib64/python3.3/urllib/request.py", line 1251, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>

Rember the Milk: Tasks disappear after some time

From https://bugs.launchpad.net/gtg/+bug/1399193

Every task I enter disappears completely after some time. This is probably related to the Remember the Milk synchronization. Remember the Milk, however, still shows all the disappeared tasks.

How I reproduce:

  1. Create a task (I just input the title usually)
  2. Wait!
  3. After some time you can no longer find the task in the UI

$ yum info gtg
Loaded plugins: auto-update-debuginfo, langpacks, refresh-packagekit
Installed Packages
Name : gtg
Arch : noarch
Version : 0.3.1
Release : 3.fc20
Size : 10 M

GTG hangs/freeze when trying to show the new/edit task dialog.

I've noticed this issue on three ArchLinux machines, two recently installed, with the gtg-git package (which I maintain) [0]. I already mentioned this issue in #68, but I have some more details.

Much more often than not, when I try to bring the task-edition dialog (to edit an existing one, or to create a new one), gtg freezes before showing the dialog. The only way to unfreeze it is to send it a SIGINT, either with Ctrl+C on the console, or killall -INT. This happens with:

  • any recent version of gtg-git
  • fvwm or Gnome 3
  • Remember the Milk sync backend
    • accented characters in some tasks' title or description

[0] https://aur.archlinux.org/packages/gtg-git/

Distinguish between "workview" filtering and "actionable" tasks

Initially filed at https://bugs.launchpad.net/gtg/+bug/1305354

I've been loving GTG for my GTD needs since 2009 or so, but with the blurry distinction between my daily life and my work life, I think I've finally figured out what I'm missing: the "Workview" mode is nice, but it needs something else to complement it.

Currently, workview filters out all the tasks that are deferred into the future or all the tasks for which a tag is marked as "not to be shown in work view".

This leads to the problem where I have either too much (300) or too few (50) tasks depending on if I turned on workview.

I would like:

  • An "Actionable tasks only" filter to filter out all the tasks whose startdate is in the future
  • "Workview" to ignore the startdate and only concentrate on "filter out the tasks that have a tag that is not set to be shown in workview mode"

Both can be used in conjunction (actually, turning on "Workview" could even automatically activate the "Actionable tasks only" button) when I'm in a professional work setting, but when I'm at home I could turn off workview and be able to see "all the tasks that are actionable but not necessarily related to work".

This is not something I can distinguish just by using one @work tag: the problem is that I have tasks that are "R&D" or "experiments" in my life that are more like "side projects", and currently the problem is that I'm "always" in the workview because the non-workview is a complete mess with way too many tasks (half of which are in the future, and thus non-actionable).

Thanks!

Few questions about current development of GTG

  1. When will gtk3 port of GTG land on Ubuntu? The version for Utopic & Vivid are still on 0.3.1.
    AFAIK it was scheduled for 0.3.2 (https://launchpad.net/gtg/+milestone/0.3.2) but Gnome wiki says 3.1.

  2. Does daily build ppa use GTK-3 port? It doesn't look like it does. It should be updated from git master. It saves us from the trouble of compiling it by ourselves.

  3. @NimitS1 said on many bug-reports on launchpad that, there would be complete rework of GTG backend/syncronization services (read RTM). Has the rework started yet? What is the roadmap?

    RTM is my favorite backend service, but on Trusty, Utopic it is broken because of this bug: https://bugs.launchpad.net/gtg/+bug/1286495. @PawanHegde prepared a patch for it, but it was rejected by @NimitS1 . I tested the patch, after applying it sync with RTM relatively works well...at least from GTG->RTM. So may be it can be merged for 3.1.

  4. python-evolution has been depreciated (as gnome-python-desktop is NOT active anymore). So it can not be synced with evolution-date-server. What is the developer's view on this?

  5. Any future plan to include a new sync-service like Todoist (https://en.todoist.com/)?

Thanks.

GTK deprecation warnings

With PyGTK-2.24.0 and gtg from commit 1328f1d, I am getting the following warning on startup:

/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkImageMenuItem:use-stock is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkImageMenuItem:always-show-image is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkToolButton:stock-id is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkMisc:xpad is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkImage:stock is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkEntry:secondary-icon-stock is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkImageMenuItem:accel-group is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/browser/browser.py:87: Warning: The property GtkImageMenuItem:image is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.BROWSER_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/editor/calendar.py:46: Warning: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.__builder.add_from_file(GnomeConfig.CALENDAR_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/plugins/urgency_color/urgency_color.py:204: Warning: The property GtkAlignment:top-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.
  'preferences.ui'))
/usr/lib/python3.4/site-packages/GTG/plugins/urgency_color/urgency_color.py:204: Warning: The property GtkAlignment:bottom-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.
  'preferences.ui'))
/usr/lib/python3.4/site-packages/GTG/plugins/urgency_color/urgency_color.py:204: Warning: The property GtkAlignment:left-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.
  'preferences.ui'))
/usr/lib/python3.4/site-packages/GTG/gtk/preferences.py:85: Warning: The property GtkMisc:ypad is deprecated and shouldn't be used anymore. It will be removed in a future version.
  builder.add_from_file(ViewConfig.PREFERENCES_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/preferences.py:85: Warning: The property GtkAlignment:yalign is deprecated and shouldn't be used anymore. It will be removed in a future version.
  builder.add_from_file(ViewConfig.PREFERENCES_UI_FILE)
/usr/lib/python3.4/site-packages/GTG/gtk/plugins.py:139: Warning: The property GtkTreeView:rules-hint is deprecated and shouldn't be used anymore. It will be removed in a future version.
  builder.add_from_file(ViewConfig.PLUGINS_UI_FILE)

Then, when I try to edit a task's description, I get an additional warning:

/usr/lib/python3.4/site-packages/GTG/gtk/editor/editor.py:63: Warning: The property GtkContainer:resize-mode is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.builder.add_from_file(GnomeConfig.EDITOR_UI_FILE)

I'm not sure if this is related, but GTG hangs after this warning (though
sending a KeyboardInterrupt with a ^C wakes it up).

gtg "forgets" activated plugins

Hope its the right place here to report the following bug:
I'm using the "Notification Area" Plugin with the option to hide gtg at the start. However, from time to time, gtg "forgets" what plugins are active and thus shows up at system boot, which is annoying.
All other active plugins are in-active, too.
So far, I don't know how to reproduce. Sometimes, it happens, sometimes everything is fine.
I'm using Fedora 20 with gtg 0.3.1. I've also enabled the gnome shell 3.12 repo [1], maybe this is related?

[1] https://copr.fedoraproject.org/coprs/rhughes/f20-gnome-3-12/

Concat full name to tomboy note in task

Every time i edit/open task description its adding full name to tomboy note, if russian text stay before tomboy note

System: Ubuntu 12.04 + latest updates on 25.04.2014
Installed Apps:

  • Gtg 0.3.1 + Tomboy/Gnote plugin 0.1.9
  • Tomboy 1.10.1

First and second picture in attachment are normal. After them pictures illustrates this bug.

normal _created
normal _closed_and_opened once
bug _created
bug _closed_and_opened_once
bug _closed_and_opened_twice
bug _closed_and_opened_third

GTG sometimes creates drag and drop "ghosts"

Initially filed at https://bugs.launchpad.net/gtg/+bug/1260858

This is just something I've noticed once in a while, when I'd dragging tasks around in GTG's browser view, I'd later get a "ghost" of the drag operation being released... the same issue that Pitivi had.

As your case might be different, you should ask the #gtk+ people on irc.gnome.org for help with this if you're stuck.

tagging task twice can lead to untag task

Steps to reproduce :

  • create a new task
  • edit the new task
  • enter "@mysupertag" in description in order to tag task -> the tag is colored in yellow (as expected)
  • continue editing, then enter again "@mysupertag" in description -> the second tag is colored in yellow while the first is uncolored (as expected ? Maybe this is the cause of the bug)
  • at this point, if I close the task editor, all is ok : even if first tag is not colored, the second one is, thus the task is correctly tagged with @mysupertag
  • but if I keep editing the task, and I erase the second tag, the first tag is not colored in yellow again
  • if I close the task editor now, the task contains @mysupertag in description BUT IS NOT TAGGED !

The bug is fixed if I open again the task editor : at the opening, the remaining tag is colored in yellow again (I supposed that the description is parsed again)... But as it IS possible to have a @mysupertag in a task description without having this task tagged "mysupertag", this remains a problem.

Tags do not support some non-english characters. Like "Ö"

Bug experienced in Getting Things GNOME! 0.3.1 from the Ubuntu Software Center.

When creating new tasks with new tags, some non english characters break the tags and make the tag only contain the letters up to the said problem letter.

I've tested with most, if not all, special Icelandic characters, but for some reasons the only one that I've found to break tags is "Ö".

For example, the tag @tölvan becomes @t.

screenshot from 2014-11-23 15 41 58

Distinguish between "workview" filtering and "actionable" tasks

Initially filed at https://bugs.launchpad.net/gtg/+bug/1305354

I've been loving GTG for my GTD needs since 2009 or so, but with the blurry distinction between my daily life and my work life, I think I've finally figured out what I'm missing: the "Workview" mode is nice, but it needs something else to complement it.

Currently, workview filters out all the tasks that are deferred into the future or all the tasks for which a tag is marked as "not to be shown in work view".

This leads to the problem where I have either too much (300) or too few (50) tasks depending on if I turned on workview.

I would like:

  • An "Actionable tasks only" filter to filter out all the tasks whose startdate is in the future
  • "Workview" to ignore the startdate and only concentrate on "filter out the tasks that have a tag that is not set to be shown in workview mode"

Both can be used in conjunction (actually, turning on "Workview" could even automatically activate the "Actionable tasks only" button) when I'm in a professional work setting, but when I'm at home I could turn off workview and be able to see "all the tasks that are actionable but not necessarily related to work".

This is not something I can distinguish just by using one @work tag: the problem is that I have tasks that are "R&D" or "experiments" in my life that are more like "side projects", and currently the problem is that I'm "always" in the workview because the non-workview is a complete mess with way too many tasks (half of which are in the future, and thus non-actionable).

Thanks!

"Start task in Hamster" crashes GTG

When I click on "Start task in Hamster" GTG crashes.

Following is the information that gets displayed:

Traceback (most recent call last):
File "/usr/share/gtg/GTG/plugins/hamster/hamster.py", line 264, in browser_cb
self.sendTask(plugin_api.get_requester().get_task(task_id))
File "/usr/share/gtg/GTG/plugins/hamster/hamster.py", line 109, in sendTask
category, description)
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in call
*_keywords)
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
DBusException: org.freedesktop.DBus.Python.TypeError: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/dbus/service.py", line 707, in _message_cb
retval = candidate_method(self, *args, *_keywords)
TypeError: AddFact() takes at most 5 arguments (7 given)

I'm using LMDE Cinnamon 64-bit
Cinnamon Version 2.0.14
Linux Kernel 3.11-2-amd64
GTG Version 0.3
Hamster Version 2.91.3

Let me know if any other information is needed.

Links aren't opened on click

In the latest version of master clicking on a link no longer opens it on the browser.

It fails with the following stacktrace:

Traceback (most recent call last):
File "/home/alex/program/gtg/gtg/GTG/gtk/editor/taskview.py", line 1387, in _tag_event
self.emit('anchor-clicked', text, anchor, button)
TypeError: could not convert type EventButton to (null) required for parameter 2

Cannot change tag name

I have lots of tags and would like to change some tags' name, for example from work to Work. There is already a dialog to allow to edit a tag and the name is editable. But, whatever I modify the name, it has no effect, the original tag name does not get changed.

RFE: Recently modified tasks

It would be useful to be able to view "Recently modified tasks", i.e. tasks that have been modified in the last, say, hour.

Perhaps even better would be a search syntax that allows you to roll your own.

Ctrl-Enter doesn't work in some corner cases

Ctrl-Enter doesn't work in the following cases:

  • If the cursor is just after the last character of a task or link.
  • If the cursor is any position between the beginning of a line and the first character of a task.

Cannot terminate authentication process in RTM

Version: devel

There is no way to terminate authentication process in even after user disables RTM synchronization service.

Steps to reproduce:

  1. Enable RTM in synchronization service manager. After a short while, a message is shown to ask user to confirm the authentication.
  2. User does not want to do the authentication in RTM website, and also want to close the notification message in the InfoBar to avoid noise.
  3. Disable RTM in synchronization service manager.
  4. Then, click Confirm button. This is the only thing user is able to do except quitting from GTG, since there is no "close" button or other ways for the goal of step 2.

Actual result:

The authentication process starts again after a while, and everything just like what the user did from the step 1.

Expected result:

Two possible solutions to allow user to terminate the authentication process manually and convineinetly.

  1. A simple "close" button to just close the message, not request any other action.
  2. Still allow user to click the Confirm button. In turn, the internal logic of Confirm button must terminate properly if RTM is disabled.

Racy crash when closing the task editor immediately after editing the task title / summary

Initially filed at https://bugs.launchpad.net/gtg/+bug/1256740

Sometimes, when you open an existing task for editing and rapidly change the title before pressing the "Escape" key to close and save the changes, GTG will crash.

ABRT caught the traceback and various debug information downstream here: https://bugzilla.redhat.com/show_bug.cgi?id=1036445

It happens when you press the Escape key after changing the title.

  • You need to have a list of tasks in your main window - you don't need to be in the "all tasks" view or to have workview toggled off, but maybe having more tasks can help trigger the bug. FWIW, I have 83 tasks in workview (267 total), of which ~20 are in a "foo" tag.
  • To reproduce, I can simply open an existing task, change the end of the title by typing something really fast and then IMMEDIATELY press Escape to save+close. Once in a while (not everytime) it crashes doing so.

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.