跳转到主要内容

OpenBlock(Django的本地新闻)的演示网站配置

项目描述

obdemo

一个Django应用程序,包含openblock演示网站的配置和覆盖。

obdemo旨在作为基于OpenBlock代码设置站点的有用示例,特别是ebpub

此软件包是OpenBlock的一部分。有关更多信息,请参阅文档项目网站

问题可以向问题跟踪器报告。

讨论在ebcode谷歌群组或freenode的#openblock频道。

安装

不要只是尝试easy_install或pip install obdemo。它有很多特定的依赖项,这些依赖项无法/不应该通过setup.py捕获。

相反,请参阅http://openblockproject.org/docs/install/index.html的完整文档,其中包含pip需求文件和准备系统的说明。

OpenBlock

OpenBlock是一个Web应用程序和RESTful服务,允许用户浏览和搜索他们所在的地区以“超本地新闻”-查看最近在直接地理区域发生的事情。

有关安装说明和其他文档,请参阅http://openblockproject.org/docs/(或docs/目录中的.rst文件)。

如有帮助,您可以尝试ebcode小组: http://groups.google.com/group/ebcode 或者在irc.freenode.net的#openblock IRC频道中寻找我们。

关于项目

OpenBlock始于2009年6月Everyblock.com发布的开源代码。最初由Adrian Holovaty和Everyblock团队创建,现在由OpenPlans以开源(GPL)项目形式开发,详情请访问http://openblockproject.org

