Doctype's dashboard/ override not whitelisted methods


  1. No doubt, Frappe/ Erpnext is one of the best open source projects out there. Many thanks to creators and community.

  2. Doctype’s Dashboard items (‘transactions’) are stored in

  3. To change dashboard items I must manually edit python file?

  4. Is there some technical/historical reason why information is stored in python’s file method but not, for example, json file or database?

  5. I guess, there are some parallels with config files, for example, file. Except’s information is in more places - it is stored as doctype (“desk#module/Desktop Icon”) in database (“tabDesktop Icon”) and can be administrated via GUI ( “desk#List/Desktop Icon/List”). How is made this flow of desktop icon information - is there some primary information and some secondary (information in files and database) or it is summing up from both? And why it is stored in many places…?

  6. Current dashboard’s expansion causes need to overwrite framework’s default method doctype_dashboard.get_data() which is not whitelisted (cannot be overwritten by files hook ‘override_whitelisted_methods’)?

  7. As far as I have read in discussions out there, then not whitelisted methods cannot be overwritten? Is it technical/ political restriction? Any ideas about some future vision and importance on this one?

  8. Of course, depending on the questions above, but should not be very difficult to create some dashboard record handler - similar to “Desktop Icon” (but only with one information storage) ? For example, create separate doctype which handles information needed - changes information in files (or json/db). It think, this could add some good value to framework.

  9. Is there reason why Project’s dashboard do not include Production Order? (actually, already now Production Order is linked [has link field] with Project, but not reflected in Project’s dashboard). I manually added “{ ‘label’: _(‘Manufacturing’), ‘items’: [‘Production Order’]},” to “Production Order” in and got:

Any comments/ suggestions/ explanations about topic all over or individual questions will be appreciated. Workflows, code examples etc. Maybe, I just miss some overall logic about framework.