将谷歌地图视图类型添加到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:允许您在地图上显示不同的标记颜色来表示记录
颜色:地图上所有记录使用相同的标记颜色
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”:
新小部件,用于在Odoo中集成[地点自动完成地址表单](https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform)。
此小部件有四个可修改的选项
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”:
新小部件,用于在Odoo中集成[地点自动完成](https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete)。此小部件与 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>
Ammar Officewala <aofficewala@opensourceintegrators.com>
维护者
此模块由OCA维护。
OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。
当前 维护者
此模块是GitHub上的 OCA/geospatial 项目的组成部分。
欢迎您贡献力量。要了解如何贡献,请访问 https://odoo-community.org/page/Contribute。
项目详情
哈希值 for odoo14_addon_web_view_google_map-14.0.1.0.1.dev4-py3-none-any.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c60adbdf78487a6208e28e1df0834127baeef75384e3231569767223b67035d3 |
|
| MD5 | 8e1031af29a743a0a5af468082630309 |
|
| BLAKE2b-256 | a1e540e0f227b23744c91984cf7b04639731494d00191f5676dac65d89b9a58a |