Everyblock的初始创建和OpenBlock的持续开发资金由Knight Foundation提供(http://www.knightfoundation.org/)。

OpenBlock 1.2.0(发布日期:2012年5月23日)

升级说明

  • 像往常一样,安装所有依赖项,例如如果您正在升级源代码检查

    pip install -r ebpub/requirements.txt
    pip install -e ebpub
    pip install -r ebdata/requirements.txt
    pip install -e ebdata
    pip install -r obadmin/requirements.txt
    pip install -e obadmin
    pip install -r obdemo/requirements.txt
    pip install -e obdemo
  • 像往常一样,同步和迁移数据库

    django-admin.py syncdb
    django-admin.py migrate
  • 在本发行版中,Block模型和导入脚本能进行一些更改,这可以提供更好的搜索结果和地理编码,如果您重新加载您的区块数据。要这样做

    • 运行迁移,如上所述

    • 关闭您的爬虫

    • 备份数据库

    • 使用“-reset”选项重新导入区块(这很重要!),通过管理界面或命令行……请参阅http://openblockproject.org/docs/install/geodata.html#streets-blocks

    • 请确保根据文档重新生成街道、BlockIntersections和Intersections。

    • 浏览您的网站……除了那些以前名称模糊的街道,如“99”或“87”,现在将具有更易识别的全名,例如“州道99”或“州际公路87”。

    • 再次启动您的爬虫。

    在此过程中,网站应保持运行,尽管在处理过程中,某些页面可能会短暂出现错误,并且高速公路的URL将更改为包含前缀。

向后不兼容性

  • 已移除外键EmailAlert.block和SavedPlace.block;现在它们具有几何形状,可以用来查找最近的区块。如果您需要重新加载区块数据,这将更安全。运行迁移将处理现有的警报和已保存的位置,但如果您改变主意,则不能安全地降级;请始终备份数据库!(工单#257)

  • 已移除神秘字段Schema.grab_bag、Schema.grab_bag_headline和Schema.intro。(工单#232)

  • 已移除安全_id_sort_reversed模板标记;改用for循环的逆选项,例如:{% for item in itemlist|safe_id_sort reversed %}

  • 将友好的日期模板过滤器从ebpub.db.templatetags.eb移动到ebpub.db.templatetags.dateutils,这似乎是它应该所在的位置。

  • 将recaptcha模板标记从ebpub.neighbornews.templatetags移动到ebpub.db.templatetags.recaptcha_tags。现在,使用它的模板需要执行{% load recaptcha_tags %}。

  • 将一个晦涩的模板标记{% get_locations_for_item %}从ebpub.widgets.templatetags移动到ebpub.db.templatetags.recaptcha_tags。现在,使用它的模板需要执行{% load eb %}。

  • 将许多模板标记函数重命名为与标记名称匹配,例如“do_filter_url()”现在变为“filter_url()”。这使得API文档更容易阅读;它不会影响模板,只会影响直接导入这些函数的代码 - 而且可能没有这种代码。

  • 在Schema过滤页面添加了“在地图上查看所选项目”链接和复选框,以允许在“大地图”上查看显式选择的项。

  • 更改了schema_filter视图使用的URL,因此某些书签可能无法使用。(工单#266)

  • 已移除EB_MEDIA_ROOT和EB_MEDIA_URL设置;现在使用django的普通MEDIA_ROOT和MEDIA_URL。

  • 已移除ImproperCity异常,该异常仅用于防止在县的非市辖区等地方使用区块,因为这些地方没有任何可以称为“城市”的东西。

  • 已移除未使用的NewsItem.block字段,这是工单#93的一部分。

  • 已移除ebdata/retrieval/scrapers/new_newsitem_list_detail.py,该脚本在没有任何地方使用。

  • 已移除ebpub/streets/blockimport/tiger/import_blocks2010.py。现在,2010年人口普查文件由主导入_blocks.py脚本支持。

  • 已从Widgets上下文中移除item.intersecting;它从未得到适当的文档记录。相反,请使用新的 get_locations_for_item 模板标签。

  • 由于我们现在在所有地方都使用openblockrichmap.js,因此已移除旧的地图JavaScript。

1.2版本的新功能

  • 现在您可以安全地重新导入块数据。事实上,这强烈推荐,您将获得更好的地理编码结果,因为这些结果得益于对#264和#278的修复。使用“–reset”选项对“import_blocks_tiger”。

  • 添加了ebpub.utils.geodjango:interpolate()函数,该函数查找线段上距离第一个点给定距离(或分数)的点。(由于否则这将需要数据库调用,因此添加了对Shapely的依赖。)

  • 在Streets模型中添加了“prefix”,用于诸如美国人口普查TIGER数据中的“州公路”等;没有它,我们在UI中遇到了地理编码失败、混淆/模糊的街道名称等问题。关闭#264。

  • 现在在admin UI中,位置导入将在后台运行。

  • 现在admin UI提供链接以在实时网站上查看各种内容(新闻条目、位置、块、街道、位置类型)。

  • NewsItem 现在允许保存带有空 description;有些东西可能只有标题可用。

  • 由于olwidget升级,支持多种类型的Yahoo地图。

  • ebpub.geocoder.base.full_geocode()现在有一个convert_to_block参数,该参数从ebdata.retrieval中提取出来。如果为True,则尝试通过向下取整到最近的街区来消除街道上的不良街区歧义,例如将“299 Wabash St”转换为“Wabash St.的200街区”。这可能有助于地理编码,例如,当人口普查数据与现实不符时。

  • 模式现在有一个 edit_window 字段,表示用户在创建内容后允许编辑其内容的时间长度(以小时为单位)。由neighbornews表单使用。

  • REST API:允许通过多个类型(模式)进行搜索。

  • 添加了用于从电子表格中导入新闻条目的admin UI(目前仅处理CSV和旧式Excel表,不处理.xslx)(问题单#126)

  • ebdata/scrapers/general/spreadsheet/retrieval.py中添加了一个通用的电子表格抓取器(目前仅处理CSV和旧式Excel表,不处理.xslx)(问题单#274)

  • ebdata.scrapers.general.georss地址提取回退现在查找所有看起来像文本的标签。

  • 搜索表单现在也搜索地点。

  • Neighbornews模式现在有可绘制categories

  • 允许根据模式覆盖schema_filter视图的模板,通过创建名为db/schema_filter/<schema>.html的模板来实现。

  • Nieghbornews模式现在有schema_filter视图的特定模板。

  • ebpub.db.Lookup模型中添加了featured标志,允许管理员将某些Lookup值指定为“特殊”,用于导航等。(#268)

  • 添加了一个get_featured_lookups_by_schema模板标签,将特定于该模式的“特殊”Lookup值列表放入上下文中。(#268)

  • 添加了Lookup.objects.get_featured_lookup_for_item(newsitem, attribute_key)方法,以找出新闻条目对于给定属性具有哪些“特色”Lookup。

  • 添加了lookup_values_for_attribute模板标签,将给定db.attribute字段的所有值作为JSON列表输出。

  • 将schema_filter设置为Schema的默认视图,问题单#272

  • 添加了允许用户将新闻条目标记为垃圾邮件或不当内容的ebpub.moderation应用程序,以及相应的admin UI;有关更多信息,请参阅moderation

  • 添加了Schema.allow_flagging布尔值,以按模式切换审查标记。默认情况下,在ebpub.neighbornews模式上允许。

  • 现在支持为新闻条目使用用户上传的图像,并且已为ebpub.neighbornews用户贡献内容模式启用。

  • 新增了新的 userlinks.html 模板,您可以覆盖页面右上角的链接。

  • 新增了 get_locations_for_item 模板标签,更多信息请见 ../main/widgets

  • 现在支持Postgresql 9.1,问题单号 #262。

  • 多亏了Frank Hebbert,地图控件现在更美观,问题单号 #225。

  • 添加了基于任意请求数据的过滤模式的钩子;通过指定 settings.SCHEMA_MANAGER_HOOK = 'some_module:some_function' 来实现,其中 some_module.some_function 接受参数 (request, manager) 并返回一个 models.Manager 实例,其查询集将返回允许的Schemas。

  • 向REST API响应添加Vary头,以提高HTTP缓存的正确性。

  • 在“neighbornews”添加/编辑表单上自动完成类别。

  • 在用户贡献的(“neighbornews”)添加/编辑表单上可选添加ReCaptcha。

  • 用户贡献的内容(“neighbornews”)现在有编辑和删除表单。

  • 大多数DateFields和DateTimeFields有合理的默认值,但仍可覆盖。

  • 注销现在会将您重定向到您正在查看的任何页面。

  • 将“properties” JSON字段添加到Profile模型中,以提供更灵活的每个用户的元数据。

  • 用户管理UI现在显示内联的Profil和API密钥。

  • “粘性小部件”或“固定”NewsItems在小部件中:您可以使用管理UI来使某些NewsItems永久可见或直到您设置的过期日期。

  • settings.NEIGHBORNEWS_USE_CAPTCHA现在可以是函数的字符串路径。

  • 新增了NewsItem.objects.by_request()方法,用于根据例如用户权限进行过滤。

  • 新增了get_schema_manager(request)方法,用于根据当前请求进行过滤,并提供了扩展钩子。

  • 至少将地理编码器缓存结果放入管理界面,以便您可以手动删除它们(如果需要的话)。参考 #163。

  • 管理UI选项可以将架构的副本保存为新架构。

已修复错误。

  • 管理用户不再有限制文件上传大小的限制。

  • 处理导入4326以外的投影的其他投影的地点。感谢Karen Tracey。参考 #214。

  • 现在我们使用从美国人口普查TIGER数据加载的街道的主要名称作为街区,而不是我们看到的最后一个名称,这可能是另一个名称。问题 #278。

  • 位置导入(命令行和管理UI)在重新导入相同的位置时不再崩溃。

  • 将RSS馈送URL修复为使用settings.EB_DOMAIN而不是站点框架来获取根URL。与OpenBlock的其他部分保持一致性。

  • 在输入时正确归一化街道名称(问题单号 #166)。

  • 当输入非字符串时,parsing.normalize()和text.slugify()不再崩溃。

  • 具有allow_charting=False的架构在schema_filter视图中显示,但在其地图上不显示。修复schema_filter_geojson,现在它们也在地图上显示。

  • 修复在大地图页面上按位置和日期过滤的问题。

  • 修复#281,大地图页面上显示错误的架构。

  • db.Location和streets.PlaceType的地图图标URL现在可以是相对于STATIC_URL的相对路径。

  • 修复#282,在地点详情页面上缺失条目。

  • 修复当属性引用一个不存在的查找时发生的KeyError。

  • 修复当key不是SchemaField时,在FilterChain.add(key, lookup)上出现的错误。

  • 现在可以在URL前缀上运行OpenBlock;已删除所有硬编码的URL。问题单号 #90。

  • 修复“保存地点”按钮上缺失的AJAX超时,感谢Tim Shedor。问题单号 #269。

  • 修复NewsItem.objects.by_attribute()中的错误,当存在多对多查找时:寻找[3,47]会找到以3开头或以47结尾的任何数字。

  • 使 manage.sh 脚本可执行。

  • 修复当我们有一个Block实例但其block范围不匹配block范围正则表达式时的罕见错误。已知示例:在密苏里州哥伦比亚的1600-7-1600-9 Hanover Blvd.。

  • 在通过查找过滤时允许选择多个值。问题单号 # 267。

  • 使用查询参数代替奇特的URI来访问schema_filter视图,问题编号 #266。

  • 从schema_filter页面移除无效的面包屑;问题编号 #270

  • 按区块号过滤NewsItems不再导致500错误。

  • block_import_tiger现在可以在同一文件上安全地重新运行,不会再次创建重复的区块。

  • 修复了将抓取器信息双倍记录到控制台的问题。

  • 如果你没有设置DEFAULT_LOCTYPE_SLUG,/streets/列表不会崩溃。

  • 当request.user是LazyUser实例时,找到配置文件的工作方法。

  • 删除了更多硬编码的URL。

  • 当使用过旧的Python版本时,我们的setup.py脚本现在会提供更详细的信息性错误,而不是因为with语句导致的SyntaxError。

  • 自定义登录视图现在在访问管理站点时可以正常工作,并且与django.contrib.auth兼容(使用相同的cookie)。问题编号 #174

  • 注销表单由于模板名称错误而损坏。已修复。

  • 修复了用户不存在时的500错误。

  • 如果没有匹配的新闻条目,则不会构造richmaps URL。

  • 在“选择一个区块”页面上按街道对区块进行分组,问题编号 #263

  • 在名为“Wilson Park”等街道上存储后缀;修复了一些地理编码失败的问题。

  • 修复了newsitem.geojson上的500错误,问题编号 #38

文档

太多要提及,但这里有一些

  • ebpub、ebdata、obadmin、obdemo包的Python API文档。问题编号 #159。

  • 关于如何通过抓取器或管理导入电子表格的更好文档。

  • 澄清电子邮件警报的行为。

  • 关于“核心”NewsItem字段的更好文档。

  • 记录ebpub.db.bin脚本。问题编号 #96。

  • 关于新闻条目的评论和标记的文档。问题编号 #252

  • 关于模板覆盖的更好文档,请参阅《custom-look-feel》。

  • 记录ebpub.streets.Places,请参阅《places》。问题编号 #253

  • ebpub.neighbornews的基本文档,请参阅《user_content》。问题编号 #211

  • 记录如何获取2010年人口普查文件而不是2009年的文件。

  • 添加了settings_default.py中所有设置的文档。

  • 关于模式、SchemaFields、属性及其相互关系的更好文档。

  • 示例crontab的修复,感谢Tim Shedor

其他

  • 将georss抓取器的点解析代码提取到ebdata.retrieval.utils中的get_point()函数中。

  • 通用rss抓取器现在是obdemo.scrapers.add_news的基础,它做了同样的事情。

  • 通用rss抓取器现在是ListDetailScraper和RssListDetailScraper子类。问题编号 #242

  • 升级jquery-ui到1.8.17。

  • 升级jquery到1.7.1。

  • 将一些NewsItemListDetailScraper功能提升到BaseScraper中,使其更广泛可用。

  • 弃用log_exception(),因为日志模块已经做了这件事

  • 将full_geocode()移动到ebpub.geocoder.base;它在一个隐蔽的地方

  • 默认情况下,每个用户有一个API密钥。3有点愚蠢。

项目详情


下载文件

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

源分发

obdemo-1.2.tar.gz (83.2 kB 查看哈希值)

上传于 来源

由以下支持