跳转到主要内容

官方会议管理

项目描述

Products.PloneMeeting 是一个允许管理在会议期间讨论的项的官方会议列表的软件包。

https://coveralls.io/repos/github/IMIO/Products.PloneMeeting/badge.svg?branch=master PyPI badge

更新日志

4.2.11.1 (2024-10-02)

  • 添加了新的字段 MeetingItem.motivationSuiteMeetingItem.otherMeetingConfigsClonableToFieldMotivationSuite。 [gbastien]

  • MeetingConfig.itemWFValidationLevelssuffix/extra_suffix 列替换为新的列 group_managing_item/extra_groups_managing_item,这将管理当另一个组(而不是提出组)管理项的情况,可以选择多个组,包括提出组或不包括提出组。添加了新的列 available_on,以便能够定义一个将使转换可用或不可用的 TAL表达式。 [gbastien]

4.2.11 (2024-09-25)

  • 添加了新的字段 MeetingItem.emergencyMotivation,以便更容易地管理紧急动机,而不必使用完整的 emergency 功能。添加了monkeypatch以正确初始化现有元素上的新HTML字段。 [gbastien]

  • 升级 appy.pod 以准备使用 LibreOffice 24.2.x。 [gbastien]

4.2.10 (2024-09-19)

  • 在尝试删除包含 MeetignManager 项的会议时显示一条清晰的提示信息,因为它在使用 restapi 时将引发 Unauthorized。 [gbastien]

  • 修复了 PMPortalTypesVocabulary,使其使用 portal_type Title 方法来显示术语标题,而不是翻译术语 title 属性。 [gbastien]

  • 调整 adaptations.RETURN_TO_PROPOSING_GROUP_MAPPINGS,以便能够根据每个 MeetingConfig 定义会议状态的列表。 [gbastien]

  • 修复了 AskedAdvicesVocabulary,仅在 for_item_created_until 日期实际上已过期时才将术语标记为不活动。 [gbastien]

  • 修复了当用户来自 LDAP/AD 时未发送邮件通知的问题。 [aduchene]

  • 调整了 MeetingItem.restrictedCopyGroups,使其只能由 MeetingManager 编辑。 [gbastien]

4.2.9 (2024-06-10)

  • EveryAnnexTypesVocabulary 中使用 content_category 图标图像缩放代替 portal_url.getRelativeUrl,以便进行缓存。 [gbastien]

  • 执行 upgrade_step_4211_add_item_widgets.xml,在升级到 4214 时再次添加了 标题仅 修饰的维度,因为它不在 default_dashboard_items_widgets.xml 中,从 4211 版本配置文件添加的新 MeetingConfig 缺少此修饰。 [gbastien]

  • 完成了 print_votes,它管理每个 vote_valuesdoes_not_votenot_foundinvalidblank)。调整了参数 single_vote_value,以便我们可以定义单个值或为每个 vote_values 定义不同的值。调整了参数 include_voters=False,该参数可以是 False/True 或投票值的列表。添加了参数 include_voters_percent_treshold=100,该参数是一个介于 0 到 100 之间的整数值,当投票者数量与总投票者数量的比率超过阈值时,将显示投票者。 [gbastien]

  • 添加了字段 MeetingItem.restrictedCopyGroups,一个辅助 copyGroups 字段,其中我们可以定义可以访问项的(以后)其他状态的组。 [gbastien]

  • 现在每个删除都受到 IContentDeletable 的保护,包括默认 Plone 删除使用 manage_delObjects。 [gbastien]

  • 修复了使用 磁盘 图标更改会议视图中项号时未保存项号的问题。 [gbastien]

  • 修复了创建会议时会议签署人验证的问题,使用相同的签名号可以创建包含多个签署人的会议。 [gbastien]

  • 为基本 hide_decisions_when_under_writing 添加了针对观察力的额外工作流程调整,以便选定的观察力有权限访问项决策。 [gbastien]

  • 改进了 view.print_attendees_by_type,以便能够更自定义进出计数。 [aduchene]

  • 允许在 POD 模板中使用 OrderedDict。 [aduchene]

  • 修复了根据会议计算缺席/免责统计错误的问题。 [gbastien]

  • imio.webspellchecker 集成到 CKEditor 中,以替换 Scayt。由于 WSC 在设置 CKEditor 字段焦点时启动,因此在快速编辑时设置字段焦点。[gbastien]

  • 避免在 POD 模板邮件列表上双击。[gbastien]

  • 根据 MeetingConfig 标题生成 Meeting/MeetingItem portal_type 标题,而不是翻译它。[gbastien]

  • 优化了 @@load_item_assembly_and_signatures,特别是在有多个投票者(50人)和投票项(25项)时。[gbastien]

  • 修复了存在 no_vote 项时,对多个项目编码投票失败的问题。[gbastien]

4.2.9rc6(2024-04-10)

  • 将字段 Meeting.pre_observations 移动到 Meeting.observations 之前。[gbastien]

  • 通过生成 presented_item_back_to_ WF 适应来使 test_pm_WFA_availableWFAdaptations 更健壮,因为它依赖于定义的 MeetingConfig.itemWFValidationLevels。[gbastien]

  • 通过使用字段 description 而不是 decision 使使用 utils.set_field_from_ajax 的测试更健壮,因为在某些情况下(子插件),decision 字段是不可写的。[gbastien]

  • 如果延迟超时,则不要在 MeetingConfig.transitionsReinitializingDelays 中自动重新初始化建议的延迟,这需要手动完成。[gbastien]

  • test_pm_WFA_waiting_advices 重命名为 test_pm_WFA_waiting_advices_base,以便它可以独立于其他 test_pm_WFA_waiting_advices_ 测试执行。完成 test_pm_ItemActionsPanelCachingProfiles 以检查审阅者何时也可以编辑创建的项目(当使用 extra_suffixes 时),这样我们就可以删除 _reviewers_may_edit_itemcreated 辅助程序。[gbastien]

  • 修复了从子插件调用时 test_pm_ItemMailNotificationLateItem 的问题。[gbastien]

  • 使 test_pm_Validate_itemWFValidationLevels_removed_depending_used_state_itemtest_pm_SearchItemsToCorrectToValidateOfEveryReviewerGroups 在从子插件调用时更健壮。[gbastien]

  • 修改了在建议类型标签过滤中使用的 Products.PloneMeeting.vocabularies.advicetypesvocabulary,以考虑 ToolPloneMeeting.advisersConfig.advice_types。[gbastien]

  • 向关于给定建议的后缀添加了两种类型的电子邮件通知。添加了升级步骤到 4214,以更新 MeetingConfig.mailItemEvents。[aduchene]

  • 向观察员添加了关于延迟项目的通知。[aduchene]

  • MeetingConfig.mailMode 设置为 test 时,在门户消息中显示发送的邮件 主题收件人。[gbastien]

  • 当删除或标记某些可重复使用的 POD 模板不再可重复使用时,不要在 MeetingConfig POD 模板中中断。[gbastien]

  • imio.pyutils 导入 safe_encode 而不是从 imio.helpers。[gbastien]

  • 由于 @@folder_contents 现在在 DashboardCollection 上工作,添加了 test_pm_Folder_contents 以确认它。[gbastien]

  • Products.CPUtils 中的 tobytesfileSize 添加到 safe_utils,这是将 portal_cataloggetObjSize 格式转换为 bytes 以及将 bytes 转换为可读格式所必需的。[gbastien]

  • 回到 utils._sendMail 中的先前行为,在发送带有附件的电子邮件时,只向每个收件人发送一次,而不是按收件人逐个发送。[gbastien]

  • 避免由于 MeetingConfig 无法获取而使词汇表 AskedAdvicesVocabulary 为空。[gbastien]

  • MeetingConfig 视图主页的 组和用户 下显示 MeetingConfig.usingGroups 字段,以便易于识别使用此参数的 MeetingConfig。[gbastien]

  • MeetingItem.Title 添加参数 withItemNumber=FalsewithItemReference=False,以便在项目标题前加上项目引用和/或项目编号。[gbastien]

  • 在发送带有附件的电子邮件(向多个收件人发送一封电子邮件)时,将 utils._sendMail 修改为使用 bcc盲拷贝)。[gbastien]

  • POD 模板 部分的 MeetingConfig 视图中默认显示 TAL 条件。[gbastien]

4.2.9rc5(2024-03-14)

  • 将4213的升级步骤添加到修正使用 .adapted().getCertifiedSignatures() 的POD模板,改为使用 .getCertifiedSignatures()MeetingItem.getCertifiedSignatures 已不再是一个可适应的方法。[gbastien]

4.2.9rc4 (2024-03-14)

  • 在评估组织上的TAL表达式以计算 as_copy_groups_on 时,将 org_uid 添加到可用的元素。[gbastien]

  • 修改了 MeetingCategory.is_selectable,如果功能在 MeetingConfig 中未启用,则将不再可选择。[gbastien]

  • 在POD模板部分的MeetingConfig视图中添加警告,提醒用户仅在相关的情况下编辑模板,并且永远不要使用MS Word。[gbastien]

  • 避免在 ConfigHideHistoryTosVocabulary 中出现 UnicodeDecodeError。[gbastien]

  • MeetingItem.getCertifiedSignatures 已不再是一个可适应的方法。[gbastien]

  • 将字段 advice.advice_reference 移动到 advice.advice_accounting_commitment 下,以便将 RichText 字段分组在一起。在 advice_reference 不为空时在advice tooltipster中显示 advice_reference。[gbastien]

4.2.9rc3 (2024-03-05)

  • 修复了自定义建议工作流UI。

    • 使用默认建议工作流时不显示 given_by 信息;

    • onAdviceTransition 事件中,在自动将 hidden_during_redaction 设置为 False 后,通知 AdviceAfterTransitionEvent

    • 修改了 import_data 以管理 advisersConfig。[gbastien]

    [gbastien]

  • 在配置中使用词汇表 ConfigAdviceTypes 时,显示建议类型ID。[gbastien]

  • ChangeItemCompletenessView._changeCompleteness 中删除了重定向,这已在 __call__ 方法中管理,从而避免了从另一个代码(如事件)直接调用 _changeCompleteness 时出现重定向。[gbastien]

  • 在建议视图中添加了自定义建议消息的一些顶部填充。[gbastien]

  • 优化了 MeetingItem._updateAdvices,以避免在使用继承的建议时进行多次计算。这还解决了为继承的建议错误初始化可选密钥的问题。[gbastien]

  • 删除了未使用的词汇表 PMEveryCategoryVocabularyPMEveryCategoryTitleVocabulary。[gbastien]

4.2.9rc2 (2024-02-26)

  • 添加了辅助函数 MeetingConfig.get_transitions_to_close_a_meeting。删除了可适应方法 MeetingItemWorkflowActions._latePresentedItemTransitions,因为现在它根据 MeetingConfig.onMeetingTransitionItemActionToExecute 自动管理,不再必要。[gbastien]

  • imio.helpers.date.formatDate 添加到 safe_utils,使其在TAL表达式中可用。[gbastien]

  • 确保当 render_as_html=True 时,print_votes 总是返回一个字符串。[gbastien]

  • 删除了字段 IPMPerson.userid,而是使用行为 collective.contact.plonegroup.behaviors.IPlonegroupUserLink,该行为将添加字段 useridprimary_organization。我们使用 primary_organization 作为在创建项时管理默认 proposingGroup 的一种方式。[gbastien]

  • 修复了 utils._sendMail 以避免 UnicodeDecodeError。同时重构它,以便由 utils._sendMail 管理接收者循环,并且无论是否包含附件,都通过接收者发送一封邮件。[gbastien]

  • ToolPloneMeeting.update_all_local_roles 中使用 ZLogHandler。[aduchene]

4.2.9rc1 (2024-02-08)

  • 修改了门户选项卡子菜单样式,使其更像是子菜单。[gbastien]

  • 修复了在发送邮件时发生的关键错误,该错误阻止使用MailHost mail_queue,因为它使用了已弃用的 Products.CMFPlone 中的 secureSend,并使用 immediate=True。现在电子邮件将正确使用mail_queue,并在必要时启动它。[gbastien]

  • utils.updateAnnexesAccess 中,确保我们不会获取属性 categorized_elements 或更新执行多次,这是在调用建议时使用父项属性的情况。[gbastien]

  • 防止站点管理员重命名链接到会议的项(不再处于其工作流初始状态的项)或它会破坏与会议的链接。[gbastien]

4.2.9b9 (2024-01-31)

  • 当使用自定义工作流时,使建议的 given_on 日期使用最终工作流状态。[gbastien]

4.2.9b8 (2024-01-18)

  • 当项目在无法再编辑建议的状态中(当建议未达到最终状态时,使用建议自定义工作流程)时,不要显示_advice_on_final_wf_transition_。[gbastien]

4.2.9b7 (2024-01-11)

  • 导出PDF操作添加到MeetingConfig.itemActionsColumnConfig。[gbastien]

4.2.9b6 (2024-01-11)

  • 删除常量config.ADVICE_STATES_ALIVE,现在它将由< cite>utils.get_advice_alive_states自动管理,不再需要在自定义配置文件中覆盖它。[gbastien]

  • 在测试中,在所有使用< cite>RichTextValue的地方使用< cite>imio.helpers.content.richtextval。[gbastien]

  • 检查用户是否在项目< cite>actions_panel缓存失效中是创建者。[gbastien]

4.2.9b5 (2024-01-02)

  • 当建议再次被询问时,正确显示延迟,当建议应该给出时,将显示完整延迟,但当它是< cite>asked_again时,情况并非如此。[gbastien]

  • 在项目上添加< cite>导出PDF操作,以便能够将多个选定的PDF生成的POD模板和PDF附件导出为单个PDF文件。[gbastien]

  • PMCheckBoxWidget添加了< cite>可排序功能,在项目< cite>导出PDF表单中使用它,以便能够重新排序导出的元素。[gbastien]

  • 修复了当弹出标签非常长时的CSS。[gbastien]

  • 当< cite>copyGroups有权访问项目时,将完整的< cite>复制组标签突出显示为绿色。[gbastien]

4.2.9b4 (2023-12-11)

  • 在修订过程中,如果建议被隐藏,则不再发送邮件通知< cite>adviceEdited和< cite>adviceEditedOwner。[gbastien]

  • 修复了< cite>AdvicesIcons.get_advice_given_by,使其仅在自定义工作流程(具有多个初始状态)中使用时返回值,并且当工作流程达到最终状态时。[gbastien]

4.2.9b3 (2023-11-27)

  • 修复了< cite>MeetingConfig.listTransitionsUntilPresented,它现在在术语标题中使用Unicode箭头,现在我们使用Unicode箭头在< cite>utils.get_dx_attrs中,当< cite>as_display_list=True时。[gbastien]

4.2.9b2 (2023-11-27)

  • 在项目邮件通知中显示最后过渡的演员和评论,以用于邮件事件。

    • lateItem;

    • itemUnpresented;

    • itemDelayed;

    • itemPostponedNextMeeting;

    • returnedToProposingGroup;

    • returnedToMeetingManagers.

    添加了新的项目邮件事件< cite>itemPostponedNextMeetingOwner(除了< cite>itemPostponedNextMeeting)。[gbastien]

  • 修复了< cite>ItemOptionalAdvicesVocabulary缓存,以考虑延迟感知顾问在cachekey中的计算和上下文依赖性。还修复了当一些< cite>__userid__选择的值不再在词汇表中,而其他值仍然在词汇表中时的一个错误。[gbastien]

  • 添加了< cite>MeetingConfig.show_copy_groups_search,用于保护与copyGroups相关的搜索。[gbastien]

  • 修复了< cite>PMCategorizedChildView.__call___,如果没有分类元素,不要仅返回[],而是返回参数< cite>show_nothing的值,因为如果为True或False,它将被渲染为不同。[gbastien]

  • 使MeetingItem.meetingDeadlineDate在仪表板中以静态信息显示(始终在项目< cite>标题列中可见)。[gbastien]

  • 静态信息< cite>项目参考现在可以在MeetingConfig.availableItemsListVisibleColumns中选择,因为项目参考现在可以在项目插入会议之前设置。[gbastien]

  • 向< cite>MeetingConfig.itemsVisibleFields和< cite>MeetingConfig.itemsNotViewableVisibleFields的可选值中添加了< cite>static_labels和< cite>static_item_reference。[gbastien]

  • 添加了补充的WFAdaptation < cite>postpone_next_meeting_keep_internal_number,它将在推迟项目时保留< cite>MeetingItem.internal_number,因为新的项目在某种程度上是再次在另一次会议中呈现。[gbastien]

  • 添加了补充的WFAdaptation < cite>postpone_next_meeting_transfer_annex_scan_id,它将保留带有< cite>scan_id的附件,但将此< cite>scan_id从原始附件(其中< cite>scan_id设置为None)转移到新附件。[gbastien]

  • 添加了< cite>advice_hide_during_redaction_history以存储用户对< cite>advice.advice_hide_during_redaction更改。[gbastien]

  • 简化了< cite>ToolPloneMeeting,以便能够将其尽可能轻地移动到注册适配器中,因此从其中删除了大多数功能。

    • ToolPloneMeeting.showMeetingView移动到MeetingFacetedView.show_page,因为它只在那里使用;

    • 移除TooPloneMeeting.getColoredLink,使用MeetingItem.getPrettyLink

    • ToolPloneMeeting.getMailRecipient移动到utils;

    • ToolPloneMeeting.getAdvicePortalTypesToolPloneMeeting.getAdvicePortalTypeIds移动到utils;

    • ToolPloneMeeting.getAvailableMailingLists移动到utils;

    • 移除不再使用的versions_history_form.pt

    • ToolPloneMeeting.isPowerObserverForCfg移动到utils.isPowerObserverForCfg

    • 在所有使用的地方用imio.helpers.content.get_user_fullname替换ToolPloneMeeting.getUserName

    [gbastien]

  • 修改了会议上的DisplayMeetingItemVoters辅助视图,以便分别显示没有投票的项以及有公开和秘密投票的项,并且不再显示在未投票的项中。[gbastien]

  • 添加了面相过滤器标准“仅项目标题”以仅使用“标题”索引查询项目的标题。[gbastien]

  • 当使用MeetingConfig.computeItemReferenceForItemsOutOfMeeting时,不要在会议返回到“创建”状态或项目返回到“验证”状态时清除项目引用。将MeetingItem.mustShowItemReference重命名为MeetingItem.show_item_reference。[gbastien]

  • 在显示项目的仪表板中,在分类分类器之前显示提议小组。[gbastien]

  • 当建议被移动时(存储路径改变,当建议是针对一个被重命名且处于itemcreated状态的项时),修复了建议的更新categorized_elements。[gbastien]

  • 确保所有相关项目搜索(集合)使用修改后的sort_on,因为在应用程序中不可见,因为面相sort_on会覆盖它,但现在在使用带有base_search_uid的restapi时将其考虑在内。[gbastien]

4.2.9b1 (2023-10-27)

  • 添加了使用ToolPloneMeeting.advisersConfig的高级建议管理。

    • 可以将新的建议< cite>portal_type关联到某些组织。

    • 重新设计了建议信息模板,以添加更多的CSS类到附加信息。[gbastien]

    • 显示“由谁给出的”信息。[gbastien]

    • 添加了隐藏建议历史记录的选项,供高级观察者和所有人使用,并隐藏会议历史记录。[gbastien]

    [gbastien]

  • 使用CompoundCriterion适配器living-itemssearchlivingitems集合,以确保选定的状态始终正确,即使项的工作流程配置更改。[gbastien]

  • 当建议再次被询问时,正确显示延迟,当建议应该给出时,将显示完整延迟,但当它是< cite>asked_again时,情况并非如此。[gbastien]

  • PMCheckBoxWidget添加了< cite>可排序功能,在项目< cite>导出PDF表单中使用它,以便能够重新排序导出的元素。[gbastien]

  • 在修订过程中,如果建议被隐藏,则不再发送邮件通知< cite>adviceEdited和< cite>adviceEditedOwner。[gbastien]

  • 修复了< cite>AdvicesIcons.get_advice_given_by,使其仅在自定义工作流程(具有多个初始状态)中使用时返回值,并且当工作流程达到最终状态时。[gbastien]

  • 修复了< cite>MeetingConfig.listTransitionsUntilPresented,它现在在术语标题中使用Unicode箭头,现在我们使用Unicode箭头在< cite>utils.get_dx_attrs中,当< cite>as_display_list=True时。[gbastien]

  • 检查用户是否在项目< cite>actions_panel缓存失效中是创建者。[gbastien]

  • MeetingConfig视图上显示< cite>categories、< cite>classifiers、< cite>recurring items、< cite>searches和< cite>pod templates的创建/修改日期。[gbastien]

  • print_attendees_by_type添加了进出计数。[aduchene]

  • utils.set_field_from_ajax中,再次检查用户是否可以实际编辑给定的< cite>field_name,以避免恶意或错误地使用它。[gbastien]

  • 为< cite>MeetingConfig.onTransitionFieldTransforms.field_name添加了新的值execute_tal_expression,这样现在可以在项WF转换后定义一个TAL表达式来执行,而不会更改富文本字段的内容。[gbastien]

4.2.8 (2023-10-27)

  • 添加了新的建议类型< cite>Read。[gbastien]

  • 添加了新的utils < cite>set_internal_number,以便能够更改< cite>internal_number。[aduchene]

  • 移除< cite>config.BARCODE_INSERTED_ATTR_ID,我们不再使用它来检查条码是否插入,我们依赖< cite>scan_id。添加了升级步骤到4210。[gbastien]

  • 添加了2024年的假日。完成了升级步骤到4210。[aduchene]

4.2.7 (2023-10-19)

  • 覆盖了在联系人仪表板中使用的< cite>org_pretty_link_with_additional_infos列,以便重新加载< cite>held_position.position_type字段的控件,因为词汇表是性别感知的,值可能从一个< cite>held_position更改为另一个。[gbastien]

  • 更早加载< cite>communesplone.layout zcml,以便加载覆盖的翻译,这对于< cite>label_by_author翻译尤其如此。[gbastien]

  • 修复了ItemOptionalAdvicesVocabulary以正确处理涉及userids的缺失项。添加了缓存,因为它在编辑项时使用。[gbastien]

  • 将< cite>imio.helpers.xhtml.unescape_html添加到< cite>safe_utils,以便在TAL表达式中可用,这将解码包含HTML实体的HTML内容。[gbastien]

  • 新增可选字段 MeetingItem.meetingDeadlineDate 及相关分面仪表板列。 [gbastien]

  • 新增两种建议类型 negative_with_remarksback_to_proposing_group。 [gbastien]

4.2.6 (2023-09-21)

  • 修复迁移到 4209 的问题

    • 在升级 collective.iconifiedcategory 之前,删除损坏的附件;

    • 在 TAL 表达式中迁移 cfg/getUseCopies

    • 在更新附件 portal_type 之前升级 imio.annex

    [gbastien]

  • 仅对 MeetingManagers 可访问的历史化建议数据预览现在对历史化数据建议的 advisersproposingGroup 成员也开放。 [gbastien]

  • 确保 data_changes 历史记录不使用 highlight_last_comment,否则当使用时会显著减慢项目视图的加载速度。 [gbastien]

  • 以与建议视图中的历史链接相同的方式保护建议弹出窗口中的历史图标。 [gbastien]

  • 使用 imio.history.utils.add_event_to_history 管理项目 completenessemergency 变更的新历史事件。在显示历史的视图中,使用适配器获取历史记录而不是访问存储的属性。 [gbastien]

  • CSS 改进

    • 刷新了会议选择下拉菜单;

    • 对于最大高度固定的长多选字段,固定字段标签,确保其始终可见。

    [aduchene, gbastien]

4.2.5 (2023-09-12)

  • 使 变更负责组 批量操作在会议中可用。 [gbastien]

  • 移除了用于显示输入/输出日志的 plone.restapi.services.Service 的 monkeypatch,因为此功能已移动到 imio.restapi。 [gbastien]

  • 添加了按附件类别启用附件预览的可能性。启用后,附件只能由提议组成员和 (会议) 经理下载。 [gbastien]

  • 添加了在将项目发送到另一个 MC 时不保留某些附件的可能性。需要重构 ContentCategory 的覆盖,将代码从 imio.zamqp.pm 返回。添加了对 ContentCategory.other_mc_correspondences 的验证。 [gbastien]

  • 默认情况下,当项目发送到另一个 MC 时,带有 scan_id 的附件不会保留。现在,如果定义了 ContentCategory.other_mc_correspondences(但 scan_id 设置为 None),则带有 scan_id 的附件将被保留。 [gbastien]

  • 在从会议中删除项目时,确保项目 UIDMeeting.item_attendees_positionsMeeting.item_attendees_order 中删除。现在这依赖于 config.MEETING_ATTENDEES_ATTRS,该配置确保在删除项目时清理每个会议参会者的自定义属性。 [gbastien]

  • to_print 设置为 True 时,在转换中的附件上显示旋转器。在附件和附件决策中添加了 View preview 操作,当附件有预览可用时显示。 [gbastien]

  • 添加了更改项目副本组的批量操作

    • 删除了字段 MeetingConfig.useCopiesMeetingItem.isCopiesEnabled,字段 MeetingItem.copyGroups 现在是一个由 MeetingConfig.usedItemAttributes 管理的可选字段;

    • 修复了 UpdateGroupsInChargeBatchActionForm,确保在更改负责人组后项目 local_roles 正确。 [gbastien]

    [gbastien]

  • 添加了 Copy groups 仪表板列。 [gbastien]

  • 在 TAL 表达式的上下文中提供更多值。现在 TAL 表达式和 POD 模板表达式中的可用值相同。 [gbastien]

  • 添加了参数 MeetingConfig.annexEditorMayInsertBarcode,允许附件编辑(除了 MeetingManagers)将条形码插入附件中。 [gbastien]

  • 使用 @@reorder-items 在会议上使用时添加 fplog 消息。还会记录项目的原始顺序以供检查。 [gbastien]

  • 修复了会议选择框的 CSS,有时选择值不会点击链接并加载会议。 [gbastien]

  • 修复了 Criteria.compute_criteria,不更改现有标准的值,因为它实际上是存储的数据。为 Criteria.compute_criteria 启用缓存。[gbastien]

4.2.4 (2023-07-12)

  • 添加了批量操作以更改负责的组。将批量操作移动到 bacthactions.py。[gbastien]

  • 在会议列表中添加了默认启用的 Creator 选项卡过滤器。[gbastien]

  • 添加了升级步骤以重新启用 meeting.videoconferencemeeting.extraordinary_session 字段,如果之前会议中使用了它们。[gbastien]

4.2.3 (2023-07-07)

  • 修复了因继续使用 uid_catalog 而导致的 lateItem 项邮件通知故障,因为会议 DX 现在不再使用它。[gbastien]

  • 完成会议类别功能。

    • 在仪表板中添加了显示会议的可选列;

    • 在显示会议的仪表板中添加了选项卡过滤器(这依赖于新的参数 MeetingConfig.dashboardMeetingsListingsFilters)。

    [gbastien]

  • imio.helpers.workflow.update_role_mappings_for 添加到 safe_utils。[gbastien]

  • 添加了 itemdecided 工作流适配,将在项工作流中添加一个介于 itempublishedaccepted 之间的 itemdecided 状态。[gbastien]

  • 当项在相同的 MC 中(或从项模板)重复时,保持 MeetingItem.isAcceptableOutOfMeeting 字段。当使用工作流适配 accepted_out_of_meeting_and_duplicatedaccepted_out_of_meeting_emergency_and_duplicated 时,isAcceptableOutOfMeeting 被设置为 False,因为项被复制以在下次会议中展示。[gbastien]

  • get_state_infos 已从 imio.helpers.content 移至 imio.helpers.workflow,相应地进行了导入。[gbastien]

  • MeetingItemWorkflowActions._latePresentedItem 替换为 MeetingItemWorkflowActions._latePresentedItemTransitions,它只需要一个触发在迟到项上的转换元组,更容易覆盖。[gbastien]

  • 更新了文档链接。[gbastien]

4.2.2 (2023-06-27)

  • 修复了 MeetingConfig.validate_workflowAdaptations。允许删除 waiting_advices 补充配置,仅当删除了 waiting_advices WFA 时检查 review_statewaiting_advices 的项。[gbastien]

  • MeetingStoreItemsPodTemplateAsAnnexBatchActionForm.available_permission 设置为 ManagePortal,此新功能来自 collective.eeafaceted.batchactions,以避免覆盖 available 方法。[gbastien]

  • 修复了因 MeetingConfig STATE_ATTRS/TRANSITION_ATTRS 管理了 DataGridFields 而导致的 Migrator.updateWFStatesAndTransitions 故障。[gbastien]

  • check_zope_admin 已从 Products.CPUtils 移至 imio.helpers.security。[gbastien]

  • 确保在没有边框的表格在所有情况下(视图、仪表板、CKEditor 等)都按此方式显示。[gbastien]

  • BatchActions 适配以使用新的属性 available_permission 以避免覆盖 available 方法。[gbastien]

  • 在会议中添加了 category。[gbastien]

  • 修复了使用 MeetingConfig.computeItemReferenceForItemsOutOfMeeting 时,在状态 presented 的项上未显示引用的问题。[gbastien]

  • 在用户管理中,真正的 Zope 管理员可以删除用户。[gbastien]

  • renderComments 方法中传递 mimetype=’text/plain’ 以避免 portal_transforms 错误的 mimetype 识别。[gbastien]

  • 修复了 SelectableCommitteesVocabulary,确保如果值已存储,则无论是否有 usingGroups,它始终在词汇表中。[gbastien]

  • 当使用 MeetingConfig.usingGroups 时,确保我们不允许角色 MeetingObserverGlobal 访问不在 MeetingConfig.usingGroups 中的会议或组,并且也不会收到有关会议事件的邮件通知。由于代码顺序(事件在 at_post_create_script/at_post_edit_script 之前调用),所有这些都已清理,我们不再使用 at_post_create_script/at_post_edit_script。[gbastien]

4.2.1 (2023-05-31)

  • 不再使用 ToolPloneMeeting.get_plone_groups_for_user,而是使用 imio.helpers.cache.get_plone_groups_for_user。[gbastien]

  • 在发送电子邮件时添加了类似 fingerpointing 的日志。[gbastien]

  • 修复了在查询索引中没有选择标签时会导致故障的 PersonalLabelsAdapter。[gbastien]

  • 修复了会议编辑表单中禁用与会者样式的问题。[gbastien]

  • 已更改 personphotosignature 字段的顺序,将 signature 移至 photo 之前。[gbastien]

  • 将代码调整为通过 restapi @attendee/@attendees 端点在会议和项目上管理参会者。添加了编辑重新定义的项目签署人的可能性。[gbastien]

  • 修复了 PMDataChangesHistoryAdapter 在记录多值字段(例如 MeetingItem.copyGroups)时的问题,当某些旧值不再存在于现有值中时。[gbastien]

  • 当通过 AJAX 保存富文本时,删除了 JS 提示 hello。[gbastien]

  • 再次使 is_all_countItemDocumentGenerationHelperView 中可用。它曾与 print_votes 一起移出。[gbastien]

  • 修复了项目建议的失效,建议已被删除但未取消索引。在 Migrate_To_4205._initAdviceGivenHistory 中,调用 clean_catalog_orphans 清理在使用 MeetingConfig.enableAdviceInvalidation 时可能存在的 meetingadvice 孤儿。[gbastien]

  • 重新排列了 MeetingConfig 中的字段,将 xhtmlTransformTypes 移至 xhtmlTransformFields 之下。[gbastien]

  • 确保如果附件类型需要 PDF 文件但附件文件不是 PDF,则在复制(到同一或不同 MC)时不会保留附件。[gbastien]

  • 修复了从仪表板触发时删除整个会议的操作,因为已丢失收集 UID 而导致仪表板损坏。[gbastien]

  • MeetingItem.setPreferredMeetingMeetingItem._update_preferred_meeting 调整为管理通过 restapi 创建项目时的空值或错误值。[gbastien]

  • 修复了 PMExistingPODTemplate,如果可重复使用的 PODTemplate 未存储在 MeetingConfigpodtemplates 文件夹中,它可能位于 contacts 目录或其他位置,则不会中断。[gbastien]

  • 确保在建议上显示的动作面板中渲染转换。这对于使用复杂工作流的建议是必要的。[gbastien]

  • 完成了 MeetingConfig.validate_workflowAdaptationsMeetingConfig.validate_itemWFValidationLevels,以归纳翻译并检查在 datagridfields 中使用的转换和状态。[gbastien]

  • 修复了 meetingitem_view.pt数据将用于新项目 的翻译。[gbastien]

  • 确保当属性为 None 时,MeetingItem.getCategoryMeetingItem.getClassifier 不会中断,这可能在通过 REST WS 创建的项目和 category/classifier 验证被禁用时发生。[gbastien]

  • 在工具视图中,也显示非活动(红色)的配置。[gbastien]

  • 确保在项目编辑和查看时,MeetingItem.otherMeetingConfigsClonableToFieldXXX 字段按 Schema 定义的顺序显示。[gbastien]

  • 为项目添加了增量内部编号的可能性。这依赖于 collective.behavior.internalnumber。[gbastien]

  • monkey._listAllowedRolesAndUsers 移至 imio.helpers.patches._listAllowedRolesAndUsers。[gbastien]

4.2 (2023-03-06)

  • 修复了在项目编辑时显示/隐藏要克隆的其他配置的 JS,当可能发送到多个其他配置时。[gbastien]

  • 向可适配方法 MeetingConfig.get_item_custom_suffix_roles 添加了参数 item。[gbastien]

  • 从委员会词汇中删除了 &nbsp;,或者在分面过滤器中渲染它。[gbastien]

  • 修复了 meetingconfig_view,将 usedPollTypesdefaultPollType 移至 投票 选项卡。[gbastien]

  • MeetingManager 更新会议日期并触发更新具有该日期作为首选日期的项目,且项目不可由 MeetingManager 查看,避免出现 Unauthorized。[gbastien]

  • MeetingActionsPanelView 中删除了对 forceRedirectAfterTransition 的管理,因为这现在是 imio.actionspanel 中实现的默认行为。[gbastien]

  • 在建议提出小组评论弹出窗口中,包括用户添加评论的建议名称。[gbastien]

  • meeting.committees datagridfield 添加了 RichTextcommittee_observations。添加了升级步骤到 4205。[gbastien]

  • 当编辑会议参会者(联系人)时,添加了选择/取消选择所有 attendees/excused/absents/voters 的功能。[gbastien]

  • 如果链接的投票都加密了,则在项目参会者管理中隐藏 byebye参会者 操作。[gbastien]

  • 等待给出并签署的建议以供验证 工作流适配依赖于 等待给出的建议以供验证 工作流适配。[gbastien]

  • 修复了始终使用相同的 member_idMyItemsTakenOverAdapter.query,因为它使用了 forever_cachekey,现在不再缓存。[gbastien]

  • 优化了 等待给出的建议并签署的建议以供验证 工作流适配,以避免检查建议是否不是财务建议。[gbastien]

  • 添加了 renderWidgets 宏,该宏将渲染DX内容上的widget列表。[gbastien]

  • 修复了 更新本地角色 仪表板批量操作,以确保元素按仪表板顺序计算。[gbastien]

  • 修复了从分面仪表板编辑建议时在 CKeditor 中复制/粘贴图像的问题。临时通过覆盖 CKeditorView 修复,直到在 collective.ckeditor 中修复。[gbastien]

  • 修复了在删除会议然后再次创建会议时会议 @@actions_panel 缓存无效化的问题,旧的缓存仍然被使用,基于会议UID的缓存key。[gbastien]

  • 建议历史化不再使用Plone版本控制,而是使用名为 given_advice 的新 imio.history 历史。[gbastien]

  • 修复了显示 MeetingConfig 相关字段的问题,这些字段为了JS保护目的而转义,但在UI中显示了HTML标签。[gbastien]

  • 覆盖了 DataGridField datagrid_select_cell.pt,以在 view 宏中使用结构,以便正确渲染使用HTML的值(MeetingConfig.certifiedSignatures)。[gbastien]

  • 修复了从 restapi 调用创建的项目时 MeetingItem.setManuallyLinkedItems 的问题,因为项目尚未被索引,因此无法使用 portal_catalog 查询找到。[gbastien]

  • 覆盖了 archetypes.referencebrowserwidget popup.pt,以根据 review_state 给元素着色并按 modified reversed 排序。[gbastien]

  • AdviceActionsPanelView 设置 renderOwnDeleteWithComments=True,以便在删除建议时可以输入注释,并且它将在项目的历史中历史化。[gbastien]

  • 确保在管理项目模板时,项目模板管理员可以访问仅限于 MeetingManagers 的字段。[gbastien]

  • 添加了 committees editors 功能。

    • 可以在 MeetingConfig.committees enable_editors 中启用;

    • 启用时,将创建一个 Plone 组,该组成员将能够编辑 MeetingItem.committeeObservationsMeetingItem.committeeTranscript 字段;

    • 当使用委员会时,可使用新的搜索 我的委员会的项目我的可编辑的委员会项目

    [gbastien]

  • utils.forceHTMLContentTypeForEmptyRichFields 添加了参数 field_name=None,以便在已知的情况下指定初始化的字段名称。[gbastien]

  • 使 adapters.PMNegativePersonalLabelsAdapteradapters.PMNegativePreviousIndexValuesAdapter 继承自已移至 collective.compoundcriterion 的基础类 adapters.NegativePreviousIndexValuesAdapteradapters.NegativePersonalLabelsAdapter。[gbastien]

  • 添加了按投票重新定义 poll_type 的可能性,以便项目和投票的 poll_type 可能不同,这用于管理在项目上使用公开投票进行紧急投票的情况,而投票使用的是秘密 poll_type。[gbastien]

  • 确保在显示会议的仪表板上,review_state_title 列(将 review_state 标题翻译为 id)也可用。[gbastien]

  • 确保在将自定义字段添加到现有字段集时,会议字段集的顺序正确。[gbastien]

  • 修复了 meeting.committees 默认值,忽略使用 enabled=”item_only”MeetingConfig.committees。[gbastien]

  • 最终修复了会议包含/不包含项目时无效化会议 actionspanel 缓存的问题,以确保 删除 操作得到正确处理。Meeting.number_of_items 将参数 as_int=False 替换为 as_str=False,因为我们只想让它在 JS 中是字符串。[gbastien]

  • 修复了更改 等待建议 WFAdaptation 的行为,该行为将 from_state 标题(例如状态 proposed)更改为 from_state id,从而丢失了可以在 MeetingConfig.itemWFValidationLevels 中设置的自定义标题。[gbastien]

  • 添加了 MeetingItem.votesResult 字段,该字段将保存基于 MeetingConfig.votesResultTALExpr 生成的投票结果文本,但也可以在需要自定义生成文本时进行编辑。[gbastien]

  • 将迁移助手 Migrator.updateItemColumns 重命名为 Migrator.updateColumns,因为它现在管理会议相关属性 MeetingConfig.meetingColumns,并添加了参数 cfg_ids=[] 以仅适用于某些 MeetingConfigs。将迁移助手 Migrator.cleanItemFilters 重命名为 Migrator.updateItemFilters,因为它管理添加/删除过滤器。也添加了参数 cfg_ids=[] 以便仅适用于某些 MeetingConfigs。[gbastien]

  • 添加了限制 WF 状态的可能性,在这些状态下,后缀 _observers 可以访问项目。这依赖于 MeetingConfig.itemObserversStates。[gbastien]

  • 修复了 toolplonemeeting_view 中的 Unauthorized,对于不是每个 MeetingConfigMeetingManager。[gbastien]

  • 当项视图中的边缘注释字段集标题包含文本时,突出显示它。[gbastien]

  • 添加了 WFA hide_decisions_when_under_writing_check_returned_to_proposing_group,在发布决策时会检查是否存在更多 返回给提案组 的项目。[gbastien]

  • 确保当正在使用时,无法重命名 MeetingCategory。[gbastien]

  • 删除了字段 MeetingConfig.useGroupsAsCategories,字段 MeetingItem.category 现在是一个可选字段,由 MeetingConfig.usedItemAttributes 管理。[gbastien]

  • 修复了 IMeeting.validate_dates,因为 Data 对象在创建或编辑 Meeting 时行为不同导致失败。[gbastien]

  • 确保未使用的字段不会在会议视图中显示。BaseMeetingView.show_field 忽略未使用的布尔字段(值为 False)和 IMeeting.place 字段的特殊管理。[gbastien]

  • 修复了 ItemDocumentGenerationHelperView.print_votes,确保在 include_voters=True 时投票者按顺序排列。修复了 Meeting._get_contacts,以考虑当给出时参数 uids 的顺序。修复了 MeetingItem.get_item_votes,使用 OrderedDict 而不是 Dict 来存储投票者以保留顺序。[gbastien]

