A lot has happened in the first two weeks of coding period and i am excited to share it with everyone. So, for the first two weekend I worked on adding a Preferences Panel that allows users to add/modify Todoist account that they want to use with To Do. Earlier we had planned to make it work in sandboxed environment, but upon mclasen’s suggestion we are sticking with getting the Goa Portal and Todoist account addition to work on non-sandboxed environment first.
So here’s how the Todoist Preferences Panel has turned out and it’s looking really cool :
Since Todoist provider is not yet merged with GOA, we don’t have a todoist account to test with, in which case To Do shows a no accounts page and asks if you wish to add one. Mind you the add button will be invisible if there is todoist provider in your GOA but i have enabled it just for demo.
Incase you have a Todoist Account in GOA added, your preferences panel would this along with todoist accounts in the ListBox. I need to make some changes to preferences including the icon which would done in a later stage.
I have also progressed on adding some required functions to GOA and the patches have undergone a few review iterations and we can can expect them to be pushed to master before end of next week.
What additions are in line for GOA?
- ListProviders: We can now make a DBus call to GOA and get a list of supported providers. This can be useful if apps want to query if GOA supports a specific provider. To Do will make use of it to decide whether to show a Add Account button or not.
- AddAccountForProviders: This is yet another DBus method that takes in a string “provider_type” and spawn the Control Center to allow addition of an account, which apps can make use of.
- Todoist Provider: This is being added by Recipe members and with this GOA will support Todoist accounts which To Do, Recipe etc. can use.
All the patches related to GOA are in progress and not pushed to master branch, if you wish to check these out, patches have been uploaded here.
A short video demonstrating these changes :
I am using D-feet to trigger the Dbus calls. As you saw in last video, the AddAccountForProvider method is already being used by To Do.
This is all I had for this blogpost, I will keep updating the changes as it occurs. Feel free to drop suggestions. They are always welcomed 🙂
I am really happy and excited to be accepted as Google Summer of Code Student by GNOME and i will be working on integrating Todoist to GNOME To Do. Todoist is a widely used and popular Online Task Manager App. To be honest, this wouldn’t have been possible without the support I received from people in GNOME and especially my mentor feaneron who answered my every single query, even the silliest of them ( I am sorry Georges :P). I am really excited to be a part of such an helpful and knowledgeable group of people and hope to make best of this opportunity and learn lot of new things 🙂
Planning and Future of Todoist Plugin
We are collaborating with GNOME Recipe, Outreachy Project, since the project also requires Todoist integration and the work related to adding a Todoist Provider in Gnome Online Accounts (GOA) will be shared .We have held two meetings with my mentor (feaneron) and GOA maintainer(rishi) along with Recipe team (mclasen and ekta) and have started to finally build a plan as to how things would work out.We still have one meeting scheduled to finalize the whole thing.
Till now this is how things have shaped:
- Introduce a Todoist Provider in GOA – Since Gnome To Do and Recipe are not core apps, it is possible that user may not be using these application in which case the Todoist provider will be left useless. So we decided to have a Todoist Provider which will only be shown in case there is an app that uses.We would be adding a AddAccount function in libgoa that To Do and Recipe can use to interact over dbus with GOA and a ListAccount that can be used to list all accounts including the hidden Todoist accounts.Then it works normally like any other provider allowing user authorization and saving access token.
- Implementation details in To Do –
- Preferences Panel – This will allow user to select an already added Todoist Account or set-up a new account that will make use of the ListAccount and AddAccount method introduced in previous step.
- This is how a Preference Panel looks like. We will have something similar showing list of Todoist Account in a List Box and allowing user to add more accounts.
- TodoistPlugin – The plugin is medium between the provider and To Do which helps in maintaining the providers , adding , removing them.
- TodoistProvider – A Todoist Provider is basically a TodoistAccount (as added by user) along with method that will fetch task ,tasklists and other information from the Todoist Server and also methods to update local changes to Todoist. Currently Todoist supports some cool features that are not supported by To Do but our focus in the project is not to integrate all those features, but a solid Todoist Plugin that does every basic task that To Do supports and ofcourse we will look to expand the features as time permits 🙂
So this is how the plugin is designed in To Do.We have one more meeting after which things would be even more clear. I have asked feaneron for a Q/A Session to discuss more about the plugin and i am sure we can improve our plan and execute it to perfection. Sorry for not having any demo photos at the moment but I promise to keep them posted here as Project continues 🙂
Feel free to drop suggestion.
Some notes from our meeting Click Here.
Project Wiki Page.
This is my development blog where I will be posting about the work related to my open source projects as I progress through them and also every movement related to my GSOC project (upcoming next post related to my project) will be updated on this blog.
There are a lot of development blogs already, but I believe every developer has his own unique experiences to share and it will not just be learning for readers but myself included.
A Short bio
I am Rohit Kaushik, a Computer Science Undergraduate at BITS Pilani, Goa Campus . I have deep interest in the Computer Science and I love programming. Apart from being a user of Open Source Applications, i am also a contributor at GNOME.My contribution have been majorly to Gnome To Do and Nautilus. Beside my love for Computers, I like listening to music and I also plan on learning to play keyboard this summer :).
You can check my projects at github and contact me here.