Custom App in Frappe Desk

Hello guys,

I am trying to create a custom app and some custom doctypes in Frappe and have it show up on Desk.

I have read the documentation and seen numerous questions and answers regarding but I am unable to follow any (for lack of completeness). I followed the documentation using library_management app as an example. At some point the documentation here Not Found says to create a document from ‘Desk Page’ doctype, a doctype which does not exist in my installation. Now I am completely lost and stuck.

I did the following:

  1. Installed Frappe, using Easy Install with --production --without-erpnext (pulls version 12)
  2. Added “developer_mode”: 1 to site_config.json
  3. Created and installed custom app (my_app) to my site
  4. Created custom doctypes in my_app module
  5. Created my_app.py in /my_app/my_app/config and added my custom doctypes
  6. Run bench build, migrate, clear-cache

Non of my doctypes appear on Desk.

What am I missing here please. Any help is greatly appreciated.

Keith

Hey Keith,
I don’t get your step #5. all files are automatically created, you just edit them. You do not need to add anything.
Are your doctype coming when looking for them in the Global search bar?
What happens when you do
sudo bench update?

Check your Frappe version. If it is version 12, desk page is not applicable. Desk page is used to build the pages and shortcuts for version 13 onwards.

For version 12, you can refer to the following:

Thanks Francois.

My custom doctypes do show up in global search. Custom app directory structure was created automatically as expected.

In Step #5 I meant adding entries to my_app.py.

my_app.py looks like this:

from __future__ import unicode_literals
from frappe import _

def get_data():
	return [
		{
			"label": _("Settings"),
			"icon": "fa fa-cog",
			"items": [
				{
					"type": "doctype",
					"name": "My Custom Doc"
				}
			]
		}
	]

And desktop.py looks like this:

from __future__ import unicode_literals
from frappe import _

def get_data():
	return [
		{
			"module_name": "My App",
			"color": "grey",
			"icon": "octicon octicon-file-directory",
			"type": "module",
			"label": _("My Application")
		}
	]

Thanks Kenneth.

Does this mean if I pull Frappe v13 via

python3 install.py  --version 13

no further intervention is required at the back end (manual my_app.py and desktop.py edit)?

Yes. If you’re starting with version 13 or develop branch, you can use Desk Page feature to add module pages and shortcuts.

which branch are you on?
on V12, indeed you do what you have to do.
On V13, you can do this through desk page list.

If you need to go to V13,
bench switch-to-branch version-13-beta frappe

or bench update --upgrade