4.2rc34 (2022-09-29)

  • 修复了即使配置中未激活,也会显示默认的 signatoriesvoters 的会议创建默认值。[gbastien]

  • ContainedAnnexesVocabularyContainedDecisionAnnexesVocabulary 中对附件和附件类型标题进行转义,以防其中包含恶意代码。[gbastien]

  • 修复了当将项目发送到另一个 MC 时,附件顺序不正确的问题。这依赖于 collective.iconifiedcategory 的更改,适配了 IconifiedCategoryGroupAdapter.get_every_categories。[gbastien]

  • 添加了 2023 年的节假日。[gbastien]

  • 添加了 ToolPloneMeeting.doInvalidateAllCache,它由 UI 中的表单调用并管理重定向,这避免了在代码的其他部分调用 ToolPloneMeeting.invalidateAllCache 时出现重定向。[gbastien]

4.2rc33 (2022-09-22)

  • 在测试中将 Products.CPUtils 设置为可用,因为它是由 metadata.xml 安装的依赖项。[gbastien]

4.2rc32 (2022-09-19)

  • 修复了 Products.PloneMeeting.vocabularies.faceted_annexes_vocabulary,使其考虑每个附件配置,而不仅仅是 item_annexes 配置。[gbastien]

  • 在 Migrate_To_4200 中,将 TAL 表达式中的 .getMeetingNumber() 替换为 .meeting_number。[gbastien]

  • meetingitem_view 中,通过使用词汇表渲染提议组字段,以确保编辑和视图之间的一致性,并正确显示子组织。[gbastien]

  • MeetingItem.get_attendee_short_title 移动到 Meeting 并在所有地方重用它。在方法中管理 include_voting_group 参数,而不是将其作为参数传递。[gbastien]

  • 修复了当项目自动发送到另一个MC时出现的错误,实际上没有工作,因为 imio.actionspanel_portal_cachekey 被发现在 REQUEST 中,因此,在 REQUEST 中添加了新的键到 disable_check_required_data 以禁用在此情况下的 MeetingItemWorkflowConditions._check_required_data。还修复了有时会触发过多转换的 MeetingItem.cloneToOtherMeetingConfig。[gbastien]

  • 确保在使用 MeetingConfig.certifiedSignaturesorganization.certified_signatures 时,held_position 不可删除。此外,为这两个认证签名字段使用简化词汇。[gbastien]

  • 更改了显示在项目上的参会人数的行为:现在它不仅考虑项目上的出席者,还考虑会议上的缺席者。[gbastien]

  • 使 update-local-roles 批量操作在显示会议的仪表板上可用。[gbastien]

  • 添加了可适应的方法 MeetingItem._assign_roles_to_all_groups_managing_item_suffixes 来处理存在多个管理项目的组的情况,默认情况下,当前未管理项目的组将具有 View 访问权限。[gbastien]

  • MeetingItem._bypass_meeting_closed_check_for 添加了项目字段 marginalNotes,以便即使在会议关闭时也能由 MeetingManager 进行编辑。[gbastien]

  • 在 Plone 控制面板中显示构建 git 标签版本。[gbastien]

  • metadata.xml 中添加了 Products.CPUtils 作为依赖项,以便安装 ExternalMethods。[gbastien]

4.2rc31 (2022-08-26)

  • 添加了 Meeting.update_first_item_number,它将管理更新会议的第一项编号。这样,该方法可以从 TAL 表达式调用,并且在必要时可以使用它。此外,参数 get_items_additional_catalog_query={} 将允许管理只有项目子集需要考虑的情况。[gbastien]

  • 添加了 safe_utils.set_dx_value,它将允许从 RestrictedPython 调用设置 DX 内容属性的值。[gbastien]

  • 通过使用组织修复了词汇表,以确保我们可以在我的组织之外使用组织,除了 MeetingItem.associatedGroups 字段。[gbastien]

  • 根据 collective.documentgenerator 的更改(按标题分组)调整了覆盖的 generationlinks.pt。[gbastien]

  • setuphandlers.py 中添加了 _configurePortalRepository,以删除默认可版本化的 Plone 类型(DocumentEvent 等)。添加了升级步骤到 4204。[gbastien]

  • 添加了将图像添加到 MeetingItemTemplate/MeetingItemReccuring 的可能性。在 MeetingConfig 的项上显示 folder_contents 选项卡。[gbastien]

  • 添加了按项目管理参会者顺序的可能性,这在参会者位置在项上更改时有时是必要的。[gbastien]

  • 已删除字段 MeetingConfig.transitionsForPresentingAnItem,因为信息在 MeetingConfig.itemWFValidationLevels 中,方法 MeetingConfig.getTransitionsForPresentingAnItem 保留并完成这项工作。[gbastien]

  • 当更新会议的 meeting_number/first_item_number 字段时,显示信息和警告消息,特别是当编号逻辑不一致(因为以前的会议编号不一致或会议被删除)时。将布尔字段 MeetingConfig.yearlyInitMeetingNumber 移动到多选字段 MeetingConfig.yearlyInitMeetingNumbers,这样我们就可以每年重新初始化会议字段 meeting_numberfirst_item_number。字段 Meeting.meeting_numberMeeting.first_item_number 现在是可选的。将 Meeting.get_previous_meeting 参数 interval 的默认值从 60 天更改为 180 天。[gbastien]

  • 确保在会议日期更改时使仪表板缓存无效(etags),这是确保会议日期分面筛选器正确所必需的。[gbastien]

  • 增加了可适应的方法 MeetingConfig._custom_createOrUpdateGroups,以简化添加与自定义 MeetingConfig 相关的组。将 MeetingConfig._createOrUpdateAllPloneGroups 参数 only_group_ids=False 重命名为 dry_run_return_group_ids=False。[gbastien]

  • ToolPloneMeeting.get_filtered_plone_groups_for_user 的 org_uids 参数设为可选,以便我们只能过滤给定的后缀。[gbastien]

  • 为测试添加了用户 pmManager2meetingConfig2MeetingManager。[gbastien]

  • 增加了仅在条目上而不是在会议上选择委员会的可能性。[gbastien]

  • 增加了可适应方法 MeetingItem._annex_decision_addable_states_after_validation,它将在验证过程之后管理可添加附件决策的条目状态,从 validated 状态到条目 WF 的结束。[gbastien]

  • 增加了 WF 适配 waiting_advices_given_and_signed_advices_required_to_validate,它将检查是否必要的建议达到了它们的 WF 最后一步。这是对建议没有完全给出并且条目被验证的罕见情况的一种回应,现在如果建议 WF 最后一步没有达到,则无法验证条目。[gbastien]

  • 在会议视图中,如果没有可用的条目,关闭 available-items 可折叠部分,以节省空间,并显示可用的条目数量,就像它已经为展示的条目那样,这样就可以清楚地知道为什么可折叠部分被关闭。[gbastien]

  • 使 imio.helpers.date.wordizeDatepm_utils 中可用(用于 POD 模板、TAL 表达式等)。[gbastien]

  • 将代码调整为使用 imio.helpers.cache.get_plone_groups_for_user 而不是已弃用的 ToolPloneMeeting.get_plone_groups_for_user,后者保留用于向后兼容。[gbastien]

  • 由于负责标题的组被转义以避免恶意代码,在条目视图中使用 structure 或转义字符(如 )显示其 html 实体代码(如 &#x27;)。[gbastien]

4.2rc30 (2022-07-01)

  • 使 Migrate_To_4200._fixPODTemplatesInstructions 中的 getFirstItemNumber/first_item_number 替换在所有情况下都起作用,而不仅仅是 Meeting POD 模板。[gbastien]

  • Migrate_To_4200._fixPODTemplatesInstructions 中管理 display_date 指令。[gbastien]

  • MeetingConfig.getMeetingsAcceptingItems 中,将 review_states 计算逻辑从 MeetingItem.listMeetingsAcceptingItems 移动到 MeetingConfig._getMeetingsAcceptingItemsQuery,因此调用 MeetingConfig.getMeetingsAcceptingItems 时,当 review_states=[] 时,始终是正确的。这修复了 imio.pm.ws.soap.soapview.SOAPView._meetingsAcceptingItems 中的错误,该错误返回相同的接受条目的会议,无论用户是否是 MeetingManager(实际上总是返回接受条目的会议,就像用户是 MeetingManager 一样)。[gbastien]

  • 对显示错误消息进行适配,使其在字段中而不是表单顶部显示。

    • 使用 constraint 而不是 invariant 来验证 IMeetingCategory.category_mapping_when_cloning_to_other_mc

    • 对于 IPMDirectory.validate_position_types,而不是 Invalid,引发一个 WidgetActionExecutionError

    [gbastien]

  • 重新组织 MeetingItem 相关的先辈/后继方法,为缺少该参数的方法添加了参数 unrestricted=True,以便在从 plonemeeting.restapi 调用时可以将其设置为 False 以获取相关条目。[gbastien]

  • 适配 MeetingConfig.validate_customAdvisers,使其能够删除从未使用过的延迟感知顾问配置,并更改 for_item_created_from(如果不是自动请求的建议)。[gbastien]

  • 清理 UnrestrictedMethodsView,将其拆分为 ItemUnrestrictedMethodsViewMeetingUnrestrictedMethodsView,因为 findFirstItemNumberForMeeting 是唯一一个以 Meeting 作为上下文调用的方法,而其他方法需要以 MeetingItem 作为上下文。将 findFirstItemNumberForMeeting 重命名为 findFirstItemNumber。[gbastien]

  • 修复了在未选择 proposingGroup 时无法显示 itemTemplate 上的建议 tooltipster 的问题。[gbastien]

  • 当克隆条目时,让 MeetingManager 绕过 MeetingCategory.using_groups 检查,这样我们就避免了由于类别不可由 MeetingManager 选择而导致条目无法克隆的问题(例如,周期性条目、延迟条目等)。添加了 MeetingItem.get_successor 辅助函数,它将返回最后一个(通常是唯一的)后继。[gbastien]

  • 当一项在会议展示前被链接时,避免手动链接项目出现错误顺序,因为项目是按照会议日期排序的。将没有会议日期的项目添加到项目列表的顶部,这样当它们被插入到会议中时,就会显示在最上面。[gbastien]

  • Meeting.validate_dates 中,移除了对 start_date > dateend_date < date 的检查,有时这并不适用……[gbastien]

  • 添加了通过 voting group 编码投票的可能性和为多个项目编码相同投票的可能。添加了字段 held_position.voting_group。[gbastien]

4.2rc29 (2022-06-17)

  • Migrate_To_4200 中,使用 updateLocalRoles 更新 TAL 表达式为 update_local_roles。[gbastien]

  • utils.py 中的无害函数导入到 safe_utils.py,使其在 TAL 表达式和 POD 模板中的 pm_utils 中可用。[gbastien]

  • 当缩写为 None 时,使 organization.get_acronym 返回空字符串 u''。[gbastien]

  • ToolPloneMeeting.pasteItem 中,不要使用 proposingGroup 词汇 by_value 来获取第一个用户组,因为 by_value 生成一个无序的字典,使用 _terms 来保持术语的顺序。[gbastien]

4.2rc28 (2022-06-14)

  • 对于 MeetingItem.mayTakeOver,恢复之前的操作行为,不检查 ReviewPortalContent 权限,但如果某些 WF 转换是可触发的,确实有些转换即使在用户没有 ReviewPortalContent 权限的情况下也可能是可触发的,例如使用 waiting_advices WF 适配器时。[gbastien]

  • 添加了 utils.get_prefixed_gn_position_name 以从 contacts 列表和一个 position_type 中获取带前缀的性别/编号 position_type。将 PMHeldPosition.get_prefix_for_gender_and_number 使用的代码分解为 utils._prefixed_gn_position_name。[gbastien]

  • 优化了使用 MeetingConfig.getTransitionsForPresentingAnItem 的地方(重复项、重复和验证、发送到其他 MC 和展示),如果直接有 validate 转换,则跳过整个项目验证 WF。[gbastien]

  • 添加了 WFAdaptations transfered/transfered_and_duplicated,它将在项目工作流中将一个 transfer 转换添加到 transfered 状态。这与 accepted_out_of_meeting 类似,但如果项目可发送到其他 MeetingConfigs,则可以被 MeetingManagers 触发。[gbastien]

  • 在 content/addUsers 中直接创建用户 fs。[odelaere]

  • 避免在 POD 模板中提供完整的 utils.py 文件,在 safe_utils.py 文件中选择可用的函数。[gbastien]

  • 修复了 ItemToDiscussViewItemIsSignedView 的 cachekeys,因为图像路径被缓存,我们需要在 cachekey 中检查 portal_url。[gbastien]

  • CSS,移除了 static-infos 部分的顶部边距重复定义,这导致仪表板中项目参考的顶部有太多空间。[gbastien]

  • 使 Migrator.updatePODTemplatesCode 输出格式与 collective.documentgenerator 内置的 Search & Replace 或使用 appy.pod S&R (collective.documentgenerator>3.30) 兼容。[gbastien]

  • 修复了 utils.transformAllRichTextFields,它在使用参数 onlyField 时(从快速编辑调用)丢失了图像的 resolveuid。添加了升级步骤到 4203 来修复此问题,自迁移到 4200 以来,每个项目都将被修复,因为自 4200 版本以来引入了此错误……[gbastien]

  • 通过转义 HTML 渲染的地方来避免渲染恶意内容。[gbastien]

  • 修复了 PMDataChangesHistoryAdapter 中的问题。提示信息提到了错误的操作者。[aduchene]

  • 在处理会议关闭时的 meeting.first_item_number 时,只有当它仍然是 -1 时才计算数字,在其他情况下不执行任何操作,这将管理在年初重新初始化第一个项目编号的情况。[gbastien]

  • 添加了 events._invalidateAttendeesRelatedCache 以简化与会者相关缓存的无效化。由 person/held_position/meeting 使用,在必要时进行缓存失效。[gbastien]

4.2rc27 (2022-05-17)

  • 添加了必要的 Migrate_To_4202._fixPreAcceptedWFA,以修复使用先前版本中修复的 pre_accepted WFAdaptation 的应用程序。[gbastien]

  • 修复了由于缓存的url包含成员ID而导致的 @@createitemfromtemplate 产生的 未授权 错误。此外,修复了每个用户的 searches_… 文件夹上的 constrainTypes,以防止向其中添加任何内容。[gbastien]

4.2rc26 (2022-05-16)

  • IRAMCache 配置移动到更干净的地方,即 ZopeProcessStarting 事件。[gbastien]

  • 修复了在应用程序外部(如位于网站根目录的由手动的 Documents 文件夹)使用的 portlet quickupload。[gbastien]

  • 修复了 MeetingItem.showObservations,这是一个可适应的方法。[gbastien]

  • 修复了使用 async_actions 时,@@meeting_available_items_view 中的 present 转换有时不可用的问题,因为 MeetingItemWorkflowConditions._publishedObjectIsMeeting 即使在 Meeting 上返回 False。[gbastien]

  • Migrator 中删除了 is_in_part 管理,因为它已移动到 imio.migrator。[gbastien]

  • 修复了由 Taken over by 面板过滤器使用的词汇表,以便能够选择 Nobody 值来获取无人接管的项目。[gbastien]

  • 删除了 livesearch 覆盖,现在在 plonetheme.imioapps 中统一覆盖。[gbastien]

  • 修复了像 presenteditemfrozen 这样的会议中的可编辑项目,但实际行为像决定状态,并且必须由 MeetingManagers 完全编辑的 pre_accepted WFAdaptation。[gbastien]

4.2rc25 (2022-05-10)

  • 完成了修复,关于在无法访问机密附件的用户中错误地显示会议 @@categorized-annexes 中的附件类型图标。[gbastien]

4.2rc24 (2022-05-10)

  • BaseDGHV.image_orientation 中的图像旋转从 90° 更改为 270°,因为它在包含附件的 pod 模板中使用 imagemagick 时按顺时针方向旋转。[aduchene]

  • 管理当添加新建议时,以及当建议被要求再次(以相同方式)时(在编辑表单中)的 MeetingConfig.defaultAdviceHiddenDuringRedaction,并显示消息给顾问。[gbastien]

  • 在建议视图中显示 global_actions。[gbastien]

  • 修复了在会议视图中错误显示的附件类型图标,对于无法访问机密附件的用户。机密附件不可下载,但附件类型图标显示,悬停时 tooltipster 为空。[gbastien]

  • adaptations.WAITING_ADVICES_FROM_STATESuse_custom_transition_title_for 值从转换ID的元组转换为字典,因此可以在转换之前定义任意的新自定义标题,之前它采用转换ID,现在可以覆盖不同工作流程中具有相同转换ID的多个不同转换标题。[gbastien]

  • 完成了 restapi_call 调试模式,当请求是 POST 时记录请求 BODY。[gbastien]

  • 修复了会议视图中的项目编号输入 width,因为 Chrome 不处理 autoFF。[gbastien]

  • @@load_held_position_back_refs 中,显示 hed_position 被使用的视图,仅在找到超过10个元素时显示 。[gbastien]

4.2rc23 (2022-05-03)

  • 修复了 @@categorized-annexes,只有在未配置 annexannexDecision 附件类型时才显示消息 配置不允许添加附件。。[gbastien]

  • 修复了 SelectableAssemblyMembersVocabularySelectableItemInitiatorsVocabulary 词汇表中缺少术语管理的问题,未正确处理,并添加了破坏 SimpleVocabulary 的重复值。[gbastien]

  • 修复了会议中项目编号输入的宽度(因此当可编辑时),以便像 238.21 这样的数字可以完全查看。[gbastien]

  • 适配了 utils.get_item_validation_wf_suffixes,该函数返回在项目至少处于 已验证 状态时可以访问的组后缀,以处理一个特殊用例:当没有启用项目工作流验证级别(因此项目在 已验证 状态下创建)时,itemcreated 级别上定义的 extra_suffixes 将具有对项目的读取访问权限,这允许为例如 prereviewersreviewers 这样的后缀提供读取访问权限,因为默认情况下,由于不在工作流中使用,它们不会获得对 已验证 项目的访问权限。[gbastien]

  • utils.reviewersFor 移动到 MeetingConfig.reviewersFor,之前这样做是因为它使用了 config.MEETINGREVIEWERS 常量,该常量可以被外部配置文件 monkeypatch,现在它自动从 MeetingConfig.itemWFValidationLevels 确定值。添加了 MeetingConfig._custom_reviewersFor 以便在 MeetingConfig.itemWFValidationLevels 太复杂或同一后缀在项目验证工作流的不同步骤中多次使用时,可以手动管理 MeetingConfig.reviewersFor。[gbastien]

  • 修复了之前在建议是 asked_againhidden_during_redaction 时未显示 advice_type 的问题。[gbastien]

4.2rc22 (2022-04-28)

  • 适配了 Migrate_To_4200._removeBrokenAnnexes,检查附件 UID 是否在其父级 categorized_elements 中,否则将其删除。[gbastien]

  • 重新引入了 PMConditionAwareCollectionVocabulary._cache_invalidation_key 覆盖以考虑用户组,以便在用户组更改时使缓存失效。[gbastien]

  • 添加了新字段 Meeting.adopts_next_agenda_of。[gbastien]

  • 添加了新字段 Meeting.mid_start_date。[gbastien]

  • Migrate_To_4200 中完成了 POD 模板说明替换。getExtraordinarySession() -> extraordinary_session [aduchene]

  • 将建议弹出窗口中显示的定制建议信息因子化,以便在 @@advice-infos 视图中显示,也可以在建议对象视图中显示。[gbastien]

  • MeetingItem._updateAdvices 中避免 UnicodeDecodeError,当比较旧的和新的 adviceIndex 时可能会发生这种情况,这可能会发生在旧的 adviceIndex 包含作为 strcomment 而新值存储为 unicode 的情况下。[gbastien]

  • 添加了在多个部分中执行迁移的可能性。将迁移到 4200 适配为分 3 部分执行( mainupdate_local_rolesupdate workflow mappings/rebuild catalog)。[gbastien]

  • 修复了 MeetingItem.validate_proposingGroupWithGroupInCharge,它不会让选择没有选择负责组的值(错误的配置)。[gbastien]

  • 修复了当 isPermission=Trueutils.sendMailIfRelevant 的问题,它根本不起作用。[gbastien]

  • 更改了 MeetingItem.get_representatives_in_charge 的行为,它将返回 held_position 对象,而不是更多的 MeetingItem.groupsInCharge 组织。[gbastien]

  • 将日历小部件上的第一天设置为星期一而不是星期日(默认值)。[gbastien]

  • 确保建议的 tooltipster 不溢出屏幕顶部,这可能在浏览器屏幕缩放时发生。[gbastien]

  • 当在 restapi 调用期间传递参数 debug=true 或将环境变量 RESTAPI_DEBUG 设置为 True 时,结果将在事件日志中完全显示。[gbastien]

  • 添加了 PloneGroupSettingsOrganizationsValidator,它将检查未从 plonegroup 设置中取消选中的组织不是另一个组织的负责人。将 PloneGroupSettingsValidator 重命名为 PloneGroupSettingsFunctionsValidator。[gbastien]

  • 修复了在 _reviewers 中没有用户时 WFAdaptations return_to_proposing_group_with_last_validationreturn_to_proposing_group_with_all_validations 的问题,此时项目无法发送回会议,现在 return_to_proposing_group 验证工作流 考虑了最后的验证状态。[gbastien]

  • @@categorized-annexes 中,当无法添加附件(因为未设置 MeetingConfig)时,显示一个清晰的提示信息。[gbastien]

  • 添加了WFAdaptation item_validation_shortcuts,允许用户根据他们的组更改项目状态为任何其他项目验证状态(因此在itemcreated和validated之间)。添加了MeetingItem._assign_roles_to_group_suffixes以简化将角色分配给组织后缀的操作。[gbastien]

  • 添加了带real_id=False参数的MeetingConfig.getId,这将在某些测试中使用时允许获取实际ID,因为我们对这些ID进行了洗牌。[gbastien]

  • 添加了新的字段MeetingItem.otherMeetingConfigsClonableToFieldDetailedDescription,在发送到另一个MeetingConfig时将填充detailedDescription字段。调整了模板,以便自动管理添加新的MeetingItem.otherMeetingConfigsClonableToFieldXXX字段。[gbastien]

  • 将MeetingItem budgetRelated/budgetInfos字段的条件逻辑移动到MeetingItem.show_budget_infos,以便更容易覆盖。[gbastien]

  • 为负责计算项目模板复杂树的@@createitemfromtemplate视图添加了ram.cache。[gbastien]

  • 在会议显示项中,对于参会者未出席的会议,在显示不存在的会议项的@@display-meeting-item-not-present上显示项目编号的簇,以便于阅读。[gbastien]

  • BaseDGHV.print_votes添加了no_votes_marker参数。[aduchene]

4.2rc21 (2022-03-22)

  • 修复了在显示可用项的iframe中会议视图上的overlay和tooltipster的显示。有时它并未完全显示,现在iframe将正确调整大小。[gbastien]

  • 使actionspanel始终可见于DashboardCollectionConfigurablePODTemplate。[gbastien]

  • 在安装和每次迁移时更新collective.documentgenerator oo_port。[gbastien]

  • 在调用Migrate_To_4201时处理from_migration_to_4200=False参数。[gbastien]

4.2rc20 (2022-03-15)

  • 在POD模板的默认生成上下文中添加了catalog。[gbastien]

  • 完成了在Migrate_To_4200中对POD模板说明的替换,管理displayStrikedAssembly和新的默认上下文值catalog。[gbastien]

  • 修复了无法删除未使用后缀的PloneGroupSettingsValidator,因为与_advisers后缀的错误检查。[gbastien]

  • 修复了WFAdaptation returned_to_proposing_group,提议组成员无法添加附件。在4201中添加了升级步骤以修复项目WF并更新现有项目的WF角色映射。[gbastien]

  • CKeditor中禁用了wsc插件(将其添加到removePlugins),因为在CKeditor的scayt菜单中的链接不再工作。[gbastien]

  • 修复了在项中取消行内更改时由于使用GET而不是POST方法获取原始数据而导致连续的旋转。[gbastien]

  • 对人员视图进行了一些CSS修复,因为我们现在显示below-content-title视图小部件,因此app_parameters字段集被移到了右侧。[gbastien]

4.2rc19 (2022-03-10)

  • Migrate_To_4200中管理更多的POD模板说明替换,将< cite>meeting.Title()替换为< cite>tool.format_date(meeting.date)并管理各种变体。[gbastien]

  • 将< cite>meeting添加到POD模板的默认生成上下文中,也将< cite>MeetingConfig作为< cite>cfg提供,它已经作为< cite>meetingConfig提供。[gbastien]

  • 修复了在< cite>utils.updateAnnexesAccess中可能未持久化的< cite>categorized_elements,因为它是一个OrderedDict,我们必须手动设置< cite>parent._p_changed = True。[gbastien]

4.2rc18 (2022-03-08)

  • 如果大脑是孤儿,则不要在ToolPloneMeeting.update_all_local_roles中失败,只需记录并继续。[gbastien]

  • 限制显示从信息继承的建议的tooltipster的宽度。[gbastien]

  • 在项目WF转换期间,重新索引previous_review_state索引。这修复了searchcorrecteditems集合不再工作的问题。[gbastien]

4.2rc17 (2022-03-07)

  • 重做pypi上未找到发布版。[gbastien]

4.2rc16 (2022-03-07)

  • 修复了searchitemstoprevalidate集合的TAL条件,状态是而不是。[gbastien]

  • 修复了PMConditionAwareCollectionVocabulary,不再覆盖cachekey以按用户组缓存,因为URL包含用户ID,或者缓存的值将包含另一个用户ID。[gbastien]

4.2rc15 (2022-02-25)

  • 确保项目 修改日期 未被 UpdateItemsToReindexView 更新。[gbastien]

4.2rc14 (2022-02-25)

  • 修复了在克隆项目时 MeetingItem.modified 未更新的问题。[gbastien]

4.2rc13 (2022-02-25)

  • 更改了项目视图上建议 tooltipster 的默认位置,使其显示为 底部 以处理 可读性。[gbastien]

  • 更改了 many_users 的默认值,如果用户数超过 400 或使用 LDAP,则设置为 True,否则为 False。[gbastien]

  • 一些样式修复

    • 仪表板上静态信息的显示方式与项目视图相同;

    • CKeditor 中无边框表格的显示为黑色;

    • 在历史化建议弹出窗口中更清晰地显示建议字段名称。

    [gbastien]

  • 修复了在克隆项目时 MeetingItem.modified 未更新的问题。[gbastien]

4.2rc12 (2022-02-15)

  • 修复了功能建议工作流程的行为(当建议具有几个状态的实际工作流程时)

    • 当建议审查状态 review_state 发生变化时,项目 indexAdvisers 索引未重新索引,因为 item.adviceIndex 未更改。将建议 review_state 添加到 MeetingItem.adviceIndex,以便当建议 review_state 发生变化时,它也会发生变化,因此 MeetingItem._updateAdvices 返回 indexAdvisers 作为要更新的索引;

    • 当建议状态发生变化时,通知已修改的项目,以便使集合计数器和项目修改日期更新无效;

    • events.onAdviceTransition 中,只有当相关时才调用 AdviceAfterTransitionEvent

    [gbastien]

  • 添加了 MeetingItem._is_currently_updating_advices 以正式化更新建议的项目周期。[gbastien]

  • 修复了项目视图上的“讨论”切换功能。[gbastien]

4.2rc11 (2022-02-14)

  • 重构了 waiting_advices 工作流程适应

    • 将常量移动到 waiting_advices 信息字典中,以便我们有针对每个新添加状态的参数;

    • 管理 crossed 转换,当多个 waiting_advices 状态可从相同起源状态访问时,在这种情况下,添加带有 __to__ 后缀的附加转换;

    • 添加参数 new_state_id 以避免出现非常长的 ID(…__or__…__or__…)。

    [gbastien]

  • 优化了建议 tooltipster 的打开方式,弹出窗口甚至在使用快速悬停时也会打开,现在这种行为类似于附件 tooltipster。[gbastien]

4.2rc10 (2022-02-10)

  • 修复了当项目从呈现状态(当使用 WFAdaptation presented_item_back_to_itemcreated)返回到项目创建状态时,MeetingItem._send_history_aware_mail_if_relevant 的问题。此外,使项目通知(由 MeetingItem._send_history_aware_mail_if_relevantMeetingItem._send_proposing_group_suffix_if_relevant 发送)能够一起选择,第二个通知只有在第一个未发送时才会发送。[gbastien]

  • 修复了在联系人上未正确设置与 MeetingConfig 相关的 Plone 群组(_meetingmanagers_powerobservers 等)的罕见情况,这可能会发生如果 Plone 群组已存在(MeetingConfig 创建/删除/创建)[gbastien]

  • _addDecidedState_addIsolatedState 移出 adaptations._performWorkflowAdaptations,以便可以从外部导入。[gbastien]

  • 修复了即使在默认项目模板不受群组限制的情况下,创建新项目的链接也不会显示。[gbastien]

  • 当某些用户/组更改时,使项目 actions_panel 缓存无效。[gbastien]

4.2rc9 (2022-02-04)

  • 修复了在从 actions_panel 转换后会议未正确重新加载的错误。[gbastien]

4.2rc8 (2022-02-03)

  • 出于安全原因,不再缓存 image_view_fullscreen 视图。请参阅 https://github.com/plone/Products.CMFPlone/security/advisories/GHSA-8w54-22w9-3g8f。[gbastien]

  • 针对使用 restapi 创建的会议的一些修复

    • 验证错误消息不得作为 Unicode 返回;

    • 由于 ObjectCreated 事件在验证后调用,请确保验证不会因在 ObjectCreated 事件期间添加的找不到的属性而失败。

    [gbastien]

  • 向Meeting.get_item_signatories添加了新的参数by_signature_number=False,这将返回一个有序字典,其中键是签名号,值是项目签署者的列表。[gbastien]

  • 更改了默认值many_usersmany_groups,默认设置为False,除非LDAP可用,在这种情况下,many_users设置为True。[gbastien]

4.2rc7(2022-01-28)

  • 添加了可适应的方法MeetingItem._bypass_meeting_closed_check_for,这将使控制给定fieldNameMeetingItem.mayQuickEdit参数成为可能。这解决了当会议关闭时不再可编辑的MeetingItem.internalNotes永久可编辑的问题。[gbastien]

  • 在collective.contact.core的注册参数中启用display_below_content_title_on_viewsdisplay_photo_label_on_views。[gbastien]

4.2rc6(2022-01-27)

  • 在项目在会议中时,在项目标题之前显示项目编号,在项目标题之前,只有当项目有参考(至少冻结的会议)时才显示项目编号。[gbastien]

  • 更改了MeetingItem.cloneToOtherMeetingConfig中重新索引的顺序,在调用ItemDuplicatedToOtherMCEvent之后调用新项目和当前项目的reindexObject(之前已执行)。[gbastien]

  • 将字段internalNotesmarginalNotes移动到项目编辑/查看表单的底部。[gbastien]

  • metadata.xml中将plonemeeting.restapi设置为直接依赖项,因此默认安装。[gbastien]

4.2rc5(2022-01-24)

  • 修复了项目处于_waiting_advices状态时MeetingItem.internalNotes的访问问题。[gbastien]

  • 在会议列表中启用异步操作列。向与会议相关的操作添加图标,以便在actions_panel中占用更少的空间。[gbastien]

  • 按字母顺序对PMPositionTypesVocabulary进行排序。[gbastien]

4.2rc4(2022-01-24)

  • 完成Migrate_To_4200._fixPODTemplatesInstructions。[gbastien]

  • 向附件和附件Decision添加了下载图标。[gbastien]

  • 修复了UpdateItemsToReindexView,在LazyMap的 brains 上迭代,我们将其 reindexObject 导致不完整的循环(如在循环中删除元素时)。[gbastien]

4.2rc3(2022-01-21)

  • 由于向会议提出项的过渡可能因组织而异(如果某些后缀被禁用或某些后缀 Plone 群组为空),因此请考虑在MeetingConfig.getTransitionsForPresentingAnItem及其所有调用中考虑这一点。[gbastien]

  • 添加了在克隆项时设置任意时间的可能性,通过向MeetingItem.clone添加新参数item_attrs={}。它用于在将重复项添加到会议值之前设置新项的。[gbastien]

  • 修复了从仪表板调用时在deletewholemeeting操作中的JS错误。[gbastien]

  • 修复了MeetingItem.validate_pollType,如果值没有更改则不进行验证,这解决了当项处于状态returned_to_proposing_group时项目编辑器引发的Unauthorized,因为AT验证每个字段,并且只有当项与会议相关联时,MeetingManagers才可编辑。[gbastien]

  • 修复了migrate_to_4200.MeetingMigrator,确保RichTextValue是unicode。确保会议和项上的所有相关方法都返回unicode。[gbastien]

  • imio.annex.utils.get_annexes_to_print添加了测试,确保即使全局设置中的图像格式(pngjpg、…)更改,它仍然可以工作。[gbastien]

4.2rc2(2022-01-18)

  • 修复了Migrate_To_4200._cleanUnusedPersonsAndHeldPositions,不要使用会终止事务的@@delete_givenuid![gbastien]

  • Meeting.title设置为required=False,因为它在编辑和生成时被省略。这对于从WS调用创建会议很有用,指定标题不是必需的。[gbastien]

4.2rc1(2022-01-14)

  • 修复了Migrate_To_4200._cleanUnusedPersonsAndHeldPositions,不能从我们正在迭代的 brains 列表中删除元素。使用catch_before_delete_exception=False调用@@delete_givenuid,以便引发BeforeDeleteException。[gbastien]

  • 在《events.onHeldPositionWillBeRemoved》中使用 held_position.get_full_title 替换 held_position.Title,因为后者不包含人员头衔或 portal_message,这有点无用。[gbastien]

4.2b26 (2022-01-14)

  • ItemPrivacyColumnItemPollTypeColumnNothing 添加了标题帮助。[gbastien]

4.2b25 (2022-01-14)

  • portlet_todo.title_length 设置为 100 而不是 60(在迁移到 4200 时添加了 _updatePortletTodoTitleLength 迁移步骤)。此外,将 portlet_todo.render_cachekey 设置为每个 MeetingConfig 的缓存。[gbastien]

  • 修复了 SelectableCommitteeAttendeesVocabulary.__call__,当启用 Meeting.committes 并添加新会议时,由于上下文是父级,它将失败。[gbastien]

  • held_position 视图中异步显示反向引用(使用它的元素)。在从 4.0 迁移到 4.1 的迁移过程中,添加了升级步骤以删除从旧 MeetingUsers 迁移的未使用 held_positions。[gbastien]

  • MeetingConfig POD 模板页面上显示 POD 模板的 UIDfilename。[gbastien]

  • 尽可能使用 catalog.unrestrictedSearchResults。[gbastien]

  • IAdviceRemoveInheritance.inherited_advice_action 使用 RadioFieldWidget。[gbastien]

  • 添加了一列,显示用于显示 操作面板 的控件,这样只有相关时才会计算 操作面板,并且占用的空间更少。[gbastien]

  • 修复了从项目转到会议时的功能,当 facets orphan 机制不被尊重时,用户将被重定向到包含仅孤儿的一个额外页面。[gbastien]

  • 再次添加了 Migrate_To_4200._correctAccessToPODTemplates。[gbastien]

  • 将附件预览格式从 png 更改为 jpg。[gbastien]

4.2b24 (2022-01-07)

  • 使用 pm_technical_index 存储项目发起人以加快未使用 held_positionorganization 的删除(之前需要遍历和唤醒每个项目)。[gbastien]

  • 简化了 ToolPloneMeeting.isManager 的使用,当使用 realManagers=True 时,不再需要传递 context,因此将每个 tool.isManager(tool, realManagers=True) 转换为 tool.isManager(realManagers=True)。[gbastien]

  • 修复了 utils.get_current_user_id,它之前根本不起作用,现在它正常工作后,我们必须确保保护使用 adopt_user 的地方。[gbastien]

4.2b23 (2022-01-04)

  • 修复了 Migrate_To_4200 中升级步骤的顺序,在执行需要项目 review_state_removeBrokenAnnexes 之前,确保项目 WF 正确。[gbastien]

  • 确保在建议弹出窗口中正确显示建议标题和操作。[gbastien]

4.2b22 (2022-01-03)

  • PMCategoryVocabulary 调整为考虑在 collective.iconifiedcategory 中引入的新参数 only_enabled=True。[gbastien]

  • 添加了参数 MeetingConfig.enableAdviceProposingGroupComment,默认为 False,以便能够启用/禁用建议提出组的评论,因为它与工作流程确认弹出窗口竞争,并且这两个功能不应同时启用。[gbastien]

  • 在显示 POD 模板的 MeetingConfig 页面上,对于重新使用另一个 POD 模板的 odt_file 的 POD 模板,显示指向 odt_file 实际持有者的链接。[gbastien]

  • 修复了顾问可以添加附件或 annexDecision 的错误,因为角色 Contributor 用于 添加附件添加建议 权限。添加了新的角色 MeetingAdviser 以管理 添加建议 权限。[gbastien]

  • 添加了参数 MeetingConfig.itemLabelsEditableByProposingGroupForever,默认为 False,当设置为 True 时,项目提出组编辑将能够永久编辑项目标签。[gbastien]

  • 更改了 MeetingItem.internalNotes 的默认行为

    • 现在内部笔记由新参数 MeetingConfig.itemInternalNotesEditableBy 中选定的配置文件永久编辑。添加了新角色 MeetingInternalNotesEditor 并管理 MeetingItem.internalNotes 字段的查看/编辑权限;

    • adaptations.performWorkflowAdaptations 重命名为 adpatations._performWorkflowAdaptations 以显示它不应直接调用。

    • MeetingItem.attributeIsUsed 重命名为 MeetingItem.attribute_is_used,以便在 MeetingMeetingItemMeetingAdvice 上使用相同的函数,并且可以被 utils._addManagedPermissions 调用。

    [gbastien]

  • 修复了当使用挂载点时 held_position.position 的默认值无效的问题,现在使用 @form.default_value(设置为自身组织)而不是在添加新元素时通过 URL 传递默认值(++add++held_position?form.widgets.position=…)。[gbastien]

  • view.print_attendees_by_type 添加了两个参数以改进文档格式。添加了 unbreakable_contact_value 以避免在人的中间换行,以及添加了 end_type_character 以特定字符结束参会者类型。[aduchene]

  • 在会议模式中添加了一个新的布尔字段“videoconference”。当设置为“true”时,参会者的标签将更改为“已连接”,并且将显示一个独特的图标。[aduchene]

  • 优化了 ram.cache 配置

    • Monkeypatched zope.ramcache.Storage.getEntry 以在获取现有条目时更新时间戳;

    • 将 ToolPloneMeeting.get_orgs_for_user 适配以不再返回对象,因为它使用 ram.cache,默认参数 the_objects=False

    • 适配 global_cache 设置,设置 maxEntries=100000maxAge=2400cleanupInterval=600 以确保缓存长时间保持。

    • 不再使用 ram.cache Meeting.query_stateMeetingItem.query_state,性能测试表明这并不必要。

    • 尽可能使用不受限制的目录查询,并避免使用 path 索引;

    • Meeting._number_of_items 中存储会议项目数量,而不是每次显示会议时都计算它;

    • 添加了 ram.cached 方法 MeetingConfig.getItemAdviceStatesForOrg,它避免了获取组织,在可能的地方尽可能使用它。

    • 为分面计数器添加了 ram.cachePMRenderTermView.number_of_items);

    • 添加了 Meeting._may_update_item_references,它包含更新项目引用的逻辑,这避免了在引用不需要更新时在项目上循环。

    • MeetingItem.update_local_roles 中,只有在未触发转换时才执行 reindexObjectSecurity,因为 WorkflowTool 也会执行 reindexObjectSecurity

    • 将项目导航小部件适配以不在显示时计算可用的项目数量,而仅在询问第一个/上一个/下一个/最后一个项目时才计算。

    • 在仪表板(prettylink、附件、建议、操作面板)上使缓存更共享。

    [gbastien]

  • 由于已存储会议项目数量,现在在仪表板上显示它。[gbastien]

  • 更改了 CKeditor 表格管理的默认行为

    • collective.documentgenerator 列表修改器默认设置为 nothing

    • 添加了一个样式 Otpimize column width,以便能够按表启用 LO 列宽优化。

    [gbastien]

