跳转到主要内容

为OpenBlock(Django的本地新闻)设置和管理工具

项目描述

obadmin

ebpub设置和管理脚本以及实用工具。

此软件包是OpenBlock的一部分。最初为EveryBlock.com开发。

有关更多信息,请参阅文档项目网站

问题可以通过问题跟踪器报告。

讨论在ebcode google group或freenode上的#openblock频道。

安装

不要只是尝试easy_install或pip安装obadmin。它有许多特定的依赖关系,这些依赖关系不能/不应该由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循环的reverse选项,例如:{% 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。现在Census 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数据中的“State Hwy”这样的事物;没有它,我们遇到了地理编码失败、用户界面中的混淆/模糊的街道名称等问题。关闭#264。

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

  • 现在管理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:允许通过多种类型(模式)进行搜索。

  • 添加了一个用于从电子表格导入新闻条目的管理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设置为模式的默认视图,问题单#272

  • 添加了 ebpub.moderation 应用程序,允许用户将新闻条目标记为垃圾邮件或不当内容,以及用于它的管理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 实例,其查询集将返回允许的模式。

  • 将 Vary 头添加到 REST API 响应中,以实现更准确的 HTTP 缓存。

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

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

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

  • 大多数日期字段和日期时间字段现在有合理的默认值,但仍可覆盖。

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

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

  • 用户管理 UI 现在显示 Profile 和 API 密钥。

  • “粘性小部件”也称为“固定”新闻项目:您可以使用管理 UI 使某些新闻项目永久或直到您设置的到期日期在工具中可见。

  • 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,位置详情页面缺少项目。

  • 修复当属性引用不存在的 Lookup 时发生的 KeyError。

  • 修复了 FilterChain.add(key, lookup) 中的错误,当 key 不是 SchemaField 时。

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

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

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

  • 使 manage.sh 脚本可执行。

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

  • 在通过查找进行筛选时允许选择多个值。工单号# 267。

  • 对于schema_filter视图,使用查询参数而不是奇怪的URI,工单号# 266。

  • 从schema_filter页面移除无效的面包屑;工单号#270

  • 通过块号筛选NewsItems不再导致500错误。

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

  • 修复了将爬虫记录到控制台的双记录问题。

  • /streets/列表在没有设置DEFAULT_LOCTYPE_SLUG的情况下不会崩溃。

  • 当request.user是一个LazyUser实例时,获取配置文件的工作方式。

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

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

  • 自定义登录视图在访问管理站点时现在可以正常工作,并且与django.contrib.auth兼容(使用相同的cookies)。工单号#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中所有设置的文档。

  • 关于Schema、SchemaFields、Attributes以及它们之间如何关联的更好的文档。

  • 修复了示例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个有点荒谬。

项目详情


下载文件

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

源分布

obadmin-1.2.tar.gz (57.0 kB 查看哈希值)

上传于 来源

由以下支持