为使用Transmogrifier的迁移提供有用的蓝图

ftw.blueprints的Python项目详细描述


ftw.蓝图

ftw.blueprints 提供了一些有用的蓝图,包括示例cfg 对于原型和灵巧性。

有关创建蓝图和如何使用蓝图的详细信息,请参见:

安装

  • 将ftw.蓝图添加到构建配置:
[instance]
eggs +=
    ftw.blueprints
  • 打开视图@@jsonmigrator并选择配置文件

注意:一些原型和灵巧的示例也配置了 ftw.inflator的章节。 如果您的配置基于其中一个,则还需要安装 FTW.充气机

兼容性

使用 扑通声运行 4.2 4.3 5.0

扑通一声4.2

https://jenkins.4teamwork.ch/job/ftw.blueprints-master-test-plone-4.2.x.cfg/badge/icon

扑通一声4.3

https://jenkins.4teamwork.ch/job/ftw.blueprints-master-test-plone-4.3.x.cfg/badge/icon

扑通一声5.0

https://jenkins.4teamwork.ch/job/ftw.blueprints-master-test-plone-5.0.x.cfg/badge/icon

此软件包提供的蓝图

    < DL>
    ftw.blueprints.fieldmapper
    > UL>
  • 强大的蓝图,用于映射和更改给定项中的字段 使用静态值、lambda表达式、条件和dict映射。
