Cannot "download Template" for ToDo import (SOLVED)

Hi, I’m trying to import ToDo items. From the ToDo screen, clicking Import gets to the Data Import screen, but the ToDo tables aren’t shown (the screen is the generic Data Import screen with drop-down to select tables). See screenshot http://i.imgur.com/oMyx2Mo.png

A ToDo table isn’t in the drop-down list, and I don’t know what to do next. If fixing this is considered “simple”, I will volunteer to work it through the system (create github issue, fork, fix, and send pull-request) if I can also get some coaching (Where does the fault likely lie? What will the “best” solution likely look like? How do I unit test the fix? etc.).

Fwiw, I have installed ERPNext remotely to experiment with functional operation, and I have written production code in the past (but never in Python). I haven’t yet installed ERPNext on my laptop and used the dev server, but I am assuming that development will be simpler if I use a Linux laptop instead of Windows. Any comments (or references to wiki or KB articles) will be sincerely appreciated.

Dale

I have allowed Import to ToDo doctype. Try after updating.

Thanks @nabinhait. I updated my DigitalOcean droplet but the ToDo template is still not available to be downloaded. I saw in the frappe repo on GitHub that you had committed a change to frappe/core/doctype/todo/todo.json, but this was not listed in the upgrade output. Am I performing the update incorrectly?

Also, can you suggest a workaround to update a system that is not on the internet? Until I can prove to a management team that our our fundamental workflows can be managed using ERPNext, the on-site ERPNext server is not permitted to access the internet. However, I can clone the frappe and erpnext repo’s from GitHub to a Windows computer (only via https though! ;-)) and then manually copy them to the ERPNext Centos server (otherwise I have to physically take the Centos server to an off-site internet connection). Is there any way to easily make updating work with the server on-site?

Alternatively, would it be acceptable to insert ToDo records directly into the database? I understand inserting records directly into the database is generally not workable because of bypassed business logic and model behaviors, but would it work for the ToDo table specifically?

[root@firefly ~]# su - frappe
Last login: Thu Dec 11 09:27:54 EST 2014 on pts/0
[frappe@firefly ~]$ cd /home/frappe/frappe-bench/
[frappe@firefly frappe-bench]$ bench update
remote: Counting objects: 116, done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 116 (delta 75), reused 91 (delta 58)
Receiving objects: 100% (116/116), 25.58 KiB | 0 bytes/s, done.
Resolving deltas: 100% (75/75), done.
From https://github.com/frappe/bench
   1825d04..0564872  master     -> origin/master
From https://github.com/frappe/bench
 * [new tag]         v0.92      -> v0.92
Updating 1825d04..0564872
Fast-forward
 bench/app.py                    | 21 ++++++++++++++-----
 bench/cli.py                    | 73 +++++++++++++++++++++++++++++++++++++------------------------------
 bench/config.py                 | 14 +++++++++----
 bench/migrate_to_v5.py          | 45 +++++++++++++++++++++++++++++++++++++++++
 bench/patches/fix-mariadb.sh    | 13 ------------
 bench/patches/my_config.h.patch | 22 --------------------
 bench/production_setup.py       | 22 +++++++++++++-------
 bench/templates/nginx.conf      | 58 +++++++++++++++++++++++++++++++++++++++--------------
 bench/utils.py                  | 43 ++++++++++++++++++++++++++++++++++++++-
 install_scripts/setup_frappe.sh | 22 ++++++++++----------
 10 files changed, 223 insertions(+), 110 deletions(-)
 create mode 100644 bench/migrate_to_v5.py
 delete mode 100755 bench/patches/fix-mariadb.sh
 delete mode 100644 bench/patches/my_config.h.patch
restarting
remote: Counting objects: 176, done.
remote: Compressing objects: 100% (127/127), done.
remote: Total 176 (delta 76), reused 84 (delta 45)
Receiving objects: 100% (176/176), 730.29 KiB | 0 bytes/s, done.
Resolving deltas: 100% (76/76), done.
From https://github.com/frappe/frappe
 * branch            master     -> FETCH_HEAD
