迁移到新导航

Frappe Framework 第 16 版的后续版本改变了桌面(desk)的组织方式。不再是为每个工作区附加一个自由形式的侧边栏,现在每个模块都有一个侧边栏,每个应用在最左侧都有一个模块停靠栏(dock)。本页面面向正在升级现有站点的用户。它说明了升级会对你的桌面、工作区和侧边栏做什么,哪些内容保持不变,如何让用户切换到新导航,以及升级后需要检查什么。

升级不会删除任何内容,在你选择切换之前,用户不会被迁移到新导航。要了解新导航本身,请参阅“熟悉桌面导航”。

有哪些变化

升级前 升级后
主屏幕 一个桌面图标网格 应用屏幕,每个应用一个图标。在你切换之前,你的图标网格会作为后备保留
在区域之间移动 桌面图标和工作区侧边栏 每个应用一个模块停靠栏,位于侧边栏旁边
侧边栏 任意数量的侧边栏,每个都有自己的名称 每个模块一个侧边栏,由应用提供,你可以自定义
个人侧边栏副本 用户自己的侧边栏副本 该用户对模块侧边栏的仅为我排列
工作区 可以不属于任何模块 每个工作区都属于一个模块,由模块决定其侧边栏
为所有人更改导航 编辑共享的侧边栏记录 使用工作区管理员角色进行编辑侧边栏和管理停靠栏

升级前

  1. 进行备份。运行 bench --site <your-site> backup</your-site>(参见 bench 命令)。升级不会删除任何内容,但备份是让站点完全恢复原状的唯一方法。
  2. 一起更新所有应用。Frappe Framework、ERPNext、Frappe HR 以及任何其他应用都应处于匹配的版本,因为每个应用都会为新导航提供自己的侧边栏和停靠栏。
  3. 记录你的自定义侧边栏。截图或列出你的站点添加或编辑过的每个侧边栏的条目。某些站点更改尚未被迁移(参见已知问题),有一份列表可以让你快速重建它们。
  4. 决定由谁管理导航。升级后,只有拥有工作区管理员角色的用户才能为所有人更改侧边栏或停靠栏。系统管理员不会自动获得该角色。将其授予之前负责你侧边栏的人。参见用户和权限。
  5. 与你的应用开发者确认。如果你使用了自带侧边栏的自定义应用,请询问它是否有针对新导航的版本。参见“面向应用开发者”。

运行升级

像平常一样升级,使用 bench update 或切换分支并运行 bench migrate。导航没有单独的步骤:它会在站点迁移时被转换。

注意查看输出。它会告诉你转换了什么:

  • 侧边栏:已迁移 n 个模块,保留了 n 个个人排列。你的站点有多少侧边栏变成了模块侧边栏,以及保留了多少用户的个人副本。
  • 模块“名称”:已合并……当一个模块有多个侧边栏时,它们被合并为一个。每次合并都会被命名。
  • 仍以旧格式提供侧边栏的应用列表。在应用更新之前,这些应用的模块会使用生成的侧边栏。

升级会做什么

你的桌面暂时仍使用图标网格

新导航从应用屏幕上的应用开始,到停靠栏上每个应用的模块,再到每个模块的侧边栏。图标网格在这个层级中没有位置,但它被保留为后备,这样你的用户就不会在升级后的第二天早上发现一个不同的主屏幕。

如果你的站点使用桌面图标网格,升级后它会继续使用,每个图标及其排列都保持不变。请计划迁移到应用屏幕:网格即将退役,一旦大多数站点完成迁移,它将在未来的版本中被移除。全新的站点会从应用屏幕开始,永远不会有网格。

在模块内部,你的用户会立即看到新的停靠栏和侧边栏。

工作区被归入模块

现在每个工作区都属于一个模块,因为模块决定了它出现在哪个侧边栏中。已经有模块的工作区会保留它。对于其余的,升级不会猜测:

  • 属于某个用户的工作区会被归入私有,并且仍然对该用户显示;
  • 任何其他工作区会被归入自定义工作区。

把自定义工作区当作一份待办清单。打开管理工作区,选择自定义工作区,然后将每个工作区移动到它所属的模块。参见“移动或共享工作区”。

您旧的侧边栏会被复制到新的模块侧边栏中。原始侧边栏不会被更改或删除。

  • 由应用提供的侧边栏会被该应用为每个模块提供的新侧边栏替换。
  • 您站点创建或编辑的侧边栏会成为该模块的侧边栏(前提是该应用没有为该模块提供侧边栏)。如果一个模块有多个侧边栏,它们会合并为一个,输出结果会列出每次合并。无法用于网址的侧边栏名称(例如 Buying / Selling)会被自动调整。
  • 用户的个人副本会成为该用户对该模块侧边栏的“仅供我”安排。如果一个人在一个模块中有多个副本,它们会被合并。
  • “我的工作区”侧边栏不会被复制。私有工作区现在会单独显示,且仅对其所有者可见。
  • 指向已不存在内容的链接会按原样复制,因此单个失效链接不会阻止升级。之后可在编辑侧边栏中将其移除。

用户的个人侧边栏副本,会作为其自己的安排保留下来。

旧记录会保留,且为只读

旧的侧边栏记录会作为存档保留在站点上。不再有任何内容读取它们,尝试编辑其中一个时会显示一条消息,说明它是先前导航的存档。保留它们是为了在出现问题时可以重复转换。

指向 /desk/... 和 /app/... 页面的书签和链接仍然可以打开。地址现在还会包含您所在的模块,例如 /desk/selling/customer,并且旧地址在打开时会被更正为新形式。

切换到新导航

准备好后,将站点的主屏幕从后备图标网格移动到应用屏幕。不会丢失任何内容,并且在后备方案存在期间,如果您需要更多时间,可以返回它。

接受邀请

