Plone的UML到代码生成器
项目描述
概述
使用 ArchGenXML,您可以在不写一行Python代码的情况下创建可工作的Python代码。它是一个命令行工具,可以根据UML模型(使用XMI文件(.xmi、.zargo、.zuml))生成基于Archetypes框架的Zope产品。最常见的情况是生成一组自定义内容类型,可能包含一些工具、自定义会员类型和一些工作流。
工作原理
在实际应用中,您可以在像ArgoUML这样的工具中绘制您的UML图,该工具具有生成XMI文件的能力。准备好测试您的产品后,您可以在XMI文件上运行ArchGenXML,这将生成产品目录。生成后,您将能够在Plone中安装您的产品,并使您的新内容类型、工具和工作流可用。
目前,尚未实现往返支持:自定义代码不能转换回XMI(因此是图)。然而,您可以基于现有代码重新生成您的产品。方法体和某些受保护的代码部分将被保留。这意味着您可以在UML模型中演进产品的公共接口、其方法和其属性,而不用担心丢失您编写的代码。
支持的Plone版本
我们支持Plone版本2.5.x和>3.1.x。但如果您使用低于2的某些ArchGenXML版本生成的代码,您将需要手动调整生成的模型和代码。没有平滑迁移。如果您不需要使代码在Plone 3上运行,请坚持使用较旧的ArchGenXML版本。
进一步阅读
手册 记录了ArchGenXML的大部分功能。还有大量第三方文档,使用多种语言。只需使用Google即可查找更多相关信息。
变更日志
2.7 (2017-11-08)
添加了在动作上使用标记值“icon”来管理icon_expr的可能性。[gbastien]
为工作流转换添加了标记值“icon”。[gbastien]
添加了disable_increment_profile_vernum标记值。如果为True,则每次生成时metadata.xml中的版本号不会升级。[thomasdesvenain]
添加图标元数据文件。[thomasdesvenain]
将png用作默认图标。如果folder_icon或document_icon设置为content_icon,则不复制它。[thomasdesvenain]
允许多个工作流。如果许多工作流与类嵌入,则每个工作流都绑定在workflows.xml中。“use_workflow”属性将工作流添加到嵌入的工作流中。[thomasdesvenain]
抽象类没有工作流绑定。[thomasdesvenain]
使用DataGridField导入Column类。[thomasdesvenain]
在工作流定义.xml中添加了受保护的区域。[thomasdesvenain]
视图操作始终为${object_url}/view,否则选择布局将不再工作。[thomasdesvenain]
当我们对一个类添加带有空值的content_icon时,图标表达式为空。[thomasdesvenain]
如果plone >= 4.1,则将网站管理员添加到忽略的额外角色中。[thomasdesvenain]
默认Plone目标版本是4.1。更改默认版本更容易。[thomasdesvenain]
修复了configure.zcml核心部分的保护。[thomasdesvenain]
现在,可以以n,n1.n2等格式管理通用设置版本号,而不仅仅是n1.n2.n3。[thomasdesvenain]
如果plone_target_version标记值设置为4.0或4.1,则针对FTI生成icon_expr而不是content_icon。[vincentfretin]
在type.xml中添加了受保护的FOOT部分。[vincentfretin]
添加了vocabulary_factory标记值。[thomasdesvenain]
避免在Zope 2.13+下出现已弃用的导入警告。[thomasdesvenain]
通过删除生成中的.pt,修复了模板名称和portlet类之间的不一致。[jihaisse]
添加了portlet类的生成方法。portlet类将看起来像经典portlet。[jihaisse]
2.6 (2011-03-10)
将z3接口作为默认接口,不再接受任何zope2接口。[jensens]
在生成workflows.xml时,如果可用,请使用portal_type标记值而不是类名。[vincentfretin]
删除了不必要的导入,对于remember/membrane,现在可以在内容类依赖关系中指定视图权限,现在可以在视图类和内容类之间的依赖关系中指定视图模板的名称,将固定大小参数传递给arrayfield(例如,4生成大小为4),浏览器视图:依赖关系中的名称确定视图名称,删除旧的生成i18n支持。[zworkb]
tgv用于dynatree小部件。[hpeteragitator]
添加了worklist:guard_expressions标记定义。[vincentfretin]
修复了在将现有方法的代码写回文件时出现的UnicodeEncodeError,如果代码是unicode格式的话。[deo]
2.5 (2010-09-04)
扩展器不再生成接口两次了。[jensens]
现在可以在工作流上设置meta_type="Subtractive Workflow"(默认为"Workflow")和state_var="confidential_state"(例如,默认为"review_state")以使用collective.subtractiveworkflow。[vincentfretin]
在rolemap.xml中添加了受保护的角色和权限部分。[vincentfretin]
用Python 2.7中可用的ordereddict实现替换了有问题的odict实现。[moldy]
对生成的模块信息头进行了Unicode修复。[moldy]
删除了关于sets模块的DeprecationWarning。[vincentfretin]
标题信息:为作者使用更好的格式化。将模块头字符串编码,这样我们就不会在非ASCII字符上卡住。[moldy]
将“dependend_profiles”作为多-tgv的替代方案提供(避免超长的tgvs)。[jensens]
添加了虚拟字段类型“keywords”,它将生成带有KeywordWidget的LinesField(这需要一个tgv catalog:index=1)。[jensens]
防止在空tgv上出错。[hpeteragitator]
2.4.1 (2009-04-01)
修复了错误的版本‘2.4-‘。‘2.4-’版本并未完全上传。[vincentfretin]
2.4 (2009-04-01)
修复了使用index:extras标记值的错误。[jensens]
启用简单的plone.app.content.ATBlob子类化。将atblob类型添加到配置文件中。[jensens]
将stripogram(作为egg提供)添加为依赖项。[jensens]
修复了当使用catalogmultiples标记值时目录分配的问题。[erico_andrei]
下载
项目详情
archgenxml-2.7.tar.gz 的散列值
算法 | 散列值 | |
---|---|---|
SHA256 | 2e5a43b7afd140a4a8daf812824c77e3f25e817b95be068d528315e34afa2cbd |
|
MD5 | b7893b2a69a99fe1e8a2f417956c2dac |
|
BLAKE2b-256 | 7865737adef281b0638a14a8e2aebca1336b6728188b781d0f6488632fb81a89 |