< DL>
ftw.blueprints.pathmapper
> UL>
  • 将旧路径映射到新路径。如果需要,递归应用映射。
  • < DL>
    FTW.蓝图.儿童插入器
    > UL>
  • 为给定项插入子项
  • < DL>
    ftw.blueprints.parentinserter
    > UL>
  • 为给定项插入父项
  • < DL>
    ftw.blueprints.additionalobjectinserter
    > UL>
  • 在给定路径插入对象
  • < DL>
    ftw.blueprints.dataupdater
    > UL>
  • 更新blob数据。
  • < DL>
    ftw.blueprints.regexreplacer
    > UL>
  • 用正则表达式替换值
  • < DL>
    ftw.blueprints.logger
    > UL>
  • 替换为打印机蓝图。可配置的日志蓝图 记录表达式中给出的信息。
  • < DL>
    ftw.blueprints.workflowmanager
    > UL>
  • 管理工作流状态、转换和历史记录
  • < DL>
    ftw.blueprints.formmailer fields插入器 > UL>
  • 将非常旧的ploneformmailer字段转换为新字段的蓝图 ploneformgen原型字段
  • < DL>
    ftw.blueprints.contextualportletadder
    > UL>
  • 在给定上下文上添加portlet
  • < DL>
    ftw.blueprints.unicodeawaremimeencapsulator(图纸、图纸、设备和设备) > UL>
  • 支持Unicode编码的plone.app.transmogrifier.mimeencapsulator。
  • < DL>
    ftw.blueprints.multilingual.linguaploneitemlinker
    > UL>
  • 使用plone.app.multilingual从使用 舌音。
  • < DL>
    FTW.蓝图.定位器更新程序
    > UL>
  • 父蓝图中的对象位置,支持plone站点。
  • < DL>
    在建/弃用
    > UL>
  • ftw.blueprints.annotatedefaultviewpathobjects
  • ftw.blueprints.updateDefaultViewobjectPath
  • ftw.blueprints.checkisDefaultViewObject
  • ftw.blueprints.fieldmapper

    此蓝图用于映射或更改项目上的值。

    必需选项:

    • 字段映射 -映射或更改字段的选项

    使用字段映射:

    < Buff行情> {'source-key':{option:value}
    • 首先,你需要定义要修改的源密钥。

    • 然后您需要定义一些选项:

      • 目的地:钥匙的新名称。

        {'plz':{'destination':'zip'}

        只需将plz的值移动到zip

      • 静态值:如果要使用静态值,可以使用 选项:

        {'plz':{'static_value':'3000'}}

        将plz中的值替换为3000

      • 映射值:在某些情况下,您希望使用映射更改值:

        {'plz':{'映射值':{'plz 3000':'3000'}}}

        如果plz的值是plz 3000,则将替换为3000

      • 转换:用给定的函数转换值。 作为参数,您拥有项目本身。

        < DL>
        {'plz':{'transform':lambda x:x['plz']=x['plz']和

        x['plz']或'3000'}

        如果plz的值为none,则此示例将plz替换为3000

      • need_src_key:在某些情况下,如果 源密钥可用。

        {'plz':'静态值':'3000',需要'u src'u key:true}

        如果项目上存在源密钥,它将只设置静态值。

    "need_src_key"选项默认为false。所以你可以使用 地图作为一个更强大的插入蓝图。例如,您可以添加 项目的属性,该属性尚不存在。如果源密钥没有 存在于项目上,映射程序将忽略它。

    {'update_show_title':{'destination':'showTitle','transform':lambdax:x['title']andTrueorFalse,}}

    此示例将设置不存在的"showTitle"属性 如果项目标题不是"无",则将项目设置为"真"。

    在映射属性之后,也可以对属性进行转换 使用"地图值"选项。

    {'title':{'destination':'description','transform':lambdax:x['title'].lower(),'map_value':{'james':'bond','bud':'spencer'}}}

    首先,它将标题转换为小写。如果标题包含一个 将替换Map_Value选项中的给定键。 最后,它将转换和映射的值放入描述中。

    您可以将所有这些选项组合在一起进行强大的映射 在您的物品上。

    {'zip':{'static_value':'3000'},'client':{'destination':'text','transform':lambdax:x['language']== \
         'en'and'Customer: %s'%(x['cleint'])or \
         'Kunde: %s'%(x['client']),'need_src_key':True}}

    首先,我们将静态值放入zip属性。 在我们用client属性做了一些事情之后。如果客户端密钥 在项目映射中可用,它将填充给定的 字符串,取决于文本中对象的语言 属性。

    最小配置:

    [fieldmapper]blueprint=ftw.blueprints.fieldmapperfield-mapping=python:{}

    可选选项:

    没有可选选项。

    ftw.blueprints.pathmapper

    此蓝图将更新每个项目的路径。

    必需选项:

    • 映射
      • 一组映射。
      • 每个映射项都是一个元组(正则表达式,替换项)。
      • 映射将按定义的顺序完全应用。
      • 表达式,iterable

    最小配置:

    [pathmapper]blueprint=ftw.blueprints.pathmappermapping=python: (
        ('^/de/foo/bar', '/foo/bar'),
        ('^/en/foo/bar', '/foo/qux'),)

    可选选项:

      路径密钥 -映射路径的密钥名。默认为路径。
    • 条带前缀 -如果路径以开头,则从每个路径中剥离的前缀列表 那个前缀。

    完全配置

    [pathmapper]blueprint=ftw.blueprints.pathmappermapping=python: (
        ('^/de/foo/bar', '/foo/bar'),
        ('^/en/foo/bar', '/foo/qux'),)path-key='_gak'strip-prefixes=python: (
      '/plone/www/irgendwo',)

    ftw.blueprints.typefieldmapper

    此蓝图将类型及其字段映射到新类型和新字段。

    必需选项:

    • 映射
      • 类型及其字段的嵌套映射。
      • 第一级地图类型。
      • 第二层映射第一层类型的字段。
      • 表达式,dict

    最小配置:

    [typefieldmapper]blueprint=ftw.blueprints.typefieldmappermapping=python: {
            'OldType':  ('NewType', {'oldfield': 'newfield'}),
        }

    可选选项:

      键入键 -映射类型的键名。默认为"U类型"。

    ftw.蓝图.儿童插入器

    此蓝图将新项目作为子项插入管线。

    新项不是父项的副本。如果要使用元数据 父母的-item,您需要使用metadata key选项映射它们

    必需选项:

    • 内容类型 -定义子对象的ContentType -字符串
    • 附加ID -定义子对象的新ID -表达式,字符串

    -最小配置:

    [childinserter]blueprint=ftw.blueprints.childinsertercontent-type=ContentPageadditional-id=python: 'downloads'

    可选选项:

    • 元数据键 -子项作为dict的元数据映射。 您可以从父项为子项提供元数据,也可以 使用lambda表达式设置新值。 -表达式,dict

      使用父元数据:

      < Buff行情>

      {'说明':'标题'}

      将获取父项上title的值并将其放入描述中 子项上的字段

      使用新值:

      < Buff行情>

      {'title':lambda x:'图像'}

      将"图像"放入子项的标题字段中

    • 接口 -将接口作为列表添加到子项 -表达式,列表

    • 注释 -将注释作为dict添加到子项 -表达式,dict

    完全配置

    [instance]
    eggs +=
        ftw.blueprints
    
    0

    视觉示例:

    < Buff行情>
    • A=正在处理的项目
    • A’=蓝图后正在处理的项目
    • B=项目之后的子项目
    [instance]
    eggs +=
        ftw.blueprints
    
    1

    ftw.蓝图.父插入器

    此蓝图将新项目作为父项插入管线。

    新项不是子项的副本。如果要使用元数据 对于子项,您需要使用metadata key选项映射它们

    请参阅ftw.blueprints.childinserter部分文档,了解如何 使用.

    视觉示例:

    < Buff行情>
    • A=正在处理的项目
    • A’=蓝图后正在处理的项目
    • B=项目之后的父级在管道中
    [instance]
    eggs +=
        ftw.blueprints
    
    2

    ftw.蓝图.附加目标插入器

    此蓝图将在给定路径的管线中插入新项。

    新项不是该项的副本。如果要使用元数据 对于该项,您需要使用metadata key选项映射它们

    必需选项:

      < L>新路径 -包含要创建的对象的ID的路径 -表达式,字符串
    • 内容类型 -定义新对象的ContentType -字符串
    • 附加ID -定义新对象的新ID -表达式,字符串

    最小配置:

    [instance]
    eggs +=
        ftw.blueprints
    
    3

    有关详细信息,请参阅ftw.blueprints.childinserter部分文档 有关可选选项的信息。

    视觉示例:

    < Buff行情>
    • A=正在处理的项目
    • A’=蓝图后正在处理的项目
    • B=项目之后的父级在管道中
    [instance]
    eggs +=
        ftw.blueprints
    
    4

    ftw.蓝图.工作流管理器

    迁移后管理工作流的蓝图

    利用这个蓝图可以迁移工作流历史和 回顾状态。

    它提供工作流映射、状态映射和转换映射。

    必需选项:

    • 旧工作流ID -要迁移的旧工作流的名称 -字符串

    最小配置:

    [instance]
    eggs +=
        ftw.blueprints
    
    5

    可选选项:

    • 更新历史记录 -默认值:true -如果您只想更新review_状态,请将其设置为false
    • 新工作流ID -如果新工作流的名称与旧工作流的名称不同。 -字符串
    • 状态图 -旧状态到新状态的映射 -表达式,dict
    • 过渡图 -旧转换到新转换的映射 -表达式,dict

    完全配置

    [instance]
    eggs +=
        ftw.blueprints
    
    6

    ftw.blueprints.contextualportletadder的ftw.blueprints.contextualportletadder>

    在给定上下文中插入portlet的蓝图。

    必需选项:

      < DL>
      经理姓名 > UL>
    • 要添加portlet的portletmanager的名称
    • 字符串
    < DL>
    分配路径
    > UL>
  • 要添加的portlet分配的虚线名称路径
  • 字符串
  • < DL>
    Portlet ID
    > UL>
  • 要添加的Portlet的ID
  • 字符串
  • 最小配置:

    [instance]
    eggs +=
        ftw.blueprints
    
    7

    可选选项:

      < DL>
      Portlet属性
      > UL>
    • Portlet分配的默认属性
    • 表达式,dict

    ftw.blueprints.formmailer字段插入器

    将非常旧的ploneformmailer字段转换为新字段的蓝图 ploneformgen原型字段

    转换ploneformmailer的字段的问题是,它们不是 类似于Ploneformgen中的原型字段。为了自动转换,我们 使用formulator包的formxml函数并放置导出的xml- 用collective.jsonify导出项的表单表示。

    在通过管道创建表单本身之后,我们解析xml并 将其转换为带有"原型"字段的"变形器"项。

    请参阅示例ftw.blueprints.pfm2pfg config以了解如何集成 ploneformmailer正确地迁移到管道中。

    最小配置:

    [instance]
    eggs +=
        ftw.blueprints
    
    8

    ftw.blueprints.unicodeawaremimeencapsulator的ftw.blueprints.unicodeawaremeencapsulator

    使plone.app.transmogrifier.mimeencapsulator接受Unicode输入数据。这个 配置选项不会更改。请参见transmogrifier文档

    ftw.blueprints.multilingual.linguaploneitemlinker多语言项目链接器

    用plone.app.multilingual链接新plone站点中的翻译。期待 原文已被翻译成语言文字。此外,还期望 新站点中的plone内容已在本节中构建 运行。< /P>

    请注意,在映射路径时,还应将相同的映射应用于 对规范翻译的引用(_translationof)。

    最小配置:

    [instance]
    eggs +=
        ftw.blueprints
    
    9

    可选选项:

      路径密钥 -新项路径的密钥名。默认为路径。
    • 规范密钥 -指示此项是否为规范项的布尔值的键名。 翻译。默认为"规范翻译"。
    • 翻译 -引用规范翻译的密钥名。它默认为 _翻译。

    ftw.蓝图.定位器更新程序

    定位器更新程序 蓝图支持文件夹和plone站点。 它在注释中存储每个对象所需的位置, 这样我们就可以把孩子们分开迁移 (例如,一次一个fti)。

    {'update_show_title':{'destination':'showTitle','transform':lambdax:x['title']andTrueorFalse,}}
    0

    可选:

    • 路径键 -新项路径的密钥名。默认为 \u path
    • 位置键 -项目位置的密钥名称。它默认为 \u gopip

    链接

    • github:https://github.com/4teamwork/ftw.blueprints" rel="nofollow">https://github.com/4teamwork/ftw.blueprints
    • 问题:https://github.com/4teamwork/ftw.blueprints/issues rel="nofollow">https://github.com/4teamwork/ftw.blue打印/发布
    • 持续集成: https://jenkins.4teamwork.ch/search?q=ftw.蓝图

    版权所有

    此软件包的版权归4团队所有

    FTW.蓝图 根据GNU通用公共许可证第2版获得许可。

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java如何在jprogressbar上添加文本?   java生成30到32位之间的随机数   我想从我自己的服务器而不是java worldwind中的nasa服务器获取数据   jsp中带有外部java文件的html计数器   java如何找到运行Servlet的主机和端口   我怎么能看到数学。java中的cos方法计算平方根?   java这个docker run命令做什么?   java如何在将表单提交到servlet后将原始JSP保存在URL中?   如何在Java中访问Arraylist中的字典数据?   java JPA如果我有一个实体被用作复合键,那么级联是否也构成复合键的一部分?   连接Java:文件读取/添加到文件程序时未按预期工作(逻辑错误)   java从Android向PLC发送布尔值   java Get build。gradle文件作为一个。类文件   Youtube API V3 Java无需调用浏览器即可上传视频   java如何在Unittest中测试StackOverflower错误   实现方法中的java异常处理   java这个::instanceMethod在java8中用作方法参数有什么用途   java偶尔会获得javax。邮政使用javamail阅读gmail电子邮件时的FolderClosedException