升级后,拥有系统管理员或工作区管理员角色的用户会在下次打开桌面时收到一次邀请,以试用新导航。

  • 试用会将整个站点切换到应用屏幕并重新加载页面。
  • 保留图标网格会让一切保持原样。

任一回答都会停止向站点上的所有人显示该邀请。两者都不会删除任何内容:图标和每个用户的安排都会保留,随时可供您切换回来。

移动到应用屏幕

无论您是否回答了邀请,您也可以随时自行切换:

  1. 在搜索栏中搜索桌面设置并打开它。
  2. 将桌面页面设置为应用。(桌面图标是后备网格。)
  3. 保存。

这会更改站点上所有人的主屏幕。

升级之后

迁移完成后,请逐项处理以下列表:

  1. 阅读迁移输出,并记录任何被合并的模块或被指出仍使用旧格式的应用。
  2. 以普通用户身份登录,而不是管理员,并检查他们的停靠栏是否列出了他们需要的模块,以及他们的侧边栏是否包含他们使用的内容。
  3. 清空自定义工作区。在管理工作区中,将其中的每个工作区移动到其真实模块。
  4. 重建未保留的内容。将您的侧边栏与升级前制作的列表进行比较。打开编辑侧边栏,选择面向所有人,然后添加回缺失的内容。请参阅自定义侧边栏。
  5. 为所有人安排停靠栏,如果您的用户需要不同的顺序。
  6. 授予工作区管理员角色给今后将负责导航的人员。

已知问题

这些是在升级一个完全自定义的测试站点时发现的,并且截至 2026 年 10 月仍未解决。请查看您版本的发行说明以了解修复情况。

  • 在应用提供侧边栏的模块中,站点更改不会被保留。如果您的站点在诸如销售、库存、制造或会计等模块中创建了自己的侧边栏,或编辑了其侧边栏,那么这些更改在升级后不会出现,因为该应用为该模块提供的新侧边栏会取代它们。个人副本不受影响,在没有应用提供侧边栏的模块中,站点侧边栏也不受影响。旧条目仍在存档中,因此修复后可以恢复它们。在此之前,请在面向所有人上使用编辑侧边栏重建它们。
  • 某些桌面图标被隐藏。在图标网格上,如果某个图标打开的侧边栏没有自己的工作区,它可能不再显示,因为它找不到要打开的模块侧边栏。切换到应用屏幕可以避免此问题。否则,请重新创建指向该模块工作区的图标。

撤销切换或升级

  • 若要暂时返回图标网格,请在桌面设置中将桌面页面设置为桌面图标。您的图标会与您离开时完全一致。请将其视为临时措施:该网格将在未来版本中移除。

  • 若要撤销整个升级,请恢复升级前所做的备份,以及应用的早期版本。这是唯一完整的回滚方式。

  • 若要重复侧边栏转换,例如在修复发布后,请让您的系统管理员运行:

    bench --site <your-site> execute frappe.patches.v16_0.convert_sidebars.execute
    </your-site>

它会跳过任何已有侧边栏的模块,所以请先移除你想替换的模块侧边栏。

面向应用开发者

应用过去将侧边栏放在单个 workspace_sidebar 文件夹中。这些文件不再被读取。在应用更新之前,其模块会使用根据其内容生成的侧边栏,这虽然可行,但会丢失应用精心编排的顺序。migrate 输出会列出所有处于此状态的应用。

要转换应用的侧边栏,请在开发站点上运行以下命令并提交新文件:

bench --site <your-site> convert-sidebar-fixtures --app <your-app> --dry-run
bench --site <your-site> convert-sidebar-fixtures --app <your-app>
</your-app></your-site></your-app></your-site>

该命令只写入新文件,并保留旧文件夹,因此你可以再次运行它。关于应用可以附带的其他所有内容,请参阅侧边栏和 Dock。

故障排除

某个模块的侧边栏看起来是生成的,而不是精心编排的。 其应用尚未针对新导航进行更新,或者该模块从未有过侧边栏。请向应用开发者请求更新,或通过编辑侧边栏为所有人统一安排一次。

某个用户丢失了个人侧边栏。 只有当其副本至少包含一个条目,并且属于仍然存在的模块时,才会被保留。请与用户一起使用仅为我重新构建它。

在任何侧边栏中都找不到某个工作区。 它没有模块。请打开它,并在提示时选择一个模块,或在管理工作区中设置一个。

常见问题

升级后,我的用户会看到不同的主屏幕吗?
在你切换之前不会。使用图标网格的站点会继续保留它作为回退方案,但请计划迁移:该网格将在未来版本中移除。

我们可以试用新导航后再返回吗?
目前可以。在桌面设置中切换桌面页面。只有在回退方案仍然存在时,才能返回图标网格。

  • 桌面导航
  • 桌面
  • 侧边栏
  • Dock
  • 工作区

工作区

工作区是一个页面,把团队需要的东西集中在一处:他们每天都要打开的列表的快捷入口、链接卡片、图表、数字卡片,以及最近记录的简短列表。比如销售团队可以有一个展厅工作区,里面放着新建报价单、未结订单和客户的按钮。

每个工作区都属于一个模块,并作为该模块侧边栏中的一个条目出现。大多数模块的侧边栏顶部都有一个工作区,通常叫首页。关于工作区如何与桌面其他部分配合,请参阅桌面导航。

开始之前

  • 任何有权限创建工作区的人都可以创建一个只有自己可见的私有工作区。
  • 共享工作区需要工作区管理员角色:创建、编辑或删除别人能看到的工作区,以及移动别人的工作区。系统管理员不会自动获得这个角色。请参阅用户与权限。
  • 应用自带的工作区标记为标准。站点可以修改它们,但修改内容会单独保存,这样应用更新仍能正常推送。请参阅标准工作区。