4.2b21 (2021-11-26)

  • 修复了使用模式 testutils.sendMailIfRelevant 的问题。[gbastien]

  • 修复了 waiting_advices 工作流适配,只依赖于所选的工作流适配,不再管理 ReviewPortalContent 权限。还适配了 MeetingItem.mayAskAdviceAgain,以允许在项目处于 _waiting_advices 审查状态时,提出组成员再次请求建议。[gbastien]

  • MeetingConfig.getItemWFValidationLevels 参数 state 适配为 states,以便可以传递多个 review_states。新参数 return_state_singleton=True,默认情况下将方法工作方式保持不变。[gbastien]

  • Meeting._getGroupManagingItem 参数 theObject 现在默认为 False。[gbastien]

  • Proposing group may change state of waiting_advices item 的逻辑移动到 MeetingItemWorkflowConditions._userIsPGMemberAbleToSendItemBack,并添加了 MeetingItemWorkflowConditions._userIsPGMemberAbleToSendItemBackExtraCondition 以便于覆盖(类似于已经覆盖的 Adviser may send item waiting advices back to proposing group 逻辑)。[gbastien]

4.2b20 (2021-11-15)

  • 依赖于 archetypes.schematuning(尽管已经是这种情况)。[gbastien]

  • 修复了 monkey.validate(在测试中加载 monkey 以使其被考虑)。[gbastien]

  • 修复了在《CategoriesOfOtherMCsVocabulary》中,当禁用类别存在于包含特殊字符的标题的《MeetingConfig》时引发的 UnicodeDecodeError。[gbastien]

  • portal_ploneMeeting 不可用(例如在测试 imio.pm.wsclient 时),不要在 PMGenerablePODTemplatesAdapter.get_all_pod_templates 中失败。[gbastien]

4.2b19 (2021-11-08)

  • 调整了 searchmyitemstoadvice 仪表板集合的显示条件,以确保仅在定义了某些 MeetingConfig.selectableAdviserUsers 时才显示。[gbastien]

  • 调整了 MeetingItem.validate_proposingGroup,以跳过对管理员的验证,因为他们大多数时间都不是任何组的成员。[gbastien]

  • 调整CSS,以确保在 itemcreated_waiting_advicesreview_state 元素中显示红色。[gbastien]

  • 修复了从项目返回会议并显示正确页面的功能,这没有按预期工作,因为分面标准不是用它们的默认值初始化,而是用回退值初始化,例如 b_size 的 40 实际上设置为 20。现在我们只是将 b_start 作为 URL 参数传递,并在分面初始化时在 Faceted.Query 中处理它。[gbastien]

  • 在访问 restapi 调用时添加了日志记录,需要 monkeypatch plone.restapi.services.Service。[gbastien]

  • 在项目 SearchableText 中索引附件 scan_id,就像附件 title 一样。[gbastien]

  • 添加了提议组对建议添加注释的可能性。

    • 只要项目可编辑或建议可添加/编辑,注释就只能由提议组编辑;

    • 注释只能由被询问的建议的顾问(和会议管理员)查看;

    • 添加了辅助方法 MeetingItem.is_decided

    [gbastien]

  • 修复了 ToolPloneMeeting.getPloneMeetingFolder,它没有在 Plone 根目录或成员(具有与会议配置相同 ID 的用户)中存在具有相同 ID 的元素时创建一个 MeetingConfig 文件夹。[gbastien]

  • 添加了一个 JS 函数,当保存 MeetingConfig(编辑表单)时触发,以确保所有 InAndOutWidget 值都已被选中,这避免了用户单击 InAndOutWidget 右面板的值时丢失值。[gbastien]

  • 修复了阻止删除 Plone SiteonItemWillBeMoved 事件。[gbastien]

  • 默认情况下不要将 pm-anonymize 样式添加到 CKeditor,这将仅在需求时配置。[gbastien]

  • the_objects=False 参数添加到 ToolPloneMeeting.get_plone_groups_for_user,以获取 GroupData 实例而不是组 ID。这由 plonemeeting.restapi@users 端点使用。[gbastien]

  • 添加了 utils.get_annexes_config 函数,以便能够根据 context 和附件 portal_type 获取附件配置。[gbastien]

  • 修复了当操作员的全名中包含特殊字符时发送 WF 过渡通知电子邮件的问题。[gastien]

  • 删除了对不再存在的 pre_validation WF 适配器的引用,并相应地调整了代码。[gbastien]

  • 调整了 ToolPloneMeeting._users_groups_value 返回值和 cachekey

    • 之前我们返回了完整的用户/组关联,这可能非常大并消耗大量 RAM,现在我们只返回 md5 哈希;

    • 之前的 cachekey 是一个请求,现在我们使用 PAS principal 添加/删除来使缓存无效。

    • 与这个更改相关的某些性能优化

      • 为 vocabularies.PMUsers 添加了缓存。

      • 简化了 ToolPloneMeeting.getMeetingConfig,简单的使用 aq_acquire 是最快的实现,不需要缓存;

      • 当缓存仅在单个请求中存在时,不要使用 ram.cache,使用请求上的注释或使用 ram.cache 存储中间格式(ids 或 paths),因为它不能缓存真实对象;

      • 当可能时,使用 utils.get_current_user_id 而不是 plone.api.user.get_current

    [gbastien]

  • 默认情况下,在显示MeetingConfig(在“Documents”标签页中)上的POD模板列表时,不显示POD模板的详细信息(所有字段),因为这可能会很慢,仅在需要时才执行(点击“显示详细信息”链接)。[gbastien]

  • 修复了在复制项目并使用字段MeetingItem.proposingGroupWithGroupInCharge时出现的错误,可能导致生成的项目保留了原始的proposingGroup,而当前用户不是创建者,从而导致项目不可查看或编辑。[gbastien]

4.2b18(2021-10-13)

  • 通过使用缓存获取要存储的项目以及用于按会议日期对项目进行排序的数据,优化了MeetingItem.setManuallyLinkedItems。[gbastien]

  • 避免使用Member.getProperty

    • 使用ToolPloneMeeting.getUserName获取用户的全名;

    • MembershipTool.getMemberInfo进行猴子修补以添加缓存。

    [gbastien]

  • 修复了FolderDocumentGenerationHelperView.get_meeting_assembly_stats,使用imio.helpers.content.uuidToObject代替api.content.uuidToObject,以便能够使用参数unrestricted=True。[gbastien]

4.2b17(2021-09-29)

  • 添加了MeetingItem.validate_pollType,它依赖于ChangeItemPollTypeView.validate_new_poll_type,以确保在项目编辑表单中不可能破坏编码的投票。[gbastien]

  • 修复了当组织没有_advisers Plone组时出现的MeetingConfig.listSelectableAdvisers问题。[gbastien]

4.2b16(2021-09-28)

  • CKeditor样式Anonymize重命名,这是为了修复Migrator.addCKEditorStyle,以避免在添加包含特殊字符的CKeditor样式名称时出现< cite>UnicodeDecodeError。同时,使CKeditor样式面板显示更大。[gbastien]

4.2b15(2021-09-28)

  • 修复了PMContentHistoryView.show_history,因为它可能被调用于项目或会议,当上下文是项目时,仅检查powerobserver是否也是proposingGroup的成员,当上下文是会议时则无意义。[gbastien]

  • 修复了防止使用以committees_开头的字段(如果字段committees未启用),并忽略可能单独使用而不启用字段committees的字段committees_observationsMeetingConfig.validate_usedMeetingAttributes。[gbastien]

  • 修复了当使用MeetingConfig.selectableAdviserUsers和用户全名包含带重音的字母时失败的ItemOptionalAdvicesVocabulary。[gbastien]

  • MeetingConfig.listSelectableAdvisers适配以显示advisers Plone组的用户数量,这样我们就可以知道是否需要选择它,尤其是在使用MeetingConfig.selectableAdviserUsers时。[gbastien]

  • BaseDGHV.printXhtml的参数use_safe_html现在默认为< cite>False,因为< cite>collective.documentgenerator调用< cite>appy.pod < cite>Rendered设置< cite>html=True几乎具有相同的功能(确保给定内容是XHTML兼容的)。在BaseDGHV.printXhtml中添加了参数use_appy_pod_preprocessor=False,以便在使用< cite>printXhtml在其他作用域中(例如,在< cite>print_deliberation中用于格式化restapi结果)时启用它。[gbastien]

  • 完成MeetingItem.validate_proposingGroup以检查在创建新项目时,如果选择的proposingGroup是当前用户之一。这是必要的,当使用plonemeeting.restapi创建项目时,需要检查用户是否为不属于其成员的proposingGroup创建项目。[gbastien]

  • BaseDGHV.printXhtml的逻辑移动到utils.convert2xhtml,这样就可以从外部代码中调用它,例如从plonemeeting.restapi。[gbastien]

  • 完成当项目状态改变时发送的邮件通知(每个< cite>item_state_changed_类型的通知),以添加过渡标题(因此,当项目被提出时,通知用户知道它之前是itemcreated还是validated)和将过渡操作者和过渡注释添加到邮件正文中。[gbastien]

  • 修复了如果来自< cite>validated的< cite>down过渡导致中断的MeetingItem._send_history_aware_mail_if_relevant。[gbastien]

  • 添加了2022年的假期。[gbastien]

  • 添加了Migrator.addCKEditorStyle辅助函数,以简化添加新的CKeditor样式。[gbastien]

  • 通过新增CKeditor样式span.pm-anonymize,现在可以匿名化富文本的一部分。当使用restapi获取数据时,这也会被考虑。[gbastien]

4.2b14 (2021-09-09)

  • 修复了在迁移到4200时_migrateItemPredecessorReference中存在的问题。[aduchene]

  • utils.sendMailIfRelevant函数中的参数isUserIds添加,以便可以向任意用户发送电子邮件。将参数permissionOrSuffixOrRoleOrGroupIds重命名为value。[gbastien]

  • 添加了字段MeetingConfig.itemPreferredMeetingStates,允许设置可选的首选会议状态。[aduchene]

  • 添加了辅助方法MeetingConfig.listStateIds,用于获取给定objectType的所有状态ID。[aduchene]

  • 添加了向特定顾问组请求建议的可能性。

    • 仍然会向整个小组请求建议,但新的搜索我的建议项将返回已经请求当前顾问建议的项;

    • 新增了电子邮件通知您有建议要提供,因此只有被请求建议的用户会收到通知;

    • 其他顾问仍然可以提供建议,并且所有待提供的建议仍然可以通过所有待提供的建议搜索返回。

    [gbastien]

  • 由于启用分面过滤器的链接现在是一个简单的链接,不再是图标,因此已调整CSS。[gbastien]

  • 重新实现了会议截止日期功能,在会议视图中,如果项在定义的截止日期后经过验证,则在项标题前显示一个图标。[gbastien]

  • 修复了BaseDGHV.view_print_signatures_by_position,并添加了测试。[aduchene]

  • 将参数raw=True添加到pm_textarea.get_textarea_value中,使其默认返回原始值,而不是由portal_transforms处理的输出,因为PMTextAreaField包含纯文本,所以这是无用的。[gbastien]

  • 修复了默认项空模板,它没有尊重MeetingItem.templateUsingGroups参数,现在可以限制默认项空模板只适用于某些组。[gbastien]

  • 当在项上隐藏历史链接到powerobservers(使用字段MeetingConfig.hideHistoryTo时),如果当前用户是powerobserver并且是项提议小组的成员,则不要隐藏历史。[gbastien]

  • 修复了在添加新组织时,在覆盖层上显示应用程序参数字段集时的显示问题,当在我的组织时,CSS错误地隐藏了它。[gbastien]

  • 从项返回会议时,转到正确的分面页面并滚动到项位置。当在会议上决定项时,现在也使用相同的滚动机制,而不是仅仅刷新分面,分面被刷新,屏幕滚动到修改后的项。[gbastien]

  • 添加了与项相关的3种新类型的事件,这些事件将触发发送邮件。

    • 项状态更改,历史感知:根据项历史记录,通过邮件通知一个特定的用户(如果可能)。对于“向上”转换,如果项已经在那里,我们通知当时进行了下一个转换的用户。如果是第一次将项发送到‘new_review_state’,我们通知提议小组后缀(除经理外),因为我们无法预测未来。对于“向下”转换,我们将通知先前的‘leading_transition’到‘old_review_state’的用户。

    • 项状态更改,通知提议小组后缀:通知将通过邮件通知将负责此项的新审查状态的提议小组后缀。

    • 项状态更改,通知提议小组后缀(除经理外):与上述相同,但我们不通知经理。

    [aduchene]

  • 完成了对 MeetingConfig.validate_itemWFValidationLevels 的修改,以检查 itemcreated 状态始终作为第一个元素存在(即使可能被禁用),同时检查每个 back_transition 返回转换标识符是否以 back 开头,以及标识符列(stateleading_transitionback_transition)的格式是否正确。 [gbastien]

  • 简化了 PMAttendeeRedefinePositionTypesVocabulary,移除了对 _get_person 的覆盖,父 PMPositionTypesVocabulary 现在也管理 person_uidREQUEST 中找到的情况。这使得 RedefineSignatoryForm 上的职位列表正确显示(不是用竖线分隔的四个值)。 [gbastien]

  • 添加了 ToolPloneMeeting.get_labels 方法,以便能够获取给定上下文的 ftw.labels。可以获取所有标签、仅获取普通标签或仅获取个人标签。 [gbastien]

  • collective.documentgeneratorcolumn_modifier 参数默认设置为 disabled。 [gbastien]

  • 默认配置 MailHost 使用 TLS 和排队。 [gbastien]

  • 对于字段 MeetingCategory.category_mapping_when_cloning_to_other_mc,在词汇表中也显示禁用类别,以便在类别视图中可见。 [gbastien]

  • 完成了对 IEncodeSecretVotes.validate_votes 的修改,以确保值是整数。 [gbastien]

  • 添加了参数 MeetingConfig.computeItemReferenceForItemsOutOfMeeting 以启用对会议外决定的项目引用的计算。现在,当项目被插入或从会议中删除时,项目引用会更新,当项目返回验证状态以及决定会议外的转换时也会更新。 [gbastien]

  • 添加了辅助方法 Meeting.is_late 并在所有必要的位置使用它。 [gbastien]

  • 修复了 MeetingItem._adviceIsViewableForCurrentUser,当机密建议不显示给权力观察者时,建议的顾问即使也是权力观察者也能访问建议。 [gbastien]

  • 移除了未使用的 MeetingItemWorkflowConditions._check_review_and_required 方法。 [gbastien]

4.2b13 (2021-07-16)

  • 修复了 PMDeleteBatchActionForm._get_deletable_elements,该功能由于 PMDeleteBatchActionForm.get_deletable_elements(缺少前导 _)实际上被覆盖而导致无法工作… [gbastien]

  • 修复了在 ManageItemAssemblyForm 中使用的 DisplayAssemblyFromMeetingProvider,以仅显示实际使用的默认 itemAssembly。实际上,该表单也可用于使用与会者管理项目嘉宾的情况。 [gbastien]

4.2b12 (2021-07-16)

  • 针对 collective.documentgenerator 中使用的图标现在是 .svg 而不是 .png 的事实进行了代码调整。 [gbastien]

  • 使用 Products.PloneMeeting.vocabularies.everyorganizationsacronymsvocabularyProducts.PloneMeeting.vocabularies.everyorganizationsvocabulary 为每个仪表板列提供支持,因此无论所选值是否在随时间变化而变化的配置中,值始终在词汇表中。 [gbastien]

  • MeetingConfig 中定义了与各种仪表板中显示的列相关的参数,现在显示列名,因为现在可能存在具有相同名称的多个列(P.G。代表 Proposing groupProposing group acronym)。 [gbastien]

  • 为联系人(organizationpersonheld_position)和 meetingcategory 的每个 schema.List 字段定义默认值 [],这样我们在通过代码创建新元素时就可以避免使用 None 而是可迭代的。 [gbastien]

  • MeetingConfig.removeAnnexesPreviewsOnMeetingClosure 启用且会议中没有项目时,修复了 MeetingWorkflowActions.doClose。 [gbastien]

  • AssociatedGroupsVocabularyGroupsInChargeVocabulary 中移除了参数 the_objects=False,因为这些词汇表是 ram.cached,缓存的函数必须避免返回对象。 [gbastien]

  • 优化了缓存的函数:避免在 cachekeys 中有对象,这会使缓存大小过大,当使用 ToolPloneMeeting.isManager 时,如果可用,使用 cfg 作为 context。 [gbastien]

  • 扩展了 Meeting.get_signature_infos_for,以便可以获取项目每个签署人的签名信息,而不仅仅是重新定义的签署人,并添加了参数 render_position_type=Falseprefix_position_type=False,这样就可以获取原始 position_type、渲染后的或渲染并加前缀的。 [gbastien]

  • 防止将默认项目模板移动到子文件夹(删除已管理,现在既不能删除)。[gbastien]

  • 在项目视图中显示帮助信息,以了解复制组将在哪些状态下能够访问项目。[gbastien]

  • 会议从AT迁移到DX。

    • 依靠collective.dexteritytextindexer管理可搜索文本

    • 不再使用meta_type,因为它在使用dexterity时始终相同,依赖来自OFSgetTagName,它返回__class__.__name__

    • Meeting.queryStateMeetingItem.queryState重命名为query_state

    • 将每个与Meeting相关的函数从camelCase移动到snake_case,包括大多数与Meeting有直接联系的MeetingItem中的方法(如get_item_attendeesget_item_absents等),但不包括访问器方法(如MeetingItem.getItemAssemblyMeetingItem.getItemAssemblyAbsents等);

    • 删除了MeetingItem.displayStrikedItemAssembly,使用MeetingItem.get_item_assembly(striked=True)

    • 删除了在MeetingItem上未使用的函数(getSpecificMailContext、includeMailRecipient、getAssembly、lastValidatedBefore);

    • 不再在MeetingItem编辑表单上显示assembly字段(assemblyassemblyAbsents等),这允许删除描述方法(ItemAssemblyDescrMethodItemAssemblyExcusedDescrMethod等);

    • 删除了与MeetingConfig.deadlineFreezeMeetingConfig.deadlinePublish相关的功能;

    • 手动管理MeetingItem.preferredMeeting链接,存储会议路径,以便在完全重新索引portal_catalog时重新索引preferred_meeting_date(在这种情况下,首选会议无法在目录中索引和找到);

    • ToolPloneMeeting.formatMeetingDate移动到ToolPloneMeeting.format_date

    • 重命名了一些索引:linkedMeetingDate/meeting_dategetDate/meeting_date,现在有一个由MeetingMeetingItem使用的单个索引,包括getPreferredMeetingDate/preferred_meeting_dategetPreferredMeeting/preferred_meeting_uid

    • 在会议视图中显示全局操作(全部折叠/顶部/底部);

    • 删除了现在不再必要的@@meeting-before-faceted-infos@@meeting-after-faceted-infos,因为会议视图模板不应该再被覆盖,所有操作都使用模式和字段集定义完成;

    • 大多数Meeting数据可显示在显示会议的仪表板中,作为标题列中的静态列;

    • 添加了与MeetingItem相同的字段Meeting.meetingmanagers_notes

      [gbastien]

  • 在itemtemplates文件夹中突出显示(加粗)默认项目模板。[gbastien]

  • 使用imio.history.utils.getLastWFAction参数transition=’before_last’在indexes.previous_review_state中获取最后前的review_state。[gbastien]

  • 修复了使用与父级ItemsToAdviceAdapter相同的缓存方法,因为未定义查询别名,从而在ItemsToAdviceWithoutHiddenDuringRedactionAdapter中存在问题的bug。添加了一个测试,该测试检查每个CompoundCriterionBaseAdapter查询都使用不同的别名。[gbastien]

  • 修复了@@advices-icons视图中的bug,如果存在相同类型的延迟感知建议(积极、要求再次)和< cite>hidden_during_redaction,则对于非延迟感知建议,错误地显示了延迟图标。使用< cite>MeetingItem.getAdviceDataFor代替直接访问< cite>MeetingItem.adviceIndex,因为它可以正确处理< cite>hidden_during_redaction建议类型。[gbastien]

  • 完成了DX快速编辑RichText字段,以管理

    • 锁定(如果其他用户正在编辑,则无法编辑),如果上下文被锁定,则隐藏编辑图标;如果用户编辑且内容在之间被锁定,则页面将被重新加载;

    • formUnload(在编辑期间点击离开当前页面时不会丢失更改);

    • 在快速编辑RichText字段时,隐藏actions_panel视图,在它粘滞的视图中,可能会造成混淆,被误认为是保存/取消控件。

    [gbastien]

  • 添加了Meeting.committees管理

    • 委员会在MeetingConfig.committees datagridfield中定义;

    • 当创建新的会议时,使用定义在MeetingConfig.committees中的值填充Meeting.committees,管理日期、会议日期、地点、会议/签字或出席者/签字人;

    • 添加了MeetingItem.committees字段,并从在MeetingConfig.committees中定义的值生成词汇表;

    • 可以通过多选或根据项的提出者组/类别/分类器自动选择委员会;

    • 打印助手(printAssemblyprint_attendeesprint_signatures_by_positionprint_signatories_by_position)有一个新的committee_id参数。

    [gbastien]

  • 使用经典的软盘保存图标在会议视图中更改项编号值时保存项编号值,而不是使用有时不够清晰的重排图标(向上和向下的箭头)。此外,还添加了一个取消图标,该图标将隐藏图标并将原始值设置回itemNumber输入。[gbastien]

  • 改进了print_signatories_by_position,以便可以使用扫描的签名和缩写的人名。[aduchene]

  • 将附件布尔索引(to_printpublishableconfidential等)因式分解到annexes_indexes中,删除了hasAnnexesToPrint/hasAnnexesToSign索引和相关分面过滤器,添加了单个附件分面过滤器。[gbastien]

  • 使用SortedSelectedOrganizationsElephantVocabulary词汇表代替来自< cite>collective.contact.plonegroup的< cite>organization_services词汇表,用于< cite>category.groups_in_charge和< cite>organization.groups_in_charge,以便按字母顺序排序元素以简化管理。词汇表organization_services不再在PloneMeeting中使用。[gbastien]

  • 删除了< cite>@@check-pod-templates视图,我们使用来自< cite>collective.documentgenerator的视图,它执行相同的操作。[gbastien]

  • 删除了< cite>MeetingItem.predecessor < cite>ReferenceField,手动管理< cite>predecessor/successors,这将有助于迁移到DX。[gbastien]

  • 修复了< cite>ToolPloneMeeting.validate_holidays中的错误,该错误未捕获错误的日期格式,例如< cite>20/01/20。[gbastien]

  • 在非Zope管理员上隐藏了< cite>portal_plonemeeting视图中的< cite>添加MeetingConfig链接,这避免了< cite>siteadmin添加< cite>MeetingConfig。[gbastien]

  • 集成< cite>CKeditor imagerotate插件,以便在必要时旋转图像。[gbastien]

  • 在< cite>@@overview-controlpanel中显示< cite>imio.pm.ws/plonemeeting.restapi版本。[gbastien]

  • 将< cite>ItemDocumentGenerationHelperView.output_for_restapi重命名为< cite>ItemDocumentGenerationHelperView.deliberation_for_restapi。还向方法中添加了参数< cite>deliberation_types,以便只获取相关的审议变体。[gbastien]

  • 修复了CSS,避免使用非常大的值时的水平溢出,使用< cite>word-break: break-word;。[gbastien]

  • 修复了< cite>AskedAdvicesVocabulary,有时会返回因为被禁用在< cite>MeetingConfig.customAdvisers中而被认为是无效的术语,但实际上仍然有效,因为它们被用于< cite>MeetingConfig.selectableAdvisers。[gbastien]

  • 修复了使用单选框和多选框的字段在验证失败时丢失数据的DataGridField。这影响了< cite>MeetingConfig。需要覆盖相关的datagrid模板。[gbastien]

  • 更改了MeetingConfig.transitionsReinitializingDelays的行为

    • 只有当未给出建议时才重新初始化延迟;

    • 可选功能< cite>asked_again现在不再是可选的;

    • 如果必须重新初始化给定的建议,则必须< cite>asked_again。

    [gbastien]

  • 添加了在项上重新定义出席者位置的可能性。添加了参数< cite>MeetingConfig.selectableRedefinedPositionTypes,以便能够限制可选择的位置类型,如果没有选择任何内容,则可以选中在< cite>Contacts目录中定义的所有< cite>position_types。[gbastien]

  • 在提示弹出窗口中,当悬停在用户图标上时,显示与建议工作流程相关的每个组后缀,实际上可能不仅仅是后缀为_advisers的组。[gbastien]

  • 在需要时使用多选小部件面状过滤器,这在替换具有过多值的复选框小部件时很方便。此外,将面状会议日期的显示日期格式改为简短格式(月份数字而不是月份名称)。[gbastien]

  • BaseDGHV.print_scan_id_barcode添加到POD模板中打印条形码,并且它会确保对于给定的上下文不会生成多于一次的条形码,这避免了由于错误地多次生成条形码而导致重新导入过程失败的情况。[gbastien]

  • 当缺少签署人时,在会议视图中的组装和签名旁边显示警告,这通常会导致POD模板损坏。[gbastien]

  • includeAuto=TrueMeetingConfig.includeGroupsInChargeDefinedOnProposingGroup=True且未在项目上定义proposingGroup时,不要在MeetingItem.getGroupsInCharge中中断,这可能在项目模板中发生。[gbastien]

  • 修复了在添加多个新的MeetingConfig.committees(在这种情况下,生成了具有空令牌‘’的术语并失败,错误信息为ValueError: term values must be unique: ‘’)时失败的SelectableCommitteesVocabulary。[gbastien]

  • 修复了当MeetingConfig.places包含特殊字符时Meeting.place MasterSelect小部件。[gbastien]

  • 将面状日期小部件的默认时间段从-10 years/+10 years更改为-30 years/+2 years。[gbastien]

  • 在投票中进行了小修复。

    • 在使用多个链接的秘密投票或现在需要手动计算时,显示未编码投票的数量;

    • 修复了在考虑秘密链接投票时视为不完整的情况下的错误,当使用超过2个链接投票时;

    • 如果启用或启用投票时,显示MeetingItem.pollType字段;

    • MeetingConfig.defaultPollType添加了验证(必须在< cite>MeetingConfig.usedPollTypes中);

    • MeetingConfig.firstLinkedVoteUsedVoteValuesMeetingConfig.nextLinkedVotesUsedVoteValues添加了验证(必须在MeetingConfig.usedVoteValues中);

    [gbastien]

  • 当原始建议当前用户不可查看时(例如,当项目从MeetingConfig A发送到B且用户是MeetingConfig B的强大观察员时,他没有权限访问存储在MeetingConfig A中的原始项目/建议/附件)时,修复了继承建议附件的访问问题。由于完整预览不可用,实现了< cite>阅读更多/阅读更少功能,以便能够在建议弹出窗口中查看完整的< cite>评论/观察。[gbastien]

  • 在迁移到4200时使用collective.documentgenerator中的搜索和替换;

    • 添加了迁移助手Migrator.updatePODTemplatesCode

    • 添加了助手MeetingItem.get_representatives_in_charge,它返回负责项目的代表;

    • 添加了BaseDGHV.print_value,以便能够在POD模板中渲染任何存储的字段(datetimeRichText列表/选择带有< cite>词汇表、……);

    • 修复了配置元素上的actions_panel

    [gbastien]

  • 直接从显示人员的仪表板中添加一个新的< cite>held_position(在图标操作面板中显示< cite>添加内容操作以显示< cite>人员)。[gbastien]

  • marginalNotes_column添加到MeetingConfig.listItemRelatedColumns中,以便能够在仪表板中将< cite>MeetingItem.marginalNotes字段作为静态信息(始终在标题列中可见)显示。[gbastien]

  • 修复了当使用MeetingItem.proposingGroupWithGroupInCharge时,未设置< cite>MeetingItem.groupsInCharge的< cite>MeetingItem._check_required_data。当使用WS调用创建项目时,可能会出现这种情况,即已设置< cite>MeetingItem.proposingGroup但未设置< cite>MeetingItem.groupsInCharge。[gbastien]

  • 当过渡计算用于< cite>actions_panel时,修改了MeetingItem._check_required_data的行为,检查每个目标状态,如果过渡由代码(WS调用、项目发送到另一个MC、……)触发,则只检查< cite>presented目标状态。[gbastien]

  • 修复了未显示仅定义为权力顾问的顾问的 AskedAdvicesVocabulary。 [gbastien]

  • 移除了依赖于 MeetingConfig.useGroupsAsCategoriesMeetingItem category/proposingGroup 魔法。现在 MeetingItem.getCategory 不再关心 proposingGroup,将返回空字符串或存储的分类 id。 [gbastien]

  • 修复了 ToolPloneMeeting.pasteItem,在项目被发送到多个其他 MC 时,无法正确删除与 sent item to another MC 相关的注释。 [gbastien]

  • 将参数 image_src_to_data=False 添加到 BaseDGHV.printXhtml,以便使用 imio.helpers.xhtml.imagesToData 将图像 src 转换为 base64 数据值。还添加了值 deliberation_motivationdeliberation_decisionItemDocumentGenerationHelperView.deliberation_for_restapi 返回的可能值。 [gbastien]

  • 启用了附件的批量操作。

    • 批量操作 删除下载为 Zip 可用;

    • 添加了 MeetingConfig.enabledAnnexesBatchActions 属性,以便启用或禁用批量操作,默认情况下仅启用 下载 操作。

    [gbastien]

  • 更改了 MeetingConfig.includeGroupsInChargeDefinedOnProposingGroupMeetingConfig.includeGroupsInChargeDefinedOnCategory 的行为:之前在请求时评估值,但这可能会在 groupsInChargeproposingGroupcategory 上更改时破坏旧项目。现在,在使用这些参数时,值将存储在项目上。 [gbastien]

  • 修改了 MeetingConfig.getItemTypeNameconfigType=None 参数,现在它可以接受一个值 all,在这种情况下,将返回所有项目相关类型(normalitem templaterecurring item)。 [gbastien]

  • 修复了由 imio.helperssubmitFormHelper JS 函数调用的 JS 回调 onsuccessManageAttendees,现在接收的数据是 arraybuffer,不再是 String。 [gbastien]

  • 恢复了 Meeting.getSelf 方法。 [gbastien]

  • 添加了助手 ToolPloneMeeting.user_is_in_org(org_id),如果用户在给定组织 id 的 Plone 群组中,则将返回 True。 [gbastien]

  • 添加了助手 PloneMeetingTestCase._enable_annex_config,以简化启用与附件相关的属性(confidentialitypublishable 等)。 [gbastien]

  • MeetingItem.listCategories 中,使用 `natsort.humansorted` 而不是 natsort.realsorted,因为后者在处理编号分类(如 1 Cat11.1 Cat1.1 等)时表现更好。 [gbastien]

  • 当复制的组实际可以访问项目时,在项目视图旁边显示绿色的 ? 图标,否则以经典灰色显示。 [gbastien]

  • 添加了 utils.escape 实用函数 # PM-3462。 [odelaere]

  • 禁用了 orgs-searches 上的 review_sate 过滤器 # PM-3228。 [odelaere]

  • 隐藏“联系”操作,并在用户操作中添加操作“Documentation iA.Délib”。 [anuyens]

