CKAN组织层次结构 - 模板和配置
项目描述
ckanext-hierarchy - CKAN的组织和组层次结构
组织和组可以按树形层次结构排列。
此扩展程序使用模板显示组织和组的新层次结构排列,而不是通常的列表:
在组织和组编辑表单上提供了一个新字段,用于选择父组织:
在查看组织时,您可以在侧边栏中看到它在树中的上下文。此外,您还可以扩展组织数据集的搜索范围,包括子组织中的数据集:
技术细节
表单(hierachy_form插件)
- /organization/new
- /organization/edit/{id}
- /group/new
- /group/edit/{id}
模板(hierarchy_display插件)
- /organization - 现在显示组织层次结构而不是列表
- /organization/about/{id} - 现在也显示层次结构的相关部分
- /group - 现在显示组层次结构而不是列表
- /group/about/{id} - 现在也显示层次结构的相关部分
片段(由hierarchy_display和ckanext-scheming使用)
- /scheming/form_snippets/org_hierarchy.html
您可以直接使用这个扩展程序与CKAN配合,启用两个插件。或者,如果您已经使用扩展程序对具有IGroupForm的表单进行了自定义,那么您可能只想使用hierarchy_display插件,并将hierarchy_form和/或hierarchy_group_form的某些部分复制到您的自己的程序中。如果您有自己的模板,则可以使用此扩展程序提供的代码片段(或逻辑函数)来显示树形结构。
为了使hierarchy与ckanext-scheming配合工作,您只需启用hierarchy_display,然后在您的org_schema或group_schema中使用相应的form_snippet。例如,您可能需要添加以下字段
{
"field_name": "not_used",
"label": "Parent organization",
"display_snippet": null,
"form_snippet": "org_hierarchy.html",
"validators": "ignore_missing"
}
可选地,您还可以指定一个完整名称,并将字段'title'留给简称或缩写(更适合显示)。
{
"field_name": "longname",
"label": "Full Name",
"validators": "ignore_missing unicode",
"form_snippet": "large_text.html",
"form_attrs": {"data-module": "slug-preview-target"},
"form_placeholder": "My Organization full name",
"display_snippet": null
}
待办事项
- 使用JSTree使树形结构更美观
需求
此扩展程序需要CKAN v2.7或更高版本。
安装
要安装ckanext-hierarchy
-
激活您的CKAN虚拟环境,例如
. /usr/lib/ckan/default/bin/activate
-
将ckanext-hierarchy Python包安装到您的虚拟环境中
cd /usr/lib/ckan/default/src pip install -e "git+https://github.com/davidread/ckanext-hierarchy.git#egg=ckanext-hierarchy" pip install -r ckanext-hierarchy/requirements.txt
-
将
hierarchy_display
、hierarchy_form
和/或hierarchy_group_form
添加到您的CKAN配置文件中的ckan.plugins
设置(默认配置文件位于/etc/ckan/default/production.ini
)。请注意,hierarchy_display应位于hierarchy_form和hierarchy_group_form之前例如:
ckan.plugins = stats text_view recline_view ... hierarchy_display hierarchy_form hierarchy_group_form
-
重新启动CKAN。例如,如果您已在Ubuntu上使用Apache部署了CKAN
sudo service apache2 reload
配置设置
目前没有
测试
要运行测试,请执行:
nosetests --nologcapture --with-pylons=test.ini
要运行测试并生成覆盖率报告,请首先确保您已安装coverage到您的虚拟环境(pip install coverage
),然后运行:
nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.hierarchy --cover-inclusive --cover-erase --cover-tests
发布ckanext-hierarchy的新版本
ckanext-hierarchy应可在PyPI上作为https://pypi.ac.cn/project/ckanext-hierarchy提供。要发布新版本到PyPI,请按照以下步骤操作
-
在
setup.py
文件中更新版本号。有关如何选择版本号的说明,请参阅PEP 440 <http://legacy.python.org/dev/peps/pep-0440/#public-version-identifiers>
。 -
确保您拥有最新版本的必需包
pip install --upgrade setuptools wheel twine
-
创建新版本的源代码和二进制发行版
python setup.py sdist bdist_wheel && twine check dist/*
修复您遇到的任何错误。
-
将源代码发行版上传到PyPI
twine upload dist/*
-
提交任何悬而未决的更改
git commit -a
-
使用来自
setup.py
文件的版本号在GitHub上标记项目的新的发布版本。例如,如果setup.py
中的版本号为0.0.1,则执行以下操作:git tag 0.0.1 git push --tags
许可权和版权
此模块采用AGPLv3开放许可 - 请参阅LICENSE文件。
版权属于提交作者。2013-2017年的提交由@davidread所有,归英皇所有。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。