跳转到主要内容

提供基本的水井对象

项目描述

提供Armstrong内部安排和调度模型所需的基本内容水井代码。

您可以使用水井来更改内容的顺序。它们旨在与查询集结合使用,以便用户可以控制列表中首先出现的内容。

用法

水井是Armstrong中最强大的组件之一;它们基本上关乎内容的排序和结构。

网站上经常有一些部分只显示最近发布的属于某些分组(例如,一个部分或标签)的故事,但如果有重大新闻,编辑人员希望通过将其放置在顶部来突出显示。Wells允许编辑人员通过管理员来固定故事。演示项目使用QuerysetBackedWellView结合‘front_page’ WellType来完成此用例。

armstrong.core.arm_wells提供了3个主要对象来工作。最高级别是WellType,它通常是您网站上希望对内容进行排序的特定位置。每个WellType都有许多Well对象。Well对象代表在特定时间段内对该WellType的特定内容排序。每个Well都有许多Node对象,每个Node对象都通过GenericForeignKey将Well与数据库中的一个对象相关联。

任意内容的排序

使用Wells最简单的方法是只与一个WellType关联一个Well对象。更改该Well的内容或内容的排序方式将立即更改网站上显示的内容。

使用GenericForeignKeys将Node对象链接到内容提供了很多灵活性。Wells使您能够轻松地将数据应用程序、视频、音频剪辑、照片库和现场博客等所有内容都放置在一个Well中,即使它们没有共同的基类。

将不同样式和字段的内容对象进行布局的挑战促使开发了armstrong.core.arm_layout,它为各种内容对象指定了命名的布局框架。

通过将Wells视为仅用于排序内容的简单工具,您将开始看到网站上其他适合使用它们的场景。任何写作或编辑人员希望在网站上重新排序的对象数据库都是Wells的良好候选。

调度

Wells的另一个主要方面是调度。如果编辑人员希望在周四下午5点计划首页,他们可以创建一个新的Well,使用‘front_page’ WellType和希望显示的内容。通过设置新Well的pub_date为周四下午5点,届时不需要采取任何行动,网站将开始使用新Well。

类似地,如果内容应该仅在特定时间段内计划并随后回到较早的Well,Well也有一个过期字段。我们建议每个WellType都有一个永不过期的空Well对象,以提供合理的回退。

WellManager有一个方便的方法get_current,它接受WellType名称,并获取与该WellType关联的Well,具有最近的pub_date在过去,并且没有过期的过期。

使用QuerySetBackedWellView

Wells还可以由一个queryset支持,该queryset将在所有项目耗尽后用作额外内容的来源。目前,这不能通过管理员进行配置,但可以使用QuerySetBackedWellView轻松完成。例如,在urls.py中

url(r'^$', QuerySetBackedWellView.as_view(well_title='front_page',
                                          template_name="index.html",
                                          queryset=Article.published.all()),
        name='front_page'),
# get's the current 'front_page' well, backs it with Article.published.all()
# and renders the index.html page

要渲染一个well,我们建议使用armstrong.core.arm_layout模块。这将允许简单的模板处理异构内容。例如,要使用‘standard’布局渲染well中的每个项目

{% load layout_helpers %}
{% for content in well.items %}
    {% render_model content 'standard' %}
{% endfor %}

管理员自定义

修改well的管理员视图已被自定义,提供用于排序Node的拖放界面。要将Node添加到well中,请使用VisualSearch框首先搜索ContentType,然后搜索您想使用的对象的标题。例如,在演示中,在框中输入‘art’,将提供‘ARTICLE’,按Enter键并搜索标题中包含‘Perry’的文章。VisualSearch小部件来自armstrong.hatband,它提供了有关自定义此过程更多信息。

当节点被添加时,它会显示有关其ContentType ID和对象ID的简单(且不是特别有用)信息。它还会向服务器发送请求,以获取使用“preview”名称的render_model调用的html结果。这允许您以类似对象在网站上显示的方式轻松显示节点。

安装与配置

您可以使用pip安装armstrong.core.arm_wells的最新版本。

pip install armstrong.core.arm_wells

请确保将armstrong.core.arm_wells添加到您的INSTALLED_APPS中。您可以选择任何方式添加。这是一个复制粘贴的解决方案。

INSTALLED_APPS += ["armstrong.core.arm_wells", ]

安装后,如果您使用South,则需要运行syncdbmigrate

贡献

  • 创建一些出色的东西——改进代码、添加一些功能等(这是最难的部分)。

  • 进行Fork操作

  • 创建一个主题分支以存放您的更改

  • 将所有提交放入新的主题分支中

  • 提交一个pull request

项目状态

Armstrong是一个开源新闻平台,任何组织都可以免费使用。它是Texas TribuneBay Citizen合作的成果,以及John S. and James L. Knight Foundation的资助。

要跟进开发,请务必加入Google Group

armstrong.core.arm_wellsArmstrong项目的一部分。您可能正在寻找那个。

许可证

版权所有 2011-2012 Bay Citizen和Texas Tribune

在Apache License,Version 2.0(“许可证”)下许可;除非适用法律要求或经书面同意,否则不得使用此文件,除非符合许可证。您可以在以下位置获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或经书面同意,否则在许可证下分发的软件按“现状”基础分发,不提供任何明示或暗示的保证或条件。有关许可的权限和限制的具体语言,请参阅许可证。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

armstrong.core.arm_wells-1.10.0.tar.gz (20.4 kB 查看散列)

上传时间 来源

支持者