ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenProject 工作包编辑完全指南:字段更新、评论、提醒、关注者与批量操作

OpenProject 工作包编辑完全指南:字段更新、评论、提醒、关注者与批量操作 OpenProject 工作包编辑完全指南字段更新、评论、提醒、关注者与批量操作【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject导读本文是 OpenProject 用户手册中「编辑工作包Edit work packages」章节的完整技术指南围绕工作包的日常编辑操作展开从双击表格行进入编辑、内联修改字段到链接 Wiki 页面、添加评论与 提及、设置个人提醒、管理关注者Watchers、附加文件、导出与批量编辑。读者将掌握 OpenProject 中编辑工作包的全部常用路径与细节并能结合源码理解提醒调度、关注者权限校验等底层实现原理。概述工作包编辑能力一览下表列出本文将要讲解的编辑功能及其说明方便快速定位功能说明更新工作包对已有工作包进行修改链接或创建 Wiki 页面将工作包与已有 Wiki 页面建立链接或新建 Wiki 页面内部评论Enterprise 附加功能发表仅限特定人群可见的工作包评论表格视图中更新工作包使用工作包表格的快捷右键菜单直接操作附加文件到工作包手动向工作包附加文件设置工作包提醒为工作包设置个人提醒关注者Watchers为工作包添加或移除关注者导出工作包将工作包导出为其他格式批量编辑工作包一次性编辑多个工作包更新工作包Update a work package在 OpenProject 中编辑工作包主要有两条入口在表格视图中双击工作包行打开分屏视图查看详情。进入工作包详情后点击任意字段即可进行内联编辑例如修改描述Description、状态Status、优先级Priority、负责人Assignee或添加评论。保存方式根据字段类型有所不同描述字段点击对勾checkmark图标保存修改其他输入字段按Enter键即可保存。[!TIP] 如果你打算将工作包导出为 PDF 格式可以在描述字段中插入分页符page break使描述在 PDF 报告中按页显示。更新成功后工作包顶部会显示绿色的成功提示消息。所有对工作包的修改都会被记录在工作包「活动Activity」标签页中形成完整的变更历史。[!NOTE] OpenProject不支持通过 CtrlZ 撤销对工作包的修改修改前请确认字段内容。编辑器本地备份Autosave如果你在编辑过程中导航离开了当前页面或由于技术故障未能保存修改不要慌张——OpenProject 的编辑器工具栏中提供**本地备份恢复restore local backups**功能可以找回最近的编辑内容。编辑器会保存编辑内容的本地副本供你在必要时恢复。团队管理与角色区分Assignee 与 Accountable给工作包分配团队成员时需要区分两个概念负责人Assignee当前被分配、正在处理该工作包的人负责方Accountable对工作包交付结果负责的人按定义而言。从负责人Assignee或负责方Accountable的下拉菜单中分别选择对应的团队成员即可。如果下拉菜单中找不到某位团队成员说明该成员可能还不是项目成员需要先邀请其加入项目。更新工作包状态要更新工作包状态点击工作包详情中的当前状态然后在下拉列表中选择新状态即可。请注意不同工作包类型Type可用的状态可能不同状态列表由管理员在系统管理system administration中进行配置例如可以定义「新New」「进行中In progress」「已关闭Closed」等流转规则。链接或创建 Wiki 页面你可以将已有的 Wiki 页面链接到工作包也可以新建一个 Wiki 页面有两种入口从工作包描述中使用富文本编辑器工具栏从工作包的「Wiki 页面Wikis」标签页中管理见下文 管理已链接的 Wiki 页面。从描述中链接或创建 Wiki 页面在富文本编辑器工具栏中点击Insert插入然后选择Existing wiki page已有 Wiki 页面或New wiki page新建 Wiki 页面。这两个选项同样适用于其他支持富文本编辑器的地方包括会议描述与结论、评论、Wiki 页面内容以及类型为Text文本的自定义字段。后续步骤取决于你是在创建新页面还是链接已有页面。新建 Wiki 页面输入新 Wiki 页面的标题如果系统提示选择Wiki providerWiki 提供方并点击Next下一步。根据系统配置你可以在以下提供方中选择OpenProject需要管理员启用了 OpenProject 项目 Wiki外部 Wiki如果管理员配置了外部 Wiki 提供方例如XWikiEnterprise 附加功能。[!NOTE] 如果只配置了一个 Wiki 提供方OpenProject 会自动使用它并跳过提供方选择步骤。选择父 Wiki 页面parent wiki page点击Add添加创建 Wiki 页面并在工作包描述中插入指向该页面的链接。链接已有 Wiki 页面命名步骤会被跳过如果配置了多个提供方需要先选择 Wiki 提供方然后点击Next搜索并选择要链接的 Wiki 页面如果你已经知道目标地址也可以直接输入 URL点击Add将链接添加到工作包描述中。链接添加成功后Wiki 页面会以链接形式插入到工作包描述中同时所有已链接的 Wiki 页面都会出现在工作包的Wikis标签页中。管理已链接的 Wiki 页面工作包的Wikis标签页展示与该工作包相关的所有 Wiki 页面。根据你的配置和已有链接该标签页可能包含以下分区每个已配置的 Wiki 提供方一个分区例如OpenProject或XWiki Knowledge Hub列出相关 Wiki 页面Mentioned in description描述中提及Referenced in被引用。每个 Wiki 提供方分区中可以通过点击Wiki page并选择Existing wiki page或New wiki page来创建更多链接流程与在描述中插入 Wiki 页面一致。移除链接点击行末的三点菜单选择Remove page link移除页面链接。Mentioned in description与Referenced in分区是信息展示性的它们显示已经被工作包引用或引用工作包的 Wiki 页面。这两个分区可以展开/折叠仅当存在匹配引用时才显示分区标题会标注相关页面数量。提升为相关页面可以将「描述中提及」或「被引用」分区中的 Wiki 页面转换为「相关页面」。点击页面旁边的三点菜单选择 Add to related pages添加到相关页面即可。所有 Wiki 页面条目均可点击点击后会在对应 Wiki 页面中打开。给工作包添加评论要添加评论打开工作包的全屏视图或分屏视图在「活动Activity」标签页底部即是评论输入框。[!TIP] 在手机、平板等较窄屏幕上评论输入框可能显示在顶部具体取决于你的账户设置。引用评论Quote要回复某条特定评论并引用它点击评论右侧的More三点图标选择Quote this comment引用此评论。被引用评论的作者会自动被 提及并收到回复通知。编辑评论Edit点击评论右侧的More三点图标选择Edit this comment编辑此评论即可修改评论内容。根据你的权限你可能还可以编辑其他用户的评论。复制评论链接Copy linkOpenProject 支持复制指向特定评论的直接链接。点击评论右侧的More三点图标选择Copy link to clipboard复制链接到剪贴板即可。内部评论Enterprise 附加功能[!NOTE] 该功能需要 Enterprise 版本即 OpenProject 的 [feature: internal_comments] 企业功能开关。内部评论internal comments是仅对特定人群可见的评论适合在评论中讨论只有部分成员应该看到的内容。更多细节请参阅用户指南的「活动」章节。 通知提及你可以在评论或字段中通过提及团队成员并通知他们。被提及者会根据其账户设置中的通知设置在 OpenProject 内收到关于更新的通知。提及功能与通知中心深度集成。Emoji自OpenProject 13.0起所有文本编辑器都支持 emoji。在编辑器中输入冒号加字母例如:a即可获得可用的 emoji 建议列表并快速插入。链接工作包在工作包文本编辑器中链接其他工作包如#123引用的方法请参阅 OpenProject 富文本编辑器WYSIWYG指南。附加文件到工作包[!IMPORTANT] 此功能需要由项目管理员在项目设置Project settings中启用后才可使用。在工作包详情视图的Files文件标签页下可以手动上传文件拖拽drag and drop文件到页面或使用Attach files 附加文件按钮。Files 标签页会列出所有已上传的附件包括文件名、上传用户、上传时间。如果尚未附加任何文件列表为空。附加文件包括添加到工作包描述中的文件或图片。删除附件鼠标悬停在附件上点击Delete删除图标即可移除。[!TIP] 工作包评论中的附件例如截图不会显示在 Files 标签页下。工作包提醒Reminders如果你希望在未来的某个时间点被提醒处理某个工作包可以使用Reminder提醒功能。点击工作包详情视图中的Reminder闹钟图标即可。系统会打开一个包含预定义快捷选项的列表明天tomorrow3 天后in 3 days一周后in a week一个月后in a month指定日期/时间at a particular date/time选择除最后一项外的任一选项都会弹出模态框时间会自动设为所选日期的上午 9:00你可以调整预填的日期和时间并添加一条备注note——这条备注会在提醒触发时显示在通知中心。[!TIP] 所有预定义提醒选项都会设置为所选日期的上午 9 点。设置好时间、日期和可选备注后点击Set reminder设置提醒按钮。成功后会出现一条确认消息提醒图标上会显示徽标badge表示已设置提醒再次点击提醒图标可以修改已有的提醒。到了设定的日期和时间你会在通知中心收到提醒。[!NOTE] 如果同一工作包存在多条通知提醒会优先展示提醒备注显示在页面底部。如果工作包同时设置了提醒和日期警报date alert通知日期警报会与提醒备注合并显示两者都可见。[!TIP] 你可以在账户设置中配置个人提醒的即时邮件通知。提醒的源码实现从源码层面看提醒是一个多态关联的持久化模型。Reminder 模型定义在app/models/reminder.rbbelongs_to :remindable, polymorphic: true——提醒可以挂在任意可提醒对象如工作包上belongs_to :creator, class_name: User——记录创建者has_many :reminder_notifications, dependent: :destroy与has_many :notifications, through: :reminder_notifications——提醒触发后生成通知。关键设计是提醒是个人化的# 提醒仅对创建者本人可见且其仍需拥有对应可提醒对象的访问权限 def self.visible(user) where(creator: user) .where(remindable_type: WorkPackage.name, remindable_id: WorkPackage.visible(user).select(:id)) end def self.upcoming_and_visible_to(user) visible(user) .where(completed_at: nil) .where.missing(:reminder_notifications) end工作包等模型通过 Remindable concernapp/models/concerns/remindable.rb声明has_many :reminders, as: :remindable, dependent: :destroy。提醒的创建、更新、删除都由服务层处理例如 Reminders::CreateServiceapp/services/reminders/create_service.rb在创建后调用after_perform触发调度核心调度逻辑在 Reminders::ServiceHelpersapp/services/concerns/reminders/service_helpers.rb中schedule_new_reminder_job通过Reminders::ScheduleReminderJob.schedule(reminder)将提醒任务调度到后台基于 GoodJob并把返回的job_id写回提醒记录修改提醒时会先销毁已调度的任务、将未读通知标记为已读再重新调度提醒完成后completed_at有值即视为完成。关注者Watchers添加关注者关注者Watchers是指为了接收变更通知而被添加到工作包的用户。当工作包发生变更时关注者会根据其通知设置收到通知。添加关注者打开工作包的详细视图在右侧选择Watchers 标签页通过下拉菜单选择成员或直接开始输入成员姓名进行搜索。你也可以将自己添加为关注者如果你拥有足够的权限。移除关注者移除关注者进入工作包的详细视图选择Watchers 标签页鼠标悬停在要移除的成员姓名上点击姓名旁边的叉号图标。移除后该用户将不再收到关于此工作包变更的通知按他的通知设置。但如果该用户是工作包的作者、负责人assignee或负责方accountable他仍可能收到相关通知。更多说明见通知设置。关注者的源码实现Watcher 模型app/models/watcher.rb是一个多态关联模型class Watcher ApplicationRecord belongs_to :watchable, polymorphic: true belongs_to :user validates :watchable, :user, presence: true validates :user_id, uniqueness: { scope: %i[watchable_type watchable_id] }它通过user_id在(watchable_type, watchable_id)作用域内的唯一性校验保证同一用户对同一对象只能关注一次并通过两个自定义校验约束添加关注者validate_active_user被锁定的用户或已删除的用户不能被添加为关注者validate_user_allowed_to_watch只有对该对象具备查看权限的用户才能成为关注者watchable.possible_watcher?(user)。工作包中的项目属性Project attributes如果你的 OpenProject 管理员为所选工作包类型启用了项目属性project attributes它们会显示在工作包的Project attributes 标签页中并且可以在该标签页内直接编辑。项目属性允许你在工作包内直接查看和编辑项目级信息在拥有必要权限的前提下。你做出的任何修改都会应用到项目本身并立即反映到项目属性显示的所有位置包括项目概览页。[!NOTE] 项目属性在整个项目范围内共享。在工作包中编辑项目属性更新的是该项目的属性值而不仅仅是单个工作包的值。Project attributes 标签页的可用性与显示哪些属性取决于工作包类型并由管理员配置。工作包中显示的项目属性在导出为 PDF时也会一并包含。导出工作包要导出工作包在工作包表格视图右上角的设置菜单中选择Export ...。导出相关的完整指南PDF 表格/报告/甘特图、XLS/Excel、CSV、单工作包 PDF 与 Atom 导出请参阅独立的导出指南。从源码看导出由 WorkPackagesControllerapp/controllers/work_packages_controller.rb中的export_dialog、generate_pdf_dialog、generate_pdf等动作驱动并复用查询校验逻辑load_and_validate_query_for_export与export_list(mime_type)/export_single(mime_type)分别处理列表导出与单工作包导出。批量编辑工作包需要一次性编辑多个工作包时导航到工作包表格视图高亮选中所有要编辑的工作包提示按住Ctrl 键可以同时选中多个工作包单击鼠标右键打开快捷上下文菜单。菜单中提供以下操作打开所有选中工作包的详情视图打开所有选中工作包的全屏视图批量编辑所有选中的工作包批量变更所有选中工作包的项目**批量复制Duplicate**所有选中的工作包包括层级关系父子关系批量删除所有选中的工作包。如果启用了Backlogs 模块批量编辑时还可以更改选中工作包的Sprint迭代和Backlog分配。[!NOTE] 更改 Sprint 和 Backlog 分配需要Manage sprint items管理迭代项权限。在页面底部你可以决定是否发送这些变更的通知。对于大批量更新建议不勾选发送通知以免用户被邮件淹没。批量编辑的源码实现批量操作由 WorkPackages::BulkControllerapp/controllers/work_packages/bulk_controller.rb实现。批量更新的核心调用def update call ::WorkPackages::Bulk::UpdateService .new(user: current_user, work_packages: work_packages) .call(attributes_for_update) if call.success? flash[:notice] t(:notice_successful_update) redirect_back_or_default(...) else flash[:error] bulk_error_message(work_packages, call) ... end end它通过WorkPackages::Bulk::UpdateService以当前用户身份对选中的多个工作包统一应用属性更新成功时给出通知消息失败时通过bulk_error_message汇总错误信息见app/controllers/work_packages/bulk_error_message.rb。删除流程则有delete_dialog、confirm_delete、perform_deletion等动作支撑。表格视图中更新工作包在工作包表格视图中你不仅限于打开单个工作包还可以直接触发诸如记录工时与成本、复制、下载或删除等操作。要访问快捷上下文菜单只需在表格视图中右键单击任意工作包然后选择所需的操作。可用选项如下操作说明Open details view打开详情视图在屏幕右侧打开工作包详情视图Open fullscreen view打开全屏视图在整个屏幕上打开工作包详细视图Copy link to clipboard复制链接将选中工作包的短链接复制到剪贴板Log time记录工时弹出对话框无需先打开工作包即可直接记录工时Log unit costs记录单位成本跳转到成本记录界面记录成本并保存后返回表格视图Move to another project移动到其他项目将选中工作包移动到另一个项目Duplicate复制在右侧打开一个全新工作包的详情视图该工作包是选中工作包的精确副本可修改细节后保存Duplicate in another project在其他项目中复制将选中工作包复制到另一个项目Delete删除删除工作包需要确认删除Download PDF下载 PDF将选中工作包下载为 PDF 文件Download Atom下载 Atom将选中工作包下载为 Atom 文件Indent hierarchy缩进层级与上方工作包建立父子关系——选中的工作包成为子工作包上方的成为父工作包Create new child新建子项在右侧打开一个新建工作包该工作包已与选中工作包建立子关系[!TIP] 在OpenProject 14.5中术语Copy a work package复制工作包已被Duplicate a work package取代Change project已被Move to another project取代。如果所选工作包已有父工作包快捷上下文菜单还会额外显示Outdent hierarchy提升层级移除父子关系。[!NOTE] 如果打开了甘特图模块其中的快捷上下文菜单选项与工作包表格视图中的不同。小结编辑工作包是 OpenProject 日常使用频率最高的操作之一。本文完整覆盖了从单字段内联编辑、Wiki 页面链接、评论与 提及、内部评论、文件附件到个人提醒、关注者管理、项目属性、导出和批量编辑的全链路操作。理解这些功能背后对应的源码实现提醒的 GoodJob 调度与个人可见性、关注者的权限校验、批量更新的服务层调用也能帮助你在排查异常或进行二次开发时快速定位问题。相关参考文档工作包视图表格/分屏/全屏导出工作包工作包入门活动标签页富文本编辑器WYSIWYG通知中心【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表