Updating a042455..5b61a53
Fast-forward
 frappe/__version__.py                                 |    2 +-
 frappe/core/doctype/custom_field/custom_field.py      |    7 +-
 frappe/core/doctype/custom_field/test_custom_field.py |    6 +
 frappe/core/doctype/print_format/print_format.py      |    7 +
 frappe/core/doctype/print_format/test_records.json    |    3 +-
 frappe/database.py                                    |    4 +-
 frappe/hooks.py                                       |    2 +-
 frappe/installer.py                                   |   13 +
 frappe/model/db_query.py                              |    5 +-
 frappe/model/db_schema.py                             |    4 +-
 frappe/model/naming.py                                |    2 +
 frappe/public/js/frappe/form/control.js               |    1 +
 frappe/public/js/frappe/views/communication.js        |    2 +-
 frappe/public/js/frappe/views/listview.js             |   28 -
 frappe/public/js/frappe/views/reportview.js           |    2 +-
 frappe/templates/pages/style_settings.css             |    2 +-
 frappe/tests/test_db.py                               |    5 +
 frappe/translate.py                                   |    1 +
 frappe/translations/ar.csv                            |    6 +-
 frappe/translations/de.csv                            |  400 ++++----
 frappe/translations/el.csv                            |   18 +-
 frappe/translations/es.csv                            |  386 ++++---
 frappe/translations/fr.csv                            |   32 +-
 frappe/translations/hi.csv                            |    4 +-
 frappe/translations/hr.csv                            |    4 +-
 frappe/translations/id.csv                            |   24 +-
 frappe/translations/it.csv                            |    4 +-
 frappe/translations/ja.csv                            |  239 ++---
 frappe/translations/kn.csv                            |   16 +-
 frappe/translations/ko.csv                            |   18 +-
 frappe/translations/nl.csv                            |    4 +-
 frappe/translations/pl.csv                            | 2336 +++++++++++++++++++++----------------------
 frappe/translations/pt.csv                            |   48 +-
 frappe/translations/ro.csv                            |   24 +-
 frappe/translations/ru.csv                            |   16 +-
 frappe/translations/sr.csv                            |    4 +-
 frappe/translations/ta.csv                            |    4 +-
 frappe/translations/th.csv                            |    4 +-
 frappe/translations/tr.csv                            |  756 +++++++-------
 frappe/translations/vi.csv                            |   16 +-
 frappe/utils/data.py                                  |    9 +-
 frappe/website/doctype/web_page/web_page.json         |    6 +-
 frappe/website/website_generator.py                   |    2 +-
 frappe/widgets/reportview.py                          |    4 +
 setup.py                                              |    2 +-
 45 files changed, 2252 insertions(+), 2230 deletions(-)
From https://github.com/frappe/shopping-cart
 * branch            master     -> FETCH_HEAD
Already up-to-date.
remote: Counting objects: 281, done.
remote: Compressing objects: 100% (181/181), done.
remote: Total 281 (delta 143), reused 151 (delta 98)
Receiving objects: 100% (281/281), 1.63 MiB | 0 bytes/s, done.
Resolving deltas: 100% (143/143), done.
From https://github.com/frappe/erpnext
 * branch            master     -> FETCH_HEAD
