创建克隆组的组织和功能组合
项目描述
集体联系克隆组
介绍
一个管理组织和功能的克隆插件,导致相应的克隆组创建。该产品在以下之间建立了联系:
collective.contact.core:包含您的组织服务的组织定义(多级)
dexterity.localrolesfield : 显示可以为其赋予本地角色的服务列表的字段
如何
首先,在您的站点中创建一个目录(来自collective.contact.core 的对象)。该目录将包含与您的联系人相关的所有信息。
然后,您可以在其中添加您的组织(特定 id 等于“plonegroup-organization”)。组织可以包含组织(例如服务、部门或部门)。
在collective.contact.plonegroup 配置面板中,您必须:
选择贵组织的一些服务用于 localroles 字段
定义将在每个选定组织中使用的一些功能标签
提交时,为每个组织-功能组合创建一个克隆组,其 id 为“organization-uid”_“function-id”,名称为“organizations-name”(“function-name”)。
生成的克隆组将用于 localroles 字段,其中可以为每个选定服务的某些功能赋予一些本地角色。
安装
将collective.contact.plonegroup 添加到您的鸡蛋中。
重新运行构建。
在您的克隆站点中安装该产品。
学分
有想法吗?发现错误?通过开票让我们知道。
贡献者
Gauthier Bastien, IMIO
Stéphan Geulette,IMIO
文森特·弗雷廷,埃克雷尔
塞德里克·梅西安,埃克雷尔
弗雷德里克·彼得斯,Entr'ouvert
变更日志
1.44 (2022-08-19)
警告,更改了utils.get_organization的行为,添加了参数 only_in_own_org=True以确保给定的org_uid是自己组织内的组织。[巴斯蒂安]
添加了 get_selected_org_suffix_principal_ids和voc_selected_org_suffix_userids 以仅适用于组和用户 ID [sgeulette]
使用来自 imio.helpers [sgeulette] 的缓存方法get_users_in_plone_groups
1.43 (2022-07-01)
添加了 utils.get_suffixed_groups。[煎饼]
如果组不为空,请勿删除(删除函数后)[sgeulette]
1.42 (2022-06-14)
在DisplayGroupUsersView中转义用户和组标题。此外,固定列不可排序。[巴斯蒂安]
添加了仅包含安全工具的safe_utils.py 。[巴斯蒂安]
更正了搜索中的错误:不要传递空的 portal_type 标准。[煎饼]
在voc_selected_org_suffix_users函数中添加了参数 escaped=True [sgeulette]
修复了@@display-group-users,当组织未在 plonegroup 中选择时,没有链接的 Plone 组,为其添加了测试和 @@ suborganizations 视图(z3ctable 显示包含在另一个组织中的组织)。[巴斯蒂安]
1.41 (2022-05-06)
添加了带有检查 PloneGroupContact 删除和转换方法的适配器。[煎饼]
1.40 (2022-04-22)
调整PloneGroupUsersGroupsColumn以在 plonegroup 中未选择组织时也显示链接组,这允许显示已选择然后未选择的组织的链接 Plone 组。[巴斯蒂安]
1.39 (2022-02-03)
词汇表中的杰出缓存调用。[煎饼]
1.38 (2021-11-26)
在utils.get_organization和utils.get_organizations中,查询目录不受限制。[巴斯蒂安]
删除了settings.py中从plone.app.uuid导入的uuidToObject,我们使用imio.helpers中的uuidToObject。[巴斯蒂安]
1.37 (2021-10-20)
更正了缓存失效错误,该错误在重新激活先前停用的组织时未完成。现在更广泛地无效。[煎饼]
1.36 (2021-08-27)
添加或删除用户时,在 @@manage-own-groups-users视图中使用collective.fingerpointing添加了日志记录。[巴斯蒂安]
将available_expr添加到显示Manage own groups的操作中,如果在配置中的groups_management字段中选择了至少一个值,则将显示操作 。[巴斯蒂安]
在@@manage-own-groups-users视图中使用imio.helpers.SortedUsers词汇 。[巴斯蒂安]
1.35 (2021-05-05)
修复了在修改组织时调用的addOrModifyOrganizationGroups,即为每个后缀创建 Plone 组而不考虑 enabled或fct_orgs。向v8添加了升级步骤,该步骤将删除错误创建的克隆组。[巴斯蒂安]
1.34 (2021-04-20)
修复了settings.detectContactPlonegroupChange , 当从不同的测试层多次设置值时,有时event.oldValue为 None。[巴斯蒂安]
1.33 (2021-01-06)
不要再摸包了。[巴斯蒂安]
覆盖来自collective.contact.core的词汇PositionTypes,当 上下文脱离目录时,从DEFAULT_DIRECTORY_ID获取position_types。[巴斯蒂安]
1.32 (2020-10-26)
修复了 DisplayGroupUsersView.group_title当DisplayGroupUsersView.short=True 时仅适用于我的配置(我的后缀)之类的格式或它删除了最后一个字母的情况。[巴斯蒂安]
添加了参数PloneGroupUsersGroupsColumn.short=True所以 @@display-group-users默认呈现短。[巴斯蒂安]
1.31 (2020-10-11)
合并 v6 和 v7 升级,因为它来自 v5 [sgeulette]
更正了表类名称。[煎饼]
1.30 (2020-10-02)
添加了 manage-own-groups-users 视图和功能/组选择配置。用户可以管理他的组的用户分配。[煎饼]
避免在get_selected_org_suffix_users函数中获取组(仅限用户) 。[煎饼]
如果后缀仅限于某些组织,请避免 get_selected_org_suffix_users 中的GroupNotFoundError 。[煎饼]
添加了 BaseOrganizationServicesVocabulary._term_value和 BaseOrganizationServicesVocabulary._term_token以轻松覆盖呈现的术语值和令牌。[巴斯蒂安]
使SelectedOrganizationsElephantVocabulary继承自 OwnOrganizationServicesVocabulary,因此_term_value和 _term_token方法可用。[巴斯蒂安]
在@@display-group-users中显示包含的组而不包含包含的成员,为普通用户显示包含的组的成员,向经理显示包含的组和包含的成员。[巴斯蒂安]
修复了在测试和配置文件中设置注册表 [FUNCTIONS_REGISTRY]时的ConnectionStateError 被多次应用。[巴斯蒂安]
1.29.1 (2020-08-26)
修复当前用户不是经理时@@display-group-users视图的 CSS,因此在前缀图标(用户/组)上没有链接。[巴斯蒂安]
1.29 (2020-08-18)
添加了PloneGroupUsersGroupsColumn,一个显示后缀组和用户的列,在显示组织的仪表板上调用。组和用户由@@display-group-users视图呈现,也可以在外部使用。默认情况下,由于组和用户可能显示很长,所以它隐藏在可折叠的<div>中并异步显示。[巴斯蒂安]
添加了禁用功能的可能性(默认为enabled=True),这对于避免删除功能并在之后重新添加它很有用,有时是错误的。改编utils.get_all_suffixes(only_enabled=True) 以仅获取启用的功能。向版本6添加了升级步骤,以管理regsitry中存储的 函数中的新值enabled=True。[巴斯蒂安]
从OrgaPrettyLinkWithAdditionalInfosColumn中的链接中删除项目UID , 因为它现在默认显示为附加信息。[巴斯蒂安]
1.28 (2020-05-26)
在utils.get_organizations中,不要使用列表推导将get_registry_organizations的结果转换为列表,因为它已经是这种情况(很久以前不是这种情况),get_registry_organizations返回一个新列表并且存储在注册表中的值不会默认情况下不再更改。[巴斯蒂安]
1.27 (2020-05-08)
使OrgaPrettyLinkWithAdditionalInfosColumn也适用于person和hold_position。[巴斯蒂安]
1.26 (2020-03-12)
由于词汇ram.cache缓存键是根据模块/类名称生成的,因此将词汇 collective.contact.plonegroup.selected_organization_services重命名为 collective.contact.plonegroup.browser.settings.SelectedOrganizationsElephantVocabulary 和collective.contact.plonegroup.sorted_selected_organization_services到 collective.contact.plonegroup .browser.settings.SortedSelectedOrganizationsElephantVocabulary。添加了测试,显示当所选组织发生更改时缓存正确无效。[巴斯蒂安]
1.25 (2020-02-06)
将collective.contact.plonegroup.sorted_selected_organization_services 用于settings.IFunctionSchema.fct_orgs (将后缀限制为某些组织的字段)。[巴斯蒂安]
在validateSettings不变式中,使用忽略<not found>用户而不是getMemberIds的getGroupMembers检查 Plone 组是否为空 。[巴斯蒂安]
1.24 (2019-11-25)
在 organizations_with_suffixes 函数中添加了 group_as_str 参数。[煎饼]
1.23 (2019-11-04)
在utils.get_organization中添加了参数caching=True,这会将组织对象存储在 REQUEST 中并避免过多的目录查询。[巴斯蒂安]
1.22 (2019-09-26)
将keep_org_uids传递给utils.get_organizations时,请确保保留顺序。[巴斯蒂安]
1.21 (2019-09-13)
添加了 BaseOrganizationServicesVocabulary._term_title以轻松覆盖呈现的术语标题。[巴斯蒂安]
1.20 (2019-09-12)
添加了collective.contact.plonegroup.every_organizations词汇表,为此需要编写BaseOrganizationServicesVocabulary, OwnOrganizationServicesVocabulary和EveryOrganizationsVocabulary 从中 继承。[巴斯蒂安]
删除了collective.contact.plonegroup.selected_organization_services的术语标题排序,术语 在plonegroup 组织中按照选择顺序显示,就像以前一样。添加了按术语标题排序的新词汇表,可用作 collective.contact.plonegroup.sorted_selected_organization_services。[巴斯蒂安]
1.19 (2019-08-23)
优化OwnOrganizationServicesVocabulary.listSubOrganizations,仅当当前组织包含某些内容时才进行目录查询。[巴斯蒂安]
1.18 (2019-08-02)
在OrgaPrettyLinkWithAdditionalInfosColumn中,将showContentIcon设置为 True 并启用link-tooltip。[巴斯蒂安]
在SelectedInPlonegroupColumn中,以粗体显示Not 。[巴斯蒂安]
添加了collective.contact.plonegroup.functions词汇表,列出了plonegroup 控制面板中定义的每个功能。[巴斯蒂安]
1.17 (2019-07-15)
更正了错误的完整标题缩短。[煎饼]
1.16 (2019-06-30)
修复了在显示PLONEGROUP_ORG 之外的组织时OrgaPrettyLinkWithAdditionalInfosColumn中的错误。[巴斯蒂安]
修复了 utils.get_organizations当缓存 = True以在缓存中存储新的组织列表而不是返回值或缓存中的值如果我们在子方法中修改返回值可能会被修改... [gbastien]
尽可能使用get_registry_organizations/set_registry_organizations和 get_registry_functions/set_registry_functions。[巴斯蒂安]
1.15 (2019-06-07)
修复了问题,当后缀标题更改并且定义了一些fct_orgs时,链接的 Plone 组标题未更新。[巴斯蒂安]
在settings.detectContactPlonegroupChange 中,仅在相关时设置changes = True,由于缩进错误,它是系统地完成的。[巴斯蒂安]
1.14 (2019-05-16)
如果显示 plonegroup-organization ,则使OrgaPrettyLinkWithAdditionalInfosColumn工作,在SelectedInPlonegroupColumn标题中包含指向 plonegroup 配置面板的链接 。[巴斯蒂安]
将utils.get_plone_group和 utils.get_plone_group_id的第一个参数名称从org_uid 更改为前缀,因为它可以在其他情况下使用。[巴斯蒂安]
添加了辅助方法utils.select_org_for_function以便能够从定义在函数上的fct_orgs添加/删除组织 uid 。[巴斯蒂安]
删除了对unittest2的依赖。[巴斯蒂安]
调用config.get_registry_organizations和 config.get_registry_functions时,默认返回存储数据的副本以避免更改它。[巴斯蒂安]
将参数default=True添加到utils.get_own_organization,在这种情况下,使用根目录和自己组织的默认 id 代替使用目录查询,它应该更快。[巴斯蒂安]
1.13 (2019-01-11)
使用 unrestrictedSearchResults 检查链接完整性。[煎饼]
添加了帮助程序 config.get_registry_organizations、config.get_registry_functions、config.set_registry_organizations 和 config.set_registry_functions 以轻松获取和设置组织/功能注册表记录。[巴斯蒂安]
1.12 (2018-12-11)
将参数keep_org_uids添加到utils.get_organizations以仅保留已定义 UID 的组织。[巴斯蒂安]
按值标题对collective.contact.plonegroup.selected_organization_services 词汇表进行排序。[巴斯蒂安]
在子组织视图中的标题旁边显示组织 UID 。[巴斯蒂安]
1.11 (2018-11-20)
在 utils.get_organizations 中,使用 ordered=True 调用 uuidsToObjects 以获取正确的组织顺序,因为目录查询未排序。[巴斯蒂安]
修复了将“fct_orgs”添加到函数的迁移。[巴斯蒂安]
1.10 (2018-10-12)
删除了 OwnOrganizationServicesVocabulary 的 grok。[巴斯蒂安]
添加了 utils.get_organization 以获取与给定 plone_group_id 对应的组织。[巴斯蒂安]
添加 utils.get_organizations 以获取每个 plonegroup 组织。可以获取每个可选或选定的组织,无论是否作为对象,并且特定链接的 Plone 组(后缀)不为空。[巴斯蒂安]
添加了 utils.get_all_suffixes,它返回每个定义的函数 ID。[巴斯蒂安]
增加了将后缀限制为仅某些选定组织的可能性。只会为选定的组织创建克隆组。选择或取消选择组织时,将相应地创建/删除链接的 Plone 组。[巴斯蒂安]
将 setting.getOwnOrganizationPath 移至 utils.get_own_organization/utils.get_own_organization_path。[巴斯蒂安]
添加了方法 utils.get_plone_groups 返回给定组织的每个 Plone 组。[巴斯蒂安]
添加了 utils.get_plone_group,它返回给定组织 UID 和后缀的 Plone 组。[巴斯蒂安]
在 IContactPlonegroupConfig.functions DataGridField 上禁用 auto_append。[巴斯蒂安]
创建链接到组织的 Plone 组时通知事件 PlonegroupGroupCreatedEvent。[巴斯蒂安]
z3c.table 批处理在显示子组织时不起作用,因此将 batchSize 和 startBatchingAt 设置为 999 而不是 200,因此我们很确定它永远不会显示。[巴斯蒂安]
在显示“@@suborganizations”时,在没有子组织时显示特定消息“No suborganization”,而不是不显示任何内容。[巴斯蒂安]
添加了可从collective.contact.plonegroup 导入的默认记录器。[巴斯蒂安]
添加了 utils.select_organization 以便能够从组织注册表中选择或取消选择组织。[巴斯蒂安]
创建克隆组时,翻译标题中显示的后缀。[巴斯蒂安]
1.9 (2018-09-04)
添加了 utils.get_plone_group_id 以获取给定组织和后缀的 Plone 组 ID。[巴斯蒂安]
覆盖“@@suborganizations”视图以在表格中显示包含的组织和子组织的整个层次结构以及更多信息。[巴斯蒂安]
当 plonegroup-organization 显示在 tooltip 中时,请使用原始方式显示子组织,因为使用 table 的新渲染在 tooltip 中占据了太多位置。[巴斯蒂安]
1.8.1 (2018-07-30)
按全名排序用户词汇 [sgeulette]
在 travis 上添加了缓存。[煎饼]
1.8 (2017-09-18)
更正了删除站点时的错误。[煎饼]
更正了组修改。添加了迁移步骤。[煎饼]
1.7 (2017-07-25)
检查是否在事件中启用了链接完整性。[煎饼]
1.6 (2017-05-30)
仅在必要时使用管理器角色,以避免在重新编目时出现“SystemError: Excessive recursion” [sgeulette]
防止组删除 [sgeulette]
更正了对象粘贴处的订阅者 [sgeulette]
1.5 (2016-12-13)
获取具有经理角色的选定组织,因为 plone.formwidget.masterselect 将 ++widget++ 称为匿名。[煎饼]
1.4 (2016-12-07)
一个用户只调用一次。[煎饼]
改进 util 方法并添加测试 [sgeulette]
添加了获取具有自定义标题的选定组织的方法 [sgeulette]
添加了获取 orgs 用户和词汇表的方法 [sgeulette]
1.3 (2016-04-15)
使用存储的缓存密钥使所有 zeo 客户端上的缓存无效 [sgeulette]
1.2 (2016-01-13)
无限制搜索列出自己的组织,可能是空列表的原因 [sgeulette]
将 OrderedSelectWidget 大小增加到 15 行。[煎饼]
使用相同的权限来保护 config view 和 configlet。[煎饼]
1.1 (2015-12-11)
将标题作为 unicode 放在词汇表中。[煎饼]
1.0 (2015-11-24)
删除 plonegroup 组织时添加了链接完整性检查 [sgeulette]
添加了标记界面以区分 plonegroup 组织 [sgeulette]
将选定的组织词汇添加为大象词汇:正确显示没有更多选定的术语。[煎饼]
不要停用使用过的 plonegroup 组织 [sgeulette]
检查状态以构建 OwnOrganizationServicesVocabulary。[cedricmessiant]
在 OwnOrganizationServicesVocabulary 中将 token 设置为 UID。[煎饼]
向站点管理员授予对 configlet 的访问权限 [sgeulette]
Flake8 更正 [sgeulette]
0.2 (2014-03-18)
更正了清单以包含所有文件。
0.1 (2014-02-13)
初始发行。[煎饼]