向用户显示可配置的HTML指南。

django-user-guide的Python项目详细描述


[![生成状态](https://travis ci.org/ambitioninc/django user guide.png)(https://travis ci.org/ambitioninc/django user guide)
django user guide


django user guide是一个"django>;=1.6"应用程序,向用户显示可配置的、自包含的HTML指南。向所有用户显示指南就像创建"guide"对象并将其链接到用户一样简单。使用方便的{%user\u guide%}模板标记显示指南,然后django user guide执行其余操作。当用户访问包含模板标记的页面时,他们会收到相关的指南。django用户指南决定了用户需要查看哪些指南,并将它们显示在一个带有控件的模式窗口中,用于循环浏览这些指南。django用户指南跟踪大量元数据:创建时间、指南重要性、指南是否已由特定用户完成、完成时间等。

[安装](安装)
1.[指南](指南)
1.[指南信息](指南信息)
1.[设置](设置)
1.[完成标准](完成标准)
1.[组合在一起](组合在一起)


要安装django用户指南:

``shell
pip install git+https://github.com/ambitioninc/django user guide.git@0.1
````


将django用户指南添加到"已安装的应用程序"以开始:

settings.py

``python

已安装的应用。
《django用户指南》依赖于几个基本的django应用。
已安装的应用=(
"django.contrib.auth"、
"django.contrib.admin"、
"django.contrib.sites"、
"django.contrib.sessions"、
"django.contrib.messages",
"django.contrib.staticfiles"、
"django.contrib.contenttypes"、
"用户指南"、
)、
````

确保django的csrfviewMiddleware已启用:

settings.py

``python
中间件类=(
"django.middleware.csrf.csrfviewMiddleware",

```

将Django用户指南的URL添加到项目中:


``python
from django.conf.url import include,patterns,url

urlpatterns=patterns(
url(r'^user guide/',include('user_guide.urls'),
```

<;a name="guide">;指南<;/a>;

首先需要创建一个或多个"指南"对象。"guide"对象包含:

guide_name(必需,最大长度=64,唯一)


这是"guide"的语义唯一标识符。允许轻松识别和有针对性的筛选。

使用此字段以有意义的方式与用户通信。
请注意,此字段中的数据是用{%html safe%}输出的,因此在其中放置不受信任的数据是不明智的。html字段自动将html中的{static}替换为"settings.static_url"的值,以方便使用。


专门设计用于过滤。如果在您的上下文中有"我的指南"标签列表=['Welcome','Onboarding']`的话,您可以使用{%user_guide guide标签=我的指南标签列表%}`向用户显示所有带有"Welcome"和"Onboard"标签的指南。


在"指南"中。` guide"具有较高guide\u重要性的对象"将首先显示。` guide"对象总是按"guide_u importance"排序,然后按"creation_u time"排序。


当前仅支持模式窗口。计划将来支持定位的coach标记和其他元素。


`` python
来自用户指南。模型导入指南

guide.objects.create(
html='<;div>;你好指南!<;/div>;',
guide_name="first guide",
guide_tag="onboarding",
guide_importance=5

`````

它们用于将"指南"连接到"用户"。"guideinfo"对象包括:


任何数量的"user"对象都可以指向"guide"。


任何数量的"guide"对象都可以绑定到"user"。


默认情况下,只有满足[完成条件]("完成条件")时,才会显示具有"is_finished=false"的"guide"对象。存储"datetime.utcnow()"的值。

guideinfo

向给定用户显示名为"first guide"的指南
guide=guide.objects.get(guide=name='first guide')
user=user.objects.get(id=1)


guideinfo.objects.create(guide=guide,user=user)
````



django用户指南有多种配置,可以微调用户指南体验。


如果用户有20个可能的指南,并且"用户指南显示最大值"设置为5,则只显示前5个(基于"指南重要性"和"创建时间")指南。


在[django user guide.css]源文件(user-guide/static/user-guide/build/django user guide.css)后立即添加为"link"标记。如果省略,则不包括额外的样式表。有关要重写的类名,请参见[django user guide.css](user-guide/static/user-guide/build/django user guide.css)。

在[django user guide.js](user-guide/static/user-guide/build/django user guide.js)源文件后立即添加为"script"标记。如果省略,则不包括额外的脚本。有关要重写的方法,请参见[django user guide.js](user_guide/static/user嫒guide/build/django user guide.js)。


\user嫒guide嫒u use嫒cookies(默认值=false)

用于向多个共享django用户显示指南。

="absolute/path/to/script.js"
````

\默认情况下,他们只需要按指南上的"下一步"或"完成"按钮。可以通过创建自定义脚本并将其添加到用户指南URL设置来覆盖此行为。自定义脚本只需要重写"window.djangouserguide.isfinished"方法。


custom script.js

``js
/**
*@override isfinished
*只允许在周一将指南标记为finished。
*@param{htmldivelment}item-要检查。
*@返回{boolean}
*/
window.djangouserguide.prototype.isfinished=函数已完成(项){
如果((new date()).getday()==1){
返回true;
}
return false;
};
```

settings.py

```python
user_guide_js_url='path/to/custom script.js'
````



假设您已经创建了一些"guide"和"guideinfo"对象,这就是您将如何向用户显示其相关指南的方式。


``python
from django.views.generic import templateview

template name='cool_project/cool_template.html'

def get_context_data(self,**kwargs:
context=super(coolview,self).get_context_data(**kwargs)
context['cool_guide_tags']=['general','welcome','onboarding']
return context
``````

templates/cool_project/cool_template.html

``html
<;!doctype html>;
<;html>;
<;head>;
<;meta charset="utf-8">;
<;title>;您好用户指南<;title>;
<;head>;
<;body>;
{%加载用户指南标记%}
{%用户指南标记=酷指南标记%}
<;h1>;你好用户指南!<;/h1>;
<;/body>;
<;/html>;
````

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

推荐PyPI第三方库


热门话题
ws-consumer服务地址中的java动态属性   java如何比较整数列表,然后按升序排序?   javascript我正在使用java脚本调用一个函数,但它没有调用代码下面的方法,也没有调用secretitnames()函数   在文本窗格中多次使用Java insertIcon图标   JavaMSAL安卓。AuthenticationActivity完成,但用于身份验证请求的线程池线程仍处于等待状态   if语句中的java多范围比较   java toString()表示输出   java如何在jcstrest测试中生成指令重新排序   java我怎样才能运行它?   web应用程序中使用Hibernate和Spring的java问题   如何将字符串数据写入Java文本文件   如何在java命令提示符下运行已签名的jar文件?   java从我的菜单调用RCP应用程序   java如何等待Canvas/GraphicsContext完成任务,然后再继续执行代码块?