4.2b11 (2021-01-19)

  • Annexes 添加到 MeetingConfig.itemsNotViewableVisibleFields 的可选值中。不可查看的附件将是可下载的。目前,Advices 通过此功能仍不可显示。 [gbastien]

4.2b10 (2021-01-14)

  • 修复了 collective.ckeditorZ3CFormWidgetSettings 对于 DX,以避免使用 restrictedTraverse 来检查上下文上是否有 cke-save 视图,否则禁用 ajax_save 插件以供非 Manager 用户使用。 [gbastien]

4.2b9 (2021-01-14)

  • 覆盖了来自 collective.contact.plonegroupPositionTypes 词汇表,因为我们的 Directory.position_types 包含性别和数量(例如,Director|Directors|Director|Directors),我们只显示实际相关的值(Director),这取决于个人的性别。此外,这也修复了有时会损坏的 RedefinedSignatoryForm,如果下拉 position_type 包含一个非常大的值。 [gbastien]

  • 修复了由于 onScrollMeetingView 而导致的控制台中的 JS 错误。 [gbastien]

4.2b8 (2021-01-06)

  • 修复了MeetingItem.is_assembly_field_used,仅在项目链接到会议时进行评估,这破坏了项目编辑表单。[gbastien]

  • 在重新定义项目上的签署人时,增加选择position_type作为用于POD模板中生成的签名的标签的可能性。[gbastien]

  • 仅在项目即将在会议中展示时调用MeetingItem._check_required_data,这样以前的转换可能会由配置的过程触发,例如通过Web服务调用或当项目从另一个cfg发送时。[gbastien]

  • 使仪表板表头粘性,以便在滚动时始终可见,这对于每个仪表板都适用,包括在meeting_view上的可用的/已展示的项目。[gbastien]

  • 在显示项目的仪表板上启用Change ftw labels批量操作。为此,我们需要使用不同的批量操作标记接口标记显示项目的仪表板和显示会议的仪表板。[gbastien]

  • utils.fplog移动到imio.helpers.security,相应地修改了代码。[gbastien]

  • 由于CSS黑客攻击只适用于Chrome(现在Firefox也考虑在内)不再工作,因此使用来自plonetheme.imioappsusing-chrome CSS类来仅针对Chrome进行样式化。[gbastien]

  • BaseDGHV.printXhtmlclean参数现在默认为True,因此将调用separate_images以避免在相同的<p>中包含多个<img>。[gbastien]

  • 由于在MeetingConfig中发生错误是因为fieldset中的一个字段当前不可见,我们得到一个验证错误,但我们不知道原因。在页面的顶部显示每个验证错误,以便用户可以看到正在发生的事情。[gbastien]

4.2b7(2020-12-08)

  • 在项目工作流中使用正确的图标为itemfreeze/itempublish转换(已反转)。[gbastien]

  • 优化了MeetingItem.updateLocalRoles,在可能的情况下传递cfgitem_state,以及为utils.compute_item_roles_to_assign_to_suffixes传递ram.cache。[gbastien]

  • 删除了Meeting.items ReferenceField,手动管理它,这有助于迁移到DX。[gbastien]

  • user_id包含特殊字符时,在vocabularies.PMUsers中不会失败,这在使用LDAP时可能是这种情况,忽略这些值。[gbastien]

  • 优化了utils.sendMailIfRelevant,以避免多次向同一地址发送电子邮件。这只在MeetingItem._sendMailToGroupMembers中完成。删除了MeetingItem._sendMailToGroupMembers,并使用新参数在utils.sendMailIfRelevant中管理它:isGroupIds=True。[gbastien]

  • 使快速编辑RichText字段对DX内容类型有效。

    • 添加了在DX模式中可用的PMRichTextWidget

    • utils.setFieldFromAjax重命名为utils.set_field_from_ajax

    • 将存储在建议中的RichTextValue迁移以修复mimeType/outputMimeType

    • MeetingItem._checkMayQuickEdit移动到utils.checkMayQuickEdit,以便更容易重用;

    • 在会议建议上使用PMRichTextWidget

    [gbastien]

  • 实现投票功能

    • 根据MeetingItem.pollType添加了管理公共和秘密投票的可能性;

    • 添加了新的可选字段MeetingItem.votesObservations;

    • 异步加载和管理项目视图上显示的与会者;

    • 尽可能使用Products.PloneMeeting.vocabularies.signaturenumbervocabulary,并将可签署的人数从10更改为20;

    • 在表格中突出显示行,以便知道我们的位置;

    • 添加了打印投票的方法(print_votes);

    • 重构了会议和项目上处理assembly字段的方式,以便在切换到联系人时,在查看/编辑旧会议/项目的assembly字段时表现正确。

    [gbastien]

  • 默认情况下,searchnotdecidedmeetingssearchlastdecisions集合按时间顺序显示(之前已反转)。没有应用迁移,因为这可能在必要时在集合本身上更改。[gbastien]

  • ItemDocumentGenerationHelperView.print_in_and_out_attendees添加了参数include_hp=Falseabbreviate_firstname=False。[gbastien]

  • 字段 committeeObservationsvotesObservations 现在在 MeetingMeetingItem 上都可用。字段 votesObservations 只能由 MeetingManagers 编写,并且在会议或项目确定后任何人都可以查看。[gbastien]

  • 当在同一个会议中定义了具有相同 signature_number 的多个与会者时,当签字人缺席时,正确地使用项目。当有多个相同的 signature_number,第一个到达的胜出,如果没有在项目上重新定义,并且当重新定义时,它将优先于会议中定义的内容。[gbastien]

  • 完成了 MeetingConfig.validate_itemWFValidationLevels,检查当删除一个状态时,它是否没有被 workflowAdaptation 使用。例如,工作流程Adaptation waiting_advices 可能会创建状态 proposed_waiting_advices,在这种情况下,如果某些项目仍在 proposed_waiting_advices 中,则不能删除状态 proposed。我们检查以删除状态开头的每个状态 id 或包含 _ + 删除状态。[gbastien]

  • 为了修复使用 MeetingConfig.itemsNotViewableVisibleFields 显示 MeetingItem.category 字段时对 @@at_utils 的未授权访问,重写了 @@at_utils 以适用于 IMeetingContent。[gbastien]

4.2b6 (2020-11-19)

  • 将参数 the_objects=False 添加到 GroupsInChargeVocabularyAssociatedGroupsVocabulary,以便可以获取组织对象作为术语值,这将被 plonemeeting.restapi 用于返回 MeetingConfiggroups_in_chargeassociated_groups。[gbastien]

  • 在检查是否在项目上使用 plonegroup 时优化了 PloneGroupSettingsValidator,仅当删除某些后缀并使用 portal_catalog 时才执行。[gbastien]

  • 确保在会议未关闭时,MeetingManagers 可以在已确定的项上编辑 attendees。[gbastien]

  • 修复了 MeetingItem._mayClone,在从模板创建项时失败,如果定义了 proposingGroup 并且 privacysecret。[gbastien]

  • 添加了复合标准适配器 all-items-to-validate-of-highest-hierarchic-levelall-items-to-validate-of-every-reviewer-groups,它们将从常规项目验证工作流程和从 返回到提议组 项目验证工作流程中返回需要验证的项目。[gbastien]

  • 添加了电子邮件通知 itemPresentedOwneritemUnpresentedOwneritemDelayedOwnerreturnedToProposingGroupOwner,这些通知除现有的通知 itemPresenteditemUnpresenteditemDelayedreturnedToProposingGroup 外,还会通知整个 creators 组。在 utils.sendMail 中,如果事件名称以 Owner 结尾,我们使用相应事件的邮件主题和正文,不包含 Owner 后缀。[gbastien]

  • 完成了 Migrate_To_4200._configureItemWFValidationLevels,迁移字段 MeetingConfig.itemAnnexConfidentialVisibleForMeetingConfig.adviceAnnexConfidentialVisibleForMeetingConfig.meetingAnnexConfidentialVisibleFor,这些字段可能包含不允许的值,但在以前的版本中未进行验证。[gbastien]

  • 修复了由于重新定义了 window.onbeforeunload 而损坏的 JS 表单卸载保护。[gbastien]

  • 修复了 CSS (portal_css) 和 JS (portal_javascripts) 的顺序,以处理新资源 (dexterity.localroleseea.facetednavigation 多选小部件)。

  • 修复了在组织上不存在属性 keep_access_to_item_when_advice_is_givenMigrate_To_4200._migrateKeepAccessToItemWhenAdviceIsGiven 的问题。[gbastien]

4.2b5 (2020-10-26)

  • 不要在生产应用程序中让 siteadmin 删除用户,因为这可能会导致

    • 丢失信息(fullname)在用户交互的元素上;

    • 加载应用程序并可能将其破坏,因为 Plone 在删除用户时会重新计算每个现有元素上的 local_roles

    [gbastien]

  • 修复了添加 MeetingConfig TTW,设置正确的默认值。[gbastien]

  • 在 MeetingConfig 视图中显示 Administrators 组成员。

  • 当参与者从第一项< cite>缺席/被原谅/非参与者时,管理进出句子。当参与者< cite>被原谅/缺席然后< cite>非参与者,仍然没有到场。 [gbastien]

  • 在使用分组配置和多个MC具有相同ID的情况下,固定激活正确的< cite>门户选项卡。[gbastien]

  • 使用位置< cite>底部来显示tooltipster < cite>usersGroupInfos,以避免屏幕溢出。[gbastien]

  • 明确显示,并始终在项目视图中显示参与者管理图标,以前仅在悬停时显示。[gbastien]

  • 固定了ploneMeetingSelectItem框(用于在plonemeeting小部件中选择会议的下拉框)的CSS,现在使用浅灰色背景颜色,因为会议状态颜色保持不变(以前变为白色)。[gbastien]

  • 将< cite>MeetingConfig.keepAccessToItemWhenAdviceIsGiven更改为< cite>MeetingConfig.keepAccessToItemWhenAdvice,以便在给出建议或建议可以给出时处理保持对项目的访问。[gbastien]

  • 在使用< cite>分组配置(在< cite>portal_tabs中的下拉菜单)时,显示当前选定的MeetingConfig旁边的图标。

  • 将< cite>portlet_plonemeeting标签显示MeetingConfig标题改为链接到主页(如< cite>主页图标)。[gbastien]

4.2b4(2020-10-14)

  • 确保在链接上应用< cite>状态颜色(livesearch,livesearch结果,folder_contents等)。[gbastien]

  • 确保在创建新项目时< cite>events.item_added_or_initialized只调用一次,否则可能会破坏中间执行的操作。[gbastien]

4.2b3(2020-10-02)

  • 添加了布尔属性< cite>ConfigurablePODTemplate.store_as_annex_empty_file,当< cite>True时,它将存储为附件一个空文件,而不是生成的POD模板,以避免在存储的附件仅为AMQP进程替换时无用的LibreOffice调用。此外,从项目视图存储附件时,用户不再重定向到附件选项卡,它保持在项目视图中。[gbastien]

  • 固定了< cite>Migrate_To_4_1._adaptForPlonegroup,在设置plonegroup功能时考虑新的密钥< cite>enabled。[gbastien]

  • 在< cite>imgselectbox(用于在端口中选择会议的框)中,不要将< cite>/view追加到会议的URL,否则会破坏缓存,因为默认情况下,其他位置链接到会议而不带此< cite>/view。[gbastien]

  • 在可适应方法< cite>MeetingItem.getCustomAdviceMessageFor中添加了新的默认密钥displayAdviceReviewState,以便能够向可能无法查看建议的用户显示建议< cite>review_state。[gbastien]

  • 固定了项目视图中Chrome上的链接< cite>转到页面底部。[gbastien]

  • 固定了< cite>@@toggle_item_is_signed,它仍然重新索引旧的索引< cite>getItemIsSigned,而不是新的索引< cite>item_is_signed。[gbastien]

  • 根据< cite>collective.contact.plonegroup中的更改,适应了< cite>config.MEETING_GROUP_SUFFIXES,在功能中添加了新的密钥< cite>fct_management。[gbastien]

  • 添加了< cite>held_position.represented_organizations关系字段,以便能够指定各种组织的代表。此外,还添加了一个辅助方法< cite>organization.get_representatives,以获取来自组织的代表。[gbastien]

  • 现在,包< cite>plonemeeting.restapi是< cite>Products.PloneMeeting的直接依赖项。[gbastien]

  • 添加了2021年的假日,并适应了升级步骤到4200。[gbastien]

  • 添加了对会议参与者的验证,因此如果它们在项目(itemAbsent,itemExcused,itemSignatories,itemNonAttendees)上被重新定义,则无法取消选择参与者。[gbastien]

  • 添加了新的字段< cite>MeetingItem.decisionEnd,< cite>MeetingItem.meetingManagersNotesSuite,< cite>MeetingItem.meetingManagersNotesEnd和< cite>MeetingItem.otherMeetingConfigsClonableToFieldDecisionEnd。[gbastien]

  • 使< cite>organization.acronym字段在< cite>我的组织之外的组织中也可查看和编辑,因为它们可以用作< cite>associatedGroups并显示在仪表板中的< cite>关联组缩写列中。[gbastien]

  • 管理某些特定建议的上下文切换工作流程,因此当上下文切换到下文时,图标< cite>waiting_advices_from.png为红色,当再次上下文切换到上文时为绿色,否则为蓝色。[gbastien]

  • 重构 waiting_advices 工作流适配器以管理更多案例。[gbastien]

  • 添加了辅助函数 PloneMeetingTestCase.addAdvice。[gbastien]

  • 完成 MeetingConfig.validate_itemWFValidationLevels,如果用于 MeetingConfig 中则不能禁用级别。[gbastien]

  • 完成 PloneGroupSettingsValidator 验证器,检查存储在 MeetingConfig 上的组合值以及使用后缀,例如 suffix_proposing_group_level1reviewers。[gbastien]

  • 删除了 config.ITEM_STATES_NOT_LINKED_TO_MEETING,使用 MeetingConfig.itemWFValidationLevels 获取项目从会议中删除的状态。

  • testing.setUpPloneSite 中设置 WFT default_chain,而不是在 PloneMeetingTestCase.setUp 中。[gbastien]

  • clean=False 参数添加到 BaseDGHV.printXhtml 中,将使用 imio.helpers.xhtml.separate_images 以避免在同一 <p> 中出现多个 <img>。[gbastien]

4.2b2 (2020-09-10)

  • 为 documenterator 设置更多默认值。[odelaere]

  • 添加了 要讨论? 分面过滤器。将目录索引 getItemIsSignedsendToAuthoritytoDiscuss 重命名为 item_is_signedsend_to_authorityto_discuss。[gbastien]

  • 添加了复合标准适配器 items-with-negative-previous-index,这将查找查询中的先前索引然后对定义的值进行取反。[gbastien]

  • 在项目视图中添加了可折叠的 budgetclonable to other mcs 部分。在项目视图中添加了 切换显示/隐藏所有详细信息操作,以便能够一键切换所有可折叠项。[gbastien]

  • 为 associatedGroups 字段添加了访问器 MeetingItem.getAssociatedGroups。[aduchene]

  • 修复了 MeetingConfig 中的 security.declarePublic。[aduchene]

  • 如果 TAL 表达式没有返回字符串(特别是当它返回 False 时),则不要在 utils.applyOnTransitionFieldTransform 中中断。[gbastien]

  • 重构了项目视图和编辑表单,使字段顺序相对应

    • 在原始项目视图中定义的顺序被使用;

    • 简单字段(非 RichText)位于顶部,RichText 字段位于下方;

    • 对于字段 MeetingItem.otherMeetingConfigsClonableTo,当仅使用简单字段时,它显示在顶部,位于 MeetingItem.sendToAuthority 下方,当使用 RichText 字段(otherMeetingConfigsClonableToFieldXXX)时,它位于决策字段下方。

    [gbastien]

  • 将字段标签和字段集标题稍微放大。 [gbastien]

  • 将参数 insert_index 添加到 utils.add_wf_history_action 中,这允许在任意位置插入 workflow_history 事件,并且用于例如从 REST WS 创建项目并触发 WF 转变时,我们在 WF 转变后添加事件。[gbastien]

  • 修复了 @@advices-icons,当没有建议时且显示 添加建议图标power advisers,添加图标被错误地样式化。[gbastien]

4.2b1 (2020-08-24)

  • 合并了 4.1.28 的更改。

  • 添加了 waiting_advices_from_last_val_level_advices_required_to_validate 工作流适配器,以便在需要给出建议的情况下能够阻止项目验证。[odelaere]

  • 添加了可调整的方法 MeetingConfig.extra_item_decided_statesMeetingConfig.extra_item_positive_decided_states 来正式化如何扩展 item_decided_statesitem_positive_decided_states。[odelaere]

  • 添加了定义数据(title/description/motivation/decision/decisionSuite)的可能性,这些数据将用于克隆到另一个 MeetingConfig 的项目,原始项目上定义的数据将替换结果项目上的基本数据。[odelaere]

  • MeetingConfig.itemsVisibleFields 中添加了定义要显示在链接项上的数据的可能性。还可以使用 MeetingConfig.itemsNotViewableVisibleFieldsMeetingConfig.itemsNotViewableVisibleFieldsTALExpr 字段来选择特定数据,该数据将显示给可能无法访问链接项的用户。[odelaere]

  • 工作流适配器 no_global_observationcreator_initiated_decisionsarchiving 已被删除,因为这些适配器始终启用或禁用。[odelaere]

4.2a7 (2020-06-24)

  • 合并了 4.1.27.1 的更改。

4.2a6 (2020-06-24)

  • 合并了 4.1.20 的更改。

  • 合并了来自 4.1.21 的更改

  • 合并了来自 4.1.22 的更改

  • 合并了来自 4.1.23 的更改

  • 合并了来自 4.1.24 的更改

  • 合并了来自 4.1.25 的更改

  • 合并了来自 4.1.26 的更改

  • 合并了来自 4.1.26.1 的更改

  • 合并了来自 4.1.27 的更改

4.2a5 (2020-03-17)

  • 合并了来自 4.1.19.2 的更改

4.2a4 (2020-03-13)

  • 合并了来自 4.1.19 的更改

4.2a3 (2020-02-21)

  • 合并了来自 4.1.18 的更改

4.2a2 (2020-02-21)

  • 合并了来自 4.1.x 的更改

4.2a1 (2020-02-06)

  • 项目验证工作流程现在设计在 MeetingConfig.itemWFValidationLevels 中,这意味着
    • 不再依赖于 MEETINGROLES 和 MEETINGREVIEWERS 常量;

    • 审查员级别以及 review_state 和管理项目的组织后缀之间的映射是从 MeetingConfig 计算得出的;

    • 项目验证特定角色(MeetingMember、MeetingReviewer、MeetingPreReviewer)从工作流程中删除,本地角色是动态分配的,我们只使用通用角色(Reader、Editor、Reviewer 和 Contributor)

  • 在 meetingadvice_workflow 中使用 'Reviewer' 和 'Contributor' 角色

  • 在 'mayWait_advices_from'、'mayValidate' 和 'mayPresent' 中的 MeetingItemWorkflowConditions 中添加了对具有 'Manage portal' 权限的用户的绕过

4.1.28.1 (2020-08-21)

  • 当在 held_position.get_label 上获取 position_type_attr 时,如果给定的一个为空,则添加了回退到另一个 position_type_attr 的可能性。这使得在尝试获取 secondary_position_type 而该值为空时,回退到 position_type 成为可能

  • 使用 CSS 隐藏 Plone 组配置面板中的 Add group 按钮,这避免了用户添加 Plone 组而不是组织

4.1.28 (2020-08-21)

  • Meeting.getNextMeeting 逻辑移动到 utils.get_next_meeting,使其可以从 Meeting 实例外部使用,此外,使负 dateGap 项正常工作,这对于获取没有定义小时的 Meeting 很有用

  • 确保在加载会议或页面上的可用项目时,当它似乎有点卡住时,面相的 AJAX 播报器是可见的

  • 在另一个 MeetingConfig.meetingConfigsToCloneTo 中使用的 MeetingConfig 不能被停用

  • appy.pod 渲染的表格上,无论单元格上的边框是否定义,当 CSS 样式为 border:none; 时,表格没有边框,因此在 CKeditor 中显示为点状边框

  • @@display-group-users 中,如果组包含另一个组,显示组的标题而不是组 ID(如果没有标题则显示组 ID),此外,当成员是用户或组时,使用 user.png/group.png 图标清楚地区分使用

  • 在显示组织的联系人仪表板上启用 PloneGroupUsersGroupsColumn

  • organization.certified_signatures DataGridField 启用 allow_reorder

  • 为在 organization.certified_signatures DataGridField 中使用的 SelectableAssemblyMembersVocabulary 使用 ram.cache,以便在显示组织的仪表板上渲染更快

  • 使 organization/person/held_position 实现 IConfigElement,以便我们可以使用 _invalidateCachedVocabularies 来使缓存词汇无效,在这种情况下不需要编写事件处理器

  • proposingGroup 旁边添加了 group-users 图标以显示所有 Plone 组成员以及 proposingGroup 的成员

  • 在管理项目 assembly/signatures/attendees/signatories 时添加了 collective.fingerpointing 日志消息

  • 修复了在 meetingitem_view 上显示的 itemPeople 宏中的错误,当启用字段 Meeting itemNonAttendees 时,列标题被正确隐藏,但列单元格被显示

  • 将 JS 函数 toggleDoc 移动到 imio.helpers 下的 toggleDetails 名称下

  • 清理了 plonemeeting.css,删除了无用的样式定义

  • contacts 管理中,通过使用带有 + 的图标清楚地显示端口令牌中的图标将添加新的 organization/held_position

  • 验证 plonegroup 设置以确保它不能删除或禁用在 MeetingConfig.selectableCopyGroupsMeetingItem.copyGroups 中使用的功能

  • MeetingCategory 从 AT 迁移到 DX

    • 新增的门户类型是 meetingcategory

    • 字段 MeetingItem.classifier 从参考字段移动到了字符串字段;

    • 添加了新的 MeetingConfig.insertingMethodsOnAddItem,命名为 on_classifiers

    • 移除了 MeetingConfig.getCategories 中的魔法代码,当 MeetingConfig.useGroupsAsCategoriesTrue 时,它返回组织,现在它只返回类别,此外,参数 classifiers 已重命名为 catType,它可以是 all/categories/classifiers

  • 在每次迁移中,默认情况下在最后调用 cleanRegistries,以便重新编译 JS/CSS

  • 添加了“redirectToNextMeeting”选项;

  • Meeting.getNextMeeting 逻辑移动到 utils.get_next_meeting,以便可以从 Meeting 实例外部使用;

  • 确保在 portal_javascripts 中启用了 ++resource++plone.app.jquerytools.dateinput.js

  • 完成了自定义小部件 PMCheckBoxFieldWidget,用于管理 显示 模式,每个元素都单独列出,而不是用逗号分隔的相邻元素,当有超过3个值时,阅读起来很不方便。尽可能地在任何地方使用它:组织所任职位类别

  • 修复了 MeetingView._displayAvailableItemsTo,不要使用 ToolPloneMeeting.userIsAmong 作为权力观察者,因为它可能是 MeetingConfig A 的权力观察者,而不是 MeetingConfig B 的权力观察者,在这种情况下,可用的项目被显示出来;

  • 添加了 CKEditor 风格的 page-break,以便能够将 page-break 插入到 RichText 字段中,这可以在 POD 模板 中通过添加相关的 page-break 段落样式来使用;

  • MeetingItemWorkflowConditions._check_review_and_required 中,对 审查门户内容 权限和所需数据(类别/分类/负责的组)进行了归一化检查;

  • 改进了 BaseDGHV.print_signatories_by_position,以添加更多用例;

  • BaseDGHV.print_signatories_by_position 添加了测试;

  • 根据 collective.iconifiedcategory 的更改调整了代码,不要使用 portal_catalog 来获取附件,而是依赖于存储在 categorized_elements 中的 allowedRolesAndUsers

  • 修复了 MeetingView._displayAvailableItemsTo,不要使用 ToolPloneMeeting.userIsAmong 作为权力观察者,因为它可能是 MeetingConfig A 的权力观察者,而不是 MeetingConfig B 的权力观察者,在这种情况下,可用的项目被显示出来;

  • meetingconfig_view 上显示由 MeetingConfig 创建的组(会议管理人员、权力观察者等)。将 @@display-group-users 视图移动到 collective.contact.plonegroup,以便我们有相同的视图来渲染联系人仪表板和任何其他地方的组和用户;

  • 扩展了批处理操作,可以直接将生成的模板作为附件存储在所选元素上。字段 MeetingConfig.meetingItemTemplateToStoreAsAnnex 现在是 MeetingConfig.meetingItemTemplatesToStoreAsAnnex,可以选择多个 POD 模板而不是单个。在批处理操作中,用户可以选择可用的 POD 模板;

  • 修复了 @@check-pod-templates,当 POD 模板错误时不再引发错误,隐藏了损坏的模板...;

  • 重新设计电子邮件通知,以便在项目标题非常长的情况下,始终在主题的开始处有相关信息;

  • 确保字段 Meeting.secretMeetingObservations 只能由 MeetingManagers 编辑/查看;

4.1.27.2 (2020-06-25)

  • 调整了 CheckPodTemplatesView,以便在生成会议上的 pod 模板时正确初始化生成辅助视图,这将在 collective.eeafaceted.dashboard_get_generation_context 方法中显示 max_objects 错误;

  • 在升级步骤中强制电子邮件发送地址为 4109;

4.1.27.1 (2020-06-24)

  • MeetingItem.getAdviceDataFor 中,当 hide_advices_under_redaction=True 并且建议当前处于编辑时,还隐藏了 观察,就像它已经对 comment 进行了隐藏一样;

4.1.27 (2020-06-24)

  • 修复了 DashboardCollection 存储的 查询 中的错误,有时是 <dict> 的列表,而不是 <instance> 的列表(???),添加了升级步骤到 4108,这是必要的,以便 plone.restapiDashboardCollection 序列化为 json;

  • 修复了用于 DashboardCollectionsearchmyitemstakenover 的错误 TAL condition(将 omittedSuffixed 替换为 omitted_suffixes);

  • utils.org_id_to_uid 添加参数 ignore_underscore=False,当存在下划线时,值被视为类似于 developers_creators 的内容,如果实际上是一个包含下划线 _ 的组织 ID(默认情况下不可能),则设置 ignore_underscore=True 以获取它。

  • 在项目视图中显示 groupsInCharge:当使用字段 MeetingItem.groupsInCharge 时,从提议组获取,当 MeetingConfig.includeGroupsInChargeDefinedOnProposingGroup=True 或从类别获取,当 MeetingConfig.includeGroupsInChargeDefinedOnCategory=True。默认将 autoInclude=True 设置为 MeetingItem.getGroupsInCharge 而不是 False

  • 在迁移 4108 中修复了 email_from_address,使其对每个客户都是唯一的,有助于降低垃圾邮件分数。

  • 默认设置 MeetingItem.getGroupsInCharge(autoInclude=True) 而不是 autoInclude=False,这样调用访问器而不带参数时返回存储在 proposingGroupcategory 上的 groupsInCharge

  • MeetingConfig 视图中显示 DashboardCollection UID。

  • 当将项目克隆到另一个 MeetingConfig 时,默认保留 copyGroupscopyGroups 已从 config.EXTRA_COPIED_FIELDS_SAME_MC 移动到 config.DEFAULT_COPIED_FIELDS)。

  • 将有关所需数据的检查因式分解到 MeetingItemWorkflowConditions._check_required_data 中,这样我们可以检查 category/groupsInCharge 是否正确。

  • 当使用 ToolPloneMeeting.updateAllLocalRoles 时添加了 collective.fingerpointing 日志消息,这样我们就可以知道谁以及多少。

  • 简化了 Meeting.getRawQuery,仅使用 linkedMeetingUID 索引查询项目,从查询中删除无用的索引 portal_type,因为 linkedMeetingUID 一定是唯一的。

  • 根据 collective.eeafaceted.dashboard 中的更改(pod_template.max_objects 属性)调整了 generationlinks.pt 的覆盖。

  • 验证 directory.position_types,以确保使用的 position_type(由 held_position 使用)不能被删除。

4.1.26.1 (2020-06-12)

  • 重做了 wait_advices_from.png,以便在带有背景的情况下正确显示。

  • 根据组织 UID 而不是标题搜索 plone 组,以避免不匹配。[odelaere]

  • 修复 Migrate_To_4105,调用 upgradeAll 时应始终省略配置文件 Products.PloneMeetingself.profile_name

  • MeetingConfig 视图中,在标题旁边显示 DashboardCollection ID。

4.1.26 (2020-06-11)

  • 使用 Products.Archetypes.interfaces.IObjectInitializedEventzope.lifecycleevent.interfaces.IObjectAddedEvent 来初始化新创建的项目,以使 plone.restapi 满意,或者项目未初始化,并且像 adviceIndex 这样的属性未添加。使用 plone.restapi 时,验证是在 ObjectInitializedEvent 之后但在 ObjectAddedEvent 之前完成的。还实现了 MeetingItem.initializeArchetype,在其中调用 events.item_added_or_initialized,或者某些字段对于 plone.restapi 不可写,因为未提供 MeetingMember 角色...

  • 添加了缺失的图标 wait_advices_from.png

  • 当使用 plone.restapi 创建附件时,在 vocabularies.PMCategoryVocabulary 中不会失败,验证是在附件完全初始化之前完成的。

  • MeetingItem.proposingGroupMeetingItem.proposingGroupWithGroupInChargeMeetingItem.groupsInChargeMeetingItem.optionalAdvisers 设置 enforceVocabulary=True,以便在使用 plone.restapi 时正确进行验证。

  • 使 MeetingMeetingItem 实现 IATMeetingContent(IMeetingContent) 而不是 IMeetingContent,以便能够为仅 AT 内容定义适配器。

  • 优化项目复制过程,在 zope.lifecycleevent.ObjectCopiedEventonItemCopied 事件处理程序中使用 _delObject(suppress_events=True) 删除图像、建议和相关的附件(不保留)。

  • MeetingConfig.getMeetingsAcceptingItems 中,将目录查询的计算提取到 MeetingConfig._getMeetingsAcceptingItemsQuery 中。

  • 当决定时,项目可能被提议组的成员接管。

  • 在加载 plone.restapi 之前,包含 permissions.zcml 文件,该文件位于 plone.app.controlpanel 包中。

4.1.25.1 (2020-06-02)

  • 修复了 Meeting.validate_date 函数,该函数检查另一个会议是否已经使用该日期。现在可以创建两个相隔一小时的活动,此外我们避免了使用 portal_cataloggetDate=list of dates 搜索,这会破坏 collective.solrDateIndex 接收日期列表)。

4.1.25 (2020-05-28)

  • 重构了创建空白项的方式,以避免在创建过程中无法插入图像。

    • 所有项目(空白或非空白)都从项目模板创建,这避免了使用 portal_factory

    • MeetingConfig 中添加了一个特殊的不可删除的 默认项目模板,并将其用作创建空白项的基础。

    • 移除了参数 MeetingConfig.itemCreatedOnlyUsingTemplate,禁用 默认项目模板 是等效的。

    • 添加了升级步骤到 4107。

  • 即使 MeetingConfig 中仍包含项目(重复的项目、项目模板),也可以将其删除,现在只考虑真实的项目。

  • 避免在创建新项目时多次点击,点击后图标将禁用,并且在编辑正在进行时。

  • 确保所有 MeetingItemRecurringMeetingItemTemplateportal_types 都在 portal_factory 中注册。

  • 在查看 MeetingConfig(meetingconfig_view)时忽略架构 settings,以避免在使用 collective.solr 时显示 Settings 标签。

  • 根据 collective.eeafaceted.collectionwidget 的更改调整了 PMConditionAwareCollectionVocabulary,其中 _cache_invalidation_key 方法现在接收一个新参数 real_context

  • 配置 cron4plone 定时任务执行 @@update-delay-aware-advices,时间为 01:45,因此将在 02:00 执行(每小时检查一次)。

  • 修复了 JS 错误,该错误可能在删除项目时破坏仪表板,调用 updateNumberOfItems 应仅在进行会议视图上的项目删除时进行。

  • Migrate_To_4105._uncatalogWrongBrains 中,如果 correct_rid 不存在于 portal_catalog 中,则不会中断。

  • 在启用或禁用 imio.zamqp.pm 时简化了类型 XML 文件,这可能导致 GS 配置文件顺序不正确时配置错误。imio.zamqp.pm 现在是 Products.PloneMeeting 的直接依赖项。

  • utils._base_extra_expr_ctx 添加到每次使用 collective.behavior.talcondition.utils._evaluateExpression 时,它将返回 TAL 表达式的基额外上下文,包括 toolcfgpm_utilsimio_history_utils

  • 在测试 PMLayer 时,在创建其成员区域之前检查用户是否存在,因为这个层被外部包(imio.pm.wsclient)使用。

4.1.24.1 (2020-05-14)

  • 修复了 PMUsers 词汇表,以避免在使用 LDAP 时出现重复,因为在 LDAPsource_users 中可能定义了相同的用户 ID。

  • Migrate_To_4105 中重新启动步骤 _moveMCParameterToWFA_addItemNonAttendeesAttributeToMeetings,因为一些实例在部署之间已经部署。

  • 使用 getIconURL 显示会议编辑中的 held_position 图标,而不是使用 getIcon,因为第一个返回完整的绝对 URL,而最后一个只返回相对 URL。

  • vocabularies.ContainedAnnexesVocabulary 中,只有当实际上有附件时才获取 collective.iconifiedcategory.categories 词汇。

  • 当使用 MeetingItem.proposingGroupWithGroupInCharge 字段并且 keepProposingGroup=False 时克隆项目,请确保为 proposingGroup/proposingGroupWithGroupInCharge/groupsInCharge 设置的数据正确且完整。将参数 include_stored=True 添加到 MeetingItem.listProposingGroupsMeetingItem.listProposingGroupsWithGroupsInCharge

  • 在编辑元素时忽略架构 settings,这避免了在使用 collective.solr 时显示 Settings 标签。

4.1.24 (2020-05-08)

  • Migrate_To_4105._cleanFTWLabels 中,确保保留旧值,以防仍然是一个 PersistentList 而不是删除注释。

  • Migrate_To_4105._removeBrokenAnnexes 中,为了防止删除附件时通过 notifyModifiedAndReindex 更改其容器,保留父级的修改日期。

  • @@item_duplicate_form 中,如果用户没有权限在未来创建的条目上添加附件或附件决策,则禁用附件。

  • 在显示 personsheld_positions 的仪表板中,使用 OrgaPrettyLinkWithAdditionalInfosColumn 代替 PrettyLinkColumn

  • 在4106版本中添加了升级步骤。

  • 添加了 Migrate_To_4106._umarkCreationFlagForEveryItems 以确保现有条目具有 at_creation_flag=False,否则会破坏 MeetingItem.setTakenOverBy/MeetingItem.setHistorizedTakenOverBy

  • 依赖 plone.formwidget.namedfile>2.0.2(由 collective.eeafaceted.z3ctable 需要),也修复了 PloneMeeting 中的问题,不再需要在 additionalInformations 宏中修补 DX content 的 URL。

  • itemTemplate 创建条目时,如果 itemTemplate 上定义了 proposingGroup 且当前用户是该 proposingGroup 的创建者,则在新建条目上保留它。

  • 对于 personheld_position portal_types,使用 plonemeeting_activity_managers_workflow 代替 collective_contact_core_workflow,因为使用 collective_contact_core_workflow 时,状态为 deactivated 的元素对 Member 来说将不再可见。

  • 像现在一样管理 SelectableAssemblyMembersVocabularySelectableItemInitiatorsVocabulary 的缺失术语,因为现在默认情况下,这些词汇不会返回非活动状态的 held_position 对象(只返回 active 元素)。

  • Products.PloneMeeting.vocabularies.selectableassociatedorganizationsvocabulary 重命名为 Products.PloneMeeting.vocabularies.detailedorganizationsvocabulary,以便更容易在其他上下文中重用。

  • 除了职位外,还添加了选择组织作为条目发起人(MeetingItem.itemInitiator)的可能性。

  • meetingitem_edit 中删除了字段 MeetingItem.itemIsSigned,它通过 meetingitem_view 管理。

  • 修复了 Migrate_To_4105._uncatalogWrongBrains,它破坏了现有对象的 UID 索引。

  • 添加了在会议视图中显示可用条目的功能,使其对(会议)管理员以外的其他用户可见。

    • 添加了参数 MeetingConfig.displayAvailableItemsTo,可以选择 Application users 和所有 Power observers 配置文件。

    • 将可调整的方法 Meeting.showRemoveSelectedItemsAction 重命名为 Meeting.showInsertOrRemoveSelectedItemsAction

  • 修复了在 meeting_view 中显示的链接,使其能够正确地在外部的可用项 iframe 中打开。

  • 在复制条目时,如果当前用户是创建者,则保留原始的 proposingGroup;如果不是,则使用第一个 proposingGroup

  • 在夜间 cron 更新 延迟感知建议 时,即使没有要更新的条目或无法看到是否有错误配置,也添加了日志记录。

  • 重构了 MeetingItem.isPrivacyViewable 方法。

    • 而不是检查当前用户是否在 proposingGroupcopyGroups 等,只需检查它是否有条目的 View 访问权限;

    • 在最后测试 powerobservers 限制(MeetingConfig.restrictAccessToSecretItemsTo),以避免条目创建者同时也是权力观察者而无法访问其条目。

  • 删除了 MeetingItem.sendMailIfRelevant,使用 utils.sendMailIfRelevant 代替。

  • 添加了电子邮件通知 adviceEditedOwner,当建议被添加或编辑时,除了现有的 adviceEdited 通知条目的所有创建者外,还会通知条目所有者。

  • 添加了电子邮件通知 temPostponedNextMeeting,当条目被推迟到下次会议时,会通知条目的 proposingGroup 创建者。