工作区菜单

每个工作区右上角的 … 按钮后面都有一个菜单:

  • 编辑会把页面切换到编辑模式,你可以在那里添加和排列区块。
  • 新建会创建另一个工作区。
  • 管理会打开管理工作区,你可以在那里移动、共享和删除工作区。
  • 重置为标准会出现在本站点已修改过的标准工作区上。

创建工作区

  1. 打开工作区应该出现的那个模块。
  2. 在任意工作区右上角选择 …,然后选择新建。
  3. 输入标题,例如调度看板。
  4. 选择类型:
    • 工作区用于一个由区块组成的页面(通常的选择);
    • 链接用于直接打开文档列表、页面或报表的侧边栏条目;
    • 网址用于打开网站的侧边栏条目。
  5. 在访问权限下,选择谁可以看到它:仅自己可见、对一组用户可见(然后选择角色)或对所有人可见。如果没有工作区管理员角色,只会提供仅自己可见。
  6. 检查模块。它会默认设为你当前所在的模块,并决定工作区出现在哪个侧边栏中。
  7. 可选地选择一个图标,然后选择创建。

新工作区打开时会显示一条简短的欢迎信息。接下来,向其中添加区块。

编辑工作区

  1. 选择 …,然后选择编辑。页面会切换到编辑模式,顶部有设置、放弃和保存。
  2. 按下文所述添加、更改和排列区块。
  3. 选择保存以保留更改,或选择放弃以丢弃更改。

使用区块

将鼠标指向一个区块即可显示其控件:

  • 左侧的 + 会在它后面添加一个新块;
  • 铅笔会更改该块的设置;
  • 手柄可让你把块拖到新位置;
  • … 会打开更多操作。

… 菜单提供删除、展开和收缩(用于让块变宽或变窄)、上移、下移和复制。

添加区块

选择一个区块旁边的 +,然后从模板中选择一种区块类型。需要设置的区块(例如快捷方式或图表)会打开一个对话框让你填写。

区块 显示内容
标题 用于章节的标题,大小从 H1 到 H6
文本 一个段落,支持粗体、斜体和链接
卡片 一组带标题的链接,指向文档类型、报表或页面
图表 一个仪表板图表,从站点上的图表中选择
快捷方式 一个按钮,可打开文档类型、报表、页面、仪表板或网址,可选显示实时计数
间隔 空白区域,用于分隔区块或将某个区块沿一行推开
入门引导 一个模块入门引导清单,带领新用户完成最初几步
快速列表 某个文档类型最近更新的记录,可选筛选条件。用户可以刷新它、更改筛选条件、创建记录,或从中打开完整列表
数字卡片 一个数字卡片,从站点上的卡片中选择
自定义区块 一个自定义 HTML 区块,用于其他区块无法覆盖的内容

快捷方式设置

快捷方式不仅能打开列表,还能做更多事情。点击它的铅笔图标即可设置:

  • DocType 视图:决定它打开的是列表、报表生成器、仪表板还是新建记录表单;
  • 计数筛选:用于缩小所打开列表范围的筛选条件,同时驱动快捷方式上显示的计数;
  • 该计数的颜色和格式,例如 {} Open。

工作区设置

编辑模式下的设置会打开工作区自身的记录。它列出了页面上所有的链接卡片、快捷方式、图表、数字卡片、快速列表和自定义区块,并包含是否隐藏和模块引导等字段。请在页面上直接添加和排列区块,而不是从这个记录中操作:该记录并不知道新块应该放在页面的哪个位置。

谁可以看到工作区

桌面会按以下顺序进行检查,任何设置都无法授予它们不允许的访问权限:

  1. 模块。 如果用户无法打开工作区所属模块中的任何内容,或者该模块在其用户记录的屏蔽模块中,则该用户看不到该模块的侧边栏,因此也不会看到该工作区。
  2. 访问权限。 仅限你表示只有所有者本人可见。对一组用户表示拥有其中任一角色的用户可见。对所有人表示所有能进入该模块的人都可见。
  3. 是否隐藏。 工作区管理员可以在工作区记录上勾选是否隐藏,将其从其他人的侧边栏中移除。工作区管理员仍然可以看到它,顶部会有一条说明解释原因。

区块同样遵循用户的权限:用户无法读取的图表或数字卡片会对其隐藏。

移动、共享或删除工作区

  1. 在任意工作区上选择…,然后选择管理。
  2. 在左侧选择一个模块。其工作区会列在右侧,并显示每个工作区的可见范围。
  3. 选择一个工作区,然后修改其标题、模块、图标、访问权限或角色。
  4. 选择保存。删除会在你确认后移除该工作区,且无法撤销。

工作区管理员可以在这里看到所有工作区,包括其他用户的私有工作区,以便整理站点。其他人只能看到自己可以管理的工作区。访问权限列显示为标准、所有人(包括限定角色的工作区)、私有,或者对于既非公开也无所属者的工作区显示为共享。

标准工作区与重置为标准

应用自带的工作区是标准的。你可以修改其图标、可见范围和布局,但标题和模块属于应用本身。

对标准工作区的修改会保存为单独的自定义内容,而不是写入应用的副本,这样应用才能继续更新它。保存新的布局是唯一有代价的修改:首次保存时,桌面会警告应用后续的布局变更将不再出现在本站点上,并要求你通过保存布局确认。无论哪种情况,其角色、图标和可见性都会继续跟随应用。

要撤销所有修改并恢复应用自带的版本,请选择…,然后选择重置为标准。这需要工作区管理员角色。

私有工作区与我的空间

访问权限为仅限你的工作区只属于你。它会出现在所选模块的侧边栏中,但仅对你可见。

