Xblocks的各种实用程序

xblock-openedx-utils的Python项目详细描述


Xblock实用程序:Xblocks的各种实用程序
===
==



这些是有用的实用程序函数的集合,
测试基类和许多Xblocks共享的文档。
(尤其是那些"edx解决方案"的实用程序)


。_ edx-solutions:https://github.com/edx solutions




要测试实用程序,请运行:



要获取覆盖率报告,请使用:



——

…代码::python

from xblockutils.studio_editable导入studioeditablexblockmixin

此mixin将自动生成一个工作的"studio_view"窗体,允许内容作者编辑xblock的字段。要使用,
只需将类添加到基类列表中,并添加一个名为"可编辑字段"的新类字段,设置为希望用户能够编辑的字段名称的元组。code::python

@xblock.needs("i18n")
类示例块(studioeditablexblockmixin,xblock):

mode=string(
display\u name="mode",
help="确定此组件的行为。建议使用"标准"。",
默认值="标准",
作用域=作用域.content,
值=("标准","疯狂")

可编辑字段=("模式","显示名称")

mixin将从
您提到并构建编辑器表单的字段以及ajax save
处理程序中读取可选的
``显示名称``,``帮助`,``默认`,和``值``设置。

如果要验证数据,可以重写
``验证`字段数据(self,validation,data)``和/或
`` clean_studio_edits(self,data)``-有关详细信息,请参阅源代码。


支持的字段类型:

*布尔值:
``字段名=布尔值(display_name="field name")```
*浮点值:
``字段名=浮点值(display_name="field name")```
*整数:
``字段_ name=integer(display庘name="field name")`
*字符串:
`` field庘name=string(display庘name="field name")``
*字符串(多行):
`` field庘name=string(多行编辑器=true,可重置编辑器=false)`
*字符串(html):
`` field庘name=string(多行编辑器='html',resettable_editor=false)``


如果上面的任何一个选项有一个预定义的
可能值列表,则它们都将使用下拉菜单。

*从一小组
可能值中提取的无序唯一值(即集合)列表:
`` field恚name=list(list恚style='set',list恚values恚provider=某些方法)`

-``list``声明必须包含属性``list`style=`set``到
表示``list``字段正与set语义一起使用。
-``list``声明还必须定义一个``list`values`provider``方法
e block作为其唯一参数,它必须返回一个可能值的列表。
*对dict、ordered list和任何其他jsonfield派生字段类型的基本支持normal dict",default={}``


支持的字段选项(所有字段类型):

*``values``可以定义可能的选项列表,将ui元素
更改为选择框。可以将值设置为
xblock源代码中定义的任何格式<;https://github.com/edx/xblock/blob/master/xblock/fields.py>;` ` ` ` ` ` `:

-有限元素集:` `[1,2,3]` `
-有限元素集,其中显示名称与值不同r/>[
{"显示名称":"始终","值":"始终"},
{"显示名称":"过期","值":"过期"_due"},
]
-特定增量浮点数的范围:
`{"min":0,"max":10,"step":.1}``
-返回上述值之一的可调用函数。(注意:callable没有通过xblock实例或运行时,因此它不能是一个普通的成员函数)
*``values`u provider``可以定义一个接受xblock
实例作为参数的callable,并以上面列出的一种格式返回一个可能值的列表。
*``resetable`u editor`-defa结果为"真"。将"false"设置为隐藏"reset"按钮,该按钮用于通过从xblock实例中删除字段的值来将字段返回到其默认值。


基本屏幕截图:屏幕截图1


studiocontainerxblockmixin
代码::python

from xblockutils.studio_editable import studiocontainerxblockmixin

此mixin有助于创建允许内容作者添加、删除或重新排序子块的xblock。通过删除任何现有的
``author\u view``并添加此mixin,您将在studio中获得可编辑的
re-orderable和可删除的子支持。要使作者能够将任意块添加为子块,只需在调用"render"子块时重写"author\u edit"视图并设置"can\u add=true"-请参见源代码。为了限制作者,以便他们只能添加特定类型的
子块或数量有限的子块,需要自定义HTML。


例如指导Xblock:屏幕截图2


SeleniumxBlockTest
----

。代码::python

from xblockutils.base_test import seleniumxblocktest


这是一个基类,可用于编写xblock sdk(工作台)中托管的selenium集成测试。

代码::python

class test student view(seleniumxblocktest):
"
"测试mycoolxblock的学生视图
"
def setup(self):
super(teststudentview,self).setup()
self.set_scenario_xml('<;mycoolblock display_name="test demo block"field2="hello"/>;')
self.element=self.go_to_view("student_view")

"
"xblock应显示field2的文本值。
"
"self.assertin("hello",self.element.text)

=--

代码::python

from xblockutils.studio_editable-test import studioeditablebasetest

这是"seleniumxblocktest"的一个子类,它添加了一些有用的helper
方法,可用于使用
"studioeditablexblockmixin"测试任何xblock的"studio_-view"。

代码::python

from xblockutils.helpers import child\isinstance


如果您的xblock需要查找特定类/mixin的子级/子级,则应使用

。代码::python

child-isinstance(self,child-usage-id,somexblockclassormixin)


,而不是调用

。代码::python

``isinstance(self.runtime.get戋block(child戋usage戋id),somexblockclassormixin``.


在edx平台等运行时,``child戋isinstance``的速度要快得多个数量级。

|截图1图片::https://cloud.githubusercontent.com/assets/945577/6341782/7d237966-bb83-11e4-9344-faa647056999.png
|屏幕截图2 image::https://cloud.githubusercontent.com/assets/945577/6341803/d0195ec4-bb83-11e4-82f6-8052c9f70690.png


xblockwithsettingsmixin
——-主题支持访问Xblock特定设置)用于DETails

ThemableXblockMixin
----


此Mixin提供基于Xblock特定设置的Xblock主题化功能。
有关详细信息,请参阅[维基页面](https://github.com/edx/xblock-utils/wiki/settings和主题支持

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

推荐PyPI第三方库


热门话题
有没有一种简单的方法可以从Java中相同接口的多个实现中创建级联函数?   活动MQ和Amazon MQ之间的java差异   java如何在使用来自webfront的jackson配对json字符串时忽略无效值并设置空值?   java如何确定JMock模拟对象正在模拟哪个类?   java Tarjan的周期检测:缺少周期   JRadioButton名称的名称空间Java操作侦听器   安卓我可以读取Java中嵌套的公共静态抽象类中的公共静态final字段吗   即使终端配置正确,Java也无法显示Unicode字符   java如何使用JPA条件查询编写此查询?   需要帮助为这个Java程序开发一个合适的打印方法吗   图片哪里可以找到java ImageIo源代码?   java正则表达式查找方法调用   java组织。jvnet。哈德逊。测验JellyTestSuiteBuilder$JellyTestSuite异常:不兼容ClassChangeError:实现类   从div到PDF?JavaEE、jQuery、PGSQL   JVM(Java虚拟机)是一种抽象机器。   spring如何使用用户名和密码来构建URL,以使用基本Java身份验证访问RESTAPI?   java合并2个链表   使用ServerSocket引发java ConnectException   java IBM JMS MQ在MQM头中添加用户ID