4.1.23.3 (2020-04-30)

  • PMCategoryVocabulary.__call__ 添加了 ram.cache,这是用于附件 content_category 的词汇,这对于多次调用的 @@item_duplicate_form 非常有用。

  • 添加了词汇 Products.PloneMeeting.Users 并将其用于 person.userid 字段,该词汇显示全名和用户ID。

4.1.23.2 (2020-04-29)

  • MeetingItem.xml中,彻底删除id为duplicate_and_keep_link的操作...

4.1.23.1 (2020-04-29)

  • MeetingItem.xml中,删除id为duplicate_and_keep_link的操作。

4.1.23 (2020-04-29)

  • Migrator.initNewHTMLFieldsMigrate_To_4105._cleanFTWLabels中添加了ZLogHandler,因为这些步骤可能需要一些时间。

  • MeetingInsertingMethodsHelpMsgView的逻辑从< cite>__init__移动到< cite>__call__,因为在< cite>__init__中会吞掉错误,此外在< cite>Group title旁边显示< cite>Groups in charge。

  • 重构了重复项功能

    • 只留下一个按钮 Duplicate item,已删除 Duplicate and keep link 按钮。

    • 添加了在仪表板中显示 Duplicate item 操作的可能性,添加了 MeetingConfig.itemActionsColumnConfig 以便在 DeleteHistory 操作之外显示它或不显示。

    • MeetingItem.clone 添加了参数 keptAnnexIdskeptDecisionAnnexIds

    • 添加了自定义小部件 PMCheckBoxFieldWidget,该小部件管理 Select/unselect all,将HTML作为值标签渲染,并在字段为空时显示一条清晰的提示信息。

    • 点击时,将显示以下选项的弹出窗口

      • 保留原始项目的链接吗?

      • 选择要保留的附件

      • 选择要保留的决定附件

      • 由于使用 scan_id 或 used annex_type 限制为 MeetingManagers,且当前用户不是 MeetingManager,因此将不会保留的附件和决定附件将显示为灰色。

  • vocabularies.BaseHeldPositionsVocabulary 中,只查询处于 review_state active 状态的 held_positions,此外,在 person viewheld_position view 上显示 WorkflowState 视图小部件。

  • 修复了 @@categorized-annexes 中的 showAddAnnexshowAddAnnexDecision,依赖于 content_category 字段词汇表。

  • 修复了当没有设置性别时 MeetingUser 迁移的问题。

4.1.22.1 (2020-04-24)

  • 在升级到 4105 时添加了升级步骤,以清理未迁移到 PersistendMappingftw.labels 注释。

4.1.22 (2020-04-24)

  • 优化了对 collective.contact.plonegroup.utils.get_organizationscollective.contact.plonegroup.utils.get_organization 的调用,尽可能使用 the_objects=False,并且避免在拥有 plone_group_id 并需要 organization UID 时调用它。

  • 添加了修复 portal_catalog 中错误路径的迁移(路径以‘/’结尾,因为添加的附件正在重新索引父项)和没有 content_category 的附件,这在 collective.quickuploadimio.annex)中的错误 ConflictError 管理中出现。

  • 修复了 MeetingItem._checkMayQuickEdit,该功能即使在字段条件为 False 时也会提供对 Manager 的访问。

  • 添加了到 4105 的升级步骤。

  • 修复了批量操作 StoreItemsPodTemplateAsAnnex 中的错误,该操作保留 Temporary QR code 标签在存储的附件中。

  • 在测试中在 self 上使 catalog 可用。

  • 通过使用 CKEditor AjaxSave plugin 来保存数据以优化 Quick edit save and continue 功能,这样就不会重新加载字段,并且正在编辑内容的用户将保持在原地。

4.1.21 (2020-04-20)

  • ToolPloneMeeting.pasteItem 中,使用 adopt_roles('Manager') 而不是向 logged in user 给予本地角色 Manager

  • 优化了 UpdateDelayAwareAdvicesView._computeQuery,以便仅考虑已配置延迟感知建议的组织,这避免了非常长的查询,这些查询不会让 solr 满意。

  • 添加了 Copy groups 级联过滤器。

    • 添加了词汇表 Products.PloneMeeting.vocabularies.copygroupsvocabulary(级联)和 Products.PloneMeeting.vocabularies.itemcopygroupsvocabulary(MeetingItem)。

    • MeetingItem.copyGroup 词汇从 listCopyGroups 移动到 Products.PloneMeeting.vocabularies.itemcopygroupsvocabulary

    • 对项视图上显示建议和复制组的方案进行了归一化(displayAdvisers/displayCopyGroups)。

    • 相应地调整了测试。

  • @@overview-controlpanel 中显示与 PloneMeeting 相关软件包的 portal_setup 配置版本

  • 修复了当会议项不在会议中时 view.printAssembly 方法失败的问题

  • 修复了 test_pm_ItemStrikedAssembly,以测试会议项不在会议中时的 printAssembly 方法

4.1.20.2 (2020-04-08)

  • 修复了 collective.documentgenerator 辅助方法 print_attendeesprint_attendees_by_type

    • 删除了无用的方法 Meeting.getNonAttendees,非参会者仅在项目上相关,因此我们使用 Meeting.getItemNonAttendees

    • 将参数 escape_for_html=True 添加到两个方法中,这些方法将转义与 appy.pod 不兼容的字符。

4.1.20.1 (2020-04-06)

  • 为项目添加了新的可选字段(decisionSuite)

4.1.20 (2020-04-02)

  • 为富文本字段添加了一个按钮,用于保存并继续编辑

  • 修复了与 collective.solr 的高级搜索视图

  • 在测试中进行了小的修复,以提高 MeetingLalouviere 测试运行的效率

  • 修复了 tests/helpers.py 中的误拼条件

  • 为项目参会者添加了新的出席类型(用于忽略某些项目上的参会者)

    • 新增会议可选属性 non attendee

    • 可以与 present/absent/excused 一起使用,即使缺席的参会者也可以为特定项目设置为非参会者;

    • print_in_and_out_attendees 上的参数 patterns 改为 custom_patterns,以便仅重新定义单个模式

  • 修复了 AskedAdvicesVocabulary ram.cache cachekey,以避免同一词汇用于 2 个不同的 MeetingConfigs(DashboardCollection 上的 indexAdvisers 术语使用另一个 MeetingConfig 的值),此外,当接收到奇怪的环境时,使其更加健壮

  • utils.meetingExecuteActionOnLinkedItems 中,将 MeetingConfig.onMeetingTransitionItemActionToExecute TAL 表达式作为 Manager 执行,以避免权限问题,配置中定义的内容必须应用。这使得当当前用户是 MeetingManager 而不是 Manager 时,a power observer may only access accepted items when meeting is closed 也能正常工作,而不是权限错误,因为 MeetingItem.updateLocalRolesModify portal content 权限保护

  • 在测试 WF 辅助程序(validateItem,decideMeeting,backToState 等)中添加了参数 as_manager,默认值为 MeetingItem 相关方法的 True 和 Meeting 相关方法的 False。这样我们可以最大限度地避免隐藏的权限问题

  • 排除 IAnnex 对象的可搜索文本索引

  • 确保 CKeditor 面板在弹出窗口中正确显示(添加/编辑建议)

  • 添加了 MeetingConfig.removeAnnexesPreviewsOnMeetingClosure 参数,当为 True 时,会议结束时将删除附件预览,还添加了 portal_plonemeeting 上的操作,以便能够删除每个已关闭会议中每个项目的所有附件预览

  • 添加了 utils.fplog,一个类似于 collective.fingerpointing 的日志消息辅助工具,将代码调整为到处使用它,当:

    • 会议中项目位置改变时;

    • 移除继承的建议时;

    • 项目被克隆(复制、发送到另一个 MeetingConfig 等)时;

    • 附件的属性改变(要打印、机密等)时;

    • 富文本字段被快速编辑时;

    • 删除附件预览(如果启用了相关参数,则在关闭会议时)

  • 将参数 MeetingConfig.meetingManagerMayCorrectClosedMeeting 移动到工作流适配 meetingmanager_correct_closed_meeting

  • @@overview-controlpanel 中包含插件包名称和版本,除 PloneMeetingappy 的版本外

4.1.19.2 (2020-03-17)

  • 修复了在 view.printAssembly 中重新定义 'group_position_type' 参数时的错误,并添加了测试

4.1.19.1 (2020-03-13)

  • 将代码调整为不再兼容 collective.iconifiedcategory<0.40(在引入 publishable 之前)

  • 修复了当 Plone 群组存储在其他 Plone 群组中时迁移到 4.1 的问题(当启用 recursive_groups 插件时使用)

4.1.19 (2020-03-12)

  • 在添加/删除附件时不再执行 _versionateAdvicesOnItemEdit

  • 将代码调整为使用来自 collective.iconifiedcategory 的唯一 IconifiedAttrChangedEvent

  • 添加了辅助方法 utils.normalize_id

  • 当将 POD 模板作为附件存储时,定义要使用的 id 并将其传递给 api.content.create,否则元素将被重命名,并且会调用 2 次 ObjectModifiedEvent

  • 修复迁移到4.1的问题,移除了在调用 item.setProposingGroupWithGroupInCharge(u'') 时 MeetingItem.proposingGroup 的功能。

  • 优化附件管理,避免在添加/删除/更改附件的属性值(如 to_print,confidential 等)时产生无用的过程。

  • 在迁移 Plone 组时修复了迁移到4.1的问题,这些组可能除了用户外还包含其他组。

  • 当在已可给出建议的 review_state 中的项目上再次请求建议时,修复了电子邮件通知中的 建议

  • 添加了自适应方法 MeetingItem._is_complete,它依赖于 MeetingItem.completeness 字段。

  • 定义了 CSS 规则,用于管理 RichText 字段在所有显示位置(仪表板、视图、CKeditor)中的段落行高。

  • utils.cropHTML 中,通过确保在调用 BeautifulSoup 之前我们有 Unicode,避免视觉编码问题。

  • 优化可用项目查询,避免对过去会议进行目录查询。

  • 添加了可用于文档生成器辅助函数 print_attendees_by_type 方法的字段 person.firstname_abbreviated。

  • 在 PloneMeetingTestCase.addAnnex 中添加了参数 annexFile=None,以便可以使用除 FILE.txt 之外的另一个文件(如 pdf、损坏的 pdf 等)。

  • 给予 Viewportal_plonemeeting 的访问权限,以便角色 Member,这样当登录用户不是任何组的成员时,应用程序不会失败。

  • 当添加/修改/删除建议时,避免对项目进行全面重新索引,只重新索引相关索引(添加了自适应方法 MeetingItem.getAdviceRelatedIndexes 以管理要重新索引的自定义索引)。

  • 当添加/修改/删除建议时,清除 Products.PloneMeeting.MeetingItem.modified cachekey 易失性,以清除 portlet_todo 的缓存。

  • 调整了晚到项目的处理方式:现在一个项目对于所选首选会议和每个后续会议都是晚到的。这样,一个会议晚到的项目也可能作为下一个会议的晚到项目呈现,而不仅仅是下一个非冻结会议的可呈现项目。

  • MeetingItemWorkflowConditions._groupIsNotEmpty 移动到 ToolPloneMeeting.group_is_not_empty,使其更易于在所有地方使用。

  • 添加了新字段 MeetingItem.meetingManagersNotes,只有 MeetingManagers 可以查看/编辑。

  • 更改了项目可以签署的默认条件(MeetingItem.isSigned),现在一旦项目被 validated,就可以签署。

  • 添加了 Item is signed? 面积过滤器。

  • 根据词汇 collective.contact.plonegroup.sorted_selected_organization_services 被重命名为 collective.contact.plonegroup.browser.settings.SortedSelectedOrganizationsElephantVocabulary,调整了代码。

4.1.18 (2020-02-21)

  • 当项目从项目模板创建时,使用不同的 msgid 为 WF 历史注释,这样旧注释仍然有效,而新注释包括项目模板路径和标题。

4.1.17 (2020-02-21)

  • 在实时搜索中,根据元素的 review_state 颜色化结果。

  • 在 overrided “collective.iconifiedcategory.categories” 中,包括当前存储的 annex content_category,无论它是否 only_for_meeting_managers 以及当前用户是否不是 MeetingManager。

  • 添加了方法 ItemDocumentGenerationHelperView.print_public_deliberation_decided,用于现有的 print_deliberation 和 print_public_deliberation,这将用于在项目决定时渲染项目正文。

  • 当编辑具有 RichText 字段的元素时,避免屏幕尺寸更改,因为 CKeditor 加载需要一些时间,修复字段高度。

  • 在从项目模板创建项目时,在 WF 历史注释中存储项目创建的模板信息。

4.1.16 (2020-02-18)

  • 在 events.onConfigOrPloneElementModified 中,如果事件元素是 PloneMeeting 文件夹,或者是一个包含项目和会议的个人文件夹的用户,则不调用 _notifyContainerModified。

  • 调整了 MeetingItem._update_after_edit 以能够只传递一些索引进行重新索引,相应地调整了异步方法(change itemlisttype、itemcompleteness 等)。默认情况下,MeetingItem._update_after_edit 将执行全面重新索引,但如果提供了某些特定索引,则只重新索引这些索引。

  • 当使用快速编辑编辑 RichText 字段或添加/编辑/删除附件时,避免进行无用的全面重新索引。

  • 尽可能使用 ToolPloneMeeting.get_orgs_for_user 中的 use_the_objects=False,因为这个方法被缓存,返回的对象可能行为异常。

  • 在安装过程中使用 collective.indexing 时,避免与 zope 用户发生错误

  • 修改了用户恢复代码,使其与“ldap”配置兼容。此更改允许使用“ldap”配置的通知

  • 修复了 MeetingItem.getItemSignatories,使其在没有签署者时返回空字典

  • 修复了使用字段 proposingGroupWithGroupInCharge 的项视图模板,当用于项模板时,它可能为空

  • BaseDGHV.get_scan_id 中,当生成并尚未作为附件存储且可能在下一次生成时更改时,将特殊值“临时”附加到生成的二维码

  • 修复了与项组装和项签名编辑相关的错误,在非闭会会议中重新定义项组装/项签名后,任何人都可以编辑项

  • 修复了向负责组显示的项机密附件中的错误,由于 adapters._reader_groups (groupincharge 已重命名为 groupsincharge) 中的错误拼写,实际上没有显示,相同的错误也保留在测试中,因此测试通过了……测试被修改为双重检查 MeetingConfig 中存储的值是否存在于字段词汇表中

  • 添加了配置附件属性(机密性、要打印的……)的可能性,这些属性只对会议管理员显示和/或可编辑

  • 添加了用于格式化签名的新方法,BaseDGHV.print_signatories_by_position 和 BaseDGHV.print_signatures_by_position。

  • 修改了 BaseDGHV.printAssembly 以与参会者兼容,并进行了测试

  • 覆盖 ploneview.Plone.showEditableBorder 以隐藏存储在联系人目录中的文件夹的绿色栏

  • 默认情况下,在所有地方隐藏 共享 选项卡

  • 添加了 items-to-advice-without-hidden-during-redaction CompoundCriterion 适配器,以便能够查询建议项但不在编辑期间隐藏的建议。当建议有一个具有多个状态的工作流程,其中建议默认情况下在编辑期间隐藏时,这很有用。在这种情况下,搜索仅返回可添加到项的建议

  • 优化了电子邮件通知 您已设置为项的副本,以避免在多个组包含同一电子邮件地址或使用 组电子邮件地址 时向同一电子邮件地址发送多个电子邮件

  • 添加了可选字段 Meeting.convocationDate

4.1.15 (2020-01-10)

  • 只有当管理员位于文件夹或 MessagesConfig 元素上时,才显示“添加元素”操作菜单,这样我们就可以避免用户更改 review_state、布局或删除元素...

  • 当使用 tooltipster 更改 MeetingItem.listType 值时,显示当前的 listType 值,以便用户在更改到另一个值之前知道它是多少,尤其是在会议视图上,当前的 listType 值未显示

  • 使 'pm_utils' 和 'imio_history_utils' 在每个使用 collective.behavior.talcondition.utils._evaluateExpression 评估的 TAL 表达式中可用,这样当评估 MeetingConfig.onTransitionFieldTransforms 的 TAL 表达式时,也可以访问项的历史记录,并包括在最后 WF 转换中添加的字段注释,例如

  • 在创建会议时,显示错误 portal_message,同时一些定期项无法插入

  • 添加了方法 ItemDocumentGenerationHelperView.print_deliberation 和 ItemDocumentGenerationHelperView.print_public_deliberation,这些方法将用于渲染项的主体。添加了方法 ItemDocumentGenerationHelperView.output_for_restapi,该方法由 plonemeeting.restapi 用于 @deliberation MeetingItem 端点

  • 在 MeetingItem._findOrderFor 中,在 'on_categories' 中,如果项没有类别,则不中断,这可能是在类别刚刚启用时且会议已包含没有类别的项的情况

  • 修改了 AskedAdvicesVocabulary,仅保留在 MeetingConfig.selectableAdvisers 中的建议。此词汇表用于“建议”分面过滤器以及 MeetingConfig.advicesKeptOnSentToOtherMC 字段

  • 添加了 MeetingItem.validate_groupsInCharge,当在 MeetingConfig.usedItemAttributes 中启用时,MeetingItem.groupsInCharge 字段是必需的

  • 在主要迁移到 v4.1 的过程中,不要刷新其他目录,如 portal_catalog(绕过 reference_catalog 和 uid_catalog)

  • 删除了 ToolPloneMeeting.modelAdaptations 及其相关功能(双语文本、getName、……)

  • 使 Meeting 的 RichText 字段可搜索,索引也索引会议附件的标题在 SearchableText 索引中

  • 在4104版本中添加了升级步骤

  • 删除了DashboardCollection中的‘searchalldecisions’并替换为‘searchallmeetings’,这样就可以显示所有会议,用户可以搜索所有会议或者根据review_state过滤,以显示只有已决定的会议

  • 添加了辅助方法Migrator.updateCollectionColumns,以便能够更新每个MeetingConfigs的每个DashboardCollections的每一列

  • 添加了为特定MeetingCategory定义负责组的功能,这与organization.groups_in_charge的方式相同。新参数MeetingConfig.includeGroupsInChargeDefinedOnProposingGroup和MeetingConfig.includeGroupsInChargeDefinedOnCategory将使得在访问条目或机密附件时能够考虑在proposingGroup或分类上定义的负责组

4.1.14 (2019-11-27)

  • 最后修复了当原始建议不是延迟感知的,而持有继承建议的MeetingConfig有一个延迟感知的自定义顾问时,建议继承的问题

  • 不要使IMeeting继承自IFacetedNavigable,否则当创建新会议时不会应用分面配置,因为它已经实现了IFacetedNavigable…从collective.eeafaceted.dashboard重写IDashboardGenerablePODTemplates以管理与仪表板相关的POD模板

4.1.13 (2019-11-26)

  • 修复了在Meeting上渲染POD模板的问题,之前因为使用DashboardPODTemplates而崩溃,现在使用ConfigurablePODTemplates

  • 针对imio.prettylink的变化调整了CSS和代码(与状态相关的CSS类已从<a>标签移动到内部<span>)

4.1.12 (2019-11-26)

  • 针对上下文和仪表板重新定义了‘IGenerablePODTemplates’适配器,现在‘get_all_pod_templates’和‘get_generable_templates’已从‘DocumentGeneratorLinksViewlet’移动到‘collective.documentgenerator’中的‘GenerablePODTemplatesAdapter’

  • 修复了当从包含所需建议的原始条目中取消选中继承的建议时,更新回前辈,这样建议就不再继承的问题

  • 修复了当从原始条目中提供一个由power顾问提供的继承的建议时,条目被发送到另一个包含有自动请求延迟感知建议的MeetingConfig的问题,自动请求的建议不应取代继承的建议

4.1.11 (2019-11-19)

  • 在移动到版本4103时重新启动升级步骤_adaptHolidaysWarningMessage

4.1.10 (2019-11-19)

  • 当附件被修改时,避免重新索引整个父级,只重新索引相关索引:修改相关索引和SearchableText,因为附件标题被索引到其中

  • 集成了来自collective.iconifiedcategory的新列“publishable”,如果使用了相关的collective.iconifiedcategory版本,则进行条件性操作

  • 修复了当在@@usergroup-groupprefs中保存结果时从“管理员”组中删除“经理”角色的bug,这是由于“经理”角色未列入表格,因此在保存时被删除。现在显示应用使用的所有全局角色,即“会议观察员全局”、“经理”和“成员”角色。“网站管理员”角色目前不显示

  • 不再将“成员”角色授予“AuthenticatedUsers”自动组,这曾与旧LDAP插件一起使用,该插件默认不授予“成员”角色。现在所有用户都将获得“成员”角色,所有组,包括“AuthenticatedUsers”,将不再获得“成员”角色

  • 修复了在会议选择框中选择的会议的CSS应用问题,以便正确着色选中的值

  • 修复了当无法从包含用于RichText字段中图像的条目的会议中删除会议的bug,这是由于当Plone内容被删除时,它的容器会通知modified,如果容器是IMeetingContent,则不再这样做

  • 修复了与“waiting_advices”工作流适配相关的bug,如果WAITING_ADVICES_FROM_STATES中定义的状态不存在,则无法激活

4.1.9 (2019-11-04)

  • 在从portal_plonemeeting上的操作按钮启动条目和会议本地角色更新之前添加一个“你确定吗?”的验证步骤

  • 修复了ftw.labels的问题:- Jar存储从PersistentMapping变为字典,导致对其所做的更改未持久化;- 在从labels小部件中删除标签时返回MeetingConfig的“数据”选项卡;- 当添加/更新/删除标签时,使ftw.labels分面词汇无效。

  • 在将POD模板作为附件存储时,请确保form.store_as_annex和form.target的值正确地恢复到默认设置,因为如果用户使用返回按钮,这可能导致在存储POD模板后无法存储时出现未经授权的情况。

  • 优化MeetingItem.updateLocalRoles以考虑更新多个项的情况:- 如果之前更新的同一portal_type的项中没有找到表达式,则不计算自动复制组;- 如果附件不是机密的并且仍然不是机密的,则不更新附件访问权限;- 为集体.contact.plonegroup.get_organization添加缓存,以避免在请求期间执行过多的目录查询;- 在updateLocalRoles方法中添加了avoid_reindex参数,在这种情况下,如果__ac_loca_roles__没有更改,则绕过reindexObjectSecurity。

  • 使用declareProtected(ModifyPortalContent)为MeetingItem上的方法'setCategory'、'setClassifier'、'setProposingGroup'和'setProposingGroupWithGroupInCharge'设置保护。

  • 修复了当一项被发送到另一个MeetingConfig而无法在会议中展示(因为没有可用的)时崩溃的问题,如果目标MeetingConfig标题包含特殊字符,它将渲染portal_message。

  • 将collective.messagesviewlet的“假期警告”消息的文本改为使用不那么令人恐慌的内容。

  • 添加了升级步骤以修复ToolPloneMeeting.holidays值“2017/2/25”的错误。

4.1.8 (2019-10-14)

  • 添加了在迁移步骤中绕过目录/工作流刷新的可能性,如果从迁移步骤到4.1,因为已经完成了这个步骤。

  • 适配AdvicesIconsInfos.mayRemoveInheritedAdvice,它也用于“@@advice-remove-inheritance”视图,因此会议管理员可以在项目未决定之前删除继承的劝告。

  • 以新方式显示workflowstate视图小部件,因为它已移动到plonetheme.imioapps,并且CSS已更改。

  • 在Meeting.signatures字段的末尾清楚地显示空行,这样编辑者可以立即看到是否缺少一行。

  • 修复了用于MeetingConfig.mailMeetingEvents(listMeetingEvents)字段的词汇键错误,该错误会中断会议状态更改时的邮件通知。

  • 修复了迁移步骤Migrate_To_4101._correctAccessToPODTemplates,以更新StyleTemplate对象。

  • 修复了itemsignatures管理,以保留值末尾的空行,因为它被表单删除了。

4.1.7 (2019-10-04)

  • 修复了当询问一个对某个项的延迟感知劝告时,如果已经存在一个非延迟感知的继承劝告,则会引发错误的问题。适配MeetingItem.validate_optionalAdvisers,以防止在选择顾问时选择已继承在当前项上的顾问。

  • 添加了迁移步骤以确保POD模板访问权限得到修复。

  • 更正了模板“export-organizations.ods”,因为字段PMOrganization.selectable_for_plonegroup已被删除。

  • 在迁移到v4.1的过程中,迁移使用“here”(“here.portal_plonemeeting”等)的表达式。

4.1.6.1 (2019-10-01)

  • 在Migrate_To_4_1._updateUsedAttributes已迁移时。

4.1.6 (2019-10-01)

  • 将创建新项目时添加行到工作流历史的逻辑移动到utils.add_wf_history_action,以便其他包(imio.p.ws)可以使用。

  • 从MeetingConfig.listStates方法中删除了@ram.cache,这有时会导致工作流Adaptations应用程序和验证中断。

  • 修复了迁移到4101,在_removeTagsParameterInCallToJSCallViewAndReloadInCloneToOtherMCActions中,不要调用MeetingConfig._updatePortalTypes,因为它不适用工作流Adaptations,调用MeetingConfig.registerPortalTypes。

  • print_meeting_date:与旧POD模板的向后兼容性。

4.1.5 (2019-09-30)

  • 修复了contacts/orgs-searches的迁移步骤“c5.default”分面标准,因为我们存储一个字符串而不是一个列表,我们不能使用“编辑”方法,该方法验证给定值的格式。

4.1.4 (2019-09-30)

  • 将'MeetingItem.groupsInCharge'添加到'MeetingConfig.ItemFieldsToKeepConfigSortingFor',这样就可以按字母顺序显示或保持'MeetingConfig.orderedGroupsInCharge'中定义的顺序。

  • 适配'MeetingItem.getAdviceObj',不使用MeetingItem.adviceIndex的'advice_id'来获取给定的劝告。实际上,当此方法在'MeetingItem.adviceIndex'计算期间被调用时,即使劝告对象存在,'advice_id'也可能不存在。

  • 固定了无法查看链接会议的用户对项目视图的访问权限。实际上,这引发了未经授权的错误,因为调用了Meeting.getAssembly(现在已声明为Public)

  • 调整了项目编辑表单,以将字段“proposingGroup”,“proposingGroupWithGroupInCharge”,“groupsInCharge”,“classifier”和“category”一行一行地显示,而不是一个接一个地显示,以避免一个字段太大时隐藏字段

  • 调整了print_meeting_date和print_preferred_meeting_date,现在它们可以在受限或不受限模式下使用

  • 调整了迁移到4101,以确保在联系人/组织搜索仪表板的“c5”小部件中存储的值不是列表

4.1.3 (2019-09-23)

  • 修复了在BaseDGHV.printAdvicesInfos中当建议评论为空时的错误“AttributeError: ‘NoneType’对象没有名为‘lower’的属性”

  • 在‘MeetingItem.getAdvicesByType’中添加了参数ordered=True,这将根据顾问组标题(索引顾问中的键‘name’)对advice_type下的元素进行排序

  • 修复了迁移,当复制组不再存在时,不会失败迁移‘MeetingItem.copyGroups’,在旧版本中是可能的

  • 添加了字段held_position.secondary_position_type,它的工作方式与held_position.position_type完全相同,以便在必要时定义可用的secondary_position_type。还调整了held_position.get_prefix_for_gender_and_number方法,以便能够传递position_type_attr=’secondary_position_type’

  • 将‘MeetingItem.associatedGroups’添加到‘MeetingConfig.ItemFieldsToKeepConfigSortingFor’,这样就可以按字母顺序显示或保持‘MeetingConfig.orderedAssociatedOrganizations’中定义的顺序

  • 在meetingitem_view中恢复了工具中定义的项目信息(templateUsingGroups/meetingTransitionInsertingMe),在错误地删除“返回”链接时被删除

  • 添加了插入方法“on_item_title”,这将按标题字母顺序插入项目

  • 添加了插入方法“on_item_decision_first_words”,这将按决策字段内容字母顺序插入项目

  • 添加了插入方法“on_item_creator”,这将按项目创建者全名字母顺序插入项目

  • 修复了Migrator.updateTALConditions,使用行为适配器获取/设置tal_condition

4.1.2 (2019-09-13)

  • 仅通过调用原始的“collective.contact.plonegroup.every_organizations”词汇表来定义“Products.PloneMeeting.vocabularies.everyorganizationsvocabulary”,但添加了ram.cache和渲染术语标题而不包含“我的组织”

  • 对于“associatedGroups”面相过滤器使用词汇“Products.PloneMeeting.vocabularies.associatedgroupsvocabulary”而不是“Products.PloneMeeting.vocabularies.everyorganizationsacronymsvocabulary”

4.1.1 (2019-09-12)

  • 修复了在项目模板视图中未定义proposingGroup时的错误,当获取proposingGroup时要进行防御性处理

  • 在“Products.PloneMeeting.vocabularies.groupsinchargevocabulary”中,仅考虑在plonegroup中选定的组织

  • 禁用“inline_validation.js”

  • 添加了新的建议类型“Cautious”和“Positive with comments”,除默认的“Positive, Positive with remarks, Negative and Nil”之外

  • 添加了过滤项目仪表板以过滤由“Nobody”接管的项目的能力

  • 使用natsort.humansorted代替natsort.realsorted按术语标题对词汇表进行排序

  • 更改了MeetingWorkflowConditions.mayDecide的基实现,仅检查当前用户是否有“Review portal content”权限

  • 使searchlastdecisions会议搜索可显示未来的决策

  • 在显示组织的联系人仪表板中不要显示“review_state”列,它始终是“active”,我们使用“selected in plonegroup”列的信息

  • 修复了MeetingUsers的迁移,如果一个MeetingUser被删除则不会失败,并正确初始化MeetingConfig.orderedContacts和MeetingConfig.orderedItemInitiators

  • 添加了在联系人仪表板(以及在其导入数据中定义)中使用添加到联系人目录中的DashboardPODTemplate的能力

  • 将organization.selectable_for_plonegroup字段移动到“app_parameters”字段集中

  • 处理“tap”事件(当在移动设备上使用应用程序时)时的tooltipster显示

  • 调整了actions_panel和faceted collection widget词汇表,在portal_url更改时使缓存无效,这在使用不同的portal_url访问应用程序时可能发生

  • 将“Products.PloneMeeting.utils”包在POD模板中通过名称‘pm_utils’提供,它已经通过名称‘utils’提供

  • 移除了organization.selectable_for_plonegroup属性,在plonegroup中不可选的组织将被存储在plonegroup组织外部

  • 当使用organizations.csv导入联系人时,增加了在父级导入组织的可能性

  • 将MeetingItem.optionalAdvisers词汇从MeetingItem.listOptionalAdvisers移动到词汇工厂‘Products.PloneMeeting.vocabularies.itemoptionaladvicesvocabulary’,这对于imio.pm.ws在创建Item SOAP方法时处理请求建议是必要的

  • 将JS方法‘callViewAndReload’移动到imio.helpers,同时移除了无用的参数‘tags’

  • 添加了2020年的假期,并添加了相应的升级步骤

  • 将“include_person_title”参数添加到held_position.get_prefix_for_gender_and_number,使其能够生成“Madame la Directrice”句子

  • 使用词汇‘collective.contact.plonegroup.sorted_selected_organization_services’代替‘collective.contact.plonegroup.selected_organization_services’

  • 添加了utils.uncapitalize,用于将给定字符串的首字母转换为小写

  • 将MeetingConfig.onMeetingTransitionItemTransitionToTrigger移动到MeetingConfig.onMeetingTransitionItemActionToExecute,除了能够在会议上触发过渡时触发每个会议项的过渡外,现在还可以执行TAL表达式

  • 将‘workflowstate’视图小部件移动到plonetheme.imioapps.browser.viewlets,并将utils.get_state_infos移动到imio.helpers.content,相应地修改了代码

  • 添加了使用solr而不是目录运行的能力

  • 不要限制对“我的组织”之外的组织的外部职位的选择。我们可能将一个外部职位链接到存储在“我的组织”中的组织。这将允许将外部职位链接到在应用程序中具有角色的组织:负责组,顾问,……

  • 将organization.get_certified_signatures参数从_group_in_charge=False更改为group_in_charge=None,它将接收一个负责的组(组织)以获取认证签名。这管理了多个负责组可能在组织上选择的事实,并且选择的负责组在链接项上定义

  • 仅在值不是索引值时覆盖organization.get_full_title。因此,“我的组织”在联系信息小部件中显示,但在其他情况下不显示

4.1 (2019-08-23)

  • 修复了当odt输出格式不可用时POD模板检查功能

  • 根据collective.iconifiedcategory中的更改进行了调整,我们不再在tooltipster弹出窗口中拆分显示的附件标题(第一部分/剩余部分)

  • 添加了迁移步骤到版本4100
    • 添加了新的目录索引/列(getAssociatedGroups)

    • 添加了新的项仪表板分面过滤器

    • 禁用collective.documentgenerator的use_stream

  • 确保在创建新站点时collective.documentgenerator的use_stream设置为False

  • 将_notifyContainerModified事件扩展到默认的Plone元素文件夹/文件/文档/新闻条目,因此当使用“文档”文件夹发布一些文档时,添加新元素将通知容器已修改并使缓存无效

  • 添加了可适应的方法MeetingItem.custom_validate_optionalAdvisers,以便插件可以在必要时验证选定的可选顾问

  • 在meetingitem_view的左上角显示请求的建议,与复制组一起,使有关谁可以查看项的信息位于同一位置

4.1rc9(2019-08-13)

  • 通过不使用portal_groups和getGroupMemberIds,而是直接通过acl_users.source_groups._group_principal_map存储的数据获取组成员,优化了MeetingItem.MeetingItemWorkflowConditions._groupIsNotEmpty的速度

  • 使self.tool和self.cfg在MeetingWorkflowConditions/MeetingItemWorkflowConditions和MeetingWorkflowActions/MeetingItemWorkflowActions上可用

  • 在MeetingItem.updateLocalRoles结束时清除borg.localroles

  • 使用imio.helpers.cache.invalidate_cachekey_volatile_for的‘get_again=True’参数确保立即获取已作废的日期,以避免随后的异步请求获取它,从而导致数据库写入。这避免了在缓存作废时出现ConflictErrors。此外,用可变缓存键替换了Meeting.invalidate_meeting_actions_panel_cache属性,以避免在查看会议且项被修改时写入,该属性由actions_panel存储,导致写入

  • 避免在不需要时进行过多的目录查询
    • 为portlet_todo.getSearches添加了ram.cache,现在返回集合路径,因为我们不能使用ram.cached方法返回集合对象。

    • 在BaseGeneratorLinksViewlet.getAvailableMailingLists和PMDocumentGeneratorLinksViewlet.may_store_as_annex中,直接使用pod_template而不是查询集合的UID上的目录;

    • 在meetingitem_view中,使用MeetingItem.getPreferredMeeting(theObject=True)获取会议对象,不要使用词汇表来显示proposingGroup或proposingGroupWithGroupInCharge,因为它执行了太多逻辑,直接显示proposingGroup/groupInCharge。

    • 优化MeetingItem.getSiblingItem以避免多次调用它,为whichItem参数添加了值“all”,这将使它计算所有可能的值(第一个/最后一个/下一个/上一个)并返回一个字典中的所有值。