我的空间会将你所有的私有工作区汇集到一个侧边栏中,无论它们分别归属于哪个模块:

  1. 点击你的头像,然后选择设置。

  2. 在偏好设置下,开启显示我的空间。

  3. 在用户菜单顶部选择我的空间。

我的空间没有停靠栏,因为你的页面不属于任何单一应用。在其标题菜单中选择所有应用即可离开。

默认工作区

用户记录上的默认工作区决定了当链接未指定模块时,桌面回退到哪个模块的侧边栏。留空时,桌面会选择包含该用户可打开内容最多的模块。它不会改变登录后打开的内容;那是桌面页面上的默认应用。

不属于任何模块的工作区

没有模块的工作区没有可显示的侧边栏,因此只能通过搜索找到。这种情况大多出现在从旧版本迁移过来的工作区上。当有人打开这样的工作区时,如果用户有权放置,桌面会提示将其添加到某个模块;否则会说明它不属于任何应用。工作区管理员也可以通过管理工作区批量修复这些问题。请参阅迁移到新导航。

面向开发者:随应用发布工作区

  1. 在开发站点上开启开发者模式(在其 site_config.json 中设置 developer_mode: 1)。
  2. 创建或打开工作区,将其模块设置为应用的一个模块,并在其记录上勾选标准。
  3. 在编辑模式下构建页面,然后选择保存。

在开发者模式下,保存标准工作区会编辑应用自身的副本,并将其导出为 JSON 到应用中该模块的文件夹。提交该文件后,bench migrate 会在每个站点上安装或更新它。若要将工作区作为模块侧边栏中的条目,或作为应用停靠栏上的快捷方式,请参阅“发布应用的侧边栏”和“发布应用的停靠栏”。

与早期版本相比有哪些变化

如果你在版本 14 或 15 中使用过工作区:

  • 工作区不再拥有自己的公开和我的工作区侧边栏部分。每个工作区都是其模块侧边栏中的一个条目,而你的私有工作区会集中到“我的空间”中。
  • 不再提供子工作区(父级页面)。请使用侧边栏中的分区来对条目进行分组。
  • 工作区详细信息在管理工作区中更改,而不是在侧边栏中拖动更改。使用编辑侧边栏重新排序工作区。
  • 新增了第十种块类型:自定义块,并且块可以被复制。

故障排除

我的新工作区不在我预期的侧边栏中。请在管理工作区中检查其模块。

其他人看不到我共享的工作区。如果其访问权限为对一组用户,则他们需要拥有其中一个角色。他们还需要能够访问其模块,并且该工作区不能标记为已隐藏。

我无法更改标准工作区的标题或模块。它们属于发布该工作区的应用。

应用为工作区提供的新布局没有出现在我们的站点上。有人在这里为它保存了布局。请选择…,然后选择重置为标准,以再次跟随应用。

访问权限下只有“仅限你”这一个选项。共享工作区需要“工作区管理员”角色。

我从工作区记录中添加的块没有显示。请改为在页面的编辑模式中添加块。

常见问题

一个工作区可以出现在两个侧边栏中吗?
一个工作区只属于一个模块。若要从另一个模块访问它,请使用编辑侧边栏添加指向它的链接,或使用管理停靠栏将其固定到停靠栏。

工作区管理员能看到我的私有工作区吗?
他们可以在管理工作区中看到这些工作区存在。其他任何人都不会在自己的侧边栏中看到它们。

使用私有工作区需要“我的空间”吗?
不需要。它们始终会为你显示在其模块的侧边栏中。“我的空间”只是将它们集中到一个地方。

  • 桌面导航
  • 侧边栏
  • 停靠栏
  • 迁移到新导航

码头

Dock 是桌面最左侧边缘那一列窄窄的图标。每个图标会打开你当前所在应用的一个模块,比如 ERPNext 中的 Selling 或 Stock。应用的标志位于顶部,你的个人头像位于底部。

每个应用都有自己的 Dock。当你打开 Frappe HR 时,Dock 会切换为 Frappe HR 的模块,而且调整一个应用的 Dock 不会改变另一个应用的 Dock。

本页介绍如何使用 Dock、选择它的显示方式、为自己或整个站点调整它,以及应用如何自带它的 Dock。关于 Dock 如何与桌面的其他部分配合,请参阅 Desk 导航。

开始之前

  • 任何人都可以调整自己的 Dock。 其他人看不到这些更改。
  • 为所有人调整需要 Workspace Manager 角色。 System Manager 不会自动获得这个角色。请参阅用户和权限。
  • Dock 只显示你能打开的内容。 如果你没有权限打开某个模块中的任何内容,那么无论怎么调整,该模块都不会显示。

使用 Dock

  1. 将鼠标指向某个图标,即可看到该模块的名称。
  2. 选择它。该模块会打开其侧边栏中的第一个条目,同时 Sidebar 会切换到该模块。

  • 顶部的应用标志 会返回桌面。
  • 底部的个人头像 会打开用户菜单:Settings、Manage Dock、Reload 和 Logout,如果你开启了 My Space,还会显示它。

Dock 不会显示在 My Space 中,因为你的私人工作区不属于任何单个应用。

选择固定或浮动 Dock

默认情况下,Dock 是 Pinned(固定)的:它始终位于 Sidebar 旁边。将它设为 Floating(浮动)可以获得更多空间:Dock 会隐藏起来,当你将鼠标一直移到窗口最左侧边缘时,它会滑入显示。

  1. 选择你的个人头像,然后选择 Settings。
  2. 选择 Appearance,然后滚动到 Dock。
  3. 选择 Pinned 或 Floating。它会立即生效。

浮动 Dock(已高亮)会在你的鼠标到达左边缘时滑入并覆盖在 Sidebar 上。

使用浮动 Dock 时,你的个人头像会移动到 Sidebar 的底部,以便用户菜单仍然触手可及。这是个人设置;其他人的 Dock 不会改变。

