跳转到主要内容

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

项目描述

概述

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

要安装它,只需将其提取到您的产品目录中,重启zope,然后使用快速安装程序进行安装。

用法

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

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参数(除‘format’外,必须设置为‘select’)。它将像正常的选择小部件一样显示和操作,但此小部件中的更改将影响由slave_fields参数描述的小部件。

参数

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

name

当选择改变时,要控制的字段的名称。受控字段/小部件可以是任何类型,除非使用‘vocabulary’或‘value’动作。当操作为‘vocabulary’时,字段必须使用多选小部件、选择小部件或主选择小部件中的任何一个,并且这些小部件必须将‘format’参数设置为‘select’(这是主选择小部件的唯一默认设置)。对于‘value’,小部件必须足够简单,可以使用element.value或elem.selectedIndex更改当前值(StringWidget、SelectionWidget、AutoCompleteWidget等)。

action

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

vocab_method

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

toggle_method

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

control_param

如上所述,这是在调用vocab_method时使用的参数的名称。仅在‘action’:‘vocabulary’或‘action’:‘value’时使用。

hide_values

当在主小部件中选择时导致从字段/小部件被隐藏、显示或禁用的值的序列。使用的方法由‘action’元素确定。仅在‘action’:‘hide’、‘action’:‘enable’、‘action’:‘disable’或‘action’:‘show’时使用。

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

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

MasterSelectDemo类型包含多个主从小部件,配置不同。

要启用演示类型,请转到portal_setup,点击“导入”选项卡,选择“MasterSelectWidget 演示”配置文件,然后点击底部的“导入所有步骤”按钮。

享受吧!

致谢

作者

Alec Mitchell: apm13@columbia.edu

贡献者

Dorneles Tremea: deo@plonesolutions.com

变更日志

0.4.9 (2017-02-03)

  • 修复了 @@masterselect-jsonvalue-vocabulary 无法输出标签的问题。[mitakas]

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+)[thomasdesvenain]

  • 避免启动时的警告。[thomasdesvenain]

  • 修复了ajax词汇值翻译。[thomasdesvenain]

  • 词汇ajax方法可以在archetypes.schemaextender扩展类中定义。[thomasdesvenain]

0.4.4 - 2010-04-16

  • 修复了由于jQuery更改而在Plone 4.0中出现的master布尔小部件问题。(修复了 http://plone.org/products/masterselectwidget/issues/1)[alecm]

  • 修复了演示内容(由于registerType和FTI中的产品名称不同,自0.4.3以来无法添加)[fRiSi]

0.4.3 - 2010-03-15

0.4.2 - 2009-04-01

  • 修复了 .browser.MasterSelectJSONValue.getVocabulary中返回的值丢失问题。[alecm]

0.4.1 - 2009-03-24

  • 重新发布,坏蛋上传。[elro]

0.4 - 2009-03-24

  • 允许更容易地对视图进行子类化。[elro]

0.3 - 2009-03-19

  • 转换为egg。[mj]

  • 将配置(皮肤、演示类型)移动到GenericSetup配置文件。[mj]

  • 在演示中添加了MasterBooleanWidget。[mj]

  • 重构javascript以使用jQuery和视图来显示AJAX结果。[mj]

  • 添加了对更新kupu从属字段的基本支持。[ender]

  • 添加了MasterBooleanWidget。[gawel]

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

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

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

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

  • 确保在使用动态词汇时保留最初选定的值。[deo]

0.2.2 - 2005-11-09

  • 修复了一些IE错误,并使用display="none"隐藏,从而将元素从页面中删除。感谢Yuta Kashino指出这些问题。[alecm]

  • 添加了新的动作,用于使用简单小部件更改StringFields中的值。感谢Joachim Koenig-Baltes提出这个想法和补丁。[alecm]

0.2.1 - 2005-06-17

  • 修复了导致隐藏某些小部件类型时出现不必要的js警告的错误。[alecm]

0.2 - 2005-06-16

  • 添加了对隐藏和禁用复合小部件(如布尔和InAndOut)的支持。[alecm]

  • 允许单个主字段对单个从属字段应用多个动作。现在主小部件可以同时隐藏和更改从属字段的词汇。只需为每个所需动作向slave_fields添加一个条目即可。[alecm]

  • 使getXMLSelectVocab接受返回列表或元组的函数,而不仅仅是DisplayLists。尽管如此,DisplayLists是首选的。[alecm]

0.1 - 2005-06-15

  • 初步检查,准备测试。[alecm]

项目详细信息


下载文件

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

源代码分发

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

上传时间 源代码

支持者