Plone的附加组件
项目描述
collective.iconifiedcategory
本产品允许您使用图标标识的分类来对创建的内容进行分类。
可以启用一个dexterity行为,它将添加一个“内容分类”字段,该字段将列出在配置中定义的可用分类。
因此,您首先需要在某处添加一个ContentCategoryConfiguration来定义分类。然后添加一个CategoryGroup,可能在此处激活一些额外功能。
内容是否机密?
内容是否是打印元素?
内容是否是签名元素?
如果激活,这些字段将使用行为在内容上可用。
然后在CategoryGroup中,您将能够添加由标题和图标特征化的ContentCategory。这些ContentCategory元素将是用于在内容上选择分类的词汇表中的术语。
此包具有广泛的可覆盖性,旨在管理许多图标化分类的使用情况。
包含分类内容的A元素将显示一个特殊的小部件,分类内容将通过图标分组显示在ContentCategory后面。
还有一个表格视图可供选择,列出了带有更多详细信息的分类内容。
截图即将到来…
安装
通过将其添加到您的buildout来安装collective.iconifiedcategory
[buildout] ... eggs = collective.iconifiedcategory
然后运行 bin/buildout
贡献
许可协议
本项目采用GPLv2许可证。
贡献者
Martin Peeters,原作者 [Affinitic]
更改日志
0.67 (2024-04-10)
修复了在 result_type=’objects’ 和 sort_on=’getObjPositionInParent’ 时utils.get_categorized_elements的问题。[gbastien]
更正了 Preview 的法语翻译中的错误。[gbastien]
从 utils.validateFileIsPDF 中移除了优化,以避免多次验证,因为这会破坏同一 REQUEST(例如使用rest api时)中添加的多个元素的验证。[gbastien]
添加了 collective.iconifiedcategory.every_category_uids 词汇表,该词汇表列出了每个找到的分类,其uid作为词汇表术语令牌。[gbastien]
0.66 (2024-02-27)
由于笔误而更正了错误。[sgeulette]
0.65 (2024-02-19)
将容器克隆事件替换为移动事件,以处理路径中容器的重命名、复制/粘贴和剪切/粘贴。[sgeulette]
删除了无用的IconifiedModifiedEvent [sgeulette]
在适当的订阅者定义中使用了 IIconifiedCategorizationMarker [sgeulette]
删除了一些hasattr测试(MOD-831)并更正了事件对象 [sgeulette]
处理了分类元素的剪切/粘贴和重命名 [sgeulette]
0.64 (2024-02-08)
在 ContentCategoryConfiguration 类型上添加了 IExcludeFromNavigation 行为 [sgeulette]
更正了错误的步骤依赖关系 [sgeulette]
0.63 (2024-01-02)
在 config.py 中为设置注册记录添加了 get_ 和 set_ 方法。[gbastien]
0.62 (2023-12-11)
在更新现有元素时修复了 CategorizedObjectPreviewAdapter.status。[gbastien]
0.61 (2023-11-27)
简化了 CategorizedChildView.has_elements_to_show。[gbastien]
0.60 (2023-09-21)
在 metadata.xml 中更正了版本(2105)。[gbastien]
0.59 (2023-09-04)
在任何相关的情况下显示文档转换旋转器。[gbastien]
在 categorized_elements 数据中添加了 contentType 值。[gbastien]
0.58 (2023-08-24)
添加了新字段 ICategorize.show_preview,将元素链接转换为 collective.documentviewer 预览而不是下载。当预览计算正在进行时,修复了显示的图标。[gbastien]
在 tooltipster 中强制图标 width/height 为 16px(categorized-childs.pt 和 categorized-childs-infos.pt)。[gbastien]
在 ContentCategory.xml 中更正了 ContentCategory portal_type 标题。[gbastien]
0.57 (2023-03-30)
当没有请求(使用 plone.app.async)时,将 None 传递给 ImageDataModifiedImageScaling 而不是 {},以便当使用 plone.protect >= 3 时,plone.namedfile 缩放感到高兴。[aduchene]
0.56 (2023-02-27)
调整了 More infos 的法语翻译。[gbastien]
0.55 (2022-09-29)
修复了 utils.get_ordered_categories 和 IconifiedCategoryGroupAdapter.get_every_categories,以确保返回的分类来自正确的 config_root,如果 config_root 发生更改,则无效化 cachekey。[gbastien]
0.54 (2022-06-14)
添加了 @@categorized-childs-manage,它将渲染一个管理分类元素的链接。[gbastien]
实现了 CategorizedContent._unrestrictedGetObject 作为 collective.eeafaceted.z3ctable 调用,现在 item._unrestrictedGetObject 替代了 item.getObject 以进行性能优化。[gbastien]
添加了 safe_utils.py,它将仅包含安全实用程序。[gbastien]
我们需要转义一些内容以避免恶意内容
依赖collective.eeafaceted.z3ctable显示分类内容表,它管理转义内容;
在词汇表中转义分类标题。
[gbastien]
0.53 (2022-04-22)
使 validateFileIsPDF 变量检查直接在数据上是否存在 contentType,以避免对文件进行检查。[gbastien]
0.52 (2022-03-22)
修复了 metadata.xml 版本,设置为 2103 而不是 2101。[gbastien]
0.51 (2022-03-10)
更新升级步骤到 2103(将‘last_updated’添加到 categorized_elements),如果在元素的 categorized_elements 中找到 last_updated 键,则不停止,继续到下一个元素,可能有些元素已被其他代码部分的更新。[gbastien]
0.50 (2022-01-03)
尽可能使用不受限制的目录查询。[gbastien]
对于生成 CSS 的视图,执行目录查询以获取没有 path 和 sort_on 的分类,从门户调用,顺序不重要。[gbastien]
添加了 collective.iconifiedcategory.every_categories 和 collective.iconifiedcategory.every_category_titles 词汇表,返回所有可能的分类,包括未启用的分类。这将被用于管理 z3c.form 的 MissingTerms 适配器。[gbastien]
修复了生成 collective-iconifiedcategory.css 的视图,获取包括未启用的所有分类。[gbastien]
优化了 @@categorized-childs 视图,只计算一次所有内容(上下文 URL、上下文 UID 等)并在 TAL 表达式中使用 python 或 string。默认情况下,使用 check_can_view=False 调用 utils.get_categorized_elements。[gbastien]
向 utils.get_categorized_elements 添加了 check_can_view=True 参数。这将在必要时才执行 IIconifiedContent.can_view 检查。[gbastien]
将数据 last_updated 添加到 categorized_elements 以用于缓存。添加到版本 2103 的升级步骤。[gbastien]
优化了 ram.cache 的 utils.get_ordered_categories 键,缓存直到任何分类添加/删除/位置更改。[gbastien]
0.49 (2021-07-16)
添加了在分类元素任何属性上过滤显示的分类元素的可能性。[gbastien]
依赖于 imio.helpers,因为我们需要 :json 后缀类型转换器。[gbastien]
只为 AT IBaseObject 和 DX IDexterityContent 或其他提供 OFS IItem 的元素(如 portal_type)注册 categorized_content_container_cloned ObjectClonedEvent 处理器,因为它是这样应用的。[gbastien]
添加了位于分类元素表下方的特定 collective.iconifiedcategory.belowcategorizedelements 视图管理器,如果表被显示,则将显示它。[gbastien]
通过将其制作成一个 BrowserView 来使 z3c.table CategorizedTable 更容易覆盖。[gbastien]
将 FilesizeColumn 适配以在列标题中显示总文件大小。[gbastien]
添加了 soft_warn_filesize,这是一个应用于超过 1 Mb(如已经应用于超过 5 Mb 的 warn_filesize CSS 类)的文件的 CSS 类。[gbastien]
移除了 显示详细信息 操作,除了由于显示原因,在弹出窗口中显示多于 2 列的元素外,详细信息总是显示的。[gbastien]
0.48 (2021-01-19)
依赖于 CategorizedObjectAdapter.can_view 来管理对分类元素的访问,这样,我们可以管理当前用户没有元素上的 View 权限,但访问由 can_view 适配器方法管理的用例。[gbastien]
0.47 (2020-08-18)
添加了 Nothing. 的缺失翻译。[gbastien]
在 utils._categorized_elements 中,使用 aq_base 获取 categorized_elements 以确保我们获取上下文上的一个。确实,父元素也可能有此属性……[gbastien]
不要使用 portal_catalog 来获取 categorized_elements,而是在 categorized_elements 数据中存储 allowedRolesAndUsers 并依赖于它来获取直接存储在父元素中的内容。这是出于性能原因。[gbastien]
删除了未使用的 utils.get_UID 函数。[gbastien]
确保使用不存在的 content_category 创建的内容不会破坏任何东西。[gbastien]
0.46 (2020-06-24)
通过为 IIconifiedCategorization.default_titles 定义默认值(该值不在适配的上下文中存储)来使 plone.restapi 验证满意。[gbastien]
0.45 (2020-05-26)
当使用 collective.solr 时,大脑不是 ICatalogBrain 但 PloneFlare,因此当安装时注册 IIconifiedContent 适配器。[gbastien]
0.44 (2020-05-08)
不要使用标记为 IIconifiedCategorization 或 content_category.setter 的行为来创建元素,因为这些方法现在不再起作用。 [gbastien]
0.43 (2020-04-30)
已调整测试以使用 file_txt 而不是 file 作为默认 File 的 ID,因为 file 既是字段的名称,portal.file 返回的是 File 实例,而不是因为缺少 file 字段而中断。 [gbastien]
在创建新元素且没有选择文件时,不要在 utils.validateFileIsPDF 中中断。 [gbastien]
0.42 (2020-04-29)
将参数 use_category_uid_as_token=False 添加到 CategoryVocabulary.__call__ 方法中,以便可以使用类别/子类别作为术语标记,而不是计算出的内容 ID(默认值)。 [gbastien]
0.41 (2020-03-12)
当分类元素属性更改时(to_print、confidential 等)触发的事件已分解。现在只触发一个 IIconifiedAttrChangedEvent 事件。此外,它已优化以避免过多的处理。 [gbastien]
在创建新分类元素时,删除了对 IconifiedAttrChangedEvent(‘confidential’) 的特定调用。 [gbastien]
添加了 ICategorize.only_pdf 参数,使其能够定义分类元素是否为文件,它只能为 PDF。还添加了对 IIconifiedCategorization 的不可变约束,检查在分类元素具有文件字段且使用的内容类别具有 only_pdf=True 时文件是否为 PDF。 [gbastien]
0.40 (2020-02-18)
使 CategorizedTabView 中列的显示与 @@categorized-childs-infos 视图中详细图标的外观一致,在两种情况下都依赖于 CategorizedChildInfosView.show [gbastien]
0.39 (2019-11-26)
添加了对 publishable 属性的管理,就像 to_print 或 confidential 属性一样。在可能的情况下进行分解。 [gbastien]
0.38 (2019-08-23)
修复了代码以与 plone.app.async 一起工作,因为在这种情况下,没有 REQUEST。为此,需要通过实例化 ImageDataModifiedImageScaling 类来获取 @@images 视图,这可能在子包中覆盖时成为问题。 [gbastien]
尝试再次修复当分类元素标题显示在多行时 tooltipster 弹出窗口的问题。 [gbastien]
0.37 (2019-06-14)
避免在 tooltipster 弹出窗口中垂直滚动,当分类内容标题显示在多行时。 [gbastien]
在 Travis 中强制使用 distribution trusty。 [gbastien]
0.36 (2019-04-23)
覆盖了 ImageScaling.modified,以考虑实际存储的图标文件 _p_mtime 而不是类别 _p_mtime,因为类别的 _p_mtime 可以由于多个原因而更改,这会破坏使用图标的内容。此外,现在只有在图标文件更改时才需要更新使用类别的元素。 [gbastien]
在 select2 下拉菜单中强制显示小图标,以便它适合可用空间,这是在上传大图标时的情形。在字段 ContentCategory.icon 上添加了描述,说明要使用 16x16 图像图标。 [gbastien]
0.35 (2019-02-22)
使用 ram.cache 对 utils.get_ordered_categories 进行缓存,在 REQUEST 期间。 [gbastien]
当使用 utils.get_ordered_categories 和 IconifiedCategoryGroupAdapter.get_every_categories 时,添加了参数 only_enabled (默认为 True),以便在 utils.sort_categorized_elements 中拥有所有类别。 [gbastien]
使用生成的 scale mini URL 作为图标 URL,以便它可以被缓存。 [gbastien]
在更新使用 ContentCategory 的元素之后触发 CategorizedElementsUpdatedEvent。 [gbastien]
使用 natsorted 而不是 realsorted 对附件按标题排序。 [gbastien]
更新升级步骤,因为步骤 2100 应该在步骤 2000 之前完成……删除了步骤 2000 并将其集成到步骤 2100 中,因此我们首先计算 ContentCategory 图标列表缩放,然后更新每个分类元素。 [gbastien]
0.34 (2019-01-31)
在 @@categorized-childs-infos tooltipster 视图的顶部显示 content_category 标题。 [gbastien]
使用 natsort.realsorted 对分类元素按其标题进行排序,元素按标题排序,不考虑标题是大写还是小写。 [gbastien]
将 context._p_changed = True 移动到 utils.sort_categorized_elements 方法中,以确保调用它将正确管理 _p_changed。 [gbastien]
0.33 (2018-08-03)
针对FontAwesome的CSS适配,从版本5+开始,字体名称从FontAwesome更改为Font Awesome 5 Free。需要collective.fontawesome >= 1.1。[gbastien]
0.32 (2018-05-04)
添加了在多个列上显示大量元素时必要的和样式。[gbastien]
确保图标通过将图标和分类元素标题的第一词包裹在使用的<span>中,粘附在tooltipster弹出窗口的文本第一词上。[gbastien]
0.31 (2018-05-03)
修复了tooltipster弹出窗口中应用的CSS,用于活动机密。[gbastien]
0.30 (2018-04-20)
确保应用CSS的元素数量在tooltipstered或不tooltipstered时都已完成。[gbastien]
为JS方法tooltipster初始化分类元素添加了传递CSS选择器的可能性。[gbastien]
0.29 (2018-02-14)
适配了tooltipster的JS调用,因为
现在使用tooltipster 4.2.6。需要 > 0.1。[gbastien]
0.28 (2018-01-23)
当更改元素的content_category时,如果它仍然是原生的默认值,则重新应用字段to_print、confidential、to_sign和signed的默认值。默认值与content_category相关。[gbastien]
0.27 (2017-12-07)
在actionview.BaseView中,将ObjectModifiedEvent从__call__移动到set_values方法,以便直接使用它来更新父级的categorized_elements。[gbastien]
0.26 (2017-11-29)
为图像使用特定的静态资源目录。[gbastien]
0.25 (2017-11-28)
在IconClickableColumn.is_editable中调用actionview._may_set_values以避免双重逻辑。[gbastien]
0.24 (2017-11-27)
修复了迁移,该迁移向包含分类内容的父级元素的categorized_elements添加了与to_sign/signed相关的数据。使用
执行更新,不必关心已经迁移的内容,对每个找到的元素执行更新。[gbastien] 为SignedChangeView视图添加了测试,特别是对于可能的to_sign/signed组合值的循环。[gbastien]
如果容器没有具有categorized_elements字典,则删除具有content_category的元素时不要中断。[gbastien]
改进了一些翻译。[gbastien]
对获取content_category词汇
和 的方式进行了模块化,以便易于覆盖,并且我们依赖于相同的源方法来处理这两个词汇。[gbastien]
0.23 (2017-08-10)
添加了对to_sign和signed属性的类似管理,就像对to_print和
属性的管理一样。这两个属性都使用单个操作 ,该操作有3个选项: 、 和 。[gbastien] to_print、
和to_sign/signed的默认值现在在IObjectAddedEvent中管理,而不是在 中,这样所有属性都以相同的方式管理,因为to_print和 是简单属性,而to_sign/signed可以从 的 行为中获取。[gbastien] 在分类元素tooltipster中添加了显示/隐藏有关to_print、
、to_sign/signed的详细信息的功能。
0.22 (2017-08-04)
使门户在tabview实例上可用。[gbastien]
0.21 (2017-07-18)
撤销了发布版本<0.19>和<0.20>中的更改,因为我们不会绕过can_view,如果元素不是
,因为can_view可能考虑比 更多的元素。[gbastien]
0.20 (2017-07-14)
确保我们在不接收
但< categorized_elements>的情况下正确绕过 中的 ,当元素不是机密时。[gbastien]
0.19 (2017-07-13)
从utils和views中分解调用_check_can_view,以确保只有当obj是机密时才进行检查。这个修复解决了一个bug,即对非机密obj进行了can_view检查,尽管它在分类元素表中显示,但在@@download时仍然引发了错误。[gbastien]
0.18 (2017-05-29)
在更新分类元素时添加了缺失的翻译。[gbastien]
在fti类型上使用icon_expr而不是content_icon来定义图标。实际上我们希望不定义图标,因为类型图标是通过CSS显示的。[gbastien]
向由utils.calculate_category_id生成的content_category添加了一个额外的级别,以避免为不同的分类组生成相同的content_category。[gbastien]
向utils.update_all_categorized_elements添加了参数sort=True,以便能够禁用耗时的排序。[gbastien]
0.17 (2017-03-22)
使plone.formwidget.namedfile的@@download视图具有can_view意识。[gbastien]
0.16 (2017-03-08)
如果它们在组中被禁用,则在添加和显示视图中正确隐藏to_print和confidential小部件。[mpeeters]
添加了新的事件以限制父级上的更新信息。[mpeeters]
添加了一个选项,以仅更新父级的分类信息。[mpeeters]
0.15 (2017-02-17)
调整了翻译,使其更易于理解。[gbastien]
如果当前不是在删除《Plone站点》,则在category_before_remove中仅调用_cookCssResources。[gbastien]
使ICategory.icon成为一个主字段,这样我们就可以使用一个更简单的下载URL,该URL仅是path_to_object/@@download而没有文件名。这是为了解决Apache中的一个bug,当文件名包含%c%字符时会出现该bug。[gbastien]
0.14 (2017-02-13)
在categorized-childs-infos视图的<ul>标签上生成一个CSS类,该类是当悬停在categorized-childs元素上时调用的AJAX视图,这将提供在多列中显示信息的能力。当在tooltipster小部件中显示具有相同content_category的同一分类的元素时,这是必要的。在iconifiedcategory控制面板中可以定义< cite>在显示同一分类的分类元素时,每列显示的最大元素数。[gbastien]
将注册参数filesizelimit移动到IIconifiedCategorySettings。[gbastien]
在categorized_content_container_cloned IObjectClonedEvent事件处理程序中添加了一种方法来延迟调用utils.update_all_categorized_elements。[gbastien]
0.13 (2017-02-09)
使collective-iconifiedcategory.css可缓存和可烹饪,以避免在每一页上重新计算。当添加或移动类别时,我们调用< cite>portal_css.cookResources。对于子类别不需要重新烹饪,因为它使用与父类别相同的CSS类。[gbastien]
0.12 (2017-02-09)
如果上下文没有categorized_elements OrderedDict,则不要在utils.get_categorized_elements中失败。[gbastien]
0.11 (2017-02-07)
在tabview中使用batchSize为999来显示每个分类元素。[gbastien]
在utils.get_categorized_elements中,如果categorized_elements字典为空,则不执行目录查询。[gbastien]
0.10 (2017-02-05)
只有当当前元素是< cite>confidential时才检查< cite>can_view,此外,只有当元素是< cite>confidential时才实例化IIconifiedContent适配器来检查< cite>can_view。[gbastien]
0.9 (2017-01-31)
调整了CSS选择器,它改变了在tooltipster中显示的分类元素数量的< cite>font-size。[gbastien]
添加了一种方法来延迟分类内容创建事件,并在分类内容更新事件中延迟调用utils.update_categorized_elements。这样,我们可以在正确的时间管理添加多个分类元素,但只更新分类元素字典(包括耗时的排序)[gbastien]
修复了测试,使其在Plone 4.3.7和Plone 4.3.11中都能正常工作[gbastien]
0.8 (2017-01-25)
如果当前上下文没有categorized_elements字典,则在《categorized-childs-infos》中不要失败[gbastien]
0.7 (2017-01-23)
使用 category_uid 代替 category_id 作为 CategorizedChildInfosView 使用的infos字典的键,实际上,在同一个容器上,针对不同的分类元素,我们可能使用不同的配置,并且这些配置可能包含具有相同id的分类。[gbastien]
如果用于图标化的分类的图标包含特殊字符,不要中断。[gbastien]
0.6 (2017-01-17)
使用ajax显示分类子元素的信息。[gbastien]
使select2小部件更大,并在选项之间没有填充,以便同时显示更多选项。[gbastien]
向 categorized-childs 视图添加选项 show_nothing=True,以便在没有任何要显示的分类内容时显示/隐藏“无”标签。[gbastien]
0.5 (2017-01-13)
如果 utils.sort_categorized_elements 中找不到键,不要失败,这可能是复制/粘贴时新元素使用另一个配置的情况。[gbastien]
0.4 (2017-01-12)
按字母顺序对 categorized_elements 进行排序到类别中,这样可以直接在tooltipster或tabview中显示,而无需再次排序元素。[gbastien]
添加方法 IconifiedCategoryGroupAdapter.get_every_categories,它获取所有可用的分类。主要为了被覆盖,它在 utils.get_ordered_categories 中使用,以管理容器可能包含使用不同分类组的分类元素。[gbastien]
添加一个配置工具,允许用户在分类标签视图中按标题排序元素。[mpeeters]
确保分类元素按组文件夹顺序排序。[mpeeters]
重构图标化JavaScript函数。[mpeeters]
提高在tooltipster中显示分类元素的速度。[gbastien]
如果存在分类或子分类,不要在删除Plone站点时失败。[gbastien]
0.3 (2016-12-21)
更改链接使用的图标,用于 更多详情。[gbastien]
如果子分类标题包含特殊字符,不要失败。[gbastien]
将图标 more_infos.png 转换为一个独立的资源,除了存储在声明为resourceDirectory的 static 文件夹中的其他资源外,这样就可以轻松覆盖。[gbastien]
0.2 (2016-12-07)
在点击tooltipster根元素时使用 javascript:event.preventDefault(),以避免更改当前URL的链接动作。[gbastien]
在 target=_parent 中打开 更多详情 链接,这样在iframe中显示时,它将在 _parent 框架中打开,即在外部打开。[gbastien]
0.1 (2016-12-02)
初始版本。[mpeeters]
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
collective.iconifiedcategory-0.67.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 16208a05581a34b9b8efd73721662c7e9a66d052902cfe14e4f87b9d20217c35 |
|
MD5 | 6041845b3167bfbaad400b6a1c76933d |
|
BLAKE2b-256 | 3fcb2ad6f1b257d710159c313951fddde21c97bce521cb45c5e5c6134c95cc0b |