调整 Dock

打开 Manage Dock

  1. 打开你想调整其 Dock 的应用中的任意模块。
  2. 选择你的个人头像,然后选择 Manage Dock。

Manage ERPNext Dock 窗口会打开,其中 Entries 下是各个模块,还有结果的 Preview。Workspace Manager 会在右上角看到一个开关:For everyone(对他们来说是默认值)或 Just for me。没有该角色时就没有这个开关,所有更改都只对你生效。

重新排序或隐藏模块

  • 重新排序。 通过拖动手柄来拖动某一行。列表顶部就是 Dock 的顶部。
  • 将模块从 Dock 中移除。 选择眼睛图标。该行会变灰,并从预览中消失。再次选择眼睛图标可将其放回。

将模块从 Dock 中移除并不会取消任何人的访问权限:它的记录仍然可以从链接、搜索和其他模块中打开。标记为 app ships this off 的行是应用默认隐藏的模块;眼睛图标仍然会显示它。

添加模块、工作区或网站

  1. 选择列表上方的 Add。
  2. 在 What it opens 下,选择 Module(打开该模块及其侧边栏)、Workspace(打开一个工作区,位于其模块的侧边栏中)或 Web address(打开桌面外部的网站)。
  3. 选择模块或工作区,或者粘贴地址。
  4. 选择一个 Icon,并输入一个 Title,也就是有人指向该图标时显示的名称。
  5. 选择 Add,然后将新行拖到你想要的位置。

保存或撤销

选择 Save。系统会显示一条消息,确认你是为自己保存(Dock updated)还是为所有人保存(Dock updated for everyone)。

  • Reset 会清除你正在编辑的调整,并移除你添加到其中的快捷方式。Dock 会回退到所有人看到的内容(在 Just for me 下)或应用自带的内容(在 For everyone 下)。选择 Save 以应用它。
  • Reset for everyone 适用于 Workspace Manager。它会移除该站点的调整 以及每个用户自己对该应用 Dock 的调整,因此所有人都会回到应用自带的状态。它会要求你确认,立即生效,且无法撤销。

当应用添加新模块时

保存布局后,你的停靠栏会完全保持你离开时的样子。应用更新或新安装的应用添加的模块不会自动出现。它会在你的条目之后列在管理停靠栏中,眼睛图标被划掉;选择眼睛图标并保存即可添加。

这样可以防止你排列好的停靠栏在你不知情的情况下发生变化。侧边栏则相反:来自应用的新条目总是会出现在那里。

面向开发者:发布应用的停靠栏

应用的停靠栏是应用附带的一个文档。只有它列出的模块和快捷方式才能出现在停靠栏上,所以请列出你希望用户能访问的每一个模块。

  1. 在开发站点上开启开发者模式(在其 site_config.json 中设置 developer_mode: 1)。
  2. 打开你应用的一个模块,然后点击管理停靠栏。
  3. 在开关中,选择随应用发布。此选项仅在开发者模式下出现。
  4. 排列停靠栏。在此处隐藏某一行会将其默认关闭发布(眼睛图标的提示为默认关闭发布);站点和用户仍然可以显示它。
  5. 选择保存。消息已导出到应用表示确认。

你应用的停靠栏会写入 <app>/dock/<app>/<app>.json</app></app></app>。提交它,bench migrate 会在每个站点上导入它。在应用层级上,编辑器还会告诉你有多少你应用的模块完全没有被列出,以免有任何模块被意外遗漏。

如果你的应用还没有附带停靠栏,请在面向所有人上排列它,然后选择窗口底部的导出到应用。该排列会被复制到你应用中的一个新停靠栏中,而站点自身的排列保持不变。

关于从桌面打开你应用的图标,请参阅面向开发者:将你的应用放到桌面上。

配套应用

有些应用是作为另一个应用的补充而非独立存在的;例如一个地区合规应用可能会向 ERPNext 添加几个模块。这类应用可以通过在其自带的停靠栏中将挂载到设置为主应用,从而将其条目放到主应用的停靠栏上。这样它就没有自己的停靠栏或桌面图标,其工作区会在主应用的停靠栏内打开。

挂载仅在以下条件满足时生效:主应用已安装、主应用附带停靠栏、且配套应用附带自己的条目。否则配套应用的行为与任何其他应用相同。只有应用自带的停靠栏才能设置挂载到;站点和用户无法将应用移动到另一个应用的停靠栏上。

故障排除

我的停靠栏中缺少某个模块。 你可能没有权限打开其中的任何内容,它可能被你的用户记录中的屏蔽模块所屏蔽,或者它可能被隐藏了。打开管理停靠栏,找到它并查看被划掉的眼睛图标。

新应用的模块不在停靠栏上。 打开管理停靠栏,在列表末尾找到它们,眼睛图标被划掉,选择眼睛图标并保存。或者使用重置恢复到应用附带的状态。

我的排列被替换了。 某位工作区管理员使用了为所有人重置。

停靠栏消失了。 它可能被设置为浮动:将指针移到左边缘,或者在设置 > 外观下切换为固定。停靠栏在“我的空间”中也不会显示。

用户菜单中缺少管理停靠栏。 你当前所在的页面不属于任何应用,例如“我的空间”。请先打开某个应用的模块。

某个模块始终不出现,即使在管理停靠栏中也没有。 应用附带的停靠栏没有列出它。需要开发者将其添加到应用的停靠栏中。

常见问题

我可以在停靠栏上重命名模块吗?
不可以。停靠栏显示每个模块自己的名称。你添加的快捷方式可以使用你自己的标题。

我可以把另一个应用的模块放到这个停靠栏上吗?
不可以。你可以改为添加一个工作区或网址快捷方式。

