将Google地图视图类型添加到Odoo Web客户端
项目描述
- 本模块包含三个新功能
新视图类型和模式 “地图”
新小部件 “gplaces_address_autocomplete”
新小部件 “gplaces_autocomplete”
目录
用法
地图视图 “地图”:-
基本上,这个新的视图 地图 将将谷歌地图集成到Odoo中。使您能够在地图上显示 res.partner 地理位置或任何包含地理定位的模型。此功能将与Odoo无缝工作,这意味着您可以使用Odoo搜索功能搜索合作伙伴的位置。
有五个可自定义的可用属性:-
lat : 告诉地图对象上的经度字段的属性 __[强制__]
lng : 告诉地图对象上的纬度字段的属性 __[强制__]
color : 修改标记颜色的属性(可选)任何给定的颜色都将设置所有标记的颜色 __[可选__]。
colors : 与属性 color 类似,但更可配置(您可以设置标记颜色取决于其值)此属性类似于Odoo树视图上的 colors __[可选__]。
- library告诉地图将加载哪个地图的属性 __[强制__]。
此选项有两个值:1. geometry 2. drawing
XML地图视图定义。例如
<record id="view_res_partner_map" model="ir.ui.view">
<field name="name">view.res.partner.map</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<map class="o_res_partner_map" library='geometry' string="Map" lat="partner_latitude" lng="partner_longitude" colors="blue:company_type=='person';green:company_type=='company';">
<field name="id"/>
<field name="partner_latitude"/>
<field name="partner_longitude"/>
<field name="company_type"/>
<field name="color"/>
<field name="display_name"/>
<field name="title"/>
<field name="email"/>
<field name="parent_id"/>
<field name="is_company"/>
<field name="function"/>
<field name="phone"/>
<field name="street"/>
<field name="street2"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id"/>
<field name="mobile"/>
<field name="state_id"/>
<field name="category_id"/>
<field name="image_small"/>
<field name="type"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click o_res_partner_kanban">
<div class="o_kanban_image">
<t t-if="record.image_small.raw_value">
<img t-att-src="kanban_image('res.partner', 'image_small', record.id.raw_value)"/>
</t>
<t t-if="!record.image_small.raw_value">
<t t-if="record.type.raw_value === 'delivery'">
<img t-att-src='_s + "/base/static/src/img/truck.png"' class="o_kanban_image oe_kanban_avatar_smallbox"/>
</t>
<t t-if="record.type.raw_value === 'invoice'">
<img t-att-src='_s + "/base/static/src/img/money.png"' class="o_kanban_image oe_kanban_avatar_smallbox"/>
</t>
<t t-if="record.type.raw_value != 'invoice' && record.type.raw_value != 'delivery'">
<t t-if="record.is_company.raw_value === true">
<img t-att-src='_s + "/base/static/src/img/company_image.png"'/>
</t>
<t t-if="record.is_company.raw_value === false">
<img t-att-src='_s + "/base/static/src/img/avatar.png"'/>
</t>
</t>
</t>
</div>
<div class="oe_kanban_details">
<strong class="o_kanban_record_title oe_partner_heading">
<field name="display_name"/>
</strong>
<div class="o_kanban_tags_section oe_kanban_partner_categories">
<span class="oe_kanban_list_many2many">
<field name="category_id" widget="many2many_tags" options="{'color_field': 'color'}"/>
</span>
</div>
<ul>
<li t-if="record.parent_id.raw_value and !record.function.raw_value">
<field name="parent_id"/>
</li>
<li t-if="!record.parent_id.raw_value and record.function.raw_value">
<field name="function"/>
</li>
<li t-if="record.parent_id.raw_value and record.function.raw_value">
<field name="function"/> at <field name="parent_id"/>
</li>
<li t-if="record.city.raw_value and !record.country_id.raw_value">
<field name="city"/>
</li>
<li t-if="!record.city.raw_value and record.country_id.raw_value">
<field name="country_id"/>
</li>
<li t-if="record.city.raw_value and record.country_id.raw_value">
<field name="city"/>
, <field name="country_id"/>
</li>
<li t-if="record.email.raw_value" class="o_text_overflow">
<field name="email"/>
</li>
</ul>
<div class="oe_kanban_partner_links"/>
</div>
</div>
</t>
</templates>
</map>
</field>
</record>
<record id="action_partner_map" model="ir.actions.act_window">
...
<field name="view_type">form</field>
<field name="view_mode">tree,form,map</field>
...
</record>
标记信息窗口将使用 kanban-box �看板卡片样式。
如何在地图上设置标记颜色?
有两个属性
colors:允许您显示不同的标记颜色来表示地图上的记录
color:地图上所有记录的统一标记颜色
XML颜色视图定义。例如
<!-- colors -->
<map string="Map" lat="partner_latitude" lng="partner_longitude" colors="green:company_type=='person';blue:company_type=='company';">
...
</map>
<!-- color -->
<map string="Map" lat="partner_latitude" lng="partner_longitude" color="orange">
...
</map>
新小部件 “gplaces_address_autocomplete”:
将[地点自动完成地址表单](https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform)集成到Odoo的新小部件。
该小部件有四个可修改的选项
component_form
fillfields
lat
lng
组件表单 component_form:
是一个选项,用于修改从地理编码器返回的对象中想要获取的值。有关Google组件类型的完整文档,请参阅[此处](https://developers.google.com/maps/documentation/geocoding/intro#Types)
默认情况下,此选项配置如下javascript值
{
'street_number': 'long_name',
'route': 'long_name',
'intersection': 'short_name',
'political': 'short_name',
'country': 'short_name',
'administrative_area_level_1': 'short_name',
'administrative_area_level_2': 'short_name',
'administrative_area_level_3': 'short_name',
'administrative_area_level_4': 'short_name',
'administrative_area_level_5': 'short_name',
'colloquial_area': 'short_name',
'locality': 'short_name',
'ward': 'short_name',
'sublocality_level_1': 'short_name',
'sublocality_level_2': 'short_name',
'sublocality_level_3': 'short_name',
'sublocality_level_5': 'short_name',
'neighborhood': 'short_name',
'premise': 'short_name',
'postal_code': 'short_name',
'natural_feature': 'short_name',
'airport': 'short_name',
'park': 'short_name',
'point_of_interest': 'long_name'
}
此配置可以在XML视图字段定义中修改
<record id="view_res_partner_form" model="ir.ui.view">
...
<field name="arch" type="xml">
...
<field name="street" widget="gplaces_address_form" options="{'component_form': {'street_number': 'short_name'}}"/>
...
</field>
</record>
填充字段 fillfields:
是一个受gplaces_address_autocomplete小部件影响的选项。
此选项应包含您希望小部件为每个给定字段自动填充的已知字段。字段可以包含来自组件表单的一个或多个元素。默认情况下,此选项配置如下javascript值
{
'street': ['street_number', 'route'],
'street2': ['administrative_area_level_3', 'administrative_area_level_4', 'administrative_area_level_5'],
'city': ['locality', 'administrative_area_level_2'],
'zip': 'postal_code',
'state_id': 'administrative_area_level_1',
'country_id': 'country',
}
此配置也可以在XML视图字段定义中修改
<record id="view_res_partner_form" model="ir.ui.view">
...
<field name="arch" type="xml">
...
<field name="street" widget="google_places" options="{'fillfields': {'street2': ['route', 'street_number']}}"/>
...
</field>
</record>
纬度 lat 和经度 lng:
此选项告诉小部件地理定位的字段,以便自动填充这些字段。
新小部件 “gplaces_autocomplete”:
将[地点自动完成](https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete)集成到Odoo的新小部件。此小部件的配置与gplaces_address_autocomplete类似。
组件表单 component_form:
与gplaces_address_autocomplete组件表单相同的配置
填充字段 fillfields:
此配置与gplaces_address_autocomplete类似。默认情况下,此选项配置如下javascript值
{
general: {
name: 'name',
website: 'website',
phone: ['international_phone_number', 'formatted_phone_number']
},
geolocation: {
partner_latitude: 'latitude',
partner_longitude: 'longitude'
},
address: {
street: ['street_number', 'route'],
street2: ['administrative_area_level_3', 'administrative_area_level_4', 'administrative_area_level_5'],
city: ['locality', 'administrative_area_level_2'],
zip: 'postal_code',
state_id: 'administrative_area_level_1',
country_id: 'country'
}
};
错误跟踪器
问题在GitHub Issues上追踪。如果遇到问题,请检查是否已报告您的问题。如果是您首先发现的,请提供详细且受欢迎的反馈,帮助我们解决它。
请不要直接联系贡献者以获取支持或帮助解决技术问题。
致谢
贡献者
Yopi Angi <yopiangi@gmail.com>
Wolfgang Hall <whall@opensourceintegrators.com>
Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
维护者
本模块由OCA维护。
OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。
当前 维护者
本模块是GitHub上OCA/geospatial项目的一部分。
欢迎您贡献。要了解如何贡献,请访问https://odoo-community.org/page/Contribute。
项目详情
哈希值 for odoo12_addon_web_view_google_map-12.0.1.1.2-py3-none-any.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 87326a80d7dc35f03d35693cf180b038ea6535262ebbc161b1aff07314ff0db6 |
|
| MD5 | 3714c1d93710943e8641a58c6630dca3 |
|
| BLAKE2b-256 | 2a6654f36ad5ac9813889717918fea560a2df7dc82e7372902109c2b7771852c |