ERPNext.com Frappe Cloud Support Partners Foundation Frappe School

Add Custom Page to Desk

I’ve created a custom app and in it, I created a page which shows a list of orders. (See image below)

I would like to add it as a link in the side bar as shown below.

How do I go about this? I’ve searched and found nothing.

Is this custom app based off on frappe?

Yes it is

I’m guessing that the image you posted is a kanban view for some doctype. As of right now Frappe does not support direct workspace linking to doctypes, however you can try messing around with workspace link options and workspace.py and .js files to get a rough idea.

It’s a custom page, not a doctype view.

It’s not possible at present to add a custom page directly to the desk sidebar. It would be a great feature to have, however, and would add significant flexibility to the current Workspace-centric setup.

Corrected my initial typos @Vesper_Solutions @peterg is right it’s a completely custom page not a Kanban view it’s a version of an order screen that a restaurant would use. Basically each card is an order ticket meals that needs to be prepared.

Since my initial idea is not possible I’d like to add it as a shortcut link in selling.

I know in order to add a link I can click customise as shown below:

However I want to know how to add the custom page in the page list. As you can see I have no add page button.

I know that I need to add the page to a page folder in my custom app. (customapp>customapp>page>page_name) but I can’t seem to find clear directions on what I need to do to add the page and get it to show up in the list.

Any help with this? (Open to anyone)

Yes, that works, or you can do it at the system level by creating a custom Workspace (optionally replacing or extending an existing Workspace.)

Are you saying that your custom page isn’t showing up in that list under “Link To”? If so, that’s surprising. If you go to the list view for the Page doctype, is your custom page showing up there?

No it is not showing up in the list. I’m not very strong in my coding (still a newbie) so bear with me. Is it possible I did something wrong?

Ah, that’s the issue. The page exists, but Frappe doesn’t know it exists.

It sounds like you created the page manually by adding files to your App directory? Usually, the way you create a custom page in Frappe is to go to the Page doctype list-view and create a new page from there. This will create a bare-bones template, which you can then customize however you’d like. To include it in your app, assign it to a module that is owned by your app. (NB: You have to be logged in as Administrator to create new pages.)

If you’ve got the page right now, I’d try creating a new page via the list-view, then copy over the code.

Also, apologies, I see you had already answered my list-view question in your previous post, but I’d misunderstood. You’re on the right track, and it should be a quick fix. If you’ve managed to get this far, you’re doing pretty well! Give that a shot and let us know if it doesn’t work.

YUPPPP!! lol

Thank you!! I did not think to log in as Administrator.

That’s ok you’ve been super helpful.

I’ll go try it now (if I don’t fall asleep, long day lol) if you don’t see a reply soon. I’ll reply tomorrow.

1 Like

I did it!

I still have lots to do but THANK YOU @peterg

1 Like

Well done! That’s an impressive looking custom page and a great way to start learning what Frappe can do. I hope you stick around keep learning the framework!

1 Like

That is a great look and feature for restaurant module. Too bad the hospitality domain has been frozen at the moment.
I would love to learn how it is done.

It’s frozen? I didn’t know that I tired to activate it once and the features seemed lacking so I disabled it. This is doable strictly with the Services Domain.

When I get it to work properly, I’ll put it on github for others. :slight_smile:

I use Sales Order for the orders and frappe api to pull in the data. The rest is Jinja (easy peasy lol). Currently, I have set it up so that when a new sales order is “Submitted” the new order is inserted into the queue. I used a combination of frappe.realtime (whatever it is called lol it’s been a long day) and the frappe api.

I will also be adding an alert which notifies that a new order has been added until it is dismissed (I think this is best so you’re subconsciously aware of your workload). I’m not sure as yet if I want to use frappe dialog for the alert but that is because I’m very particular.

Currently I just have the UI set up. I will be configuring it so that when done is clicked/tapped the Sales Order will have a custom field (TBD) updated. I’ll also be adding an undo feature just in case someone accidently dismisses an order before it is actually completed.

I will post a screenshot of the finished UI when I’m all done.

3 Likes