从停靠栏移除模块会将其从搜索中删除吗?
不会。其文档和报表仍然可以通过搜索找到,也仍然可以从链接打开。

  • 桌面导航
  • 侧边栏
  • 桌面
  • 迁移到新导航
  • 工作区

侧边栏

侧边栏是停靠区旁边较宽的那一列。它列出了你当前所在模块中的所有内容:工作区、你在这里使用的文档列表、报表和仪表盘。每个模块都有一个侧边栏,当你切换到另一个模块时,侧边栏也会随之变化。

本页介绍如何使用侧边栏、如何为你自己或整个站点自定义它、工作区如何显示在其中,以及应用如何提供它的侧边栏。关于侧边栏与桌面其余部分的关系,请参阅桌面导航。

开始之前

  • 任何人都可以自定义自己的侧边栏。 其他人看不到这些更改。
  • 为所有人更改侧边栏需要工作区管理员角色。 系统管理员不会自动获得此角色。请参阅用户和权限。
  • 侧边栏从不授予访问权限。 你无权打开的条目会被略去,隐藏某个条目也不会剥夺任何人的权限。

使用侧边栏

选择一个条目,即可在屏幕的主要区域打开它。

  • 分区。 带有箭头的条目(例如报表)是一个分区。选择它可以显示或隐藏其中的条目。
  • 搜索和通知。 顶部的这些条目会打开搜索栏和你的通知。要隐藏搜索,请在设置 > 偏好设置下关闭显示搜索栏。
  • 标题菜单。 选择侧边栏顶部的模块名称,会打开一个菜单,其中包含所有应用(返回桌面)、编辑侧边栏和帮助。

模块总是打开其侧边栏中的第一个条目。没有单独的“主页”设置:如果你想让销售模块打开销售订单而不是它的工作区,请把销售订单移到顶部。

自定义侧边栏

你的更改如何与其他人的更改叠加

侧边栏由三个层构建,每一层都叠加在前一层之上:

  1. 应用自带的内容。 ERPNext、Frappe HR 和其他应用都为其每个模块自带一个侧边栏。如果某个模块没有任何应用自带侧边栏,系统会根据其包含的内容生成一个。
  2. 为所有人。 工作区管理员所做的更改,站点上的每个用户都能看到。
  3. 仅为我。 你自己的更改,只有你能看到。

每一层只更改它提到的内容。如果你的工作区管理员为所有人隐藏了POS,而你把销售发票移到了自己的顶部,你会同时看到这两项更改。当应用更新添加新条目时,它仍会出现在你的侧边栏上,即使你之前重新排列过。

打开侧边栏编辑器

  1. 转到你想更改的模块,例如库存。
  2. 选择侧边栏顶部的模块名称,然后选择编辑侧边栏。

会打开管理库存侧边栏窗口。你的条目在左侧的条目下。预览在右侧显示侧边栏的外观。在你选择保存之前,什么都不会改变。

如果你是工作区管理员,右上角有一个开关,显示你正在为谁进行排列:为所有人(工作区管理员的默认选项)或仅为我。没有该角色就没有开关,所有更改都只为你自己。

重新排列和隐藏条目

每一行左侧有一个手柄,右侧有一个铅笔图标和一个眼睛图标。

  • 重新排序。 通过手柄拖动某一行。你拖到顶部的任何内容都会成为该模块的落地页。
  • 移入分区。 将某一行拖到分区标题(例如报表)下方。它会缩进显示,表明它属于该分区。将它拖回左侧即可将其移出。
  • 隐藏。 选择眼睛图标。该行会变灰并从预览中消失,但会在列表中保留其位置,以便你可以用眼睛图标将其恢复。

重命名条目或更改其图标

  1. 选择该行上的铅笔图标。
  2. 在重命名条目中,输入新的标签,并可选地选择一个图标。将图标留空可保留当前图标。
  3. 选择完成。

重命名只会改变条目的显示方式。它仍然打开相同的列表、报表或页面,如果应用之后更改了该链接的指向,你重命名后的条目也会随之更新。

添加条目或分区

  1. 选择列表上方的添加。
  2. 在类型下,选择链接以添加要打开的内容,或选择分区以添加标题。
  3. 对于链接,在链接到下选择它打开的内容:文档类型(文档列表)、页面、报表、工作区、仪表盘或URL。
  4. 选择该项目。标签会自动填充;如果你愿意,可以更改它。
  5. 可选地选择一个图标,然后选择添加。

新条目会添加到列表底部。要构建一个分组,请先添加分区,再添加其条目:每个条目都会落在你刚添加的分区下。选择分区上的铅笔图标以打开编辑分区,你可以在其中重命名分区,并开启可折叠、默认折叠或显示箭头。添加已在侧边栏但被隐藏的内容,只会让它重新显示。

保存或撤销

选择保存。系统会显示一条消息,确认你是为自己保存(侧边栏已更新)还是为所有人保存(侧边栏已为所有人更新)。

  • 列表上方的重置会在你确认后移除你正在编辑的布局。在仅为我下,你会回到所有人看到的状态。在为所有人下,站点会回到应用自带的状态,但用户会保留自己的更改。
  • 底部的重置为标准适用于工作区管理员。它会移除此模块侧边栏的站点更改以及每个用户自己的更改,因此所有人都会回到应用自带的状态。它会要求你确认,且无法撤销。

侧边栏中的工作区

工作区是一个包含快捷方式、卡片、图表、数字卡片和快速列表的页面。每个工作区都属于一个模块,并作为该模块侧边栏中的一个条目出现,通常位于顶部,名为主页。

  • 新工作区会出现在你创建它时所选模块的侧边栏中。
  • 你的私有工作区只会出现在你自己的侧边栏中,而我的空间会将它们汇集到你自己的一个侧边栏中。
  • 要将工作区移动到另一个模块的侧边栏,请在管理工作区中更改其模块。
  • 要重新排序或隐藏工作区条目,请像处理其他条目一样使用编辑侧边栏。

