在plone网站上发布房地产对象的简单而专业的方法

collective.realestatebroker的Python项目详细描述


房地产经纪人

房地产经纪产品把plone变成了一个房地产经纪网站。 展示你的商业和住宅房地产与两个房地产 内容类型。允许访问者使用提供的表单搜索数据库。 注册访客的电子邮件更新。谷歌地图支持。容易的 大量添加图像。PDF导出。

已验证的文档

文档应该是正确的和最新的。为了保证 文档用于测试软件。所以软件和 确保文件正确无误。这就是为什么你会看到代码 本文档中的示例。

首先进行一点设置:添加一个管理员用户和一个注册访客。

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])

安装房地产经纪人

在您的鸡蛋和zcml中添加collective.realestatebroker 建造。如果您想要开发buildout,请在 https://github.com/collective/collective.realestatebroker

如果您有旧的1.0内容,可以通过在 建筑,如图所示,并加上注释。

在plone中,使用管理员帐户登录并安装房地产 通过quickinstaller进行代理(在plone控制面板中:"add/remove 产品")。

< Buff行情>
>>> self.login('admin')
>>> qi = self.portal.portal_quickinstaller
>>> qi.installProduct('collective.realestatebroker')

附加产品

RealestateBroker利用地图产品集成谷歌地图。检查 在Realestabroker拥有 已安装。

< Buff行情>
>>> self.portal.portal_quickinstaller.isProductInstalled('Maps')
True

ploneflashupload用于轻松地批量上传图像。

< Buff行情>
>>> self.portal.portal_quickinstaller.isProductInstalled('PloneFlashUpload')
True

在幕后,reportlab库用于导出pdf。

商业和住宅房地产内容类型

有两种内容类型,住宅和商业。它们有几处不同 字段.

< Buff行情>
>>> self.portal.invokeFactory('Residential', id='home1')
'home1'
>>> self.portal.invokeFactory('Commercial', id='office1')
'office1'

对旧版本1.0到2.0的迁移支持

如果使用迁移构建安装,则重新安装realestatebroker 将执行迁移。迁移执行以下操作:

  • 用住宅/商业对象替换旧的住宅/商务对象。
  • Rehome/Rebusiness有带CMFPhotos的CMFPhotoAlbums,这些照片 直接进入(folderish)住宅/商业对象 常规图像。
  • 将旧工作流状态或旧状态字段迁移到新工作流状态。
  • 如果新内容类型中仍然存在,请复制所有字段。

最好在3.0中创建一个新站点并有选择地移动 结束。无论如何,您不能直接执行2.0到3.0的plone迁移。它适用于 把旧房子和办公室出口到 3.0站点,假设您安装了迁移构建:该构建 包括旧realestatebroker产品、cmfphoto和 允许您加载旧对象的cmfphotoalbum。

定制

几乎可以肯定的是,房地产经纪人将需要适应当地 情况。在荷兰,航空公司并不常见,但在南部 美国可能是你想追踪的地方。

archetypes.schemaextender是一个很好的工具,可以很好地调整模式。见 RealestateBroker的"操作方法"部分的文档

此外,pdf导出还需要像添加页眉/页脚这样的工作。安D选择 另一种字体。这里还有:请参见plone.org 文档

房地产工作流程

房地产经纪人提供了一个名为"房地产工作流"的特殊工作流 它映射到住宅和商业内容类型。

< Buff行情>
>>> home1 = self.portal.home1
>>> wftool = self.portal.portal_workflow
>>> self.failUnless('realestate_workflow' in wftool.objectIds())
>>> wftool.getChainForPortalType('Commercial')
('realestate_workflow',)
>>> wftool.getChainForPortalType('Residential')
('realestate_workflow',)

房地产内容的初始状态应该是离线的,这意味着 Anonymous不能查看它,只有所有者、编辑器和管理器可以编辑它。从 此状态我们可以发布内容,这将使其进入"新"状态。

< Buff行情>
>>> wftool.getInfoFor(home1, 'review_state')
'offline'
>>> wftool.doActionFor(home1, 'publish', wf_id='realestate_workflow')
>>> wftool.getInfoFor(home1, 'review_state')
'new'

两周后,新项目将成为常规项目,以便新项目可以 在列表中显示得更突出。同样地,售出的物品将保留 两周内可见(这对获得"本地产"非常重要 经纪人真的卖了不少房子的"印象"。

门户属性

RealestateBroker在门户属性下安装属性表 默认属性。

< Buff行情>
>>> pptool = self.portal.portal_properties
>>> self.failUnless('realestatebroker_properties' in pptool.objectIds())

站点属性

不要在导航树中显示基本或特殊对象。

< Buff行情>
>>> navtree_props = pptool.navtree_properties
>>> types_not_to_list = navtree_props.getProperty('metaTypesNotToList')
>>> self.failUnless('Residential' in types_not_to_list)
>>> self.failUnless('Commercial' in types_not_to_list)

词汇表

对于城市领域,我们使用一个词汇表来读取 属性表。

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])
0

对于house type字段,我们使用一个词汇表,它从 属性表。

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])
1

对于rooms字段,我们使用一个词汇表来读取 属性表。

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])
2

门户目录索引

测试索引是否已在门户目录工具中创建。

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])
3

谷歌地图支持

RealestateBroker使用"地图"产品来支持谷歌地图。我们的 内容类型可由地图使用:

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])
4

maps javascripts没有加载到 性能原因:

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])
5

我们在"编辑"窗体和"地图"选项卡上显示它:

< Buff行情>
>>> self.loginAsPortalOwner()
>>> self.portal.portal_membership.addMember('admin', 'secret',
...                                         ['Manager'], [])
>>> self.portal.portal_membership.addMember('visitor', 'secret',
...                                         ['Reader'], [])
6

作者

由Ahmad Hadi和Jean Paul Ladage制作的原始1.0版本。

2.0由Jean Paul重新编写 ladage, 弗雷德·范 dijk 和mirellavanteulingen" rel="nofollow">mirella van Teulingen,所有的 软件

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

推荐PyPI第三方库


热门话题
相当于加密流。NET在Java 安卓中的应用?   java Android:加载片段时启动动画   java文件从指定的绝对路径上载到服务器   java是否可以自定义Spring缓存抽象所使用的序列化?   当客户端输入为无效字符串时,java从JAXWS接收空的BigDecimal   将数据库从MySQL更改为SQLite后出现Java项目错误   java PrimeFaces在datatable中自定义行编辑器   java在数组中对字符串和双类类型进行排序   图像Java:如何在GridLayout中嵌套JPanel?   java searchByEmail方法不起作用   java运行时。exec(字符串)限制字符串   java通过异步运行lambda访问方法参数   java为什么这个条件语句不编译?   在javajar中添加和使用文件,就像它们在文件夹中一样   使用java查找带有正则表达式的子字符串   在awt所在的地方荡秋千。属性,以及如何在Java插件中提供它的本地化版本