Skip to main content

一个 Archetypes 小部件,用于控制编辑页面上其他字段的词汇或显示

项目描述

概述

这是一个 Archetypes 小部件,用于控制编辑页面上其他字段的词汇或显示。需要向它提供有关控制哪些字段以及如何控制它们的信息。

要安装它,只需将其解压缩到您的产品目录中,重新启动 zope,然后使用 QuickInstaller 安装它。

用法

要使用它,只需创建一个字段,如:

StringField(
    name='master_field',
    default='',
    vocabulary=DisplayList(
        (('week', 'Week'),
          ('wedding','Wedding'),
          ('winona','Winona'),
          ('winter', 'Winter'),
          ('weather','Weather'),
          ('cow', 'Cow'),
        ),
    ),
    widget=MasterSelectWidget(
        label='Test Widget',
        description='Test this',
        slave_fields=(
            {'name': 'slave_field_name',
              'action': 'vocabulary',
              'vocab_method': 'mySlaveVocabularyMethod',
              'control_param': 'my_method_parameter',
            },
        ),
    ),
),

您可以使用与普通 SelectWidget 兼容的任何字段类型。您可以使用任何普通的 SelectWidget 参数(“格式”除外,它必须设置为“选择”)。它的外观和行为类似于普通的 SelectWidget,但此小部件的更改将影响 slave_fields 参数中描述的小部件。

参数

所有的魔法都发生在 slave_fields 参数中,它应该是一个映射序列。每个映射都是对该主字段控制的字段的描述:

姓名

选择更改时要控制的字段的名称。除非使用“词汇”或“值”操作,否则受控字段/小部件可以是任何类型。当操作为“词汇表”时,该字段必须使用 MultiSelectionWidget、SelectionWidget 或 MasterSelectWidget,其中任何一个都必须将“格式”参数设置为“选择”(这仅是 MasterSelectWidget 的默认设置)。对于“值”,小部件必须足够简单,以便使用 element.value 或 elem.selectedIndex(StringWidget、SelectionWidget、AutoCompleteWidget 等)更改当前值。

行动

要在从属字段上执行的操作类型。这可以是“词汇表”,它使用 XMLHttpRequest 调用改变从属字段的词汇表;'hide' 或 'show' 设置从属字段的可见性样式属性;“启用”或“禁用”将目标小部件标记为启用或禁用;或“值”,它使用 XMLHttpRequest 调用在选择更改时更改另一个简单小部件 (StringWidget) 的值。要使用“词汇”操作,从属字段必须满足上述小部件要求。要使用“启用”/“禁用”操作,该字段必须使用可以启用/禁用的 HTML 小部件。

词汇方法

调用以检索从属字段的动态词汇表的方法的名称,或使用“值”时从属字段的值。对于“词汇表”,这必须返回一个 DisplayList。对于'value,它必须返回一个字符串或msg_id。该方法必须接受一个参数,该参数将用于传递在主窗口小部件中选择的新值。此参数的名称默认为“master_value”,但可以使用任何名称,只要使用 control_param 元素指定即可。仅与 'action':'vocabulary' 或 'action':'value' 一起使用。当与 archetypes.schemaextender 一起使用时,词汇方法可以在模式扩展类上定义。

切换方法

当满足切换从属字段的激活或可见性的条件时调用返回 True 的方法的名称。该方法必须接受一个参数,该参数将用于传递在主窗口小部件中选择的新值。此参数的名称默认为“master_value”,但可以使用任何名称,只要使用 control_param 元素指定即可。仅与 'action':'hide'、'action':'show'、'action':'enable'、'action':'disable' 一起使用。当与 archetypes.schemaextender 一起使用时,可以在模式扩展类上定义切换方法。

控制参数

如上所述,这是调用 vocab_method 时使用的参数名称。仅与 'action':'vocabulary' 或 'action':'value' 一起使用。

隐藏值

一系列值,当在主小部件中选择时,会导致从属字段/小部件被隐藏、显示或禁用。使用的方法由“action”元素决定。仅与 'action':'hide'、'action':'enable'、'action':'disable' 或 'action':'show' 一起使用。

