各种开发辅助方法。
项目描述
imio.helpers
各种开发辅助方法。
需求
条形码生成方法使用zint工具(https://sourceforge.net/projects/zint/)。
您必须安装zint版本 >= 2.6.0。
缓存
使用cache.get_plone_groups_for_user(the_objects=True)代替portal_groups.getGroupsForPrincipal,避免使用portal_groups.getGroupById,而使用source_groups.get。
变更日志
1.1.0 (2024-10-02)
从imio.pyutils导入batch_delete_files,如果有人在这里使用它。[sgeulette]
如果没有分批处理,则认为批处理已完成。[sgeulette]
1.0.1 (2024-09-18)
生成通用wheel版本。[sgeulette]
1.0.0 (2024-09-16)
改进了emailer.send_email,使用send代替securesend(不使用队列)。[sgeulette]
添加了对应于01/01/1950 at 12:00的EMPTY_DATETIME值。[gbastien]
改进了批处理模块[sgeulette]
添加了batching.can_delete_batch_files[sgeulette]
1.0.0rc4 (2024-07-08)
添加了处理空索引搜索的“空”变量。[sgeulette]
1.0.0rc3 (2024-06-07)
添加了将禁用链接2秒并避免双击的JS辅助函数temp_disable_link。[gbastien]
1.0.0rc2 (2024-04-10)
添加了批处理模块。[sgeulette]
修复了JS函数submitFormHelperOnsuccessDefault管理返回结果的错误方式,现在我们有正确的filename。[gbastien]
添加了transmogrifier Expression和Condition类,以记录表达式编译或解释错误。[sgeulette]
删除了content.safe_encode,因为它已在imio.pyutils中定义。在imio.helpers.content中从imio.pyutils导入它以实现临时向后兼容,将予以删除。[gbastien]
覆盖了@@folder_contents,使其与DashboardCollection一起工作。[gbastien]
Monkeypatched plone.app.querystring.registryreader.getVocabularyValues以在Plone4中保持词汇顺序,Plone5+中的行为是正确的。管理每个HAS_PLONE_X值。[gbastien]
1.0.0rc1 (2024-02-08)
使其与Plone 4、Plone 5、Plone 6兼容[boulch, laulaz, sgeulette]
在< cite >setup.py中需要pathlib2,为py2.7回退pathlib。[gbastien]
添加了security.setup_app以在运行脚本中使用。[sgeulette]
添加了setup.load_xml_tool_only_from_package以仅加载主工具xml文件。[sgeulette]
添加了setup.test_remove_gs_step以删除通用设置步骤。[sgeulette]
添加了imio.helpers.YesNoForFacetedVocabulary[sgeulette]
修复了不返回默认值的content.base_getattr。[gbastien]
0.80 (2023-12-11)
为content.get_user_fullname添加了参数with_user_id,这将包括用户id在括号中,如Firstname Lastname (userid)。[gbastien]
为security.get_user_from_criteria添加了参数userid[sgeulette]
0.79 (2023-11-28)
改进了security.get_user_from_criteria,以在ldap结果中添加电子邮件和描述。[sgeulette]
包含Products.CMFCore权限.zcml[sgeulette]
0.78 (2023-10-27)
添加了将返回给定WF最终状态的workflow.get_final_states。[gbastien]
0.77 (2023-10-19)
添加了将解码HTML文本的HTML实体的xhtml.unescape_html。[gbastien]
0.76 (2023-09-28)
添加了 transmogrifier.get_correct_id,用于生成带有编号或字母后缀的不存在的ID。[sgeulette]
将 transmogrifier.correct_path 重命名为 transmogrifier.get_correct_path。[sgeulette]
0.75 (2023-09-04)
修复了 setup.load_type_from_package 在加载Dexterity FTI时的错误,因为它无法清除旧值。对于 Dexterity FTI,禁用了清除,添加了新参数 purge_actions=False,该参数将移除 Dexterity FTI 的操作,使其以正确顺序重新加载。[gbastien]
改进了 transmogrifier.str_to_date,添加了最小值和最大值限制。[sgeulette]
修复了在 content.sort_on_vocab_order 中出现的 ValueError: ‘value’ is not in list 错误,当给定的 p_values 中的值不在给定的 p_vocab 中时。[gbastien]
0.74 (2023-08-24)
修复了在检查注释时 cache.obj_modified 的问题,注意当存储的注释中的值变化且该注释是 PersistentMapping 时,不要更改 _p_mtime。还删除了参数 asstring=False,当 asdatetime=False 时,返回值是浮点数,便于用作缓存键。[gbastien]
在 content.uuidsToObjects、content.uuidsToObject、content.uuidsToCatalogBrains 和 uuidsToCatalogBrain 中添加了 catalog 参数,以允许查询其他目录(例如 uid_catalog)[mpeeters]
0.73 (2023-07-20)
在 content.get_user_fullname 中增加了防御性措施,在某些情况下,在 mutable_properties 中找到了用户ID,但没有与之关联的属性。[gbastien]
改进了 transmogrifier.clean_value,提供了替换值。[sgeulette]
0.72 (2023-07-12)
在 submitFormHelperOnsuccessDefault JS函数中,只有当 content-type 是 application/xxx 时才管理 blob。[gbastien]
添加了 content.sort_on_vocab_order,它将根据给定的词汇表术语顺序对值列表进行排序。这依赖于来自 imio.pyutils 的 sort_by_indexes,现在它是一个依赖项。[gbastien]
0.71 (2023-07-07)
修改了 transmogrifier.relative_path,添加了选项以保留前导斜杠(默认为True)。[sgeulette]
在 content.get_user_fullname 中,如果在最后找不到 fullname,最终将回退到 portal_membership.getMemberInfo,这在使用LDAP时有时是必要的。[gbastien]
删除了为 get_state_infos、get_transitions 和 do_transitions 提供的向后兼容导入,它们已从 content 移动到 workflow。[gbastien]
0.70 (2023-06-21)
添加了 security.check_zope_admin(从 Products.CPUtils 移动而来)。[gbastien]
改进了 transmogrifier.filter_keys。[sgeulette]
添加了 workflow.update_role_mappings_for 辅助程序,用于更新给定对象的WF角色映射。[gbastien]
0.69 (2023-05-31)
对 CatalogTool._listAllowedRolesAndUsers 进行了Monkeypatch,添加了 ram.cache 装饰器。[gbastien]
0.68 (2023-05-12)
在transmogrifier模块中添加了 split_text。[sgeulette]
添加了 workflow.get_leading_transitions,它将返回指向给定 state_id 的所有WF转换。[gbastien]
0.67 (2023-03-29)
在transmogrifier模块中添加了 clean_value、correct_path、filter_keys 和 get_obj_from_path。[sgeulette]
在transmogrifier模块中添加了 key_val、pool_tuples 和 str_to_date。[sgeulette]
将 text_int_to_bool 重命名为 str_to_bool。[sgeulette]
0.66 (2023-02-13)
添加了 transmogrifier 模块,包含 get_main_path、relative_path 和 text_int_to_bool 函数。[sgeulette]
在 get_user_fullname 函数中添加了 none_if_unfound 参数。[sgeulette]
在JS函数 callViewAndReload 中添加了参数 onsuccess=false,以便在成功后触发自定义JS代码。[gbastien]
添加了 xhtml.is_html,它将返回True或False,表示给定的文本是否为HTML。[gbastien]
当电子邮件姓名中包含重音字符时,引发验证错误。[sgeulette]
0.65 (2022-12-07)
当使用 get_again=True 调用 cache.invalidate_cachekey_volatile_for 时,返回新日期。[gbastien]
使用 dict.items 代替 dict.iteritems 以实现Py2/Py3兼容性。[gbastien]
0.64 (2022-10-28)
添加了 workflow.remove_state_transitions 函数,用于删除状态上的转换并清除重复项。[sgeulette]
对缓存方法添加了更多测试。[sgeulette]
0.63 (2022-09-01)
在调用 GroupAwareRoleManager.assignRolesToPrincipal、ZODBRoleManager.assignRoleToPrincipal 和 ZODBRoleManager.removeRoleFromPrincipal 后,无效化‘_users_groups_value’的易失性。[sgeulette]
移除了重复的分类器。[sgeulette]
0.62 (2022-08-19)
使用 IMIOStorage 添加了 IMIORAMCache 以延长使用的缓存时间并提高显示的统计数据。[gbastien]
根据 decorate_acl_methods 环境变量添加了各种 acl 方法的缓存。[gbastien, sgeulette]
添加了 IIMIOLayer BrowserLayer(需要执行升级步骤到 2)。[gbastien]
覆盖了 caching-controlpanel-ramcache 以计算 Hits、Misses、Size 和 Entries 的总数,显示 Older entry,当发生 pickle 错误时不要中断以显示统计数据,但添加一个门户消息。[gbastien]
向 cache.get_cachekey_volatile 添加了参数 ttl=0,这样超过给定 ttl(秒)的日期将被重新计算。
在 content.get_user_fullname 中添加了 'none_if_no_user' 参数。[sgeulette]
在 content.get_user_fullname 中始终返回 unicode。[sgeulette]
添加了基于 iA.delib 的有用方法的 test_helpers.ImioTestHelpers 类。[sgeulette]
添加了 vocabularies.SimplySortedUsers 并修改了 vocabularies.SortedUsers。[sgeulette]
添加了 cache.get_users_in_plone_groups。[sgeulette]
添加了 setup.load_type_from_package 以重新加载单个类型。将 workflow.load_workflow_from_package 移动到 setup.load_workflow_from_package。[gbastien]
0.61 (2022-07-01)
将与工作流相关的函数从内容移动到工作流模块。[sgeulette]
添加了 workflow.load_workflow_from_package 以重新加载单个工作流。[sgeulette]
在 JS 函数 toggleDetails 中,如果标签不可用,请进行防御性处理。[gbastien]
0.60 (2022-06-24)
在 set_site_from_package_config 中处理了未找到的站点。[sgeulette]
0.59 (2022-06-21)
在 xhtml.object_link 上添加了 escaped=True 参数。[sgeulette]
需要足够新的 future 版本,以便可以使用 html.escape。[gbastien]
向 xhtml.storeImagesLocally 添加了参数 replace_not_found_image=True,当 True(默认)且无法检索到图像时,将使用 Not found 图像。这解决了复制/粘贴另一个站点中的私有图像的问题,由于共享身份验证在浏览器中可用,但不能检索。[gbastien]
0.58 (2022-06-14)
添加了 get_zope_root 以获取 zope 应用程序。[sgeulette]
在 set_site_from_package_config 中添加了 zope_app 参数。[sgeulette]
修复了 xhtml.replace_content,确保替换整个内容,包括子标签。[gbastien]
0.57 (2022-06-10)
添加了 NoEscapeLinkColumn 作为用于渲染 html 的链接列的基础。转义必须在继承的列中完成。[sgeulette]
content.uuidToObject 现在在未找到 uuid 时将返回 None 而不是空列表。[gbastien]
在 security.set_site_from_package_config 中移除了 zope.app.publication 依赖项,因为它现在已经从 Plone >= 5.2.6 中移除。[aduchene]
0.56 (2022-05-13)
添加了 setup_ram_cache 方法。[sgeulette]
添加了 set_site_from_package_config 方法。[sgeulette]
0.55 (2022-05-06)
改进了 get_relations 以获取可选引用的对象。[sgeulette]
0.54 (2022-03-25)
基于 content.get_vocab 添加了 content.get_vocab_value,但返回值(默认为 attr_name=’token’,也可以是 value 或 title)。
基于 SimpleTerm 添加了 EnhancedTerm,为术语提供 attrs 字典。[sgeulette]
添加了 cache.cleanForeverCache,这将清除使用 @forever.memoize 装饰器的函数的缓存。[gbastien]
0.53 (2022-03-17)
重构了 get_object。[sgeulette]
0.52 (2022-01-12)
添加了 cache.obj_modified 函数,它返回 obj.modified()、obj._p_mtime 和 __anotations__._p_mtime 之间的最大值。[sgeulette]
添加了 cache.extract_wrapped 函数,它返回原始装饰过的函数。这在测试中比较缓存的和非缓存的输出很有用。[sgeulette]
更新了 git 拉取 URL。[sgeulette]
0.51 (2022-01-03)
添加了对端口 465 上的 SSL 邮件发送器的 monkey patch。[sgeulette]
添加了 content.base_getattr 方法,它将无获取地进行 getattr。[gbastien]
0.50 (2021-11-26)
添加了 content.get_transitions 以获取可用的转换 ID(因为 wfTool.getTransitionsFor 返回包含转换信息的字典列表)。[gbastien]
添加了 adapters.MissingTerms,一个基本的 z3c.form 缺失术语适配器,可以被本地包扩展。[gbastien]
当使用 cache.get_cachekey_volatile 时添加了缓存自动失效机制,调用者方法可以传递,它的名字存储在 volatile 注册表中,然后当调用 cache.invalidate_cachekey_volatile_for 并设置 invalidate_cache=True 时,将从 ram.cache 中使每个缓存方法失效。这将使得过时的缓存在日期改变时立即失效,现有的缓存将不再被使用。[gbastien]
0.49 (2021-11-08)
因为我们需要 content._parse_object_provides_query,所以需要 plone.api>1.9.1。这是必要的,因为我们添加了 content.find。[gbastien]
0.48 (2021-10-20)
将 content.ur_find 重命名为 content.find,具有无限制参数。[sgeulette]
修复了 content.find,避免了当相应循环对象被删除时出错。[sgeulette]
0.47 (2021-10-13)
修复了当用户没有全名时会导致错误的 content.get_user_fullname。[gbastien]
添加了 content.ur_find,它与 api.content.find 相同,但不受限制。[sgeulette]
0.46 (2021-09-28)
添加了 xhtml.replace_content 函数,该函数将替换给定 XHTML 标签的内容。这依赖于通过 imio.helpers[lxml] 添加的额外依赖项 cssselect。[gbastien]
0.45 (2021-07-16)
添加了 imio.helpers.SortedUsers,这是一个使用 natsort.humansorted 排序的用户词汇表。我们需要依赖 natsort 来处理这个问题。[gbastien]
修复了在 submitFormHelper 的 onsuccess 调用时被调用的 JS 函数 submitFormHelperOnsuccessDefault 中的错误,使其仅当响应头 content-length 在请求中找到时将响应视为文件返回,这避免了在调用代码返回错误消息时返回错误的 blob 对象。[gbastien]
0.44 (2021-06-15)
在 xhtml.separate_images 中稍微降低了一点防御性,过于复杂的案例仍然被忽略,但当 <p> 只包含非文本元素如 <br> 或空白时,只需忽略这些元素。[gbastien]
0.43 (2021-05-31)
在验证后降低电子邮件地址的大小写。[sgeulette]
修复了 submitFormHelperOnsuccessDefault JS 函数以处理二进制响应,因此可以下载 AJAX 查询的结果。[gbastien]
添加了 xhtml.imagesToData,它将 xhtml 内容中使用的图像的 src 从 http 或等效 URL 转换为数据 base64 值。[gbastien]
0.42 (2021-04-30)
向 barcode.generate_barcode 添加了参数 filetype='PNG',以便可以使用其他受支持的图像文件格式。[gbastien]
向 emailer.send_email 添加了参数 replyto,以便可以在消息中添加 reply-to 头。[sgeulette]
适配了 content.object_values 和 content.object_ids,以便能够传递单个类名或类名列表,就像 objectValues/objectIds 的情况一样。[gbastien]
0.41 (2021-04-21)
修复了电子邮件器中的编码问题。[sgeulette]
0.40 (2021-04-01)
在 object_link 函数中添加了 target 选项。[sgeulette]
添加了 ZPublisher :json 后缀类型转换器。[gbastien]
更改了 MockMailHost 补丁以避免一些问题。[sgeulette]
让 xhtml.storeImagesLocally 处理使用 base64 编码数据(如 data:image/png;base64,…) 的 src 属性的图像。[gbastien]
0.39 (2021-02-25)
添加了 validate_email_address 来检查具有真实姓名部分的电子邮件地址。[sgeulette]
添加了 validate_email_addresses 来检查以逗号分隔的电子邮件地址。[sgeulette]
添加了 content.get_modified_attrs,当在 IObjectModifiedEvent 处理程序中调用时,将返回实际修改的字段名称列表。[gbastien]
返回电子邮件发送错误消息。[sgeulette]
添加了 content.uuidToCatalogBrain,它是 content.uuidsToCatalogBrains 的快捷方式,但将返回单个值。[gbastien]
添加了 content.object_values 和 content.object_ids 方法,相当于 Zope 的 objectValues 和 objectIds,但将检查包含的元素类名而不是 meta_type,因此它适用于 meta_type 对每种类型都相同的 DX 内容类型。[gbastien]
添加了 content.uuidToObject,它是 content.uuidsToObjects 的快捷方式,但将返回单个值。[gbastien]
修复了 submitFormHelperOnsuccessDefault js 中的 has_faceted 函数调用。[sgeulette]
当在非分面页面上使用 submitFormHelper 时重新加载页面 [sgeulette]
向 JS 辅助函数 toggleDetails 添加了参数 toggle_type='slide',因此可以使用 slideToggle(默认)或 fadeToggle。当隐藏部分包含粘性元素(表格标题)时,fadeToggle 的表现更好。[gbastien]
0.38 (2021-01-06)
添加了 content.normalize_name,该功能将规范化给定名称,这是在创建新内容时将标题转换为 ID 所使用的代码。[gbastien]
0.37 (2020-12-21)
添加了 JS 函数 submitFormHelper,该函数将提交指定的表单,并在 onsuccess 中调用参数中的函数(默认情况下,当在叠加层中调用时,将关闭叠加层并重新加载分面导航)。[gbastien]
添加了 security.fplog 辅助函数,以简化将 collective.fingerpointing 消息添加到日志中的操作。[gbastien]
将 plone.app.relationfield 添加为直接依赖。[gbastien]
0.36 (2020-12-07)
添加了电子邮件函数(create_html_email、add_attachment、send_email),用于创建并发送带有附件的电子邮件。[sgeulette]
优化了 xhtml.separate_images,仅当树包含图像(img 标签)时才遍历树。[gbastien]
将 content.richtextval 的 outputMimeType 参数更改为使用 text/x-html-safe 而不是 text/html。[gbastien]
将 JS 函数 loadCollapsibleContent 重命名为 loadContent,因为可以在 collapsible 范围之外使用它。[gbastien]
0.35 (2020-11-18)
添加了 JS 辅助方法 canonical_url,以获取当前的标准 URL,以便在视图时获取上下文的 URL。[gbastien]
在 toggleDetails JS 函数中,将执行异步加载的部分移动到 loadCollapsibleContent 函数中,以便可以从外部调用它。[gbastien]
添加了 get_user_from_criteria 辅助方法,通过电子邮件或全名搜索用户。[sgeulette]
在 transitions 方法中添加了参数,默认情况下不警告。[sgeulette]
完成了 appy_pod 用例,font-size 50%/150%。[gbastien]
添加了 catalog.merge_queries 函数,该函数将兼容 plone.app.querystring 的目录查询合并为一个单一查询。[gbastien]
在 xhtml.storeImagesLocally 中,如果获取内部图像时发生 NotFound,则不会中断。[gbastien]
0.34 (2020-10-16)
将 JS 函数 setoddeven 从 listings.js 移动到 helpers.js,以便默认情况下可用。[gbastien]
在安全模块中添加了 setup_logger,以更改日志记录器级别(例如,在执行 instance run 时)[sgeulette]
0.33 (2020-10-01)
添加了 content.get_relations 和 content.get_back_relations,以便轻松获取对象的关系和反向关系。[gbastien]
在 xhtml.storeImagesLocally 中,如果图像 URL 包含非 ASCII 字符,则不会中断。[gbastien]
添加了 xhtml.separate_images,确保图像在不同的 <p> 中分离,以避免在 LibreOffice 6.0.x 中使用 appy.pod 时中断。[gbastien]
0.32 (2020-09-10)
在 catalog.addOrUpdateIndexes 和 catalog.reindexIndexes 中,每 1000 个元素记录一次,而不是每 100 个元素记录一次。[gbastien]
修复了代码,使其与 Python 3.8 兼容的 except Exception 语法。[gbastien]
0.31 (2020-08-18)
正确翻译了 utf8 状态标题。[sgeulette]
添加了 content.safe_delattr,以避免在之前需要检查 base_hasattr。[gbastien]
添加了 JS 辅助函数 toggleDetails,以便使用可折叠的 <div> 显示/隐藏详细信息。[gbastien]
完成了 appy_pod 用例,固定图像以使用 https://picsum.photos/ 而不是 https://www.imio.be。[gbastien]
0.30 (2020-06-24)
在 content.uuidsToObjects 中,如果参数 unrestricted=True,则使用 brain._unrestrictedGetObject 获取对象。[gbastien]
0.29 (2020-05-28)
向 content.uuidsToCatalogBrains 和 content.uuidsToObjects 添加了参数 unrestricted=False,当 True 时,目录搜索不受限制。[gbastien]
0.28 (2020-05-26)
向 richtextval 方法添加了 outputMimeType 参数。[sgeulette]
向 content.uuidsToCatalogBrains 添加了参数 query={},这样就可以在具有 UIDs 的情况下完成目录查询,并且您希望根据其他索引(如 review_state)对其进行过滤。[gbastien]
在方法 catalog.addOrUpdateIndexes、catalog.removeIndexes、catalog.removeColumns 和 catalog.reindexIndexes 中添加了新的参数 catalog_id=’portal_catalog’,以便可以使用除 portal_catalog 之外的另一个目录。[gbastien]
在 content.uuidsToCatalogBrains 和 content.uuidsToObjects 中添加了参数 check_contained_uids=False,当设置为 True 时,如果对 UID 索引的查询返回空结果,并且 portal_catalog 中存在 contained_uids 索引(这是一个用于索引未索引元素的 UIDs 的特殊索引),则会查询 contained_uids 索引。[gbastien]
添加了标记接口 IContainerOfUnindexedElementsMarker 以标记包含未索引对象的对象。[gbastien]
0.27 (2020-04-20)
在 xhtml.imagesToPath 中,如果 <img> 使用了错误的 resolveuid/unknown_uid,则不要中断。[gbastien]
修复了测试,使其不使用来自 https://www.imio.be/ 网站的图片,而是使用来自 https://i.picsum.photos/ 网站的图片。[gbastien]
0.26 (2020-02-25)
添加了 set_to_annotation 方法。[sgeulette]
在注释函数中始终返回一些内容。[sgeulette]
0.25 (2019-11-26)
在 xhtml.storeImagesLocally 中添加了日志记录,如果无法遍历到 img_path。[gbastien]
修复了 xhtml.storeImagesLocally 中的错误,其中在其他具有以当前元素 absolute_url 开头的 absolute_url 的 Plone 元素中存储的图像没有本地存储。[gbastien]
0.24 (2019-11-25)
删除了 collective.iconifiedcategory 翻译文件的错误覆盖。[gbastien]
在 get_schema_fields 中添加了可选的行为前缀。[sgeulette]
修复了 xhtml.storeImagesLocally._handle_internal_image 中的错误,以确保遍历到图像的路径不以 / 开头,否则将失败并抛出 KeyError。这是当 Plone Site 使用域名时的情况。同时确保遍历的 img_path 元素实际上是一个 Image。[gbastien]
0.23 (2019-09-12)
添加了辅助方法 content.get_vocab,可以轻松获取 IVocabularyFactory 词汇实例或仅获取工厂(当参数 only_factory=True 时)。[gbastien]
添加了辅助方法 catalog.reindexIndexes,使能够使用 ZLogHandler 日志输出重新索引特定的 portal_catalog 索引。[gbastien]
添加了使用 AJAX 调用 callViewAndReload 的 JavaScript 函数。来自 PloneMeeting ;-[sgeulette]
添加了 get_state_infos(用于 PM 和 plonetheme.imioapps)。[sgeulette]
0.22 (2019-08-23)
在 catalog.addOrUpdateColumns 中添加了参数 update_metadata,如果设置为 True(默认值),则新添加的元数据将在每个目录对象上更新。[gbastien]
添加了返回对象 HTML 链接的函数。[sgeulette]
0.21 (2019-08-13)
在 cache.invalidate_cachekey_volatile_for 中添加了参数 get_again=False,当设置为 True 时,这将在缓存失效后立即调用 cache.get_cachekey_volatile,以便我们获取一个新鲜的日期存储。这有助于避免异步请求调用 cache.get_cachekey_volatile 时写入。[gbastien]
0.20 (2019-07-19)
在 xhtml.storeImagesLocally 中,如果找到了 resolveuid 但找不到图像,则不要中断。这可能是从另一个实例复制/粘贴 HTML 代码的情况。[gbastien]
在 xhtml.removeBlanks 中,通过调用 xhtml.xhtmlContentIsEmpty 并将参数 tagWithAttributeIsNotEmpty=False 传递给它来检查内容是否为空,因此带有属性的空标签被认为是空的。[gbastien]
0.19 (2019-07-05)
从 collective.solr 修复了索引方法以解决部分重新索引的问题。[mpeeters]
在 container.pt 和 content.pt 中添加了行字段显示的 CSS id。[sgeulette]
0.18 (2019-05-16)
添加了 appy.pod 示例,展示了错误定义样式(例如 margin-left: opt; 使用 opt 而不是 0pt)的问题。[gbastien]
添加了 appy.pod 示例,展示了在 <li> 或 <td> 中未使用类的问题。[gbastien]
添加了方法 content.disable_link_integrity_checks 和 content.restore_link_integrity_checks,以能够禁用 enable_link_integrity_checks 属性 并将其恢复到原始值。这适用于 Plone4(属性)和 Plone5(注册表)。[gbastien]
修复了在 Plone5 中导入 IEditingSchema 的问题。[gbastien]
0.17 (2019-02-12)
在容器视图中添加可折叠选项。[sgeulette]
不要在volatile (_v_…)中存储get_cachekey_volatile/invalidate_cachekey_volatile_for的日期,因为它似乎是由线程“存储”的,并且计算次数过多。[gbastien]
添加了JS辅助方法has_faceted,如果当前在faceted中返回true。[gbastien]
0.16 (2019-01-31)
添加了appy.pod用例以显示当<td>有定义大小时的表优化问题。[gbastien]
添加了appy.pod用例以显示当表格有第一个空的<tr></tr>时的问题,这些行不会渲染下一行的第二列。[gbastien]
添加了appy.pod用例以展示line-height样式的问题。[gbastien]
添加了appy.pod用例以展示没有src的<img>破坏生成的问题。[gbastien]
如果<img>没有src,不要在
xhtml.imagesToPath中中断。[gbastien]
0.15 (2018-12-18)
在跳过验证时,在
content.validate_fields 中显示更多日志。[gbastien]在
catalog.addOrUpdateIndexes 中,将ZLogHandler 传递给reindexIndex ,以便在Zope日志中显示进度。[gbastien]在
content.add_to_annotation 和content.del_from_annotation 中,将注释存储在PersistentList 而不是set() 中,以避免持久性问题。[gbastien]
0.14 (2018-10-22)
改进了内容创建,以避免在定义的id已存在时创建对象。[sgeulette]
添加了content.uuidsToCatalogBrains和content.uuidsToObjects方法。[gbastien]
调整了
content.validate_fields ,以在field.required=False,值为None且字段类型不是Bool时跳过验证。由于目前失败,因此也跳过使用source 属性的字段验证。[gbastien]向content.validate_fields添加了参数raise_on_errors,当发现错误时引发ValueError,而不是简单地返回它。[gbastien]
0.13 (2018-08-31)
添加了
content.get_schema_fields 以获取模式字段(默认包含由行为包含的)[sgeulette]对导入进行了Pep8。[sgeulette]
添加了appy.pod用例,用于包含表格的列表。[bleybaert]
在
setup.py 中添加了对Plone 的依赖。[gbastien]如果图像src不是图像路径而是另一个元素(如
Folder 或Plone Site ),不要在xhtml.storeImagesLocally._handle_internal_image 中中断。[gbastien]
0.12 (2018-05-03)
添加了appy.pod用例以展示rgba()。[gbastien]
改进了注释代码[sgeulette]
0.11 (2018-01-30)
使用
html 而不是xml 作为lxml.html.to_string 的渲染方法 。这避免了像<p><s></s></p> 这样的结果被转换为<p><s/></p> 。[gbastien]
0.10 (2017-12-21)
修复了
catalog.addOrUpdateIndexes 中的错误,其中新索引未重新索引,因为它是在与已存在的索引一起添加时。[gbastien]修复了
xhtml.storeImagesLocally 中的错误,当img使用resolveuid 并以portal_url 开头时(这是在collective.ckeditor 中使用uploadimage插件 的情况),它引发了NotFound错误。[gbastien]在
xhtml.storeImagesLocally 中,使用resolveuid 保留URL末尾的scale (如resolveuid/content_uid/image_preview )。[gbastien]使用
PyPDF2 而不是已弃用的pyPdf 将条码插入PDF。这解决了ValueError: invalid literal for int() with base 10: ‘’ 问题。[gbastien]
0.9 (2017-11-27)
添加了appy.pod用例,用于复杂样式开始/结束在同一段落。[gbastien]
如果没有找到
<img> src ,不要在xhtml.storeImagesLocally 中中断。[gbastien]添加了管理注释的方法(添加和删除)[anuyens, odelaere]
添加了获取注释的方法[sgeulette]
0.8 (2017-10-04)
在
xhtml.storeImagesLocally 中,考虑使用resolveuid 的<img> src 。这是在启用collective.ckeditor 中的allow_link_byuid 选项时的情况。[gbastien]不要在helpers.js注释或合并的javascripts中使用
/* … */ 与https:// 一起,否则会产生错误格式并引发浏览器中的JS注释未终止错误。[gbastien]
0.7 (2017-09-22)
在
testing.py 中添加了testing_logger 方法,它启用测试中的日志记录。[gbastien]
0.6 (2017-09-15)
将方法 xhtml.storeExternalImagesLocally 更改为 xhtml.storeImagesLocally,现在它处理外部和内部图像的检索,因此当需要时,门户中存储的图像也将创建在给定上下文中。[gbastien]
0.5 (2017-08-30)
添加了安全编码字符串的方法。[sgeulette]
appy.pod 用例:使用宽度为 0px 的表格。[gbastien]
在 content.validate_fields 中,为 Choice 字段添加了特殊绕过,该字段 required=False 并且给定值为 None。验证失败,因为 None 不在词汇表中,但它仍然是一个正确的值,因为它通过 UI 添加时由小部件管理。[gbastien]
添加了 JS 修复,以便在 Firefox 的多个页面上打印 <fieldset>,请参阅 https://bugzilla.mozilla.org/show_bug.cgi?id=471015。这使得必须添加默认配置文件以添加 JS 资源 ++resource++imio.helpers/helpers.js。[gbastien]
0.4.29 (2017-07-25)
获取 intid 值或如果找不到则创建它。[sgeulette]
添加了将 'scale' 值传递给 pdf.BarcodeStamp 的可能性。[gbastien]
更多的 appy.pod 用例:没有父项的子项未渲染。[gbastien]
0.4.28 (2017-07-04)
添加了创建 NamedBlobFile 或 NamedBlobImage 的方法。[sgeulette]
0.4.27 (2017-06-30)
在创建内容时,如果 obj_path 是 /,则返回门户。[bsuttor]
为 appy.pod 添加了用例,以显示在 appy.pod 0.9.7 中失败的复杂 HTML 结构。[gbastien]
在 fancytree 中添加了根属性。[sgeulette]
更改了条形码生成选项,遵循 zint 2.6。[sgeulette]
0.4.26 (2017-03-14)
设置 CLASS_TO_LAST_CHILDREN_NUMBER_OF_CHARS_DEFAULT = 240。[gbastien]
0.4.25 (2017-02-21)
使用与 appy.pod 中的“保留下一页”功能相同的类名。[gbastien]
0.4.24 (2017-02-14)
在 content.validate_fields 中,通过调用 bind(obj) 初始化字段,因此可以访问词汇表等必要事物。[gbastien]
0.4.23 (2017-02-14)
添加了 content 模块测试。[sgeulette]
改进了 get_object、add_image、add_file、create 方法。[sgeulette]
添加了 content.validate_fields,它将验证给定 dexterity 对象的字段。[gbastien]
0.4.22 (2016-12-21)
添加了更多测试 appy.pod 渲染的用例:“text-decoration: none;”,复杂的真实表格示例等……[gbastien]
添加了 xhtml.removeCssClasses 方法,以便能够从给定的 xhtmlContent 中删除一些特定的 CSS 类。[gbastien]
0.4.21 (2016-12-05)
添加了 xhtml.addClassToContent 方法,它允许向给定的 xhtmlContent 的 CONTENT_TAGS(<p>、<strong> 等)添加 CSS 类。[gbastien]
添加 @volatile_cache_without_parameters 和 @volatile_cache_with_parameters 装饰器。[mpeeters]
在门户上存储可变键的字典。[mpeeters]
可以向对象添加文件。[sgeulette]
在 'appy_pod_sample' 中添加了用例,以检查当在 <li> 或包含 <p> 或 <span> 的 <li> 上直接使用样式属性定义斜体/粗体/下划线/删除线时的情况。[gbastien]
0.4.20 (2016-10-05)
添加了 'path' 模块,其中包含 'path_to_package' 方法,它将返回给定包的绝对文件系统路径。可以提供额外的 'filepart' 来完成返回的路径。这对于获取“browser/template”文件夹中的模板非常有用。[gbastien]
0.4.19 (2016-09-26)
不要使用 lxml.html.tostring 返回的 HTML 的 pretty_print,否则可能导致奇怪的行为,例如在嵌套 <span> 标签的情况下出现额外的空白空间。'pretty_print' 现在是相关方法的参数,默认为 False。[gbastien]
添加了从字典创建内容、根据标准获取对象、应用多个转换、创建 RichTextValue 对象的方法。[sgeulette]
为 Dexterity 内容和容器添加了默认视图,这些视图以表格的形式显示字段,其中包含小部件标签和左侧的小部件值,以及右侧的小部件值。容器的视图还包括异步的 folder_listing,它列出包含的元素。取自 imio.project.core。[gbastien]
0.4.18 (2016-06-17)
生成条形码时默认使用 scale=2 而不是 scale=4。[gbastien]
添加了方法 int2word、wordizeDate 和 formatDate,旨在将数字转换为法语翻译,将仅包含数字的日期转换为完整日期,并格式化日期(带有小时、完整月份名称等)。[DieKatze]
0.4.17 (2016-03-22)
添加了常量 CLASS_TO_LAST_CHILDREN_NUMBER_OF_CHARS_DEFAULT,用于在 xhtml.addClassToLastChildren 中标记最后一个标签时定义默认要考虑的字符数。这样它可以在其他包中使用。[gbastien]
修复了 xhtml.imagesToPath,以正确处理使用 'resolveuid' 的图像 src。[gbastien]
0.4.16 (2016-03-14)
修复了 xhtml.storeExternalImagesLocally,如果下载的外部图像没有 'Content-Disposition' 标头。[gbastien]
0.4.15 (2016-03-14)
添加了辅助工具,可以轻松测试 appy.pod 渲染,通过将完整 HTML 内容加载到任何内容(AT 或 DX)中,并通过指定富文本字段名来实现。[gbastien]
添加了 xhtml.imagesToPath 方法,将用于 xhtml 内容的图像 src 从 'http' 或等效路径转换为文件系统上的绝对路径到 .blob 图像文件。[gbastien]
添加了 xhtml.storeExternalImagesLocally 方法,确保外部引用的图像被下载、本地存储,并且 xhtmlContent 被相应地调整。[gbastien]
0.4.14 (2016-02-25)
添加了 cache.get_cachekey_volatile 和 cache.invalidate_cachekey_volatile_for 方法,用于与使用装饰器 @ram.cache 的方法一起使用。这适用于寿命较长的缓存方法,这些方法可以手动失效。get_cachekey_volatile 将用于 cachekey 方法,invalidate_cachekey_volatile_for 将用于使缓存失效。[gbastien]
添加了一个使用 zint 生成条形码的功能:#13100。[mpeeters]
从 __init__ 中移除了 initialize() 调用,不需要将其视为 Zope2 产品。[gbastien]
0.4.13 (2016-01-22)
使用 safe_unicode() 而不是 unicode(),尤其是在 xhtml.markEmptyTags 中,以避免 UnicideDecode 错误。[gbastien]
0.4.12 (2016-01-21)
添加了测试,当 uid(路径)不再在 portal_catalog 中时,它不会使 catalog.addOrUpdateColumns 失效。[gbastien]
在 xhtml.xhtmlContentIsEmpty 中,不再在 _isEmpty 中考虑标签子元素,渲染无内容(text_content().strip() 为空)的标签将被视为空。[gbastien]
0.4.11 (2015-11-12)
添加了 'cache.cleanRamCache' 方法,将使 ram.cache 无效。[gbastien]
0.4.10 (2015-08-21)
添加了 get_environment 方法和测试。[bsuttor]
如果全局环境变量 'ENV' 等于 'dev',则 is_develop_environment 方法为 true。[bsuttor]
添加了 'cache' 模块和辅助方法 'cleanVocabularyCacheFor',该方法将清理在命名词汇上定义的 instance.memoize 缓存,以及 'cleanRamCacheFor',该方法将清理在给定方法上定义的 ram.cache。[gbastien]
0.4.9 (2015-04-21)
在 xhtml.addClassToLastChildren 中,不要定义空类属性。实际上,未管理的标签被装饰为具有 'class=""' 属性,现在不再是这样了。[gbastien]
0.4.8 (2015-04-20)
在 xhtml.addClassToLastChildren 中管理每个文本格式化标签,并且不要在未知标签上中断。[gbastien]
在 xhtml.addClassToLastChildren 中将特殊字符替换为相应的 HTML 实体,以便渲染的内容仍然包含原始 HTML 实体。这避免了 HTML 实体被渲染为 UTF-8 字符,并且一些奇怪的实体被识别(” ”)。[gbastien]
0.4.7 (2015-03-06)
调整了 xhtml.addClassToLastChildren 方法,以标记包含未处理标签的父标签。[gbastien]
0.4.6 (2015-02-26)
添加了 markEmptyTags 方法,将标记给定 xhtmlContent 中的空标签。[gbastien]
由于我们将依赖 plone.api.env.adopt_roles 来执行某些方法作为超级用户,因此已移除方法 security.call_as_super_user。[gbastien]
0.4.5 (2015-02-05)
添加了测试构建是否处于开发模式的方法(IS_DEV_ENV=True)。[sgeulette]
添加了生成符合标准的方法来生成密码。[sgeulette]
0.4.4 (2015-01-29)
使 hxtml.addClassToLastChildren 能够通过标签传递特定类,这样就可以根据节点标签设置特定类。[gbastien]
0.4.3 (2015-01-20)
添加了 addClassToLastChildren 方法,将为给定 xhtmlContent 的最后一个标签添加一个特定的类属性。[gbastien]
0.4.2 (2014-09-19)
不考虑 xhtmlContent 容易为空:xhtmlContent 为空,如果它不产生文本,没有属性,并且没有子元素。[gbastien]
在 removeBlanks 方法中使用 xhtmlContentIsEmpty 方法,以避免代码和逻辑的重复。[gbastien]
0.4.1 (2014-09-11)
修复了‘removeBlanks’中的错误,该错误会删除空父标签的子元素,从而导致删除像 <u><li>我的文本</li><li>我的第二段文本</li></ul> 这样的复杂树。[gbastien]
0.3 (2014-09-04)
修复了‘xhtmlContentIsEmpty’中的错误,该错误未能正确处理复杂的HTML树。我们现在使用lxml方法‘text_content’来检查HTML结构是否将渲染内容。[gbastien]
0.2 (2014-08-27)
- 添加了xhtml.py模块,其中包含用于XHTML内容的辅助方法。
‘removeBlanks’将删除给定xhtmlContent的空白行。
‘xhtmlContentIsEmpty’将检查给定xhtmlContent在渲染时是否会生成内容。
[gbastien]
0.1 (2014-08-18)
首次发布。[sdelcourt]
imio_helpers-1.1.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | b00ccab47d38c4df24486476f23170e4a42cc0d8bc3e574217173ce08d5b7aa4 |
|
MD5 | b6909caf41f699741a024fe56e9b9ae2 |
|
BLAKE2b-256 | 203612bc8ac62b2a0ff6080b672cdd58cd21fc97dc087ce2b71972620bf68d9e |
imio.helpers-1.1.0-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 35a41302da17919612d5031d06319932259cfa44530186e5432b90806b377074 |
|
MD5 | 49b3d817763f8bd7fa6b2c77ff610107 |
|
BLAKE2b-256 | 6782e5d37a4a58b26e69fb4d8e6ba3301a034f02f3a68e02b7841436fbe46391 |