创建工作区、编辑和共享工作区,以及我的空间,均在工作区页面中介绍。

面向开发者:发布应用的侧边栏

你在开发站点上使用同一个编辑器安排侧边栏,然后将其保存到应用中。

  1. 在开发站点上开启开发者模式(在其 site_config.json 中设置 developer_mode: 1)。
  2. 打开模块,然后选择编辑侧边栏。
  3. 在切换项中,选择为你的应用。此选项仅在开发者模式下出现。
  4. 安排侧边栏,然后选择保存。消息侧边栏已保存到其应用会确认此操作。

每个侧边栏都会写入 <app>/<module>/sidebar/<name>/<name>.json</name></name></module></app>。将其与你的应用一起提交,bench migrate 会在每个安装或更新该应用的站点上导入它。

  • 你没有为其发布侧边栏的模块仍会获得一个侧边栏,该侧边栏由其工作区、文档类型、报表、页面和仪表板生成。编辑器会从该生成的侧边栏开始。
  • 你在应用层隐藏的条目会以隐藏状态发布。站点和用户仍然可以显示它。
  • 在为你的应用上选择重置会停止发布该侧边栏:它会删除记录和文件,模块会回到生成的侧边栏。
  • 侧边栏以其标题命名,标题会成为页面地址的一部分(/desk/selling/customer)。标题不能包含 /、?、#、% 或 \,也不能是另一个模块的侧边栏名称。

站点和用户将他们的更改保存在不同的层中,因此你的更新永远不会覆盖它们,你之后添加的条目仍会到达重新排列过侧边栏的用户。

仅存放代码的模块

如果某个模块的存在是为了存放代码,而人们在另一个拆分中导航,请在 hooks.py 中的 code_only_modules 下列出它,并列出接管其导航的模块:

code_only_modules = {
    "My Core": ["Orders", "Settings"],
}

仅代码模块会保持在 Dock 之外,但会保留其所有文档类型、报表和页面。当 desk 决定其某个实体在哪个侧边栏中打开时,它会改为在列出的模块中查找。顺序很重要:列出的第一个模块在平局时胜出,而它们都未列出的实体会在用户能看到的第一个模块中打开。

旧侧边栏文件

应用过去在 <app>/workspace_sidebar/</app> 中发布侧边栏。这些文件不再被读取,bench migrate 会列出仍包含它们的应用。使用 convert-sidebar-fixtures 转换它们;请参阅面向应用开发者。

故障排除

我期望的条目缺失了。 你可能没有打开它的权限。如果你有权限,它可能被隐藏了:打开编辑侧边栏,并查找眼睛图标被划掉的条目。

模块打开到了错误的页面。 模块会打开其第一个条目。将你想要的条目拖到顶部并保存。

我的更改消失了。 工作区管理员可能使用了重置为标准,这会移除每个人自己的更改。

重命名后的条目恢复为旧名称。 如果该条目被更改为指向其他地方,它会被视为新条目。请再次重命名。

缺少“为所有人”或“为你的应用”选项。 为所有人需要工作区管理员角色;为你的应用需要开发者模式。

某个模块的侧边栏看起来是生成的,而不是精心整理的。 其应用没有为它发布侧边栏,或者仍发布旧格式。

常见问题

在我自定义侧边栏后,会错过应用之后添加的条目吗?
不会。它们仍会出现在你安排的条目之后。

我可以隐藏整个模块吗?

不是从侧边栏。在管理 Dock 中将其从 Dock 移除,或请管理员在您的用户记录上屏蔽该模块(屏蔽模块)。

一个工作区可以出现在两个侧边栏中吗?
一个工作区只属于一个模块。要从另一个模块访问它,请使用编辑侧边栏添加指向它的链接,或将其放到 Dock 上。

  • 桌面导航
  • Dock
  • 桌面
  • 迁移到新导航
  • 工作区

桌面

桌面是你登录后看到的第一个屏幕。它会为你可以使用的每个应用显示一个图标,例如 ERPNext、Frappe HR 和 Framework。选择某个应用即可打开它。

桌面是工作台导航的顶层,导航分三步进行:

  1. 应用,位于桌面上。选择你想在其中工作的应用。
  2. 模块,位于停靠栏上。选择该应用中的区域。
  3. 模块中的所有内容,位于侧边栏上。选择要打开的内容。

从更早的 Version 16 版本升级而来的站点可能仍会显示较旧的桌面图标网格。该网格仅作为过渡期间的备用方案保留;请参阅桌面图标网格。

关于桌面如何与工作台的其他部分配合,请参阅工作台导航。

开始之前

  • 每个人都能看到桌面。它只显示你有权限使用的应用。

打开应用

  1. 登录。桌面随即打开。
  2. 选择一个应用。它会在该应用选定的页面上打开,通常是它的第一个模块。

顶部的搜索栏会搜索整个站点,铃铛和你的个人资料图片会打开通知和你的用户菜单。

返回桌面

从工作台的任何位置,你可以:

  • 选择停靠栏顶部的应用徽标(其工具提示显示为所有应用);或者
  • 选择侧边栏顶部的模块名称,然后选择所有应用。

停靠栏顶部高亮显示的应用徽标可返回桌面。

登录后跳过桌面

如果你始终在一个应用中工作,可以在登录后直接打开它。在你的用户记录上设置默认应用。系统管理员可以在系统设置中为所有尚未选择默认应用的人设置默认应用。

哪些应用会出现

当满足以下条件时,应用会出现在应用屏幕上:

  • 它声明自己出现在应用屏幕上(请参阅面向开发者);
  • 你通过了该应用自身的权限检查(如果它有的话);并且
  • 该应用的设置已完成,除非你是系统管理员。