4.1rc8 (2019-08-02)

  • 修复了MeetingConfig.validate_customAdvisers未能检测到在非延迟感知行自动请求时正在使用的已删除行的问题。

  • 正确显示“负责的组”和“负责的组的缩写”列。

  • 当编辑MeetingConfig或使用工具上的“无效化所有缓存”操作时,使所有缓存词汇无效。

  • 简化MeetingItem._getInsertOrder,通过删除MeetingItem._findOneLevelFor方法,只依赖于每个插入方法计算出的_findOrderFor,并比较订单的元组以找到最低值。

  • 使用proposinggroups词汇表来管理groupsInCharge列,这样我们可以确保在词汇表中包含每个组织。

  • 修复了@@change-item-order中的错误,在更改会议最后一个项目的位置时,可以设置项目编号>最后一个项目编号。

  • 使从其中考虑项目为迟到状态的会议状态更容易覆盖。
    • 默认情况下没有任何更改,可适应的方法Meeting.getLateState默认返回“frozen”;

    • MeetingItemWorkflowActions._freezePresentedItem被MeetingItemWorkflowActions._latePresentedItem替换。

  • 修复迁移_adaptForPlonegroup,在tool.updateAllLocalRoles之前调用_hook_after_mgroups_to_orgs,因为hook中可能进行了更改,这些更改对于本地角色更新是必要的。

  • 在通过CSV文件导入联系人时,支持组织.csv中的“缩写”属性。

  • 当使用类别时,验证重复性项目的类别,以便在配置中不选择类别时无法创建它,或者在创建新会议时无法插入。在MeetingConfig.useGroupsAsCategories上添加警告,说明在启用类别时,应用程序中必须执行一些检查。

  • 添加了“相关组”和“相关组缩写”列,需要添加新的portal_catalog列“getAssociatedGroups”。

  • 在相关仪表板上添加了可选择的“相关组”分面过滤器。

  • 将词汇表u'Products.PloneMeeting.vocabularies.proposinggroupacronymsvocabulary'移动到u'Products.PloneMeeting.vocabularies.everyorganizationsacronymsvocabulary',这样在不需要命名问题时更容易在其他上下文中重用。

  • 在会议分面(可用/展示项目)上不显示DashboardPODTemplates。

  • 在浏览器中居中对齐带有align="center"的

  • 修复views.ItemDGHV.print_copy_groups()中“html_pattern”参数编码的问题。

  • 为分面和项使用分离的词汇表来管理MeetingItem.associatedGroups和MeetingItem.groupsInCharge:分面词汇表是缓存的,与项相关的词汇表调用缓存的词汇表并管理缺失的术语。

  • 添加ICompoundCriterionFilter适配器“items-with-personal-labels”,以便查询ftw.labels个人标签。

  • 如果Meeting portal_type包含空格,则utils.get_context_with_request不会失败添加会议。

  • 4.1rc7 (2019-07-19)

    • 当使用“on_groups_in_charge”插入方法时,在@@display-inserting-methods-helper-msg视图中显示MeetingConfig.orderedGroupsInCharge字段。

    • 修复了在portlet_plonemeeting中显示的img选择框中的错误,它具有不同的JS id,或者点击第二个框(已决定会议)会打开第一个框(会议)。

    • 修复了当广告拦截器阻止当前页面因为URL包含像“advertising”这样的词时的问题,不要重新加载页面或无限期地重新加载,因为当JS执行XHR调用时发生错误,它会重新加载页面,而不是显示XHR响应错误(默认情况下,它显示“NetworkError: A network error occurred.”)。

    • 在克隆项目时,在ToolPloneMeeting.pasteItem中,确保_at_rename_after_creation设置为True(默认值),以便正确重新计算项目ID,因为配置中存储的项目模板和周期性项目都是以_at_rename_after_creation=False创建的。

    • 对于‘usergroups’ etag,返回用户组的CRC32结果,以避免过长的etag可能导致的浏览器崩溃,并限制使用的带宽。

    • 修复了在项目模板上显示actionspanel时的错误,确保计算回退URL时知道当前项目模板可能存储在子文件夹中,而不是直接在‘itemtemplates’文件夹中。

    • 修复了当MeetingUser存在于多个MeetingConfigs中的迁移问题,迁移时再次创建它,导致类型为‘BadRequest:id“xxx”无效 - 已在使用’的错误。现在如果存在,我们将重用已创建的人员/所持职位。

    • 修复了迁移,在_updateCatalogsByTypes之前运行_migrateMeetingConfigDefaultAdviceHiddenDuringRedaction,因为MeetingConfigs可能在第二种方法中重新索引,我们需要首先更新MeetingConfig.defaultAdviceHiddenDuringRedaction格式,从布尔值更新到列表。

    4.1rc6(2019-07-02)

    • 修复了显示groupsInCharge时的meetingitem_view。

    4.1rc5(2019-06-30)

    • 确保如果组织被用于MeetingItem.templateUsingGroups,则不能将其删除。

    • 重新定义imio.prettylink的cachekey用于IMeetingAdvice,以使缓存无效并获取Link,如果项目标题更改。

    • 包括folderView的etag parentmodified,以便在修改建议父项(项目)时使etag无效。

    4.1rc4(2019-06-28)

    • 正确显示项目导航小部件,修复了CSS。

    • 修复了在没有权限编辑全局标签的情况下无法编辑个人标签的错误。

    • 修复了在MeetingConfig中定义了没有定义dashboard_collections的DashboardPODTemplate在所有MeetingConfigs中显示的错误。

    • 在添加新的所持职位时,默认职位为‘我的组织’组织。为此,需要更改所持职位portal_type的add_view_expr属性,以便将默认职位传递到URL中(++add++held_position?form.widgets.position=...),因为它似乎无法使用default、defaultFactory或其他@form.default_value定义默认值。

    • 在print_attendees_by_type中,当group_position_type=True时,对于position_type是u’default’且u’default’不在ignored_pos_type_ids中的所持职位,显示标签。

    • 修复了MeetingConfig.validate_customAdvisers以检查是否没有使用相同的row_ids,这在从import_data创建MeetingConfig时可能会发生。

    • 在使用adaptations.addState时修复了生成的guard_expr方法名。

    • 确保当存在其他回退转换时,‘@@remove-several-items’视图将项目设置回‘已验证’状态,例如,当启用‘presented_item_back_to_itemcreated’WFAdaptation时。

    • 在‘waiting_advices’WFAdaptation中,确保即使‘remove_modify_access’为True或当状态在MeetingConfig.itemGroupInChargeStates中选中时,预算影响编辑者也有权编辑预算信息,在这种情况下,预算信息不可编辑。

    • 在迁移期间从文件重新加载collective.documentgenerator配置,以防oo端口不同。

    • 添加了插入方法‘on_all_associated_groups’,这将按照每个选定的关联组的顺序将项目插入会议中,而不仅仅是最高索引。关联组的顺序可以来自plonegroup中选定的组织,也可以在MeetingConfig.orderedAssociatedOrganizations中重新定义,在这种情况下,未在plonegroup中选定的组织也可以使用。

    • 将MeetingItem.groupInCharge移动到MeetingItem.groupsInCharge:使字段在项目上可编辑,并依赖于plonegroup中选定的组织或MeetingConfig.orderedGroupsInCharge字段中选定的组织。将插入方法‘on_groups_in_charge’调整为考虑所有所持职位,而不仅仅是第一个有序的所持职位。

    • 删除调用setuphandlers.updateRoleMappings的import_step。

    • 在held_position.get_prefix_for_gender_and_number中添加了新的参数‘use_by’和‘use_to’,它将返回额外的值来管理类似“向X先生提出建议”和“由X先生提出的建议”的句子。BaseDGHV.get_contact_infos将包括所有可能的值。

    • 在导入persons.csv中的人员联系信息时,添加了定义“Plone用户ID”的可能性。

    • 在迁移到v4.1版本时,创建了准则c23和c24,因为似乎有些旧的v4.0版本没有这两个准则。

    • MeetingItem.getItemAssembly不支持参数‘striked=True’,请使用MeetingItem.displayStrikedItemAssembly。

    • 在从项目模板创建项目时,保留字段“isAcceptableOutOfMeeting”。

    4.1rc3(2019-06-14)

    • 在POD模板中使collective.contact.core.utils和collective.contact.plonegroup.utils可用,名称分别为contact_core_utils和contact_plonegroup_utils,例如用于访问get_gender_and_number或get_organization。

    • 在项目视图中,使用bypassWritePermissionCheck=True检查mayQuickEdit的‘completeness’字段,以便它只依赖于字段条件,并且可以被子插件覆盖。

    • 修复了MeetingItem.listProposingGroupsWithGroupsInCharge,确保在proposingGroup/groupInCharge标题使用特殊字符时不会失败。

    • 默认情况下,在联系人模块的“添加组织”中添加新的组织时,将其添加到plonegroup-organization。

    • 在plonegroup-organziation的操作面板中显示的“返回”动作将用户送回“联系人”目录,而不是portal_plonemeeting。

    • 向Migrate_To_4_1.run传递额外_omitted参数,以在调用upgradeAll时忽略。

    • 添加了ItemDocumentGenerationHelperView.print_copy_groups以打印项目的副本组。

    4.1rc2(2019-06-11)

    • 添加了一个类似于Item/Meeting的AdviceAfterTransitionEvent,确保在PloneMeeting中管理的主AfterTransitionEvent之后调用已注册的子插件处理器。

    • 修复了MeetingConfig.groupsShownInDashboardFilter的迁移到MeetingConfig.groupsHiddenInDashboardFilter。

    • 将用于分面准则‘c4’(组)的词汇表迁移到使用‘Products.PloneMeeting.vocabularies.proposinggroupsforfacetedfiltervocabulary’。

    • 在@@display-inserting-methods-helper-msg中,确保仅显示当前使用它对项目进行排序的类别/组织。使用已适配的MeetingConfig.extraInsertingMethods方法来管理额外的插入方法信息。

    4.1rc1(2019-06-11)

    • 仅对管理员显示“联系人”门户标签,对MeetingManagers隐藏它。

    • 确保“图像”门户类型没有关联的工作流。

    • 将MeetingConfig._setDuplicatedWorkflowFor移动到utils.duplicate_workflow,以便可以复制任何现有工作流。

    • 添加了utils.duplicate_portal_type方法以简化门户类型的复制,例如用于管理多个meetingadvice门户类型。

    • 添加了可适配的方法MeetingConfig.updateExtraPortalTypes,在MeetingConfig._updatePortalTypes结束时调用,以处理自定义门户类型的适配。

    • 覆盖Invalidate cache of CachedCollectionVocabulary.__call__(显示搜索模块中集合的词汇表)的缓存失效键,以考虑当前用户组,以便在用户组更改时进行失效。

    • 添加了用于操作WF的辅助方法,以简化工作流适配的应用。
      • model.adaptations.change_transition_new_state_id用于更改给定transition_id的新_state_id。

      • model.adaptations.removeState用于删除一个状态,并删除导致此状态的所有转换,并在必要时管理新的初始状态。

    • 为MeetingAdvice添加了工作流操作/条件适配器,就像为Meeting/MeetingItem所做的那样。

    • 将MeetingConfig.defaultAdviceHiddenDuringRedaction从布尔值更改为现有advice portal_types的列表,以便可以在每个advice portal_type的基础上启用defaultAdviceHiddenDuringRedaction。

    • 依赖于dexterity.localrolesfield来管理meetingadvice工作流。

    • 优化MeetingItem.getAdvicesGroupsInfosForUser,以便仅在必要时计算to_add/to_edit。

    • 在advice信息的tooltipster弹出窗口中显示advice review_state。

    • 覆盖meetingadvice的‘view’类,如果当前用户尝试访问而建议不可视,则引发未授权错误

    • 添加了可适应的方法MeetingItem._adviceDelayMayBeStarted,以便能够添加条件以真正启动建议延迟(设置‘advice_started_on’日期)

    • 修复了在@@change-item-order视图中更改会议中项目位置(从子编号到子编号)时出现的错误

    • 如果没有任何内容显示,则不显示空的tooltipster“更改建议延迟”,并隐藏“更改建议延迟”操作

    4.1b17(2019-05-16)

    • 将held_position字段“标签”、“位置类型”、“开始日期”、“结束日期”、“使用情况”、“默认值”、“签名编号”移动到“app_parameters”字段集中,以便通过“additional-fields”宏在视图中显示

    • 在附件分类子视图上添加了缓存,并适应了代码,使其在所有地方以相同的方式调用,因此缓存可以在显示的地方正确共享

    • 移除了会议中排序项目的箭头,以便actions_panel与项目仪表板中显示的相同,并且可以共享缓存。排序会议中项目的箭头被拖放功能取代

    • 启用plone.app.caching
      • 以缓存附件内容类别图标,适应代码以使其与完整页面缓存一起工作;

      • 异步获取一些信息(portlet_todo、可能更改的集合中元素(searchallmeetings术语、计数器));

      • 在打开折叠部分时加载链接项目;

      • 为MeetingItem.listType使用tooltipster;

      • 当context/cfg/linkedmeeting更改时,缓存失效。适应代码,以便在MeetingConfig的外部元素(分类设置、子文件夹、重复项目、集合等)的每个更改(添加/修改/删除)都通知Modified MeetingConfig;

      • 在portal_plonemeeting上添加了“使所有缓存失效”操作,以使所有缓存失效。

    • 移除了迟到与会者的管理,如果我们有迟到与会者,我们必须在会议中将用户选为出席然后将其设置为缺席或免于处罚,从第一个项目到加入会议的项目

    • 修复了manage_item_signatures_form中的错误,如果未使用字段“assembly”。如果与联系人和参与者字段一起使用,则可以与自由文本字段“签名”一起使用,在这种情况下,它将失败(未授权)

    • Migrate MeetingItem.itemInitiator to contacts

    • 添加了将Plone用户链接到联系人人员的可能性(使用字段person.userid)。将get_contact_infos方法添加到文档生成辅助视图,以便例如,当建议创建者链接到人员时,我们可以使用特定的held_position来渲染签名信息。如果没有提供position_type,则返回第一个,我们还可以提供几个position_type,这样我们就可以考虑具有不同position_type的各个人员

    • 在collective.behavior.talcondition的任何地方使用 EvaluateExpression 来评估TAL表达式

    • 禁用了“投票”功能及其相关选项卡。与“投票类型”相关的MeetingConfig字段(usedPollTypes、defaultPollType)移动到“数据”选项卡的底部

    • 在tooltipster中显示建议注释和观察结果,以便成员知道是否在两个字段中都编码了某些内容。仍然需要截断内容,因为太长的建议在tooltipster中无法正确显示。将截断阈值从400个字符增加到1000个字符

    • 如果POD模板上定义的邮件列表错误,则不要崩溃POD模板视图小部件,在邮件列表下拉菜单中显示清晰的提示信息

    • 在创建MeetingConfig TTW时,将“searchmyitems”定义为默认的细分集合,以便可以直接使用

    • 添加了在用户能够编辑项目的情况下轻松重新初始化建议延迟的可能性。'重新初始化延迟'操作位于建议弹出窗口的“更改建议延迟”灰色时钟图标后面

    • 在MeetingConfig中添加了“更新项目和会议”的动作,除了在portal_plonemeeting上已存在的相同动作(用于更新所有MeetingConfig的项目和会议)之外,还将只更新所选MeetingConfig的元素。

    • 添加了WFAdaptation“decide_item_when_back_to_meeting_from_returned_to_proposing_group”,该功能将根据常量ITEM_TRANSITION_WHEN_RETURNED_FROM_PROPOSING_GROUP_AFTER_CORRECTION自动决定从returned_to_proposing_group返回的项目。

    • 使TALCondition行为在所有使用位置都具有“cfg”和“tool”变量,这解决了collective.messagesviewlet message.tal_condition字段中不可用的问题。

    • 在仪表板中添加了“更新”批量操作,该操作可用于列出项目和会议,并更新所选元素的LocalRoles,这在需要仅更新一些元素以适应MeetingConfig更改时很有用,仅对管理员可用。

    • 集成了支持个人标签的新版本ftw.labels。
      • 除可编辑项目的MeetingManagers外,所有用户均可编辑标签;

      • 个人标签可由所有能够查看项目的用户编辑;

      • 当项目被复制(本地、到其他MC等)时,标签不会保留,除非从项目模板创建的项目;

      • 默认情况下,管理个人标签“lu”(阅读)及其关联的搜索(searchunreaditems、searchunreaditemsincopy、searchunreaddecideditems);

      • 在MeetingConfig上添加了动作,以便在管理新的个人标签时初始化现有项目:对于具有对这些项目“查看”访问权限的每个用户,都有可能激活超过指定天数的项目上的个人标签;

      • 用于项目的标签在配置中不可删除。

    • 默认情况下,如果当前用户不在“观察者”或“审阅者”中,则隐藏与“复制项目”相关的搜索;

    • 在评估MeetingConfig.customAdvisers的TAL表达式时,确保变量“org”和“org_uid”可用。此外,当使用collective.behavior.talcondition行为评估TAL表达式时,“pm_utils”变量现在是始终可用的;

    • 确保从会议中删除项目时,所有MeetingItem.itemAssembly*字段都被清空;

    • 添加了参数ToolPloneMeeting.enableScanDocs,默认值为False,以便在imio.zamqp.pm存在时启用/禁用与文档扫描相关的功能;

    • 当使用collective.fingerpointing克隆项目时,格式化日志消息;

    • 使用MeetingConfig.powerObservers数据网格字段使权力观察者管理通用,并定义:-权力观察者有权访问的项目状态;-权力观察者有权访问的会议状态;-项目TAL表达式条件访问;-会议TAL表达式条件访问。可定义的TAL表达式使MeetingItem._isViewableByPowerObservers方法可适应,已删除该方法;

    • 删除ToolPloneMeeting上的未使用字段:“extractTextFromFiles”、“availableOcrLanguages”、“defaultOcrLanguage”和“enableUserPreferences”;

    • 添加了在POD模板上定义的mailing_list的接收者中定义Plone组的功能,使用“group:”+Plone组ID;

    • 确保如果另一个MeetingConfig中的另一个MeetingCategory在字段‘categoryMappingsWhenCloningToOtherMC’中使用,则无法删除MeetingCategory;

    • 在除了管理在plonemeeting小部件中显示的会议列表之外的所有位置使用tooltipster代替pmDropDown(MeetingItem.emergency、MeetingItem.completeness、可生成POD模板上的mailing_lists)。此外,不再使用blue_arrow.gif图像,以避免在首次显示时tooltipster大小错误,使用fontawesome图标;

    • 在会议视图中向MeetingManagers显示Manager保留字段Meeting.meetingNumber、Meeting.firstItemNumber和Meeting.meetingConfigVersion,但这些字段仍然只能由Manager编辑。

    • 已从‘plonemeeting_onestate_workflow’中移除了匿名角色的‘查看’权限,因此匿名用户无法访问任何配置项。警告:这限制了在向匿名用户显示的消息的TAL条件中使用‘工具’,并需要通过选择消息中required_roles字段的一些值来保护使用‘工具’的消息。此外,需要授予在portal_plonemeeting和 contacts目录上使用此工作流程的观察者Reader角色的权限,并重新对这些对象进行reindexObjectSecurity,因为可能已创建包含其内容的观察者。

    • 已删除常量config.MEETING_STATES_ACCEPTING_ITEMS,并替换为MeetingConfig.getMeetingStatesAcceptingItems自适应方法,这避免了monkeypatching问题。

    • 当复制一个已停用的分类/分类器的项时,结果项将没有任何分类,必须首先选择一个分类才能继续工作(第一个项WF转换将不可执行)。向MeetingItem.getCategory添加参数‘real=False’以获取存储的分类,忽略基于MeetingConfig.useGroupsAsCategories的category/proposingGroup的魔术。

    • 当显示‘用户组’tooltipster(当悬停在‘用户’黑色图标上时),向管理员显示指向‘用户和组’配置中Plone组的链接。

    • 添加了参数MeetingConfig.meetingManagerMayCorrectClosedMeeting,默认值为False,如果启用,会议管理员将能够更正已关闭的会议。此外,如果此参数保持为False,现在当会议关闭时,将向会议管理员显示一个无法触发的转换,解释为什么它无法触发。这是为了避免会议永远无法关闭,并避免会议管理员用户将应用程序用作管理员。

    • 将MeetingItem.preferredMeeting enforceVocabulary设置为True,因此如果同时删除选为首选的会议,则无法保存项。

    • 在从模板创建项时保留字段(‘inAndOutMoves’,‘notes’,‘internalNotes’)。

    • 向ToolPloneMeeting.get_orgs_for_user添加了参数‘the_objects=True’,以便能够获取组织对象或uids。

    • 调整了‘新项/建议/附件/…’等图标以使用灰色颜色,使其适用于每个主题。

    • 调整了邮件通知,使其在只发送给一个用户时发送给用户组:现在发送给项作者的邮件现在发送给整个提议组创建者,发送给建议作者的邮件现在发送给整个顾问组。

    • 添加了仅对(会议)管理员显示的portal标签“联系人”。

    4.1b16(2019-01-31)

    • 迁移到Plone 4.3.18

    • 将imio.history.utils在POD模板下以imio_history_utils的名称可用,例如用于访问getLastWFAction。

    • 向ToolPloneMeeting.configGroups的DataGridField添加了“full_label”列,因此可以输入将在必要时使用的完整标签,例如在生成的POD文档中。

    • 覆盖MeetingConfig.getConfigGroup以管理参数‘full’,如果为True,它将返回包含‘row_id’,‘label’和‘full_label’的完整配置组信息。

    • 在POD模板中添加了print_in_and_out方法,可轻松打印与会者的进出移动。它基于MeetingItem.getItemInAndOutAttendees,后者返回有关进出移动的信息,如‘left_before’,‘entered_before’,‘left_after’和‘entered_after’。

    • 添加了基于插入方法重新计算整个会议项数量以使用@@reorder-items视图的能力。

    • 使用collective.quickupload能够同时上传多个附件。

    • MeetingConfig.custom_validate_workflowAdaptations现在接收值,添加和删除作为参数。

    • 附件现在按字母顺序排序。

    • 在held_position上显示其用途(MeetingConfig.orderedContacts,Meeting.orderedContacts),以简化重复项的管理。

    • 如果选定了正确的held_position.position_type,则将held_position.label设为可选。

    • 根据性别、数字和首字母管理held_position标签/position_type的前缀(Administrateur –> L’Administrateur, Directrice –> La Directrice)

    • 添加了JenkinsFile

    4.1b15 (2019-01-14)

    • 修复了动作面板有时不会出现在会议底部的问题。这是因为指向包含Plone站点ID的会议的链接错误,因为通过brain.getObject获取的obj不总是有正确的REQUEST

    • 添加了utils.get_public_url方法,该方法返回对象的URL,同时考虑PUBLIC_URL环境变量

    • 修复了由Zope时钟服务器发送的电子邮件中对象的链接错误,因为没有可用的REQUEST,在这种情况下我们使用PUBLIC_URL环境变量来获得对象的正确URL

    • 当theObjects=True且当前用户不是(Meeting)Manager时,从Meeting.getItems中删除了raise Unauthorized,因为现在项是通过目录查询获取的,该查询将始终返回用户可以访问的项

    • 通过缓存项insert_order值优化了会议中的项插入,这样耗时操作只进行一次或当缓存失效时(默认情况下,如果组顺序、类别或MeetingConfig的相关值已更改,则会失效)

    • 扩展了@@display-inserting-methods-helper-msg中显示的信息,以显示所选插入方法的所有相关信息,包括有序组和有序类别

    • 将utils.getLastEvent移动到imio.history.utils.getLastWFAction

    • 添加了MeetingConfig.update_cfgs辅助函数,以便可以轻松地将MeetingConfig上定义的参数传播到多个其他MeetingConfig。当使用相同的参数值配置大量MeetingConfig时,这很有用

    4.1b14 (2018-12-18)

    • 添加了MeetingConfig.usingGroups参数,该参数添加了将MeetingConfig访问权限限制到所选组的可能性

    • 添加了MeetingItem.textCheckList字段,可在项目模板中使用,以便Manager可以定义项目被认为是“完整”所必需的内容

    • 在MeetingConfig视图中显示联系人时突出显示person_label和held_position_label

    • 删除了无用的MeetingConfig.defaultMeetingItemMotivation字段,改用项目模板来管理它,此外,它不是很相关,因为项目动机从项目目的变为项目目的

    • 重新排序MeetingConfig默认字段(出现在第一个选项卡中的字段)

    • 删除了PMInAndOutWidget并将其替换为MeetingConfig的at_utils.translate覆盖,值按行显示,而不是用逗号分隔的同一行

    • 在显示会议的标签化仪表板上添加“日期”日期范围过滤器

    • 在导入数据时添加了将disabled_collections列表传递给MeetingConfigDescriptor的可能性

    • 在用户/组控制面板概述中隐藏所有可选择的角色,因为这可能导致不良行为,所有角色都通过组授予用户

    • 如果ToolPloneMeeting.userIsAmong 'suffixes'参数不是元组/列表,则在日志中显示警告

    • 添加了在列出会议的仪表板上显示静态信息的可能性,就像在列出项目的仪表板上显示信息一样

    4.1b13 (2018-12-04)

    • 在/contacts仪表板中显示的版块上显示“添加联系人”操作

    • 删除了MeetingCategory.getName,这是将真实MeetingCategory和proposingGroup分离的一步

    4.1b12 (2018-12-04)

    • 用collective.contact.core组织替换了MeetingGroup(存储在portal_plonemeeting中),存储在plonegroup-organization中

      (stored in plonegroup-organization)

    • 将MeetingItem.getAdviceDataFor中的参数“ordered”添加为将返回OrderedDict而不是dict,以确保返回的数据遵守配置中定义的组织顺序

    • 使testing.import_data可由子插件重用

    • 使RichText字段的字段集和可用/显示的项目部分可由用户隐藏

    • 添加了使用collective.documentgenerator的styleTemplate的可能性

    • 添加了使用collective.documentgenerator的merge_templates的可能性,这样就可以打印,例如

      使用与打印单个“审议”相同的pod_template的pod_template进行“所有审议”

    • 现在,在定义会议配置或组织的认证签名时,可以选择保留位置。这样,“姓名”和“职能”就来自联系信息。此外,当使用listify=False调用MeetingItem.getCertifiedSignatures时,将返回一个字典(键是签名编号,值是数据),包括保留位置对象,因此可以使用保留位置的其他数据(例如扫描的签名)

    • 添加了像处理缺席一样处理由项目引起的免责的可能性

    • 通过使用.selector:not(*:root)代替@media screen and (-webkit-min-device-pixel-ratio:0),修复了仅Chrome的CSS问题,这在会议视图中用于渲染listType颜色列的100%高度

    • 添加了Meeting.itemGuests字段,使其能够为特定项目定义客人。还通过组装管理弹出窗口定义了多个项目的客人。调整了会议和项目视图,以便可以使用基于联系人的与会者和基于组装的额外字段(代理人、客人等)一起使用

    • MeetingItem.itemAssembly不再是可选字段,因此不再在MeetingConfig.usedItemAttributes中选择,如果MeetingConfig.usedMeetingAttributes中选择了可选字段Meeting.assembly,则将其启用

    • 为CompoundCriterionAdapters添加了准确的缓存,使其仅在用户/组关联更改时进行评估

    • CachedCollectionVocabulary已从imio.dashboard移动到collective.eeafaceted.collectionwidget

    • 在PodTemplateDescriptor上管理is_reusable和pod_template_to_use

    4.1b11(2018-09-11)

    • 根据collective.eeafaceted.collectionwidget的新行为调整了代码,其中默认集合的重定向由facetenavigation_view执行,而不是由widget.default方法执行

    • 使用source_groups._principal_groups.byValue(0)而不是source_groups._principal_groups._p_mtime来检查用户/组映射是否已更改,因为在某些情况下(???),_p_mtime没有更改,依赖存储的值更稳健

    • 在ToolPloneMeeting.getPloneGroupsForUser中,不要从REQUEST['AUTHENTICATED_USER']中获取用户,因为在某些边缘情况,如使用api.env.adopt_user时,存储在该处的值不总是当前用户。系统性地使用api.user.get_current来获取当前用户

    • 移动到eeafacetednavigation 10+,依赖于collective.eeafaceted.dashboard

    • 整合了collective.contact.core和collective.contact.plonegroup来管理组装和签署人中的联系信息

    • 依赖于collective.js.tablednd来管理会议上的联系组装

    • Meeting.getItems的useCatalog=False参数已替换为theObjects=True。该方法已重构,始终使用目录查询来获取项目并返回对象(如果useObject=True)。这样,我们可以在两种情况下都使用参数'additional_catalog_query'。

    • 使用‘isort’对遵循Plone建议的每个导入进行排序

    • 添加了打印方法'print_attendees'和'print_attendees_by_type',以便在使用联系人时打印与会者

    • 将MeetingItem.description更改为可选字段

    • 将MeetingConfig.manage_beforeDelete移动到events.onConfigWillBeRemoved。此外,当删除MeetingConfig时,请确保它未在其他MeetingConfig中使用(MeetingConfig.meetingConfigsToCloneTo和附件类型的other_mc_correspondences字段以及其他MeetingConfig附件类型的附件类型)

    • 当从会议中删除项目时,确保与组装和签名(或使用联系人时的与会者和签署人)相关的字段被清空

    • 在MeetingItem.getPrettyLink中,考虑isPrivacyViewable

    • 使用我们自己的JS jQuery可折叠管理,而不是Plone的

    • 在@@object_goto视图中,注意不要将用户发送到他无权访问的项目,因为MeetingItem.isPrivacyViewable。如果下一个/上一个/第一个/最后一个项目不可访问,则用户将被重定向到最近的可访问项目

    • 当在会议上更改项目顺序时,向Zope日志添加一行(使用collective.fingerpointing log_info方法)

    • 覆盖MeetingConfig.Title方法以处理“include_config_group=False”参数,使在显示MeetingConfig标题时,可以更容易地添加配置组(如果有的话)

    • 使用FontAwesome作为portlet PM头部图标

    • 将MeetingConfig.groupsShownInDashboardFilter移动到MeetingConfig.groupsHiddenInDashboardFilter

    • 添加了可调整的方法MeetingItem.getListTypeNormalValue,以便为not isLate项的listType指定除“normal”之外的其他值。这样就可以管理正常项目的不同值

    • 添加了删除继承建议的可能性。只要项目可编辑,MeetingManagers就可以做到这一点,或者在项目处于可以删除建议的审核状态时,原始建议的顾问可以做到这一点

    • 修复了继承建议的indexAdvisers中的错误,以索引原始建议数据,因为继承建议的数据不完整

    • 在MeetingItem.getAdviceDataFor中添加了参数“hide_advices_under_redaction=True”和“show_hidden_advice_data_to_group_advisers”,以调整“type”、“type_translated”和“comment”,如果建议是“hidden_during_redaction”或“considered_not_given_hidden_during_redaction”。默认情况下,数据对除给出建议的小组成员之外的每个人都隐藏

    • MeetingItem.getAdviceDataFor返回的数据现在包括“creator_id”和“creator_fullname”

    • 在建议弹出窗口的帮助图标上显示建议可添加状态信息

    • 修复了具有延迟的建议中“delay_when_stopped”值的一天误差,延迟时间比预期长一天

    • 添加了MeetingConfig.usersHiddenInDashboardFilter字段,该字段可用于显示创建者之类的分面过滤器,如“创建者”过滤器或“接管者”过滤器

    • 将“tool”和“cfg”添加到可在DashboardPODTemplate tal_condition字段中使用的变量列表中,就像ConfigurablePODTemplate一样

    • 仅在建议未给出(not_given、asked_again或hidden_during_redaction)时发送延迟到期/已到期的邮件通知

    4.1b10 (2018-05-22)

    • 从actions_panel __call__ cachekey中删除了对“member.getRoles()”的检查

    • 添加了迁移步骤以确保附件mimetype正确

    • 修复了建议信息弹出窗口中的错误,显示的作者为项目创建者而不是建议创建者

    • 删除了MeetingConfig.getMeetingsAcceptingItemsAdditionalManagerStates,使用config.MEETING_STATES_ACCEPTING_ITEMS来了解会议可以在哪些状态下接受项目。还使用config.MEETING_STATES_ACCEPTING_ITEMS代替Meeting.acceptItemsStates,因为它已被删除

    • 删除了config.MEETING_NOT_CLOSED_STATES常量,因为它在我们有Meeting.getBeforeFrozenStates方法后已不再有用。还优化了Meeting._availableItemsQuery,以仅在必要时计算meetingUids

    • 确保ToolPloneMeeting.pasteItems不会将workflow_history从PersistentMapping更改为dict,否则imio.actionspanel将无法在引发异常时中止对项目审核状态发生的更改

    • 将Meeting.getBeforeFrozenStates替换为Meeting.getStatesBefore(‘frozen’),因为我们需要相同的函数来获取在‘published’状态之前的状态Meeting.getStatesBefore(‘published’), 以保护MeetingItemWorkflowConditions.mayPublish

    4.1b9 (2018-05-09)

    • 使与用户组相关的缓存时间比REQUEST长。我们使用source_groups._principal_groups._p_mtime来检查用户组是否已更改以使缓存无效。现在,只要某些用户组配置未更改,getPloneGroupsForUser、getGroupsForUser、userIsAmong、isManager和isPowerObserverForCfg方法都将被缓存

    • 将建议列的宽度与其他常见列相同,以便“添加建议”图标与“未给出建议”图标在同一行显示

    4.1b8 (2018-05-04)

    • 当附件被修改时,更新父项(项目、会议或建议)的修改日期,就像添加新附件或删除附件时的情况一样

    • 添加了可调整的方法MeetingItem.showObservations,用于MeetingItem.observations字段的widget条件

    • 将PMDocumentGenerationHelperView(ATDocumentGenerationHelperView)分解为BaseDGHV(object),以便我们可以用于dexterity内容类型。项目、会议和文件夹助手视图现在继承自BaseDGHV + ATDocumentGenerationHelperView,而会议建议助手视图继承自BaseDGHV + DXDocumentGenerationHelperView

    • 修复了CKeditor中在最大化包含非常长文本的CKeditor时工具栏丢失的问题

    • 在CKeditor编辑的内容中,将表格下的外边距强制设置为0em,因为appy.pod会这样渲染(在LibreOffice中,默认情况下,上下相邻的2个表格会粘在一起)

    • 将getProposingGroup索引添加到在集合上可选择的plone.app.querystring字段

    • 确保在项目仪表板上显示的会议链接在当前用户可能看不到会议时不可用

    • 如果MeetingConfig位于configGroup中,将链接的Plone组(powerobservers、meetingmanagers等)的标题与configGroup的标题连接在一起,这在使用具有相同标题但不同configGroup的多个MC时非常有用

    • 添加了工作流适配器“accepted_out_of_meeting”,这使得接受“已验证”但尚未链接到会议的项目成为可能。提供了不同的变体:是否有紧急情况以及是否复制项目以及是否验证生成的项目

    • 修复了Meeting.getBeforeFrozenStates中的错误,该错误总是返回不同MeetingConfig的不同会议的相同值,这可能导致不一致

    • 当悬停在建议图标上时,异步加载建议信息

    • 使用ToolPloneMeeting.getPloneGroupsForUser来获取member.getGroups,因为它被缓存,所以只调用一次getGroups。仍然需要改进它,以便在用户组更改时才失效

    • 重构了plonemeetingpopups.js覆盖和tootipster相关的JS,以删除无用的调用(imio.actionspanel过渡),并尝试只在必要时调用相关的JS

    • MeetingItem.clone获取了一个新的参数“copyDecisionAnnexes=False”。现在在项目被复制时不再保留决策附件,唯一可配置的功能性是在MeetingConfig.contentsKeptOnSentToOtherMC中,您可以定义当项目被发送到另一个MeetingConfig时保留哪些内容:附件、决策附件和建议。此外,MeetingConfig.contentsKeptOnSentToOtherMC参数替换了MeetingConfig.keepAdvicesOnSentToOtherMC参数

    • 在MeetingItem.setManuallyLinkedItems中,通过手动设置_p_changed=True来确保更改被持久化,尤其是在设置引用的其他对象上,因为Products.Archetypes的bug不会使at_ordered_refs字典中的更改持久化(https://github.com/plone/Products.Archetypes/issues/104

    • 将MeetingItem.getGroupInCharge转换为可适配的方法,以便在必要时可以覆盖它

    4.1b7(2018-03-19)

    • 重构了meetingitem_view以使用@@display-annexes来显示附件和决策附件。仅在相关时显示“更多信息”链接,因此当没有定义附件且“更多信息”链接已出现在现有的附件弹出窗口中时

    • 确保特殊non_selectable_value_值在MeetingItem.optionalAdvisers中不可选择。使用JS覆盖这些输入值的onClick事件

    • 修复了MeetingConfig.updateAnnexConfidentiality中的错误,该错误将默认机密性应用于应用程序中的每个建议,而不仅仅是当前更新的MeetingConfig相关的建议

    • 将reindexIndexes方法添加到PM Migrator中,以便可以轻松重新索引一些portal_catalog索引

    • 恢复了getConfigId索引,以便可以查询portal_catalog以获取MeetingConfig ID

    • 在meeting_view仪表板上隐藏非MeetingManagers的批量操作

    • 添加了新的常量config.ITEM_STATES_NOT_LINKED_TO_MEETING,用于定义项目未提交给会议时的项目状态。这被MeetingItem.wfActions.doCorrect使用,以确定何时需要从会议中删除项目

    • 增加了工作流程的适配,用于移除会议中的项目并将其发送回之前的验证状态:'将项目发送回创建状态','将项目发送回预验证状态','将项目发送回提议状态'

    • 增加了可适应的方法 MeetingItem._getAllGroupsManagingItem,它返回管理项目的所有组,该方法是 PMCategorizedObjectInfoAdapter._item_visible_for_groups 在向提议组提供机密附件时使用的

    • 增加了属性 MeetingConfig.hideHistoryTo,使隐藏历史链接在(受限)观察者可见的所有元素上成为可能

    4.1b6(2018-03-07)

    • 覆盖词汇 'collective.documentgenerator.ExistingPODTemplate',以便在术语中包含 MeetingConfig 标题

    • 适配 ToolPloneMeeting.getGroupedConfigs,使其不返回 MeetingConfig 对象,因为该方法是通过 ram.cached 的,返回对象会导致对象丢失获取问题

    • 确保访问 meetingitem_view 不会因当前用户没有“PloneMeeting: 读取预算信息”权限而引发未经授权的异常

    4.1b5(2018-02-23)

    • 在 workflow_state 视图小部件中,翻译 review_state 标题而不是 review_state id,这样我们可以在不同的工作流中对相同的 state id 有不同的翻译

    • 增加了仪表板列 'review_state_title',它显示翻译后的 review_state '标题',而不是默认的 'review_state' 列,该列显示翻译后的 review_state 'ID'

    • 在 MeetingConfig.mailItemEvents 和 MeetingConfig.mailMeetingEvents 中明确指定“WF 转换”事件的标题,表明它是“WF 转换”相关事件,因为它可能与特定的邮件事件类似

    • 使用 MeetingItem 预算相关的 JS 在视图和编辑中轻松隐藏/显示多个额外字段

    • 增加了在配置中将 MeetingConfigs 分组在一起的可能性。这将在网站页眉中生成下拉菜单,而不是显示并排放置的 MeetingConfigs。当管理多个 MeetingConfigs 或按上下文分组 MeetingConfigs 时非常有用

    • 现在生成 portal_tabs 以访问活动 MeetingConfigs,我们不再在 portal_tabs 中添加操作。生成的选项卡被插入到 'index_html' 选项卡和其他自定义选项卡之间

    • 在 portlet_plonemeeting 页眉中显示当前 MeetingConfig 的标题,而不是简短的术语 '管理',这样就能回忆起我们所在的位置。当使用配置组时这是必要的

    • 添加了 MeetingConfig.itemFieldsToKeepConfigSortingFor 字段,在所选的项字段(提议组或类别)中,将使项目上显示的词汇表保持从配置中术语的位置,而不是默认行为,即按字母顺序对词汇表进行排序

    • 确保我们不会多次通知相同的电子邮件地址。此外,如果收件人没有全名,则使用用户 ID 来构建收件人字符串“user_id <email@test.org>”

    • 添加了 'highlight-blue' 和 'highlight-green' 样式,这些样式可用于 CKeditor

    4.1b4(2018-01-31)

    • 通过使用 utils.get_annexes 简化了 SearchableText 索引器,因为附件标题被索引

    • 在项上添加了 '标签',这依赖于 ftw.labels 的集成

    • 添加了 MeetingItem._getGroupManagingItem 方法,它返回在给定 review_state 时管理项目的组。这使得可以指定除了提议组之外的组管理项目。例如,对于一些步骤的 WF,它可以返回提议组,而对于特定步骤则返回另一个组

    • 在 BaseItemsToValidateOfHighestHierarchicLevelAdapter 中使用 'reviewProcessInfo' 索引而不是 getProposingGroup/review_state 来搜索要验证的项

    • config.MEETINGREVIEWERS 格式已更改以适应复杂情况:现在值由项目工作流程定义,在工作流中,值是 review_states 的列表而不是单个 review_state,因此可以将相同的审阅者级别与多个 review_states 关联,对于复杂的 WF,在验证过程中,相同的审阅者级别在不同的 review_states 中参与。MEETINGREVIEWERS 不再直接访问,而是通过 utils.reviewerFor(workflow_id) 方法访问

    4.1b3(2018-01-23)

    • 控制面板中显示的appy和Products.PloneMeeting版本来自发行版(setup.py),不再来自portal_setup

    • 修复了ConfigurablePODTemplate.store_as_annex,使其能够处理存储在任何接受附件的元素上的附件(除了项目和项目决策附件,还包括建议和会议)

    • 为附件和附件决策启用手动版本控制,以便在将条形码插入附件或重新注入扫描文件到附件时,由imio.zamqp.pm进行版本控制

    • 安装plone.app.versioningbehavior,以确保正确安装portal_modifier的额外修饰符,特别是负责正确管理版本化Dexterity文件的CloneNamedFileBlobs修饰符

    • 在附件仪表板中为管理员显示“历史”操作

    • 将保存版本到portal_repository的代码进行归一化,并在utils.version_object中保留修改日期

    • 对Products.Archetypes.BaseObject.BaseObject.validate进行Monkeypatch,以便将验证错误记录到日志中

    • 将EXTRA_ADVICE_SUFFIXES重命名为EXTRA_GROUP_SUFFIXES,以定义从MeetingGroup创建的Plone组的额外后缀

    • 将MeetingWorkflowActions、MeetingWorkflowConditions、MeetingItemWorkflowConditions和MeetingItemWorkflowActions转换为新的Python类风格

    • 当项目可通过copyGroups可见时,添加电子邮件通知,copyGroups的成员将收到通知

    • 删除了utils.getHistory和Meeting/MeetingItem/meetingadvice.getHistory,现在工作流和数据更改的历史现在由2个分开的imio.history适配器处理

    4.1b2(2017-12-07)

    • 默认情况下,项目工作流中不再有“拒绝”状态,现在有一个默认启用的WFAdaptation“拒绝”,但可以在不需要状态“拒绝”的情况下禁用它

    • 批量操作更改状态(TransitionBatchActionForm)现在仅对在应用程序中具有操作角色的用户可用。因此,例如,它对(受限)powerobservers不可用

    • 添加了“是否有待签署附件?”的标签过滤功能

    4.1b1(2017-12-01)

    • 迁移到Plone 4.3.15

    • 依赖collective.eeafaceted.batchactions

    • 使用collective.iconifiedcategory的“to_sign/signed”功能,该功能可用于附件,并为仪表板添加了相关的高级过滤

    • 添加了过滤仪表板项的功能,这些项具有特定的“无”首选会议和“无”关联会议

    • 添加了将生成的模板直接存储为当前上下文附件的功能。还添加了将特定POD模板存储为会议中每个项目的附件的功能,该模板在MeetingConfig.meetingItemTemplateToStoreAsAnnex中定义。这对于存储例如每个项目的最终决策很有用

    • 添加了MeetingConfig.enableItemDuplication参数,默认值为True,以便可以轻松启用或禁用项目复制功能

    • 修复了MeetingItem.getMeetingToInsertIntoWhenNoCurrentMeetingObject中的错误,在返回的会议可能不是项目可以展示的会议的情况下,该会议仍然可以是冻结的,并且项目不是isLateFor(meeting)。现在isLateFor检查是在MeetingItem.getMeetingToInsertIntoWhenNoCurrentMeetingObject中进行的,而不是在mayPresent方法中

    • 安装imio.helpers以获取helpers.js

    • 仅在视图上显示配置中的操作面板视图小部件,不再在其他如folder_contents上显示

    • 通过MeetingConfig添加了一个组“itemtemplatesmanagers”。该组中的用户将在MeetingConfig(itemtemplates)包含项目模板的文件夹上获得“Manager”角色,并能够管理它

    • 删除了事件日志(元素添加、编辑、删除等),我们现在依赖于包含在imio.actionspanel >= 1.30中的collective.fingerpointing

    • 重构了Meeting.at_post_edit_script和MeetingItem.at_post_edit_script的使用:它不再直接使用,而是使用_update_after_edit,它处理对at_post_edit_script和ObjectModifiedEvent的调用。这样,我们避免了在直接调用at_post_edit_script或通过processForm调用时对事件或重新索引的多次调用

    • 对MeetingItem.getItemClonedToOtherMC使用declarePrivate,因为我们现在使用无限制的搜索查询克隆到另一个MC的项目,因为这个项目可能不可由当前用户查看

    • 确保一个项目永远不会在一个不接受项目的会议中展示(例如一个闭门会议)。这可能是在使用项目视图上的“展示”按钮时,如果闭门会议是项目的首选会议时的情况。由于我们现在在项目上,MeetingItem.getMeetingToInsertIntoWhenNoCurrentMeetingObject 方法不再接收 preferredMeeting 参数。

    • 在用于搜索itemsofmygroups集合的'items-of-my-groups'适配器中,查询也包括已停用的组的项。

    • MeetingConfig.getMeetingsAcceptingItems不再可适配,只有底层方法MeetingConfig.getMeetingsAcceptingItemsAdditionalManagerStates是可适配的。

    • 为MeetingConfig.getMeetingsAcceptingItems添加了缓存,缓存在整个请求期间可用。

    • 将MeetingItem.updateItemReference的条件移动到可适配的MeetingItem._mayUpdateItemReference。

    • 在复制项目时,确保XHTML字段中使用的图片链接已更新,以便指向新项目。此外,在复制时删除所有包含的图片,不再使用的图片将不会被删除,并使用storeImagesLocally检索使用的图片。

    • 将tests/helpers.WF_STATE_NAME_MAPPINGS移动到WF_ITEM_STATE_NAME_MAPPINGS_1/WF_ITEM_STATE_NAME_MAPPINGS_2和WF_MEETING_STATE_NAME_MAPPINGS_1/WF_MEETING_STATE_NAME_MAPPINGS_2,并将WF_TRANSITION_NAME_MAPPINGS移动到WF_ITEM_TRANSITION_NAME_MAPPINGS_1/WF_ITEM_TRANSITION_NAME_MAPPINGS_2和WF_MEETING_TRANSITION_NAME_MAPPINGS_1/WF_MEETING_TRANSITION_NAME_MAPPINGS_2,以便我们可以处理不同的工作流程。

    • 在仪表板的更多信息视图中显示MeetingItem的所有字段,而不仅仅是之前的RichText字段。

    • 由WFAdaptation 'hide_decisions_when_under_writing'添加的状态为'decisions_published'的会议现在将通过MeetingConfig.getMeetingsAcceptingItems返回给MeetingManagers。

    • 确保所有图片链接始终使用resolveuid,尽管有各种数据转换。

    • 在Plone控制面板中显示appy版本。

    • 在meeting_view上“展示的项目”标签旁边添加了关于在此MeetingConfig中使用的插入方法的帮助信息,这让MeetingManagers现在知道如何在会议中插入和排序项目。

    • 以与项目组装辅助表单相同的方式验证Meeting.assembly和MeetingItem.itemAssembly,即确保打开的“[[”正确匹配关闭的“]]”。

    • 通过使用getCategory目录搜索索引来加速MeetingCategory删除预防。我们还避免删除用于项目模板的MeetingCategory。此外,我们在“不能删除”门户消息中显示使用该类别的项目。

    • 如果类别超过40个,则不在MeetingConfig中显示类别,因为这需要太多时间。我们显示一个链接到类别/分类器容器文件夹_contents视图,以管理大量类别。

    • 添加了布尔字段ItemAnnexContentCategory.only_for_meeting_managers(项目附件/附件决策类型),如果设置为True,则附件类型将仅供MeetingManagers选择。

    • 删除了@@decide-several-items视图,我们使用collective.eeafaceted.batchaction过渡动作。

    4.0 (2017-08-04)

    • 移动到Plone 4.3.8。

    • 移动到collective.ckeditor 4.6.0(CKEditor 4.7.2)。

    • 移动到collective.documentviewer 3.0.3。

    • 依赖于beautifulsoup4、Products.CPUtils和collective.messagesviewlet。

    • 消除ArchGenXML,仅用于工作流程生成。

    • 用自己的PODTemplate替换了collective.documentgenerator的ConfigurablePODTemplate,从portal_plonemeeting中删除了appy.pod参数,并使用collective.documentgenerator控制面板。添加了“邮件列表”功能,该功能在collective.documentgenerator中不存在。现在可以使用电子邮件地址和TAL表达式以及userIds来指定要发送生成的文档的人。

    • 将仪表板和会议视图移动到imio.dashboard(有关所需更改,请参阅imio.dashboard包)。

    • MeetingFiles标题现在在items的SearchableText中索引,因此可以在每个仪表板搜索的“搜索”字段中直接搜索附件标题(我的项目、所有项目等)。

    • 将MeetingConfig.searchXXX搜索移动到兼容的搜索适配器collective.compoundcriterion。

    • 在项目上索引meetingUID和meetingDate,以便我们能够添加可排序的“会议”列。

    • 将‘历史’功能(高亮显示、以表格形式显示等)移动到imio.history,并依赖于它。

    • 将项目标题着色和前导图标移动到imio.prettylink,并依赖于它。它还用于着色列“会议”和“首选会议”中显示的会议标题。

    • 将‘getMeetingsAcceptingItems’从MeetingItem移动到MeetingConfig,以便在没有项目存在时调用。这在imio.pm.ws的‘meetingsAcceptingItems’ SOAP调用中使用。

    • 使用MeetingItem.clone方法将重复项目添加到会议中,以便它使用相同的复制字段(克隆时保留的字段)功能和扩展机制。

    • 确保即使在决定之前,会议经理仍然可以编辑项目的itemAssembly和itemSignatures,只要关联的会议没有被认为已关闭。

    • 添加了MeetingItem.manuallyLinkedItems字段,这使得可以将任何其他应用程序项目链接到任何项目。反向链接会自动管理,因此所有链接的项目都会一起链接,并形成一个“虚拟文件夹”。项目将按时间顺序自动排序。还添加了定义用于表示MeetingConfig项目的图标的可能性,这样就可以在项目在多个位置一起显示时区分不同MeetingConfig的项目。

    • 添加了视图“@@pm_utils”,使一些实用工具在各种地方可用,并添加了cropHTML方法,确保裁剪的HTML内容仍然有效。

    • 使用复选框进行多选字段(MeetingItem.optionalAdvisers、MeetingConfig.usedItemAttributes等)的多选,这样就不需要使用“CTRL+Click”来选择多个值。

    • 不要在meetingadvice_workflow guard_expr中调用建议,因为建议可能不可访问,并且可能引发未经授权的访问。相反,将guard_expr逻辑放入guard表达式本身。

    • 如果重新定义了特定MeetingConfig在MeetingGroup上的建议状态,请确保其他MeetingConfig不受影响。如果没有在MeetingGroup上为另一个MeetingConfig定义任何内容,则使用该其他MeetingConfig上定义的值。

    • 将“setCurrentAsPredecessor”参数添加到MeetingItem.clone方法,使其能够指定是否希望当前项目成为新创建的项目的前驱。这正式化了经常做的事情,当在“clone”结束时调用“ItemDuplicatedEvent”时,我们就有必要设置前驱。

    • 将“inheritAdvices”参数添加到MeetingItem.clone方法,这样,如果参数“setCurrentAsPredecessor=True”且“manualLinkToPredecessor=False”,则原始项目上给出的建议将被继承,它显示在新项目上,所有信息实际上都是从原始项目获取的。包括由权力顾问给出的所有建议都将被继承。

    • 添加了MeetingConfig.keepAdvicesOnSentToOtherMC和MeetingConfig.advicesKeptOnSentToOtherMC参数,允许指定是否将发送到另一个MC的项目从原始项目继承。如果只需要保留一些特定建议,则可以在MeetingConfig.advicesKeptOnSentToOtherMC中定义,如果没有定义,则保留所有建议。

    • 在所有PloneMeeting内容类型上隐藏plone.contentactions视图小部件。

    • 在克隆项目时不再保留MeetingItem.observations字段。

    • 添加了图标以选择/取消选择要显示在会议中的可用项目的所有复选框,就像在会议中显示的项目一样。

    • 添加了MeetingConfig.meetingPresentItemWhenNoCurrentMeetingStates属性,用于在获取MeetingItem.getMeetingToInsertIntoWhenNoCurrentMeetingObject时考虑会议状态,这样就可以只考虑处于这些定义状态的可接受项目。

    • 适应工作流程以定义转换时的图标,因为现在可以这样做,并且imio.actionspanel使用此功能获取用于转换的图标。

    • 在MeetingItem.updateAdvices中添加了钩子_itemToAdviceIsViewable、_adviceIsAddable和_adviceIsEditable,以便能够使某些建议以与应用程序中定义的方式不同的方式表现。

    • 在MeetingItem.sendAdviceToGiveMailIfRelevant中,增加了一个可调用的方法_callAdviceToGiveToGroup的调用,使其能够检查是否需要将邮件发送到指定的groupId。这使得在发送“提供建议”通知时可以跳过一些组。

    • 当需要时,给定的建议会自动进行版本控制(触发“give_advice”转换,给出建议后编辑项目,或添加/删除附件后),我们现在依靠plone.app.versioningbehavior来显示历史版本,此外,版本化的建议可以直接在@@historyview弹出窗口中预览。我们确保建议修改日期不被更改,以便我们可以依赖它作为实际建议给出的日期。

    • 增加了多次询问建议的可能性(再次询问),如果它从未被历史化或如果建议自上次历史化以来已修改,则再次进行历史化。再次询问的建议会出现在“给出的建议”搜索中,并在可给出时再次出现在“要给出的建议”搜索中。

    • 将会议视图中的“移动项目到位置号”进行了调整,使其能够将项目移动到确切的位置,而不再是“输入数字之前的位次”。

    • 删除了Meeting.getAllItems,并弃用了Meeting.getItemsInOrder,必须用Meeting.getItems替换它。Meeting.getItems不再接收“late=True/False”参数,因为我们可能有多于“normal/late”的MeetingItem.listType,但现在接收一个默认为空([])的listTypes列表,这意味着它将返回会议中的所有项目。此外,当使用getItems与“useCatalog=True”时,可以提供一个“additional_catalog_query”参数,以便使用任意目录查询过滤会议项目。

    • 添加了MeetingItem.listType属性,用于定义项目是“普通”的还是“晚的”。还添加了将项目插入会议的“on_list_type”插入方法。这些“列表类型”在MeetingConfig中定义,默认列表类型(“普通”和“晚”)不能删除,但可以添加其他类型的列表,并可以更改顺序。此外,MeetingItem.listType可以通过项目或会议视图快速编辑。

    • 更新了项目导航小部件,以便可以移动到下一个可查看的项目,即使它不是会议中的下一个项目。

    • 增加了打印会议的功能,显示已筛选的项目,例如仅“已接受”的项目。

    • 将ToolPloneMeeting.getJavascriptMessages移动到生成‘plonemeeting_javascript_variables.js’的视图。

    • 在建议上添加了图标操作快捷方式,用于在红审时隐藏/显示它。

    • 从ToolPloneMeeting中删除了一些字段:“dateFormat”,“usedColorSystem”,“colorSystemDisabledFor”,“publicUrl”,“deferredNotificationsHandling”和“showItemKeywordsTargets”。将“maxShownFound”移动到MeetingConfig。

    • 删除了“修改时”的颜色化机制,现在唯一启用的颜色系统是“工作流状态”。

    • 删除了utils.spanifyLink。

    • 添加了AdviceAfterAddEvent和AdviceAfterAddEvent事件,以便其他包可以注册订阅者并确保它在PloneMeeting AdviceAdded和AdviceModified事件之后被调用。

    • 添加了ItemAfterTransitionEvent和MeetingAfterTransitionEvent事件,以便其他包可以注册订阅者并确保它在PloneMeeting ItemTransitionEvent和MeetingTransitionEvent事件之后被调用。

    • 为重复的项目(MeetingItemRecurring)和项目模板(MeetingItemTemplate)添加了新的portal_types,这样我们可以删除关于CatalogTool.searchResults和“isDefinedInTool”目录索引的monkey patch。

    • 将基本portal_types Meeting、MeetingItem、MeetingItemTemplate和MeetingItemRecurring的global_allow设置为False。

    • 确保项目模板和重复项目不能使用实时搜索进行搜索。

    • 添加了可调用的方法MeetingItem._itemIsSignedStates,使其能够定义在哪些状态下MeetingItem.itemIsSigned字段可以被更改,默认情况下是在项目被决定时。

    • 将 'cleanRamCacheFor' 和 'cleanVocabularyCacheFor' 从 ToolPloneMeeting 移动到 imio.helpers

    • 由于我们现在使用相关包的新版本,其中已集成该功能,因此删除了 DataGridField CheckBoxColumn 和 MultiSelectColumn 的覆盖

    • 添加了在建议上生成 PodTemplate 的可能性

    • 启用了 CKEditor 字段的卸载保护,这样如果对富文本字段进行了更改,就会显示警告消息以警告用户。快速编辑字段(项目和会议视图中的富文本字段)也受到保护

    • 使 MeetingItem.detailedDescription 可搜索

    • 添加了在会议项目上使用子编号的可能性,这样就可以使用 1、1.1、1.2、…… 对会议项目进行编号,这样我们可以管理“没有编号”的项目

    • 重新定义项目组装/请假/缺席时,显示每个字段在会议上的存储内容,此外,该字段的默认值现在是重新定义的值或会议上的值,因此用户无需复制/粘贴会议的值即可更改它

    • 在项目和会议视图中显示“美化链接”而不是标题,这样我们就有了丰富信息,并且与仪表板上的渲染相同

    • 添加了 MeetingItem.otherMeetingConfigsClonableToEmergency 字段,这样当项目被发送到另一个会议配置,并且配置中指定发送的项目必须自动在下一个可用的会议中呈现时,如果指定了紧急情况,则发送的项目也将呈现在一个不再处于“创建”状态的会议中。还添加了相关的引导图标,以显示带有紧急情况的“要发送”的项目

    • 添加了 MeetingItem.otherMeetingConfigsClonableToPrivacy 字段,允许用户指定发送的项目是否将在目标配置中使用“闭门会议”隐私。还添加了相关的引导图标,以显示在其他 MC 中创建的项目将使用哪种隐私

    • 显示关于 otherMeetingConfigsClonable 的所有信息:其他配置标题、选定的隐私和紧急情况以及理论/实际会议日期,其中项目将呈现或已呈现

    • 添加了手动将项目克隆到另一个配置的可能性。现在可以定义项目可能手动发送的状态以及项目将自动发送的状态。请注意,当手动克隆项目时,除非用户是 MeetingManager,否则不会触发在新项目上触发转换。如果自动发送项目,在这种情况下,将触发结果项目的转换,而不管当前用户的角色如何

    • 添加了“发送自”引导图标,该图标显示在项目上,如果它是来自另一个配置的另一个项目的结果。这样我们就有引导图标在原始项目上,包含关于结果项目的信息,以及在结果项目上,包含关于原始项目的信息

    • 删除了“发送到其他配置”功能周围的复杂性,它旨在在使用项目发送到不同的其他配置时使用不同的图标,但现在我们使用每个情况中相同的图标。这避免了为每种情况添加图标:config1 到 config2、config2 到 config1、config1 到 config3、……

    • 添加了适应方法 MeetingItem._isViewableByPowerObservers,它使得可以在 MeetingConfig.item(Restricted)PowerObserversStates 检查之外细化(受限)权力观察员对项目的访问

    • 对于工作流适应性“return_to_proposing_group”,现在 RETURN_TO_PROPOSING_GROUP_CUSTOM_PERMISSIONS 中定义的自定义工作流权限由项目工作流定义,因此可以为不同的项目工作流使用不同的值。同样,RETURN_TO_PROPOSING_GROUP_STATE_TO_CLONE 也由项目工作流定义,state_to_clone 可以来自另一个现有的项目工作流,而不一定是应用工作流适应性的工作流

    • 添加了新的富文本字段 'Meeting.inAndOutMoves/MeetingItem.inAndOutMoves',以便能够专门编码项目或会议上的进出场成员移动。默认情况下,这些字段只能由 MeetingManagers 编辑/查看

    • 新增了新的富文本字段‘Meeting.notes/MeetingItem.notes’,以便在文档生成(例如)项目或会议时专门编码笔记。默认情况下,这些字段只能由MeetingManagers编辑和查看。

    • 新增了新的富文本字段‘Meeting.committeeObservations’,用于编码关于委员会的观察。

    • 新增了新的富文本字段‘Meeting.publicMeetingObservations’,用于编码关于公开会议的观察。

    • 新增了新的富文本字段‘Meeting.secretMeetingObservations’,用于编码关于秘密会议的观察。

    • 新增了新的富文本字段‘MeetingItem.internalNotes’,仅限于提案组的成员编辑和查看,以便在项目上留下内部笔记。

    • 当编辑MeetingConfig时,将使所有缓存失效,因此更改参数将使actions_panel、faceted filters vocabularies等缓存的缓存失效。

    • 重构了在项目和会议中更新localRoles的方式,不再管理各种情况,而是通过一个单独的updateLocalRoles调用更新所有相关的localRoles,每次更新(copyGroups、powerObservers、advices等)。这样,我们添加了MeetingLocalRolesUpdatedEvent和ItemLocalRolesUpdatedEvent,插件可以订阅这些事件以适应所需的localRoles。不要直接调用MeetingItem._updateAdvices,它现在是MeetingItem.updateLocalRoles的子方法。

    • 为ToolPloneMeeting.userIsAmong添加了缓存。

    • ToolPloneMeeting.getGroupsForUser参数的’suffix’现在改为’suffixes’,并接收一个要考虑的后缀列表,以获取用户所在的MeetingGroups。

    • 为“搜索活跃项目”添加了集合,返回所有应被视为“活跃”的项目,即工作流尚未完成的项目。默认情况下,它显示不在MeetingConfig.itemDecidedStates中的项目。

    • 添加了参数MeetingConfig.historizeItemDataWhenAdviceIsGiven,默认为True,这将记录相关项目数据(标题和启用的富文本字段),当触发“give_advice”建议过渡时,这样我们就可以在项目内容更改的情况下知道建议给出时项目的状态。

    • MeetingItem.getAdviceDataFor现在在键‘given_advice’中返回实际的给定meetingadvice对象,如果已经给出,如果没有给出,则此键包含None。

    • 将参数MeetingConfig.enableAnnexToPrint更改为具有3种可能性:“禁用”、“仅信息启用”,在这种情况下,附件设置为“打印”以供信息使用,不转换为可打印格式,并且这些附件需要手动打印,最后一个是“自动打印”,在这种情况下,“打印”附件将转换为可打印格式,以插入生成的Pod模板。还添加了一个方面过滤器“annexes to print?”以过滤具有打印附件的项目。此外,还向传递给Pod模板的视图中添加了“imageOrientation”方法,以管理要打印的附件中插入图像的方向。

    • 修复了在将项目发送到另一个MC时的问题,事件的‘time’是最后事件的‘time’,如果结果项目被删除,则项目会再次发送,它使用了错误的‘time’,现在它使用正确当前时间。

    • 使用plone.api.env.adopt_user和plone.api.env.adopt_roles代替getSecurityManager/setSecurityManager。

    • 直接在建议图标中显示下一个“时间限制”,用户不需要点击不同的图标(未给出、再次请求、隐藏)来了解下一个“时间限制”。如果当前用户是建议的顾问,则图标颜色为蓝色,否则为灰色。此外,为了避免在仪表板中丢失太多空间,建议图标现在在仪表板中垂直显示,同时在项目视图中水平显示。

    • 重构了处理自动复制组的方式:现在每次更改都会进行评估,并且与手动选择的复制组分开存储,这样可以根据给定的表达式自动添加或删除复制组。自动添加的复制组在项目视图中会显示带有标签[自动]。此外,与之前不同,返回的后缀不必一定在MeetingConfig.selectableCopyGroups中,它可以是一个其他后缀

    • 增加了强制一个项目在冻结会议中的正常项目之间展示的可能性:当会议被冻结时,在会议视图中可用项目下方添加了一个复选框,勾选此框将强制展示的项目作为正常项目插入

    • 移除了必须包含项目才能冻结会议的条件,现在即使不包含项目,会议也可以被冻结

    • 在Migrator上添加了“updateHolidays”方法,以便轻松更新假日。现在假日将更新到下两年,以避免假日更新过晚的问题。添加了集体.messagesviewlet警告信息,如果最后定义的假日少于60天,将显示给MeetingManagers

    • 添加了MeetingConfig.keepAccessToItemWhenAdviceIsGiven参数,如果设置为True,则已给出建议的项目顾问将保留对项目的读取权限,无论项目之后的设置状态如何。MeetingGroup.keepAccessToItemWhenAdviceIsGiven也有效,因此对于给定的MeetingGroup,可以覆盖meetingConfig的值

    • 重新工作了在会议项目编辑表单中显示的MeetingItem.budgetRelated/MeetingItem.budgetInfos字段,字段显示方式与其他字段相同,MeetingItem.budgetRelated现在使用并尊重“PloneMeeting: 读取预算信息”和“PloneMeeting: 写入预算信息”权限,而隐藏/显示javascript已移动到plonemeeting.js

    • 历史记录(completeness_changes_history、emergency_changes_history和adviceIndex['delay_changes_history'])中存储的“comment”现在存储在“comments”键中而不是“comment”,因此其行为与其他历史记录(工作流、版本控制)类似

    • 包含处于“返回到提案组”状态的项目的会议现在不能再关闭

    • 添加了布尔字段Meeting.extraordinarySession,当需要时可用

    • 启用了会议的导航图标,就像项目一样,添加了Meeting.extraordinarySession图标

    • 当由插件覆盖时简化了测试基础设施,因此插件不需要调用现有测试

    • 当使用WF适应“hide_decisions_when_under_writing”时,不仅向MeetingManagers显示决定,还向所有能编辑项目的人员显示,这样,与WF适应“return_to_proposing_group”一起使用,决定可由将更正项目的人员查看。此外,确保当项目不再可编辑时,决定对MeetingManagers也是可见的,例如当项目是“接受”状态时

    • 当复制项目时,确保MeetingItem.otherMeetingConfigsClonableTo、MeetingItem.copyGroups和MeetingItem.optionalAdvisers字段保留的值仍然有效,因为配置可能自原始项目创建以来已更改

    • 添加了使用相同工作流为几个MeetingConfigs生成的项目/会议portal_types的可能性。我们复制选定的项目/会议工作流,因此WFAdaptations在单独的工作流上应用,而原始工作流保持清洁以供其他MeetingConfigs使用。添加了ToolPloneMeeting.performCustomWFAdaptations来管理自定义WFAdaptations,而不是monkeypatching adaptations.performWorkflowAdaptations。现在WFAdaptations在工作流保存时应用,无需重新安装包

    • 添加了MeetingItem._adviceDelayIsTimedOut方法,如果给定的groupId建议延迟已超时,则返回True

    • 当编辑MeetingGroup时,现在将重新创建与MeetingGroup相关联并被删除的Plone组

    • 每当项目被编辑时,项目ID现在都会重新计算,只要项目处于其初始状态(WF),这样就避免了在复制其他项目或从模板创建项目(其中项目ID最终可能是像copy34_of_my_sample_template这样的内容)时出现不一致的项目ID

    • 在使用项目视图或仪表板上显示的“呈现”动作呈现项目时,考虑项目首选会议来找出应在哪个会议中呈现项目。首先在首选会议中,如果它仍然是MeetingConfig.meetingPresentItemWhenNoCurrentMeetingStates中的会议AcceptingItems,或者在未来的第一个会议AcceptingItems中(仍然在MeetingConfig.meetingPresentItemWhenNoCurrentMeetingStates中)

    • 会议链接的显示颜色取决于其review_state,无论在哪里显示

    • 增加了在MeetingGroup上仅重新定义部分已认证签名的可能性,这样我们仍然可以使用例如来自MeetingConfig的签名1,而只重新定义MeetingGroup上的签名2。此外,在MeetingItem.getCertifiedSignatures和MeetingGroup.getCertifiedSignatures中,现在有一个新的参数“from_group_in_charge=False”,当设置为True时,将考虑第一个定义的MeetingGroup.groupInCharge的已认证签名

    • 从模板创建项目时,如果第一次编辑被取消,则将其删除

    • 在删除MeetingConfig时,请确保删除每个创建的组(会议经理、权力观察员等)

    • 在编辑项目时,在“首选会议”列表框中,显示会议的review_state在会议日期旁边,以便用户了解他们选择的会议的review_state。这有助于了解会议是否处于冻结状态

    • 增加了在仪表板中@@item-more-infos视图显示的字段上定义自定义渲染器的可能性。默认情况下使用小部件渲染器,但在必要时,可以覆盖_RendererForField方法以返回要用于渲染字段的view_name。此外,现在@@item-more-infos上方显示的静态信息现在在单独的视图@@item-static-infos中,这使得覆盖变得容易

    • MeetingConfig.transitionsReinitializingDelays现在是多值,因此可以定义多个将重新初始化建议延迟的转换,并且现在可以选择所有转换,而不仅仅是“返回”转换

    • 使portlet_todo与仪表板同步,以便在仪表板上触发操作时刷新小部件

    • 添加了MeetingConfig.keepOriginalToPrintOfClonedItems字段(默认值为True),如果为True,则从原始项目保留复制品附件的“toPrint”信息,如果为False,则使用MeetingConfig.annexToPrintDefault设置新项目附件的“toPrint”信息

    • 删除了权限“PloneMeeting: 写项目观察结果”并使用通用权限“PloneMeeting: 写项目MeetingManager保留字段”,该权限现在用于保护项目中应只能由MeetingManagers编写的所有字段,这是MeetingItem.inAndOutMoves、MeetingItem.notes和MeetingItem.observations字段的情况

    • 为MeetingGroup.certifiedSignatures和MeetingConfig.certifiedSignatures字段添加了验证器,它负责:-按签名编号对签名进行排序;-如果提供了日期(date_from和date_to),则两者都提供,并遵守正确的格式;-两行不使用相同的‘number/datefrom/dateto’

    • 增加了在会议、项目和建议的RichText字段中使用图像的可能性,将“图像”按钮添加到CKeditor工具栏中,将会议转换为容器以便存储图像(MeetingItem和meetingadvice已经是容器),如果使用外部图像,则自动下载并本地存储

    • 为给定的MeetingConfig的“检查Pod模板”添加了操作。此操作可以从MeetingConfig[默认]选项卡触发,并且特别为迁移过程中的经理创建

    • 增加了名为‘printXhtml’的方法,在视图的printXhtml中可用,以便以某些选项打印xhtmlContent:- 参数‘xhtmlContents’可能是一个xhtml片段,也可能是一系列xhtml片段(例如MeetingItem.motivation + Meeting.decision),并且可能包含任意xhtml片段(例如‘<p>DECIDE :</p>’)。它还可以包含一个特殊词‘space’,它将插入一个像在参数‘separatorValue’中定义的空格,默认为‘<p>&nbsp;</p>’;- 参数‘image_src_to_paths’将<img> src转换为文件系统上的.blob的绝对路径;- 参数‘keepWithNext’和‘keepWithNextNumberOfChars’用于管理在生成Pod模板时是否粘附到下一段;- 参数‘checkNeedSeparator’默认为True,仅在需要时添加分隔符;- 参数‘addCSSClass’是为了向每个‘paragraph’类的标签添加CSS类。因此,删除了用于连接‘motivation’和‘decision’的Meeting.getDeliberation方法。

    • 增加了CKeditor自定义样式‘indent-firstline’,以便在段落上应用text-index: 40px;

    • 增加了名为_before_reinstall和_after_reinstall的钩子,用于在迁移中在重新安装配置文件之前和之后执行操作。默认情况下,它将保存CKeditor自定义样式(保存在_before_reinstall中,并在_after_reinstall中再次存储)

    • 在应用具有import_data的新配置文件时,请确保portal_plonemeeting上定义的参数未更改,portal_plonemeeting属性仅在第一次设置

    • 删除了MeetingItem.getMeeting的缓存

    • 删除了‘mailFormat’管理,我们现在只使用‘plain’作为邮件格式,不再使用HTML

    • 更改了权力顾问的工作方式:现在它只给权力顾问添加任何可查看和处于可提供咨询状态的项的咨询的机会,但不再给他们‘View’。因此,它需要与其他提供项‘View’的方法一起使用(用户可以通过它是MeetingManager、权力观察员、观察员、复制组等来获得‘View’访问权限)

    • 现在需要在MeetingConfig.selectableAdvisers字段中选择可选择的顾问。这样,可选顾问不再是包含在“顾问”子组中的用户所属的组,而是手动选择的组。这使得可以隐藏为MeetingConfig.customAdvisers目的而存在的组,但不能向其询问可选顾问。如果在此字段中使用,则不能删除MeetingGroup

    • 添加了工作流适应‘waiting_advices’,这使得在顾问确信提议组不能再编辑项的情况下请求咨询的状态成为可能。默认情况下,如果可用,可以从‘itemcreated’、‘proposed’和‘prevalidated’状态到达此状态,并且项可以返回到这些状态,但对于自定义配置,可以生成多个‘waiting_advices’状态并指定来源和返回状态

    • 添加了工作流适应‘reviewers_take_back_validated_item’,使MeetingReviewer角色能够取回处于‘validated’状态的项

    • 现在可以注册多个‘meetingadvice’ portal_types,这样我们可以使用不同的工作流或定义额外的字段。在config.py中添加了常量EXTRA_ADVICE_SUFFIXES,以定义用于使用自定义工作流提供咨询的组的额外后缀

    • Meeting和MeetingItem工作流条件‘mayCorrect’现在接收一个额外的参数‘destinationState’,这在有多个‘back’转换的状态中非常有用,了解我们正在处理哪个转换

    • 将紧急更改评论弹出窗口和咨询延迟更改评论弹出窗口移动到z3c.form,以便能够定义评论现在是必需的。此外,现在除了被请求咨询的组的顾问和MeetingManagers之外,还向提议组的每个成员提供了访问延迟更改历史记录的权限。在之前,提议组成员只有在能够更改延迟时才能看到延迟更改的历史记录,但在之后则不再如此

    • 添加了辅助方法 MeetingItem.getAdviceObj(advId),用于返回给定 p_advId 咨询员 ID 的 'meetingadvice' 对象。如果存在咨询对象,则返回该对象,否则返回 'None'。

    • 在显示的副本组和物品视图中的咨询建议旁边显示“群组用户”图标,以便获取有关所选 Plone 群组中用户的更多信息。这样,我们可以知道哪些用户将具有对物品的阅读权限,以及哪些用户能够给出建议。

    • 如果建议延迟,则在建议弹出窗口中系统显示截止日期。如果在截止日期之前停止延迟,则显示剩余的延迟天数。

    • 添加了方法 MeetingGroup.userPloneGroups,以便获取当前连接用户所在的 MeetingGroup 的 Plone 群组。

    • “复制并保留链接”操作现在生成一个手动链接(MeetingItem.manuallyLinkedItems),而不是自动链接。这样,链接可以被创建者管理,必要时可以删除,并且已链接到原始物品的任何项目也将链接到新复制的项目(虚拟文件夹)。

    • 添加了字段 MeetingGroup.groupsInCharge,以便定义负责其他组的组。当使用时,MeetingItem.proposingGroupWithGroupInCharge 字段可能被启用,以便用户可以选择提议组和相关负责组。添加了将项目插入会议中的 'on_groups_in_charge' 插入方法(MeetingConfig.insertingMethodsOnAddItem),并添加了定义小组组“观察者”将能够访问的项目状态的选项。在仪表板中可以启用带有负责组及其缩写的列和分面过滤器。

    • 在会议中添加了可选字段 Meeting.assemblyGuest、Meeting.assemblyProxies 和 Meeting.assemblyStaves,如果需要可以使用。Meeting.assemblyXXX 字段现在在 meeting_view 中逐个显示,并使用可折叠小部件进行隐藏。可以在 MeetingConfig.assemblyStaves 属性中定义 Meeting.assemblyStaves 的默认值。

    • 当添加/编辑/删除建议时重新索引项目(reindexObject),这样如果某些自定义索引根据建议的值进行管理,则必要时会进行更新。

    • 更改了 MeetingConfig.customAdvisers 'available_on' 值的工作方式。以前,它仅在用户可以实际编辑项目时评估,这是一种限制某些值到某些编辑者配置文件的方法。现在,它还可以用于给非编辑者提供更改建议延迟的可能性,例如,延迟建议的顾问现在可以编辑建议延迟。已添加 'mayEdit' 到表达式中可用的变量,并且如果当前用户可以编辑项目,则 True。

    • 添加了可选字段 Meeting.approvalDate,用于编码当前会议的批准日期。

    • 添加了工作流适应性 'postpone_next_meeting',它添加了一个决定状态 'postponed_next_meeting'(基于已存在的状态 'delayed'),并且还将项目复制,并自动将新项目设置为“已验证”,此外原始项目的建议也将继承。

    • 添加了工作流适应性 'mark_not_applicable',它向项目添加了一个决定状态 'marked_not_applicable'(基于已存在的状态 'delayed')。

    • 添加了工作流适应性 'removed' 和 'removed_and_duplicated',它向项目添加了一个决定状态 'removed'(基于已存在的状态 'delayed')。'removed_and_duplicated' 还将复制“已删除”的项目。

    • 添加了可选的富文本字段 Meeting.authorityNotice。

    • 添加了可选字段 MeetingItem.pollType,它依赖于 MeetingConfig.usedPollTypes 和 MeetingConfig.defaultPollType。还添加了相关的仪表板列和分面过滤器。还可以启用可选字段 MeetingItem.pollTypeObservations,以定义有关所选投票类型的某些观察结果。

    • 在作为个人倡议给出的建议标题之前添加了特定图标。

    • MeetingItem.displayAdvices 现在是 MeetingItem.showAdvices,它是一个可适应性方法,用于控制建议是否在物品视图中显示。

    • 已迁移至imio.annex:在工作流中,将权限“PloneMeeting: 写入决策附件”重命名为“PloneMeeting: 添加决策附件”,并移除了“PloneMeeting: 添加会议文件”和“PloneMeeting: 读取决策附件”权限。现在可以在会议中添加附件,并在仪表板上像项目一样显示。在项目中,现在有一个单独的标签“附件”,用于管理附件和决策附件。此外,附件可以在“附件”标签中重新排序。附件可由能够编辑父项目的用户添加、编辑和删除,而决策附件只能由决策附件的所有者删除。

    • 在定义特定项目集会的表单中添加了对字段“item_assembly”的验证。验证确保开头的“[[”有相应的“]]”。这仅适用于字段“item_assembly”,因为括号未用于其他字段(缺席、请假)。

    • 已移除权限“PloneMeeting: 读取可选顾问”和“PloneMeeting: 写入可选顾问”,可选顾问将由能够编辑会议项目的用户编辑。

    • 添加了MeetingConfig.cssClassesToHide和MeetingConfig.hideCssClassesTo字段,这为不将某些CSS类渲染到(受限)高级观察者配置文件中(除非此配置文件可以编辑项目)提供了可能。

    • 添加了MeetingConfig.hideNotViewableLinkedItemsTo字段,它允许隐藏所选配置文件无法查看的链接项目,而不是显示它并显示警告“您没有访问此元素的权限”。链接项目完全不显示,这同样适用于继承的建议,其中不显示图标“从另一个项目继承的项目”。

    • 添加了可调整的方法MeetingItem.getListTypeLateValue,以便为isLate项目的listType指定不同于“late”的其他值。这样就可以管理晚期项目的不同值。

    • 添加了MeetingConfig.selectablePrivacies字段,以便可以选择用于MeetingItem.privacy的隐私。添加了新的隐私“secret_heading”和“public_heading”作为可选值。MeetingConfig.insertingMethodsOnAddItem中的‘on_privacy’现在使用MeetingConfig.selectablePrivacies中定义的顺序。这使得可以在显示“public”然后“secret”的会议中插入“secret”项目,并具有“secret/public/secret”项目。

    • 当一个项目对顾问可见,但从未给予建议(特别是当工作流不是线性的或配置错误,项目在建议可给予之前对顾问可见时),在项目上应用了自适应方法以指定建议从未给予。

    • 已移除Meeting.i18n和MeetingItem.i18n方法,在Pod模板中使用view.translate,在其他地方使用zope.i18n.translate。

    • 不再定义RichWidget的“rows”属性,这样我们可以使用CKeditor属性“编辑器高度”来定义编辑器高度,并且可以通过CKeditor控制面板中的UI进行更改。

    • 添加了MeetingItem.marginalNotes字段,即使在项目决定和会议关闭后,会议经理也可以编辑。

    • 不再可删除与会议组链接的Plone组,并会显示一条清晰的消息。删除与会议组链接的Plone组的唯一方法是删除会议组,这也会检查它是否在应用程序中使用。

    • 添加了wfAdaptation,它将一个(最后级别)或所有级别的验证添加到“返回到提议组”wfAdaptation中。

    • 添加了在项目仪表板上显示项目引用的功能,此外,Meeting.itemReference现在是一个字段,用于存储项目引用。这避免了每次访问时都计算itemReference,此外MeetingItem.itemReference是可搜索的,并将出现在SearchableText中。

    • 在会议可用项目视图中显示与MeetingItem.privacy相关的背景颜色,就像在会议展示项目视图中一样。

    • 在Meeting.getStrikedAssembly和MeetingItem.getStrikedItemAssembly中使用‘mltAssembly’现在已弃用,并且不再默认执行,而是使用在调用appy.pod xhtml应用于XHTML内容(如‘motivation’或‘decision’)时使用的stylesMapping。尽管如此,仍然可以使用‘use_mltAssembly=True’参数来获取旧行为。

    • 为ToolPloneMeeting.formatMeetingDate添加了参数‘withWeekDayName’,将在日期前显示星期名称,例如“星期二 05月 2015”

    • 如果MeetingGroup被用作另一个的groupInCharge,则无法删除它

    • 在建议、条目和会议中添加了“@@header”视图,用于在不同位置(视图和附件标签尤其)渲染标题

    • 除了MeetingConfig.itemsListVisibleColumns外,还添加了MeetingConfig.availableItemsListVisibleColumns字段,以便能够定义要显示在可用物品表中的列。现在MeetingConfig.itemsListVisibleColumns用于定义要显示在会议中提供的物品表中的列

    • 添加了MeetingConfig.groupsShownInDashboardFilter字段,以便能够选择要在分面仪表板“组”过滤器中显示的值

    • 添加了MeetingConfig.itemWithGivenAdviceIsNotDeletable字段,当设置为True时,包含至少一条给定建议的条目将无法删除,除非由MeetingManagers和Managers删除

    • 如果修改了MeetingConfig,则使Meeting和MeetingItem的actions_panel缓存无效。实际上,它可以添加/删除WF转换或启用/禁用删除图标,例如,当条目包含建议时。这是在ram.cache无效化密钥级别完成的,因为在使用多个ZEO实例时,MeetingConfig.at_post_edit_script中的cleanRamCache调用不足

    • 确保无法从MeetingConfig复制粘贴配置项目(ItemTemplate,RecurringItem),因为项目模板管理配置中的复制/粘贴按钮已启用

    • 当建议延迟即将到期时,添加了电子邮件通知,当建议延迟到期时,也添加了电子邮件通知。将发送电子邮件到特定Plone组成员的代码进行了归一化,并将其用于MeetingItem._sendMailToGroupMembers,在MeetingItem.sendAdviceDelayWarningMailIfRelevant(建议延迟到期/已到期通知)和MeetingItem.sendAdviceToGiveMailIfRelevant(建议通知)中使用了它

    • 已被历史记录一次(要求再次或真正提供)的建议不再可以删除,除非由真正的管理者删除

    • 修复了index previous_review_state的错误,该错误在启用数据更改功能时失败,因为它将数据更改保存到workflow_history

    • MeetingItem.category词汇表(listCategories)使用自然排序来显示元素,这意味着标签将按字母顺序排序,但将对编号标签(如1,1.1,1.2,2,2.1,2.2等)进行高级管理,以便正确排序。这依赖于“natsort”库

    • 添加了在会议_view的可用物品仪表板中排序显示元素的可能性

    3.3 (2015-02-27)

    • 迁移到Plone 4.3.4

    • 迁移到collective.ckeditor 4.2.0

    • 依赖于plonetheme.imioapps来管理默认皮肤(plonemeetingskin)和communesplone.layout

    • 依赖于Products.PasswordStrength并使用默认策略(10个字符,1个大写字母,1个特殊字符,1个数字)

    • 从communesplone.iconified_document_actions迁移到collective.iconifieddocumentactions

    • 将索引和元数据的管理(utils.updateIndexes)迁移到imio.helpers,并现在依赖于该包

    • MeetingManagers现在由本地管理,MeetingConfig由MeetingConfig管理,不应再给予MeetingManagers全局角色“MeetingManager”

    • 删除了Meeting.allItemsAtOnce字段及其相关代码

    • 删除了MeetingCategory.itemsCount字段及其相关代码

    • 重构了在会议中插入条目的机制:现在可以在条目插入时选择连续的排序方法

    • 添加了分别管理缺席和免责的纯文本字段,重构了条目汇编和签名在条目中的显示

    • 添加了受限制的权力观察员,这是第二种类型的权力观察员,可以访问不同状态下的元素

    • 为附件和建议添加了“机密性”,使它们对权力观察员或受限制的权力观察员不可见,机密性可以在UI中ajax切换

    • 当将条目发送到另一个会议配置时,如果两个配置都使用类别,则添加了为原始会议配置中的类别定义在目标会议配置中将使用哪个类别的可能性

    • 增加了将项目发送到另一个会议配置自动触发工作流程转换的功能,以便新项目可以自动设置为定义的状态(例如:验证通过、提案或在会议中展示)

    • 现在必须手动定义项目展示或按会议配置基础上的转换,以便我们知道“展示项目的流程路径”

    • 增加了顾问在批改时隐藏建议的可能性

    • 增加了从建议弹出视图使用下拉框轻松更改建议延迟的功能,显示可用的延迟,并包含有关更改延迟和历史的注释

    • 从模板创建项目时,保留模板上定义的所有信息

    • 优化了项目模板的管理,将重复性项目和项目模板分别放在两个不同的文件夹中(旧的“recurringitems”现在只包含重复性项目,新的“itemtemplates”文件夹包含项目模板),增加了将项目模板组织到文件夹中的可能性。显示给项目创建者的项目模板使用“fancytree”显示这种组织结构,依赖于collective.js.fancytree

    • 在会议配置自定义顾问中,增加了使用TAL表达式(列“可用”)限制自定义顾问选择的可能性,并增加了指定在列“是否与前一行链接?”中两个或多个自定义顾问链接在一起的方法

    • 为MeetingConfg.getFileTypes、MeetingConfig.getCategories、ToolPloneMeeting.getGroupsForUser、IAnnexable.getAnnexesToPrint增加了缓存

    • 会议文件和会议文件类型之间的链接不再是引用

    • 增加了定义子会议文件类型的可能性,以便单个会议文件类型可以在UI中以相同的图标显示多个子类型

    • 增加了在不同的会议配置之间定义会议文件类型对应关系的可能性,以便发送到另一个会议配置的项目知道为原始附件使用哪种会议文件类型

    • 在项目上增加了“紧急”功能(请求/接受/拒绝紧急情况,带有注释和历史记录)

    • 在项目上增加了“完整性”功能(评估是否完整/不完整,带有注释和历史记录)

    • 在项目上增加了“是否发送给当局?”布尔字段

    • 在项目上增加了“接管”功能(用户可以指定他接管了项目,以避免其他用户也能处理它并接管它)

    • 重构了adviceIndex的管理:索引建议是否可以添加/编辑,可以使用不同于meetingadvice_workflow的其他工作流程,……

    • 在渲染时将IAnnexable传递给PodTemplate,以便我们可以轻松地将附件集成到生成的文档中

    • 移除了IAnnexable.getAnnexesInOrder,仅使用IAnnexable.getAnnexes,因为它是始终排序的

    • 在UI中为MeetingItem.budgetRelated添加了ajax切换,用于显示/隐藏项目视图中的MeetingItem.budgetInfos字段

    • 在PodTemplate视图中以及悬停在模板标签上显示的标题中显示PodTemplate描述作为纯文本。在会议配置的Pod模板列表中也显示此描述

    • 使用collective.datagridcolumns为MeetingFileType.subTypes字段

    • 重构了索引“indexAdvisers”,以避免依赖于如“0”或“1”之类的后缀,而是使用如“_advice_not_given”、“_advice_delay_exceeded”或显示当前建议工作流程状态作为后缀的易读后缀

    • 添加了参数以隐藏项目上的历史注释,以便提议组外的成员,对每个历史事件的注释访问是通过适配器完成的,因此如果需要可以轻松覆盖

    • 在我们的搜索中不要使用“Type”索引,使用“portal_type”索引,因为“Type”索引的是内容类型的“标题”,可能会更改,而“portal_type”索引的是“id”,永远不会更改

    • 从字段转换类型中移除了“signatureNotAlone”,现在通过传递给MeetingItem.getDecision或MeetingItem.getDeliberation的“keepWithNext”参数来管理

    • 移除了utils.getOsTempFolder方法,使用内置的tempfile.gettempdir python方法代替

    • 清理了utils,移除了无用的方法kupuEquals、allowManagerToCreateIn和disallowManagerToCreateIn

    • 移除了ToolPloneMeeting.ploneDiskAware功能及其相关代码

    • 当历史事件中添加了评论时,突出显示“历史”链接。为此,我们覆盖了documentby_line.pt模板(Python视图小部件已经被覆盖)并移除了隐藏作者链接的jQuery(removeLinkOnByLine)

    • 使直接从项目列表中访问项目历史成为可能(使用imio.actionspanel的“历史”部分)

    • 优化了每晚更新建议的方法,只更新相关项目,而不是像以前一样更新所有项目(这占用了拥有多个项目应用程序的时间)

    • 添加了profiling.zcml,允许在开发期间激活collective.profiler

    • 显示MeetingGroups、类别和PodTemplates中列出的所有相关信息(ToolPloneMeeting视图和MeetingConfig视图)

    • 在任何情况下都显示项目视图中的附件和建议字段集,当没有附件或建议时,不会隐藏,而是在字段集中显示一个简单的“-”

    • 添加了“搜索我的组的项目”主题,返回用户所在的组中的所有项目,无论用户在组中的角色是什么(创建者、审稿人、顾问等)

    • 添加了“可验证项目”主题,返回用户根据项目审查流程的状态可以验证的所有项目。调整了搜索“待验证项目”的主题,使其只返回当前用户最高层级的项目待验证项

    • MeetingItem.onDuplicated和MeetingItem.onDuplicatedFromConfig钩子现在是zope.event事件

    • 现在可以在MeetingConfig.itemsListVisibleFields中定义,使用“眼镜”图标操作时将显示/隐藏哪些字段。这些关于项目的额外信息将在项目列表(我的项目、所有项目等)和会议视图的不同列表(可用项目、展示项目和迟到项目)中显示

    • 现在可以从应用程序的任何位置(项目列表、项目视图等)展示项目,点击“展示”操作将项目展示给下一个可用的会议。在此之前,“展示”操作仅在会议视图的可用项目列表中显示

    • 在项目视图中,在视图底部也显示导航小部件,位于操作按钮上方

    • 将ToolPloneMeeting.formatDate重命名为ToolPloneMeeting.formatMeetingDate,现在它将会议作为第一个参数接收,而不是日期或brain

    • 添加了MeetingConfig.restrictAccessToSecretItems字段,可以启用/禁用MeetingItem.isPrivacyViewable检查。此外,isPrivacyViewable检查现在考虑了项目给出的所有明确访问权限,因此提出组的成员、超级用户(管理员、会议管理员、强力观察员)、副本组和顾问将获得对项目的完全访问权限

    • 修复了当在项目上选择了首选会议并且该首选会议被删除导致该项目不被Meeting.getAvailableItems方法考虑时,项目可能无法展示的bug

    • 现在可以在portlet_todo或portlet_plonemeeting中显示主题,而无需在两个portlet中同时显示。这是由于现在作为显示主题的条件评估的TAL表达式接收一个设置为True或False的“fromPortletTodo”变量,因此我们可以区分是否希望在仅一个或两个portlet中显示主题

    • 添加了“预验证(审稿人也可以预验证)”工作流适配,添加了一个预验证步骤,但允许Plone组_revisers中的用户“预验证”,而无需在_prereviewers组中。这使得可以在实际预审稿人和审稿人之间做出区分,但审稿人仍然可以进行预审

    • 在列表中项目标题前添加了一个图标,显示该项目将被发送到另一个会议配置,以便我们可以查看将要发送的项目和已经发送到另一个会议配置的项目。此外,如果项目实际上已发送,并且发送到其他配置的项目正在会议中,我们将在图标工具提示中显示此会议日期。

    • 在列表中项目标题前添加了一个图标,显示该项目在工作流程中已退回,或者该项目再次处于相同的流程步骤(之前已处于该步骤)。这使用户可以看到一个项目刚刚被纠正并退回,或者一个项目再次被提议。

    • 现在在使用内联编辑功能(通过元素视图快速编辑项目或会议字段)和通过弹出窗口快速编辑建议时,锁定功能正常工作。

    • 简化了可定义的搜索参数:不再有最大搜索限制,不再有可选择的项状态,每个仪表板关于每页显示的元素只有一个值。

    • 会议经理现在可以访问会议配置,并能够编辑“无害”参数,如会议和签名。

    • 删除了与“PloneTask”相关的字段和功能。

    • 调整了在会议配置上定义的认证签名周围的功能,使其“周期感知”。现在可以定义一个在一段时间内(从日期到日期)可用的签名,这样可以在知道签署者缺席/出席的情况下提前管理认证签名。

    • 添加了MeetingGroup.certifiedSignatures字段,可用于在模板中定义当前要使用的认证签名,如果没有在组中定义认证签名,则使用MeetingConfig.certifiedSignatures。

    • 简化了迟到项目的管理,默认情况下,如果会议处于迟到状态,可用的项目已验证且会议是首选会议,则项目被视为迟到。

    • 如果附件文件大小过大,则显示警告。

    • 添加了MeetingConfig.itemCreatedOnlyUsingTemplate参数,将使用户只能使用项目模板创建新项目,不再可以从头创建项目。

    • 添加了MeetingConfig.onTransitionFieldTransforms参数,将使能够在触发项目上的转换时应用转换到项目的给定字段。这将在项目延迟时更改决策时特别使用。

    • 添加了MeetingConfig.onMeetingTransitionItemTransitionToTrigger参数,将使在触发会议上的转换时触发项目上的任意转换成为可能。

    • 当项目被添加、删除或位置更改时,会议现在被视为已修改(修改日期已更改)。

    • 当MeetingGroup的标题更改时,相关联的Plone组的标题也相应更改。

    • 删除了工作流适配“local_meeting_managers”。

    • 添加了一种简单的方法来定义自定义插入方法(项目插入到会议中的顺序)。

    • 从添加MeetingGroup时创建的Plone组中删除了属性“meetingRole”和“meetingGroupId”,我们现在使用MEETINGROLES和MEETING_GROUP_SUFFIXES。

    • 在会议和项目视图中突出显示富文本字段末尾的空行。

    3.2.0.1 (2014-03-06)

    • 错误修复版本:调整了迁移到3.2.0的迁移。

    • 使建议延迟的计算考虑到工作日和假日。

    • 为一些被多次调用的方法添加了缓存(ToolPloneMeeting.getMeetingGroups,ToolPloneMeeting.getMeetingConfig,MeetingConfig.getUserParam)。

    • 添加了具有子MeetingFileTypes的可能性:您可以在给定的MFT上定义子类型,它将在添加附件选择文件类型框中显示,但每个附件都将显示在主MeetingFileType的同一天志图标后面,这使用户可以管理多个MFT标题和预定义标题。

    • 在可选顾问中考虑“for_item_created_until”以使延迟顾问具有感知性。

    • 在PloneMeeting工具工作流策略中添加了有关国际化的改进。[lcaballero, macagua]

    • 在删除之前,请确保MeetingGroup没有被用于MeetingConfig.customAdvisers和MeetingConfig.powerAdvisersGroups

    • 如果MeetingFile在应用中使用,请确保MeetingFileType.relatedTo不能被更改

    • 在显示已定义MeetingFileTypes的表中显示relatedTo信息

    • 在“base.cfg”文件中添加了imio.actionspanel包。[lcaballero, macagua]

    • 在“versions-dev.cfg”文件中添加了更多版本标记。[lcaballero, macagua]

    • 在工作流中增加了更多的国际化支持。[lcaballero, macagua]

    • 为该包添加了更多的字符串分类器和元数据项。[lcaballero, macagua]

    3.2.0 (2014-02-12)

    • 如果使用了外部应用程序,由于类已被删除,因此与旧版本不兼容

    • 将建议从保存的字典移到真实对象,以便我们可以将其添加附件

    • 添加了延迟感知顾问,以便能够定义提供建议的延迟

    • 基于每个MeetingConfig添加了自定义顾问管理:这管理自动顾问和延迟感知顾问

    • 重构了建议弹出窗口和下拉菜单以显示更多信息

    • 添加了“Power顾问”功能,使得某些组即使在未询问的情况下也能提供建议

    • 添加了“预算影响编辑器”功能,使得某些定义的用户可以在定义的项目工作流状态下编辑MeetingItem.budgetInfos

    • 添加了特定权限来管理对MeetingItem.budgetInfos字段的访问:'PloneMeeting: 读取预算信息'和'PloneMeeting: 写入预算信息',以便在项目工作流中管理

    • 在克隆项目时保留'隐私'属性,以便在相关的功能(例如定期项目、项目模板、发送到另一个配置的项目等)中保持不变

    • 添加了MeetingItem.printAdvicesInfos方法,用于生成可用于POD模板的HTML版本的建议信息

    • 现在MeetingGroups可以覆盖每个MeetingConfig.itemAdviceStates值,而不仅仅是默认的MeetingConfig

    • 在itemassembly/itemsignatures批量重定义功能中修正了bug,其中未考虑迟到项目

    • 从所有工作流中移除了“添加门户内容”权限的管理

    • 依赖于plone.app.dexterity和plone.directives.form来管理新的meetingadvice内容类型

    • 依赖于imio.actionspanel

    • 依赖于Products.DataGridField来管理MeetingConfig.customAdvisers

    • 依赖于Products.cron4plone来启动有关延迟感知建议的维护任务(更新每个项的建议索引和更新portal_catalog的indexAdvisers索引)

    • 迁移到collective.ckeditor 4.0.0

    3.1.0 (2013-11-04)

    • 迁移到Plone 4.3.2

    • 添加了易于管理/传播多个项目组装/签名的功能

    • 添加了主题搜索“待验证的项目”和“预验证的项目”

    • 在包含使用禁用类别/提出组的项目的会议中添加项目时不会失败

    • 添加了在每次项目转换时发送电子邮件通知的可能性

    • 添加了wfAdaptation“在会议经理正在编写时隐藏决策给用户”

    • 优化了MeetingItem.getItemNumber,使使用“relativeTo=meetingConfig”的工作性能良好,并且始终返回相同的结果,无论先前会议是否已关闭,无论当前用户角色如何,……

    • 覆盖了Products.Archetypes @@at_utils视图,使用当前GitHub版本作为Plone 4.3.2中的版本,在某些情况下无法正确翻译

    • 修正了在使用meetingfolder_view时复制_items的bug,以便在meetingfolder_view和其他之间工作

    • 修正了当激活历史记录时历史记录不会显示的bug

    • 如果链接的Plone组仍然包含“找不到”用户,则不避免删除MeetingGroup

    • 添加了适应新创建的网站首页的功能(在安装时)

    • 在检测到我们正在创建用于生产目的的测试实例时(在挂载点上创建)生成测试用户的密码

    • 使用已在Plone中默认存在的delete_icon.png而不是我们的delete.png

    • 从plonemeeting.js中移除了已弃用的cssQuery的使用

    • 修正了在MeetingConfig.selectableCopyGroups字段或MeetingItem.copyGroups字段中仍在使用时可以删除MeetingGroup的bug

    • 确保不同领域使用的词汇表中包含与对象上存储的值相对应的术语。如果与存储值相对应的术语不在词汇表中,我们将将其添加到词汇表中,以确保其始终正常工作

    • 将结果列表中显示的元素数量从10改为20

    • Meeting.validate_date中的代码已更新,因为DateTime._localzone0/1不再存在

    • 正确显示meeting_view上的签名

    • 在停用MeetingGroup时,不要将用户转移到_observers Plone组,让用户保留在其Plone组中,以便他们仍然可以访问旧项目和建议,但请确保已停用的组不能再被任何地方使用

    • 如果您已从旧版本迁移了网站,请添加缺失的PlonePAS '默认Plone密码策略'

    3.0.3 (2013-08-19)

    • 限制角色的使用,已删除MeetingPowerObserverLocal和MeetingObserverLocalCopy

    • 添加了定义项目可由复制组查看的状态的可能性

    • 管理重复项的附件转换(collective.documentviewer)

    • 删除了ToolPloneMeeting.navigateLocally参数

    • 如果用户在触发转换后无法再查看某个项目,请显示一条清晰的提示信息

    • 在PloneMeeting安装时为用户'admin'创建memberarea

    • 在安装时配置CKeditor样式

    • 将events subscribers代码从setuphandlers.py移至events.py

    • 在tests中定义了helpers.py,以便子插件可以轻松覆盖现有测试

    • 添加了MeetingConfig.searchItemsWithFilters,这是一个可使用定义相关主题过滤器的属性进行配置的主题搜索

    • 添加了MeetingItem.motivation字段,允许用户在定义决策时具有细分度,如果他想要将'动机'和'决策'分开

    • 仅输入单词开头即可使搜索工作

    • 依赖imio.migrator

    • 在ToolPloneMeeting.triggerTransition中,如果要触发的转换不可用,则不要引发WorkflowException,这避免了UI双击问题

    • 允许用户在个人首选项中访问个人信息和更改密码选项卡

    • 添加了'将项目退回提出组进行修正'的wfAdaptation

    • 删除了MeetingConfig.itemTopicStates参数

    • 高级搜索参数现在默认全部激活

    3.0.2 (2013-06-21)

    • 更新测试基础设施,以便子产品可以轻松覆盖

    • 与Products.PloneHotfix20130618兼容

    • Ajax切换以考虑讨论的第三个案例(发送电子邮件)

    • 将“附件宏”、“转到项目”和“更改项目顺序”移至BrowserViews

    • 在Meeting.mayChangeItemsOrder中使用Meeting.meetingClosedStates,以避免在大多数情况下由子产品覆盖它

    • 优化meetingfolder_view:添加了从模板创建项的可能性,并具有更轻的代码

    3.0.1 (2013-06-07)

    • 添加了预览和打印附件(使用collective.documentviewer将它们转换为图像)的可能性

    • 向用户显示项和会议的历史记录,以便他们可以看到对象

    • 向PowerObservers显示秘密项

    • 如果连接的用户无法看到MeetingConfig中定义的默认主页,则将其重定向到他们可以实际访问的第一个页面

    • 防止删除已使用的MeetingFileType或MeetingCategory

    • 将'tag' 'strike'添加到有效标签列表中

    3.0 (2013-04-03)

    • 迁移到Plone 4

    • 将MeetingFiles和PodTemplates迁移到blobs

    • 快速编辑与CKeditor一起工作

    • 使用Plone4覆盖显示弹出窗口

    • 使用communesplone.iconified_document_actions

    • 在操作按钮上显示操作图标(不再使用portal_actionicons)

    • 当项目处于其初始工作流状态时,现在可以询问建议

    • 在默认的Plone4弹出窗口中显示元素历史记录

    • 优化了投票功能

    • 添加了本地powerobservers,这使得通过meetingConfig定义powerobservers成为可能

    • 现在将自动添加的组复制评估在每个项目编辑时进行,而不仅仅是创建时

    • 当在已决定会议中时,可以一次性决定多个项目

    • 会议的开始日期、中间日期和结束日期的精度为1分钟,而不是5分钟

    2.1.3 (2012-10-03)

    • 使会议视图中的项目编号输入显示更大,以便正确显示3位数

    • 允许外部插件在将项目发送到另一个会议配置时定义要保留(复制)的额外字段(getExtraFieldsToCopyWhenCloningToOtherMC)

    2.1.2 (2012-07-09)

    • 添加了“复制并保留链接”的功能:复制现有项目并保留对原始项目的链接

    • 纠正了关于组UnicodeDecodeErrors的问题(迁移添加)

    • MeetingItem.itemInitiator字段现在是多值的(迁移添加)

    • 如果已覆盖,则在项目视图中突出显示itemAssembly和itemSignatures

    • 使项目标题更长(500个字符)

    • 在所有地方显示决策附件(项目列表、主要项目视图等)

    2.1.1 (2012-04-02)

    • 添加了可用于在模板上定义当前认证签名的MeetingConfig.certifiedSignatures字段

    • 项目模板现在可以通过proposingGroup定义

    • 添加了MeetingItem.itemIsSigned可选字段(索引并使用jQuery)

    • 现在可以定义在哪些状态下,哪些项目已给出建议,顾问仍然可以查看(MeetingConfig.itemAdviceViewStates)

    • 添加了将项目发送到另一个meetingConfig并跟踪它的可能性

    • 即使使用searchScript,也会保留来自主题的搜索参数

    • 即使当前项目不在当前登录用户的文件夹中,也会始终突出显示正确的meetingConfig选项卡

    • 在portal_plonemeeting上添加了可点击的操作“更新所有建议”

    • 在配置中突出显示禁用元素

    • 删除了字段‘MeetingItem.closedSession’,现在使用‘MeetingItem.privacy’

    • 邮寄列表条件现在是TAL表达式,不再是Python表达式

    2.1.0 (2012-01-12)

    • 添加了跟踪会议期间与会者移动的功能(人们的进入和退出)

    • 添加了“迟到与会者”,指定了会议开始后到达的与会者名单

    • 优化了搜索,现在可以:-选择要搜索的字段(标题、描述、决策、全部)-选择要搜索的wf状态

    • 现在可以选择要由内置历史化机制记录的项目和会议字段

    • 现在用户可以隐藏项目或会议上的显示人员

    2.0.7 (2011-08-16)

    • 添加了在“决策”或“标题和描述”上搜索的可能性

    • 现在可以禁用对用户首选项的访问

    • 添加了站点开始日期,使其更容易在日期之前删除存档元素

    • 添加了两个PloneMeeting站点之间的用户同步机制

    • 附件现在可以从不同的URL访问

    2.0.6 (2011-06-28)

    • 为通知系统添加了延迟功能(夜间工作导入和导出)

    • 添加了新的工作流适应性:-跳过会议和会议项的发布状态

    • 添加了每年自动将会议编号设置为零的可能性

    2.0.5 (2011-06-10)

    • 添加了新的工作流适应性:-在项目上禁用观察-项目决策由项目创建者报告-只有创建者可以删除他们的项目-项目以“验证”状态创建-存档

    • 在项目上添加了隐私字段,提供有关它是保密还是公开的信息

    • 将工作流转换操作添加回meetingConfig元素

    • 按MeetingGroup基于添加了建议访问(给出和修改)

    • 添加了外部应用程序通知系统

    2.0.4 (2011-05-24)

    • 添加了“项目模板”,允许根据配置中定义的另一个项目(模板)创建项目

    • 添加了会议前管理(会议前日期、地点和观察结果)

    • 添加了截止日期功能(项目验证截止日期、会议冻结截止日期、会议前截止日期)

    • 添加了一个名为“MeetingPreReviewer”的新角色,可用于预先验证项目

    • 警告顾问他们需要在项目上的建议(或不再需要)

    • 将邮件列表添加到PodTemplate中,以便配置不同的邮件列表来发送生成的模板

    • 内置第二语言支持

    • 优化“投票”功能

    • 添加了MeetingConfig.workflowAdataptation字段,允许选择任意的wf行为

    • 添加了MeetingConfig.transitionsToConfirm字段,提供了一个简单的方法,在触发会议或会议项的工作流转换时在弹出窗口中定义注释

    • 添加了MeetingConfig.places字段,允许定义在会议中可用的可选地点列表

    • 添加了MeetingConfig.budgetDefault字段,用于定义MeetingItem.budgetInfos字段的默认值

    • 添加了MeetingConfig.toDiscussSetOnItemInsert字段,允许项目创建者在创建时定义MeetingItem.toDiscuss字段(或旧行为)

    • 添加了MeetingConfig.toDiscussShownForLateItems字段,定义是否将toDiscuss字段用于较晚的项目

    • 添加了MeetingUser.gender和MeetingUser.replacementDuty字段

    • 会议管理员不再可以通过默认工作流程(meetingitem_workflow)访问所有“创建中”或“建议”的项目

    • 使用config.MEETING_GROUP_SUFFIXES在创建与MeetingGroup相关联的Plone组时使用GroupDescriptor

    2.0.3 (2011-04-13)

    • 关于附件的clonePermissions修复

    2.0.2 (2011-03-11)

    • Plone3中再次启用meetingfolder_view

    • 一些CSS/翻译/JS修复

    项目详情


    发布历史 发布通知 | RSS源

    下载文件

    下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

    源分布

    Products.PloneMeeting-4.2.11.1.tar.gz (1.8 MB 查看散列值)

    上传时间

    Products.PloneMeeting-4.2.11.1.tar.gz的散列值
    算法 散列摘要
    SHA256 6de463ae14ffc9cf32c542c373388a69fbfe3bc1cff9f9021d915791dfe61fbe
    MD5 0eec84898213570c5f900cfe50f30d14
    BLAKE2b-256 b6a749a3996852e226fabcb54a8cda679c1952d89aefc20e3b35bc8036f330e8

由以下支持