{"id":121,"date":"2023-12-20T13:29:42","date_gmt":"2023-12-20T13:29:42","guid":{"rendered":"https:\/\/lickylip.net\/?p=121"},"modified":"2023-12-20T13:29:42","modified_gmt":"2023-12-20T13:29:42","slug":"openproject-import-to-google-sheets","status":"publish","type":"post","link":"https:\/\/lickylip.net\/index.php\/2023\/12\/20\/openproject-import-to-google-sheets\/","title":{"rendered":"OpenProject Import to Google Sheets"},"content":{"rendered":"<figure class=\"wp-block-post-featured-image\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1506\" height=\"686\" src=\"https:\/\/lickylip.net\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-20-130411.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"openproject.org\" style=\"object-fit:cover;\" srcset=\"https:\/\/lickylip.net\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-20-130411.png 1506w, https:\/\/lickylip.net\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-20-130411-300x137.png 300w, https:\/\/lickylip.net\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-20-130411-1024x466.png 1024w, https:\/\/lickylip.net\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-20-130411-600x273.png 600w, https:\/\/lickylip.net\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-20-130411-1200x547.png 1200w\" sizes=\"100vw\" \/><\/figure>\n\n\n<p>I&#8217;ve been using <a href=\"https:\/\/www.openproject.org\/\">OpenProject<\/a> to track some of my personal projects for a while and I&#8217;ve had the need to import time entries from openproject into google sheets. I&#8217;d looked around online and couldn&#8217;t find a prebuilt way to do this automatically without exporting to excel format first and then uploading. Also I wanted it to sync and I wanted a reason to practice my coding so I gave a go to writing an <a href=\"https:\/\/www.google.com\/script\/start\/\">apps script<\/a> that will use the OpenProject API to sync projects over. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Coding<\/h2>\n\n\n\n<p>I&#8217;m going to try and publish my coding projects here to help force me to actually finish them and write some documentation. I&#8217;ve started writing notes for my projects in obsidian so it shouldn&#8217;t be too hard and writing these will help me improve my skills at explaining what my code is doing. <\/p>\n\n\n\n<p>I&#8217;ve published the code on the <a href=\"https:\/\/github.com\/lickylips\/open-project-invoicing\">gitHub project page<\/a><\/p>\n\n\n\n<p>A really useful tool while I was trying to work on this was <a href=\"https:\/\/web.postman.co\/\">postman<\/a>. This tool lets you test your API queries to see if they&#8217;re working. I&#8217;d never worked with a REST API before and it was a very steep learning curve. It took a lot of poking to make it work and understanding the <a href=\"https:\/\/www.openproject.org\/docs\/api\/\">openProject documentation <\/a> wasn&#8217;t easy for me. But with persistance I got it figured out. <\/p>\n\n\n\n<p>I&#8217;ve been learning to use <a href=\"https:\/\/code.visualstudio.com\/\">VSCode <\/a>for writing my apps scripts. Using <a href=\"https:\/\/developers.google.com\/apps-script\/guides\/clasp\">Clasp <\/a>to manage changes to the apps script project. For this project I installed the VSCode extension called <a href=\"https:\/\/sourcegraph.com\/demo\/cody?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=20359643422&amp;utm_term=coding%20assistant%20cody&amp;gad_source=1&amp;gclid=CjwKCAiAvoqsBhB9EiwA9XTWGYEA64TSpPd_VC_25Fh4E0EpAeDKFMgJz7ZYtNNa0P4oi0YE10m0DRoCl8QQAvD_BwE\">Cody<\/a>. It&#8217;s an AI code writing assistant and it was really useful for the most part. it did make some mistakes that took me some troubleshooting to figure out but not more mistakes than I usually make and I got to save a lot of time writing functions that were easy but repetitive. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been using OpenProject to track some of my personal projects for a while and I&#8217;ve had the need to import time entries from openproject into google sheets. I&#8217;d looked around online and couldn&#8217;t find a prebuilt way to do this automatically without exporting to excel format first and then uploading. Also I wanted it &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/lickylip.net\/index.php\/2023\/12\/20\/openproject-import-to-google-sheets\/\" class=\"more-link\">Read more<span class=\"screen-reader-text\"> &#8220;OpenProject Import to Google Sheets&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":122,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[15],"tags":[],"class_list":["post-121","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding"],"jetpack_featured_media_url":"https:\/\/lickylip.net\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-20-130411.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/posts\/121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/comments?post=121"}],"version-history":[{"count":2,"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/posts\/121\/revisions"}],"predecessor-version":[{"id":124,"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/posts\/121\/revisions\/124"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/media\/122"}],"wp:attachment":[{"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/media?parent=121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/categories?post=121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lickylip.net\/index.php\/wp-json\/wp\/v2\/tags?post=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}