Exporting Workspace with custom App (v13.1.0)

Hello!

We are working on a custom app, and with all of the documentation it’s going great. EXCEPT, we can’t seem to figure out how to package our workspace with the app so that when you install it on a new site the workspace already shows up under “Modules” or “Domains”.

I read that the desk config is now part of the db rather than the config files like they were in v12, so how do we package the workspace with shortcuts/links/etc into the app? Desired end state is we would have something in our git repo that contains this data.

I have a feeling it’s going to come down to fixtures, but can’t quite get my head around it. Any assistance would be appreciated, thanks!

1 Like

try to add in hook.py and use export-fixtures command

{“dt”: “Workspace”, “filters”: [
[
“name”, “in”, [
“Workspace A”,
“Workspace A”
]
]
]},

1 Like

If you mark your workspace as Standard and assign it to your custom app, a new workspace folder will be created under your app folder which will host the WS JSON file, much like the way notifications work

7 Likes

Ya , information is stored in DB

Thanks for the quick replies everyone! Easiest answer was definitely to mark as standard and that worked beautifully. Is there any downside to marking it standard? Not sure why it wouldn’t do that by default if that’s the case.

probably for cloud and non-tech users should be able to customize without writing an app

I’ve checked “Is Standard” for my workspace and it is also saved in my custom app directory. But still it is not shown in the “modules” or any other section of thedesk. The saved JSON structrued looks like below:

{
    "cards_label": "Demo App",
    "category": "Modules",
    "charts": [],
    "charts_label": "",
    "creation": "2021-04-19 21:46:27.508710",
    "developer_mode_only": 0,
    "disable_user_customization": 1,
    "docstatus": 0,
    "doctype": "Workspace",
    "extends_another_page": 0,
    "hide_custom": 0,
    "icon": "calendar",
    "idx": 0,
    "is_default": 0,
    "is_standard": 1,
    "label": "Demo App",
    "links": [
     {
      "hidden": 0,
      "is_query_report": 0,
      "label": "Example Report",
      "link_to": "Example Report",
      "link_type": "Report",
      "onboard": 0,
      "type": "Link"
     }
    ],
    "modified": "2021-05-04 18:40:22.815581",
    "modified_by": "Administrator",
    "module": "Demo App",
    "name": "Demo App",
    "owner": "Administrator",
    "pin_to_bottom": 0,
    "pin_to_top": 0,
    "shortcuts": []
   }

What other modiifications/settings is needed ?

I also ran command bench migrate after saving the workspace to my custom app directory.

I found that you DO have to have a doctype associated with the module in order for it to show up. Do you have one? If not, create something. I made a singleton called ‘Settings’ and it sufficed.

Hi there. Have you been able to modify workspaces for existing modules via a custom app like you used to be able to do in v12 via files in your app’s config folder? Eg, adding a script report from your custom app into the standard Accounting module.

I’ve found it now. You can create a workspace under your custom app and set it to extend the existing workspaces.