配套应用——即将其模块添加到另一个应用的停靠栏的应用——不会获得自己的图标。它的模块会改为出现在宿主应用的停靠栏上。请参阅配套应用。

应用按各自声明的编号排序,编号最小的排在最前,Framework 始终排在最后。

桌面图标网格

更早的 Version 16 版本打开时会显示一个桌面图标网格,这些图标可以指向工作区、侧边栏或链接,并可以整理到文件夹中。该网格现在是一个备用方案,保留它是为了让升级后站点的主屏幕不会在用户不知情的情况下发生变化。新站点从不使用它,并且在大多数站点迁移到应用屏幕后,它将在未来的版本中被移除。

从更早的 Version 16 版本升级而来的站点上的桌面图标网格。

在升级后的站点上,系统管理员和工作区管理员会被邀请一次尝试应用屏幕。系统管理员也可以随时将站点迁移过来:

  1. 在搜索栏中搜索桌面设置并打开它。
  2. 将桌面页面设置为应用。
  3. 保存。

这会在站点上的每个人下次加载工作台时更改他们的桌面。不会删除任何内容:图标及其排列方式都会保留,因此站点在完成迁移之前可以返回桌面图标。只有桌面会改变;停靠栏和侧边栏在两种情况下工作方式相同。请参阅迁移到新导航。

面向开发者:将你的应用放到桌面上

在你的应用的 hooks.py 中声明 add_to_apps_screen。关于钩子如何工作,请参阅 hooks。

add_to_apps_screen = [
    {
        "name": "my_app",
        "logo": "/assets/my_app/images/logo.svg",
        "title": "My App",
        "route": "/desk/my-module",
        "has_permission": "my_app.utils.check_app_permission",
        "sequence_id": 50,
    }
]
键 作用
name 应用的名称,与 hooks.py 中一致
logo 显示在应用屏幕上和应用停靠栏顶部的图标
title 显示在图标下方的名称
route 图标将用户带到哪里,通常是应用的第一个模块
has_permission 可选。一个函数,返回当前用户是否可以使用该应用。未通过检查的用户既看不到图标,也看不到该应用的停靠栏
sequence_id 可选。应用在应用屏幕上的位置;数值越小越靠前。没有设置的应用默认为 100,Framework 固定排在最后,为 1000

对于某个用户未通过 has_permission 的应用,工作台仍然知道它的名称,因此任何引用它的内容都能被正确标注。

要在你的应用打开后为它提供模块停靠栏,请随应用一起发布一个停靠栏。请参阅面向开发者:发布你的应用的停靠栏。

疑难解答

应用屏幕上缺少某个应用。 你可能未通过它的权限检查,它的设置可能尚未完成,或者它可能是一个配套应用,其模块位于另一个应用的停靠栏上。开发者可以检查该应用是否声明了 add_to_apps_screen。

我看到的是图标网格,而不是应用图标。 该站点已升级,但仍处于备用网格上。系统管理员可以在桌面设置中将其迁移到应用屏幕。

升级后,部分图标从图标网格中消失了。 如果某个图标打开的是没有自己工作区的侧边栏,它可能不再显示。请参阅已知问题。

登录后打开的是某个应用而不是桌面。 你的用户记录或系统设置中设置了默认应用。

常见问题

新站点应该使用图标网格吗?
不应该。应用屏幕才是预期的桌面,图标网格仅为升级后的站点在迁移期间保留。

每个用户可以自己选择桌面吗?
不可以。桌面页面适用于整个站点。每个用户可以设置自己的默认应用来跳过桌面。

为什么 Framework 总是排在最后?
Framework 声明的编号是 1000,所以它排在你日常使用的应用之后。

  • Desk 导航
  • Dock
  • 侧边栏
  • 迁移到新导航
  • 工作区

简介

桌面是你进行日常工作的地方:创建销售订单、查看库存、审批请假。本页介绍它的组织方式:桌面上的应用,每个应用在停靠栏上的模块,以及每个模块在其侧边栏上的内容。

从左到右:停靠栏、你所在模块的侧边栏,以及你从中打开的页面。

应用和模块

Frappe Framework 按应用和模块来组织。一个应用(例如 ERPNext 或 Frappe HR)由多个模块组成,例如销售、库存或采购。

桌面

桌面是你登录后看到的第一个界面。它为你可使用的每个应用显示一个图标,选择其中一个就会打开该应用及其停靠栏。

参见桌面。

停靠栏

停靠栏是屏幕最左侧那一列窄窄的图标。每个图标是你所在应用的一个模块:在 ERPNext 中你会看到设置、会计、销售、采购、库存等等。选择一个图标即可切换到该模块。顶部的应用标志会带你返回桌面,底部的个人头像会打开你的用户菜单。

停靠栏(已高亮):你所在应用的每个模块对应一个图标。

每个应用都有自己的停靠栏。当你打开 Frappe HR 时,停靠栏会切换为 Frappe HR 的模块。

参见停靠栏。

侧边栏是停靠栏旁边那一列较宽的栏。它列出你在停靠栏上所选模块中的所有内容:它的工作区、你在那里使用的单据列表(例如物料、仓库或库存分录),以及像报表这样将相关条目分组的区块。选择某个条目即可在屏幕主区域中打开它。

侧边栏(已高亮):你所在模块内的所有内容。

每当你切换模块时,侧边栏都会随之变化。在停靠栏上选择销售,侧边栏就会列出客户、报价单、销售订单以及销售模块的其余内容。

参见侧边栏。

从现有的第 16 版站点升级

升级会将你旧的侧边栏转换为模块侧边栏。你的桌面图标网格会作为备用保留,直到管理员将站点迁移到应用界面。参见迁移到新的导航。

  • 桌面
  • 停靠栏
  • 侧边栏
  • 工作区
  • 迁移到新的导航