单个 MasterSelectWidget 可以控制任意数量的从属字段,通过向 slave_fields 列表/元组添加新映射来控制新字段。作为 MasterSelectWidget 操作目标的字段本身可以使用 MasterSelectWidget 来控制其他字段。

这个包还提供了一个 MasterMultiSelectWidget,为多选小部件提供相同的功能。

MasterSelectDemo 类型包括许多不同配置的主从小部件。

要启用演示类型,请转到 portal_setup,点击Import选项卡,选择 MasterSelectWidget 演示配置文件,然后单击底部的Import all steps按钮。

享受!

学分

作者

亚历克米切尔:apm13 @哥伦比亚教育

贡献者

Dorneles Tremea:deo @ plonesolutions com

变更日志

0.4.9 (2017-02-03)

  • 修复了 @@masterselect-jsonvalue-vocabulary 不输出标签的问题。[三鹰]

0.4.8 (2015-08-06)

  • 修复 'hide_values' 参数转换。[sdelcourt]

0.4.7 (2015-08-06)

  • 添加机器人测试。[sdelcourt]

  • 修复启用/禁用功能。[sdelcourt]

  • 添加 MasterMultiSelectWidget [sdelcourt]

0.4.6 (2014-06-10)

0.4.5 (2011-10-10)

  • 尝试使用嵌入式 json (Python 2.6+)。[托马斯德韦南]

  • 避免在启动时出现警告。[托马斯德韦南]

  • 修复了 ajax 词汇值翻译。[托马斯德韦南]

  • 可以在 archetypes.schemaextender 扩展类上定义词汇 ajax 方法。[托马斯德韦南]

0.4.4 - 2010-04-16

0.4.3 - 2010-03-15

0.4.2 - 2009-04-01

  • 更正 .browser.MasterSelectJSONValue.getVocabulary [alecm] 中缺少的返回值

0.4.1 - 2009-03-24

  • 重新发布,坏蛋上传。[埃尔罗]

0.4 - 2009-03-24

  • 允许更轻松地对视图进行子分类。[埃尔罗]

0.3 - 2009-03-19

  • 转换成鸡蛋 [mj]

  • 将配置(皮肤、演示类型)移至 GenericSetup 配置文件。[兆焦耳]

  • 在演示中添加了 MasterBooleanWidget。[兆焦耳]

  • 重构 javascript 以使用 jQuery 和 AJAX 结果视图。[兆焦耳]

  • 添加了对更新 kupu 从属字段的简单支持。[安德]

  • 添加 MasterBooleanWidget [gawel]

  • 用浏览器视图替换旧的 dtml [gawel]

  • 更新了文档,进行了一些一般性的小清理,并为新的“显示”/“启用”操作添加了示例。[deo]

  • 添加了新的“启用”操作,仅当在主字段中选择特定值时才激活从属字段。[deo]

  • 添加了新的“显示”操作,仅当在主字段中选择特定值时才显示从属字段。[deo]

  • 确保在使用动态词汇表时保持初始选择的值。[deo]

0.2.2 - 2005-11-09

  • 修复了一些 IE 错误并隐藏使用 display=”none” 从页面中删除元素。感谢 Yuta Kashino 指出这些。[阿莱姆]

  • 添加了使用简单小部件更改 StringFields 值的新操作。感谢 Joachim Koenig-Baltes 的想法和补丁。[阿莱姆]

0.2.1 - 2005-06-17

  • 修复了隐藏某些小部件类型时导致不必要的 js 警报的错误。[阿莱姆]

0.2 - 2005-06-16

  • 添加了对隐藏和禁用布尔和 InAndOut 等复合小部件的支持。[阿莱姆]

  • 添加了单个主服务器在单个从服务器上应用多个操作的能力。现在,主小部件可以隐藏和更改从属字段的词汇表。只需为所需的每个操作向 slave_fields 添加一个条目。[阿莱姆]

  • 使 getXMLSelectVocab 接受返回列表或元组的方法,而不仅仅是 DisplayLists。DisplayLists 是首选。[阿莱姆]

0.1 - 2005-06-15

  • 初始签入,准备测试。[阿莱姆]

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Products.MasterSelectWidget-0.4.9.tar.gz (31.7 kB 查看哈希)

已上传 source