Updating b1fdbf2..399a309
Fast-forward
 erpnext/__version__.py                                              |    2 +-
 erpnext/accounts/doctype/account/account.py                         |   12 +-
 erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json     |    8 +-
 erpnext/accounts/doctype/sales_invoice/pos.js                       |    5 +
 erpnext/accounts/report/accounts_receivable/accounts_receivable.py  |   60 +-
 erpnext/buying/doctype/purchase_order/purchase_order.json           |   11 +-
 erpnext/buying/doctype/purchase_order/purchase_order.py             |    2 +-
 erpnext/buying/doctype/supplier/supplier.js                         |   46 +-
 erpnext/buying/doctype/supplier/supplier.py                         |    4 +
 erpnext/controllers/accounts_controller.py                          |    2 +-
 erpnext/hooks.py                                                    |    2 +-
 erpnext/hr/doctype/expense_claim/expense_claim.json                 |   16 +-
 erpnext/hr/doctype/leave_application/leave_application.js           |   15 +
 erpnext/hr/doctype/leave_application/leave_application.json         |    9 +-
 erpnext/hr/doctype/leave_application/leave_application.py           |    6 +-
 erpnext/hr/doctype/salary_slip/salary_slip.py                       |    4 +-
 erpnext/patches.txt                                                 |    1 +
 erpnext/projects/doctype/time_log/test_time_log.py                  |    9 +
 erpnext/projects/doctype/time_log/time_log.py                       |    4 +-
 erpnext/public/build.json                                           |    4 +-
 erpnext/public/js/templates/address_list.html                       |   20 +
 erpnext/public/js/templates/contact_list.html                       |   28 +
 erpnext/public/js/utils.js                                          |   25 +-
 erpnext/selling/doctype/customer/customer.js                        |   44 +-
 erpnext/selling/doctype/customer/customer.py                        |    5 +-
 erpnext/selling/doctype/lead/lead.js                                |   27 +-
 erpnext/selling/doctype/lead/lead.json                              |    4 +-
 erpnext/selling/doctype/lead/lead.py                                |    3 +
 erpnext/selling/doctype/opportunity/opportunity.json                |    4 +-
 erpnext/selling/doctype/opportunity/opportunity.py                  |    1 +
 erpnext/selling/doctype/sales_order/sales_order.py                  |   15 +-
 .../setup/doctype/authorization_control/authorization_control.py    |    7 +-
 erpnext/setup/doctype/contact_control/README.md                     |    1 -
 erpnext/setup/doctype/contact_control/__init__.py                   |    1 -
 erpnext/setup/doctype/contact_control/contact_control.js            |  161 -
 erpnext/setup/doctype/contact_control/contact_control.json          |   48 -
 erpnext/setup/doctype/contact_control/contact_control.py            |   10 -
 erpnext/setup/doctype/sales_partner/sales_partner.js                |   61 +-
 erpnext/setup/doctype/sales_partner/sales_partner.py                |    5 +
 erpnext/setup/page/setup_wizard/setup_wizard.js                     |   11 +-
 erpnext/stock/doctype/serial_no/serial_no.py                        |    3 +-
 erpnext/translations/ar.csv                                         |   28 +-
 erpnext/translations/de.csv                                         |  741 ++--
 erpnext/translations/el.csv                                         |   94 +-
 erpnext/translations/es.csv                                         |  933 +++--
 erpnext/translations/fr.csv                                         |  122 +-
 erpnext/translations/hi.csv                                         |   28 +-
 erpnext/translations/hr.csv                                         |   30 +-
 erpnext/translations/id.csv                                         |   84 +-
 erpnext/translations/it.csv                                         |   28 +-
 erpnext/translations/ja.csv                                         |  520 +--
 erpnext/translations/kn.csv                                         |   50 +-
 erpnext/translations/ko.csv                                         |   50 +-
 erpnext/translations/nl.csv                                         |   28 +-
 erpnext/translations/pl.csv                                         | 5344 ++++++++++++++---------------
 erpnext/translations/pt.csv                                         |  176 +-
 erpnext/translations/ro.csv                                         |  110 +-
 erpnext/translations/ru.csv                                         |   52 +-
 erpnext/translations/sr.csv                                         |   28 +-
 erpnext/translations/ta.csv                                         |   28 +-
 erpnext/translations/th.csv                                         |   86 +-
 erpnext/translations/tr.csv                                         | 1870 +++++-----
 erpnext/translations/vi.csv                                         |   50 +-
 erpnext/utilities/address_and_contact.py                            |   19 +
 erpnext/utilities/doctype/address/address.js                        |   11 +-
 erpnext/utilities/doctype/contact/contact.js                        |   11 +-
 setup.py                                                            |    2 +-
 67 files changed, 5510 insertions(+), 5719 deletions(-)
 create mode 100644 erpnext/public/js/templates/address_list.html
 create mode 100644 erpnext/public/js/templates/contact_list.html
 delete mode 100644 erpnext/setup/doctype/contact_control/README.md
 delete mode 100644 erpnext/setup/doctype/contact_control/__init__.py
 delete mode 100755 erpnext/setup/doctype/contact_control/contact_control.js
 delete mode 100644 erpnext/setup/doctype/contact_control/contact_control.json
 delete mode 100644 erpnext/setup/doctype/contact_control/contact_control.py
 create mode 100644 erpnext/utilities/address_and_contact.py
database backup taken - ./site1.local/private/backups/20141211_38157939_database.sql.gz - on 2014-12-11 07:35:56.543532

Running latest for site1.local
--------------------------------------------------
Executing execute:frappe.delete_doc("DocType", "Contact Control") in site1.local (site1.local)
Success
Updating frappe                     : [========================================]
Updating erpnext                    : [========================================]
Updating shopping_cart              : [========================================]
Wrote ./assets/js/frappe-web.min.js - 90k
Wrote ./assets/js/shopping-cart-web.min.js - 1k
Wrote ./assets/js/print_format_v3.min.js - 18k
Wrote ./assets/js/erpnext.min.js - 15k
Wrote ./assets/css/frappe.css - 224k
Wrote ./assets/css/frappe-web.css - 163k
Wrote ./assets/css/shopping-cart-web.css - 0k
Wrote ./assets/js/editor.min.js - 27k
Wrote ./assets/css/erpnext.css - 0k
Wrote ./assets/js/frappe.min.js - 608k
Wrote ./assets/js/erpnext-web.min.js - 0k
Wrote ./assets/js/slickgrid.min.js - 102k
Wrote ./assets/js/canvasResize.min.js - 22k
frappe-web: stopped
frappe-workerbeat: stopped
frappe-worker: stopped
frappe-worker: started
frappe-web: started
frappe-workerbeat: started
________________________________________________________________________________
https://frappe.io/buy - Donate to help make better free and open source tools

[frappe@firefly frappe-bench]$

I have pushed the changes in develop branch. It will be merged in master tomorrow.

Thanks @nabinhait. I copied frappe/core/doctype/todo/todo.json from the develop branch, but there was no change in import behavior. I rebooted server, but nothing else. What are the required steps to follow?

Did you run bench frappe --latest?

Yes, that worked, thanks.